2013-04-15 35 views
1

我已经创建了一个使用kaleo工作流的工作流。在此我试图为多个用户分配一个任务,我在此为脚本分配标签中使用了groovy脚本。它不工作。当我将两个用户标识放在用户对象中时,第一个用户被替换,第二个用户得到审批任务。 我也使用用户arraylist这个,就像kaleo single批准者脚本赋值definition中的角色一样,但没有用处。将任务分配给多个用户,分配生命线中的kaleo worlflow

我该如何管理这个。

这是我的代码。

  roles=null; 
      Connection con = null; 
      Statement stmt = null; 
      ResultSet rs = null; 
      String secondid; 
      try 
      {     

      Class.forName(dbDriver); 
      con= (Connection) DriverManager.getConnection(dbUrl,dbUser,dbPwd); 

       stmt = con.createStatement();     
       rs = stmt.executeQuery("select ap1,ap2 from test where id = '"+userId+"'"); 
       users=new ArrayList<User>();      
       while (rs.next()) 
        {      
        println "approverid one"+rs.getInt(1); 
        println "approverid two"+rs.getInt(2); 
         user=UserLocalServiceUtil.getUser(Long.parseLong(rs.getString(1))); 
user=UserLocalServiceUtil.getUser(Long.parseLong(rs.getString(2))); 

        users.add(user); 
        println "array list:"+users; 
        } 
       rs.close(); 
       con.close();     
      }        
      catch(SQLException e) 
      { 
       e.printStackTrace(); 
      } 
      catch(ClassNotFoundException e) 
      { 
       e.printStackTrace(); 
      }   

      ]]> 
    </script> 
      <script-language>groovy</script-language> 
     </scripted-assignment> 
当我加入的用户两个用户ID tag.also它表明定义错误上载

+0

我也面临同样的问题。 –

回答

1

总之,使用角色。在控制面板中,您可以指定角色并向其添加用户。或者,如果你宁愿做编程,(虽然我仍然会产生作用事前)是这样的: (我假设你可以得到或有用户id

//Already created array of userIds like 
// [10180,10191], etc. 
roles=new ArrayList<Role>(); 
try { 
    Role r = RoleLocalServiceUtil.getRole(companyId, roleName); 
    if (r.getType()==RoleConstants.TYPE_REGULAR) { 
     UserLocalServiceUtil.addRoleUsers(r.getRoleId(), userIds); 
    } else { 
     UserGroupRoleLocalServiceUtil.addUserGroupRoles(userIds, groupId, r.getRoleId()); 
    } 
    roles.add(r); 
} catch (SystemException e) { 
    e.printStackTrace(); 
} catch (PortalException e) { 
    e.printStackTrace(); 
} 

只是折腾数组或者在你的脚本分配定义中的一些近似值或者这个值的调用。如果你需要,使用UserLocalServiceUtil.unsetRoleUsers或者类似的东西来清除掉这个角色中的旧用户。