diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index fd49b293b..13a486231 100644 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -483,7 +483,6 @@ class Cases try { $oUser->load($oApp->getAppInitUser()); $uFields = $oUser->toArray(BasePeer::TYPE_FIELDNAME); - //$aFields['TITLE'] = $oApp->getAppTitle(); $aFields['TITLE'] = $aFields['APP_TITLE']; $aFields['DESCRIPTION'] = $aFields['APP_DESCRIPTION']; $aFields['CREATOR'] = $oUser->getUsrFirstname() . ' ' . $oUser->getUsrLastname(); @@ -514,10 +513,10 @@ class Cases $aFields['DEL_TASK_DUE_DATE'] = $aAppDel['DEL_TASK_DUE_DATE']; $aFields['DEL_FINISH_DATE'] = $aAppDel['DEL_FINISH_DATE']; $aFields['CURRENT_USER_UID'] = $aAppDel['USR_UID']; + //Update the global variables + $aFields['TASK'] = $aAppDel['TAS_UID']; + $aFields['INDEX'] = $aAppDel['DEL_INDEX']; try { - //$oCurUser = new Users(); - //$oCurUser->load($aAppDel['USR_UID']); - //$aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname(); $oCurUser = new Users(); if ($jump != '') { $aCases = $oAppDel->LoadParallel($sAppUid); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php index 011370607..eadf828a9 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php @@ -576,9 +576,30 @@ class Variable $stmt = $cnn->createStatement(); if (isset($arrayVariable['app_uid']) && !empty($arrayVariable['app_uid'])) { + $delIndex = isset($arrayVariable["del_index"]) ? $arrayVariable["del_index"] : 0; $case = new \Cases(); - $fields = $case->loadCase($arrayVariable['app_uid']); + $fields = $case->loadCase($arrayVariable['app_uid'], (int) $delIndex); $arrayVariable = array_merge($fields['APP_DATA'], $arrayVariable); + + //Set the global variables + if (!isset($arrayVariable['APPLICATION']) || empty($arrayVariable['APPLICATION'])) { + $arrayVariable['APPLICATION'] = $arrayVariable['app_uid']; + } + if (!isset($arrayVariable['PROCESS']) || empty($arrayVariable['PROCESS'])) { + $arrayVariable['PROCESS'] = $fields['PRO_UID']; + } + if (isset($fields['TASK']) && !empty($fields['TASK'])) { + $arrayVariable['TASK'] = $fields['TASK']; + } + if (isset($fields['INDEX']) && !empty($fields['INDEX'])) { + $arrayVariable['INDEX'] = $fields['INDEX']; + } + $arrayVariable['USER_LOGGED'] = \ProcessMaker\Services\OAuth2\Server::getUserId(); + if (isset($arrayVariable['USER_LOGGED']) && !empty($arrayVariable['USER_LOGGED'])) { + $oUserLogged = new \Users(); + $oUserLogged->load($arrayVariable['USER_LOGGED']); + $arrayVariable['USR_USERNAME'] = $oUserLogged->getUsrUsername(); + } } $replaceFields = G::replaceDataField($variableSql, $arrayVariable);