- 標準方式(Standard):任務分配給參與者映射所對應的用戶,如果沒有,則分配給創建流程的用戶。
- 歷史相關方式(History Related):根據分配的歷史來決定任務分配給誰。
- 直接使用XPDL定義的用戶方式(XPDL Straight):任務分配給用戶名與XPDL中定義的參與者id一樣的用戶
- 工作負擔相關方式(Workload Related):分配任務時考慮用戶的工作負擔。僅用於專業版。
Object pmmaObj = Shark.getInstance().getPlugIn(SharkConstants.PLUGIN_PARTICIPANT_MAPPING);
ParticipantMappingManagerAdmin pmma = null;
if (pmmaObj instanceof ParticipantMappingManagerAdmin) pmma = (ParticipantMappingManagerAdmin) pmmaObj;
String pkgVersion = pa.getCurrentPackageVersion(sc.getSessionHandle(), pkgId);
String procDefName = "askForLeave";
ParticipantMap[] pms = pmma.getParticipantMappings(sc.getSessionHandle(), pkgId, pkgVersion, procDefName, "employee");
for (int i=0;i<pms.length;i++)
{
pmma.deleteParticipantMapping(pms[i]);
}
pms = pmma.getParticipantMappings(sc.getSessionHandle(), pkgId, pkgVersion, procDefName, "manager");
for (int i=0;i<pms.length;i++)
{
pmma.deleteParticipantMapping(pms[i]);
}
ParticipantMap map1 = pmma.createParticipantMap();
map1.setIsGroupUser(false);
map1.setPackageId(pkgId);
map1.setPackageVersion(pkgVersion);
map1.setParticipantId("manager");
map1.setProcessDefinitionId(procDefName);
map1.setUsername("user2");
pmma.saveParticipantMapping(map1);
ParticipantMap map2 = pmma.createParticipantMap();
map2.setIsGroupUser(false);
map2.setPackageId(pkgId);
map2.setPackageVersion(pkgVersion);
map2.setParticipantId("employee");
map2.setProcessDefinitionId(procDefName);
map2.setUsername("user1");
pmma.saveParticipantMapping(map2);