PM-3121 "Changes in assignment rules in multiple instance tasks" SOLVED
Issue:
Changes in assignment rules in multiple instance tasks
Cause:
Nuevo requerimiento de funciones
Solution:
- Se a implementado este nuevo tipo de asignacion "Multiple Instance"
- Este nuevo tipo de asignacion solo se aplica a activities de tipo: "Empty Task", "User Task", "Manual Task";
con un marker de tipo "Parallel"
This commit is contained in:
committed by
Enrique Ponce De Leon
parent
8b39e13166
commit
2ee7593e93
@@ -239,6 +239,7 @@ class Task
|
||||
|
||||
$task = new \Task();
|
||||
$aTaskInfo = $task->load($arrayProperty["TAS_UID"]);
|
||||
$bpmnActivity = \BpmnActivityPeer::retrieveByPK($act_uid);
|
||||
|
||||
$arrayResult = array();
|
||||
if ($arrayProperty["TAS_SELFSERVICE_TIMEOUT"] == "1") {
|
||||
@@ -272,6 +273,17 @@ class Task
|
||||
}
|
||||
}
|
||||
|
||||
$flagTaskIsMultipleInstance = $bpmnActivity->getActType() == "TASK" && preg_match("/^(?:EMPTY|USERTASK|MANUALTASK)$/", $bpmnActivity->getActTaskType()) && $bpmnActivity->getActLoopType() == "PARALLEL";
|
||||
$flagTaskAssignTypeIsMultipleInstance = preg_match("/^(?:MULTIPLE_INSTANCE|MULTIPLE_INSTANCE_VALUE_BASED)$/", $arrayProperty["TAS_ASSIGN_TYPE"]);
|
||||
|
||||
if ($flagTaskIsMultipleInstance && !$flagTaskAssignTypeIsMultipleInstance) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_INVALID_ASSIGNMENT_METHOD_FOR_MULTIPLE_INSTANCE_ACTIVITY", array(strtolower("ACT_UID"), $act_uid)));
|
||||
}
|
||||
|
||||
if (!$flagTaskIsMultipleInstance && $flagTaskAssignTypeIsMultipleInstance) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_INVALID_ASSIGNMENT_METHOD_FOR_ACTIVITY", array(strtolower("ACT_UID"), $act_uid)));
|
||||
}
|
||||
|
||||
switch ($arrayProperty["TAS_ASSIGN_TYPE"]) {
|
||||
case 'BALANCED':
|
||||
case 'MANUAL':
|
||||
@@ -329,6 +341,11 @@ class Task
|
||||
$this->unsetVar($arrayProperty, "TAS_SELFSERVICE_EXECUTION");
|
||||
}
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE_VALUE_BASED":
|
||||
if (trim($arrayProperty["TAS_ASSIGN_VARIABLE"]) == "") {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array(strtolower("TAS_ASSIGN_VARIABLE"))));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//Validating TAS_TRANSFER_FLY value
|
||||
|
||||
Reference in New Issue
Block a user