2013-04-15 78 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或者類似的東西來清除掉這個角色中的舊用戶。