PM-3083 "PM-3083 and PM-3046" SOLVED

Issue:
    - PM-3083: La funcionalidad cambiar tipo de gateway  desde el diseñr no funciona
    - PM-3046: DesignerBPMN>Conexiones Gateway to Gateway muestran error al ejecutar un caso
Cause:
    En PM-3083 y PM-3046 los gateway-joins (converging) PARALLEL e INCLUSIVE no son actualizados
    correctamente en Back-end
Solution:
    - Se define el gateway de tipo converging para PARALLEL e INCLUSIVE cuando
      uno o mas flows ingresan al geteway, esto en Back-end
    - Se mejoro la verificacion de hilos abiertos al derivar un caso, esto en Running-case
This commit is contained in:
Victor Saisa Lopez
2015-07-11 02:51:32 -04:00
parent ed5bf66605
commit bfd55b73c0
4 changed files with 72 additions and 56 deletions

View File

@@ -576,7 +576,7 @@ class Derivation
* @param array $nextDelegations
* @return void
*/
function derivate ($currentDelegation = array(), $nextDelegations = array(), $removeList = true)
function derivate($currentDelegation = array(), $nextDelegations = array(), $removeList = true)
{
//define this...
if (! defined( 'TASK_FINISH_PROCESS' )) {
@@ -704,20 +704,10 @@ class Derivation
}
break;
default:
if ($currentDelegation['ROU_TYPE'] == 'SEC-JOIN') {
$siblingThreads = $this->case->getOpenSiblingThreads( $nextDel['TAS_UID'], $currentDelegation['APP_UID'], $currentDelegation['DEL_INDEX'], $currentDelegation['TAS_UID'], $currentDelegation['ROU_TYPE'] );
$canDerivate = count( $siblingThreads ) == 0;
} elseif ($currentDelegation['ROU_TYPE'] == 'DISCRIMINATOR') {
//First get the total threads of Next Task where route type='Discriminator'
$siblingThreads = $this->case->getOpenSiblingThreads( $nextDel['TAS_UID'], $currentDelegation['APP_UID'], $currentDelegation['DEL_INDEX'], $currentDelegation['TAS_UID'], $currentDelegation['ROU_TYPE'] );
$siblingThreadsCount = count( $siblingThreads );
$discriminateThread = $currentDelegation['ROU_CONDITION'];
//$checkThread = count($totalThreads) - $cond;
if ($discriminateThread == $siblingThreadsCount) {
$canDerivate = true;
} else {
$canDerivate = false;
}
if ($currentDelegation["ROU_TYPE"] == "SEC-JOIN") {
$siblingThreads = $this->case->getOpenSiblingThreads($nextDel["TAS_UID"], $currentDelegation["APP_UID"], $currentDelegation["DEL_INDEX"], $currentDelegation["TAS_UID"]);
$canDerivate = empty($siblingThreads);
} else {
$canDerivate = true;
}