HOR-4863
This commit is contained in:
@@ -882,6 +882,9 @@ class Derivation
|
||||
//We close the current derivation, then we'll try to derivate to each defined route
|
||||
$this->case->CloseCurrentDelegation( $currentDelegation['APP_UID'], $currentDelegation['DEL_INDEX'] );
|
||||
|
||||
//Set THE APP_STATUS
|
||||
$appFields['APP_STATUS'] = $currentDelegation['APP_STATUS'];
|
||||
|
||||
//Get data for current delegation (current Task)
|
||||
$task = TaskPeer::retrieveByPK($currentDelegation["TAS_UID"]);
|
||||
$bpmnActivity = BpmnActivityPeer::retrieveByPK($currentDelegation["TAS_UID"]);
|
||||
@@ -1114,17 +1117,12 @@ class Derivation
|
||||
unset($aSP);
|
||||
}
|
||||
|
||||
/* Start Block : UPDATES APPLICATION */
|
||||
|
||||
//Set THE APP_STATUS
|
||||
$appFields['APP_STATUS'] = $currentDelegation['APP_STATUS'];
|
||||
/* Start Block : Count the open threads of $currentDelegation['APP_UID'] */
|
||||
$openThreads = $this->case->GetOpenThreads( $currentDelegation['APP_UID'] );
|
||||
|
||||
$flagUpdateCase = false;
|
||||
|
||||
//check if there is any paused thread
|
||||
|
||||
//Check if there is any paused thread
|
||||
$existThreadPaused = false;
|
||||
if (isset($arraySiblings['pause'])) {
|
||||
if (!empty($arraySiblings['pause'])) {
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
<?php
|
||||
namespace ProcessMaker\BusinessModel;
|
||||
|
||||
use BasePeer;
|
||||
use Cases as ClassesCases;
|
||||
use Criteria;
|
||||
use Exception;
|
||||
use G;
|
||||
use PMScript;
|
||||
use ResultSet;
|
||||
use ScriptTaskPeer;
|
||||
use TaskPeer;
|
||||
use TriggersPeer;
|
||||
|
||||
class ScriptTask
|
||||
{
|
||||
@@ -594,50 +604,47 @@ class ScriptTask
|
||||
/**
|
||||
* Execute Script
|
||||
*
|
||||
* @param string $activityUid Unique id of Event
|
||||
* @param string $activityUid Unique id of task
|
||||
* @param array $arrayApplicationData Case data
|
||||
*
|
||||
* @return array
|
||||
* @throws Exception
|
||||
*/
|
||||
public function execScriptByActivityUid($activityUid, array $arrayApplicationData)
|
||||
{
|
||||
try {
|
||||
$task = \TaskPeer::retrieveByPK($activityUid);
|
||||
$task = TaskPeer::retrieveByPK($activityUid);
|
||||
|
||||
if (!is_null($task) && $task->getTasType() == "SCRIPT-TASK") {
|
||||
$criteria = new \Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(\ScriptTaskPeer::SCRTAS_OBJ_UID);
|
||||
|
||||
$criteria->add(\ScriptTaskPeer::ACT_UID, $activityUid, \Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = \ScriptTaskPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$criteria = new Criteria("workflow");
|
||||
$criteria->addSelectColumn(ScriptTaskPeer::SCRTAS_OBJ_UID);
|
||||
$criteria->add(ScriptTaskPeer::ACT_UID, $activityUid, Criteria::EQUAL);
|
||||
$rsCriteria = ScriptTaskPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
if ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$scriptTasObjUid = $row["SCRTAS_OBJ_UID"];
|
||||
|
||||
$trigger = \TriggersPeer::retrieveByPK($scriptTasObjUid);
|
||||
$trigger = TriggersPeer::retrieveByPK($scriptTasObjUid);
|
||||
|
||||
if (!is_null($trigger)) {
|
||||
//We will be update the status before execute the trigger related to the script task
|
||||
$case = new ClassesCases();
|
||||
$result = $case->updateCase($arrayApplicationData["APP_UID"], $arrayApplicationData);
|
||||
|
||||
//Some Pmf functions uses this global variable $oPMScript for review the aFields defined
|
||||
global $oPMScript;
|
||||
$oPMScript = new \PMScript();
|
||||
$oPMScript->setDataTrigger($trigger->toArray(\BasePeer::TYPE_FIELDNAME));
|
||||
$oPMScript = new PMScript();
|
||||
$oPMScript->setDataTrigger($trigger->toArray(BasePeer::TYPE_FIELDNAME));
|
||||
$oPMScript->setFields($arrayApplicationData["APP_DATA"]);
|
||||
$oPMScript->setScript($trigger->getTriWebbot());
|
||||
$oPMScript->execute();
|
||||
|
||||
if (isset($oPMScript->aFields["__ERROR__"])) {
|
||||
G::log("Case Uid: " . $arrayApplicationData["APP_UID"] . ", Error: " . $oPMScript->aFields["__ERROR__"], PATH_DATA, "ScriptTask.log");
|
||||
G::log("Case Uid: " . $arrayApplicationData["APP_UID"] . ", Error: " . $oPMScript->aFields["__ERROR__"],
|
||||
PATH_DATA, "ScriptTask.log");
|
||||
}
|
||||
|
||||
$arrayApplicationData["APP_DATA"] = $oPMScript->aFields;
|
||||
|
||||
$case = new \Cases();
|
||||
|
||||
$result = $case->updateCase($arrayApplicationData["APP_UID"], $arrayApplicationData);
|
||||
}
|
||||
}
|
||||
@@ -645,7 +652,7 @@ class ScriptTask
|
||||
|
||||
//Return
|
||||
return $arrayApplicationData["APP_DATA"];
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user