HOR-4525
This commit is contained in:
@@ -792,6 +792,7 @@ function executeCaseSelfService()
|
|||||||
$oPMScript->setDataTrigger($row);
|
$oPMScript->setDataTrigger($row);
|
||||||
$oPMScript->setFields($appFields["APP_DATA"]);
|
$oPMScript->setFields($appFields["APP_DATA"]);
|
||||||
$oPMScript->setScript($row["TRI_WEBBOT"]);
|
$oPMScript->setScript($row["TRI_WEBBOT"]);
|
||||||
|
$oPMScript->setExecutedOn(PMScript::SELF_SERVICE_TIMEOUT);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
|
|||||||
@@ -1138,6 +1138,7 @@ class Applications
|
|||||||
// if it has a condition
|
// if it has a condition
|
||||||
if (trim($caseStep->getStepCondition()) != '') {
|
if (trim($caseStep->getStepCondition()) != '') {
|
||||||
$pmScript->setScript($caseStep->getStepCondition());
|
$pmScript->setScript($caseStep->getStepCondition());
|
||||||
|
$pmScript->setExecutedOn(PMScript::CONDITION);
|
||||||
|
|
||||||
if (! $pmScript->evaluate()) {
|
if (! $pmScript->evaluate()) {
|
||||||
//evaluated false, jump & continue with the others steps
|
//evaluated false, jump & continue with the others steps
|
||||||
|
|||||||
@@ -2344,6 +2344,7 @@ class Cases
|
|||||||
if ($oStep) {
|
if ($oStep) {
|
||||||
if (trim($oStep->getStepCondition()) !== '') {
|
if (trim($oStep->getStepCondition()) !== '') {
|
||||||
$oPMScript->setScript($oStep->getStepCondition());
|
$oPMScript->setScript($oStep->getStepCondition());
|
||||||
|
$oPMScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$bAccessStep = $oPMScript->evaluate();
|
$bAccessStep = $oPMScript->evaluate();
|
||||||
} else {
|
} else {
|
||||||
$bAccessStep = true;
|
$bAccessStep = true;
|
||||||
@@ -2474,6 +2475,7 @@ class Cases
|
|||||||
if ($oStep) {
|
if ($oStep) {
|
||||||
if (trim($oStep->getStepCondition()) !== '') {
|
if (trim($oStep->getStepCondition()) !== '') {
|
||||||
$oPMScript->setScript($oStep->getStepCondition());
|
$oPMScript->setScript($oStep->getStepCondition());
|
||||||
|
$oPMScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$bAccessStep = $oPMScript->evaluate();
|
$bAccessStep = $oPMScript->evaluate();
|
||||||
} else {
|
} else {
|
||||||
$bAccessStep = true;
|
$bAccessStep = true;
|
||||||
@@ -3480,12 +3482,15 @@ class Cases
|
|||||||
if ($aTrigger['ST_CONDITION'] !== '') {
|
if ($aTrigger['ST_CONDITION'] !== '') {
|
||||||
$oPMScript->setDataTrigger($aTrigger);
|
$oPMScript->setDataTrigger($aTrigger);
|
||||||
$oPMScript->setScript($aTrigger['ST_CONDITION']);
|
$oPMScript->setScript($aTrigger['ST_CONDITION']);
|
||||||
|
$oPMScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$bExecute = $oPMScript->evaluate();
|
$bExecute = $oPMScript->evaluate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bExecute) {
|
if ($bExecute) {
|
||||||
$oPMScript->setDataTrigger($aTrigger);
|
$oPMScript->setDataTrigger($aTrigger);
|
||||||
$oPMScript->setScript($aTrigger['TRI_WEBBOT']);
|
$oPMScript->setScript($aTrigger['TRI_WEBBOT']);
|
||||||
|
$executedOn = $oPMScript->getExecutionOriginForAStep($sStepType, $sStepUidObj, $sTriggerType);
|
||||||
|
$oPMScript->setExecutedOn($executedOn);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
$this->arrayTriggerExecutionTime[$aTrigger['TRI_UID']] = $oPMScript->scriptExecutionTime;
|
$this->arrayTriggerExecutionTime[$aTrigger['TRI_UID']] = $oPMScript->scriptExecutionTime;
|
||||||
@@ -7142,6 +7147,7 @@ class Cases
|
|||||||
$oPMScript->setDataTrigger($arrayWebBotTrigger);
|
$oPMScript->setDataTrigger($arrayWebBotTrigger);
|
||||||
$oPMScript->setFields($aFields['APP_DATA']);
|
$oPMScript->setFields($aFields['APP_DATA']);
|
||||||
$oPMScript->setScript($arrayWebBotTrigger['TRI_WEBBOT']);
|
$oPMScript->setScript($arrayWebBotTrigger['TRI_WEBBOT']);
|
||||||
|
$oPMScript->setExecutedOn(PMScript::PROCESS_ACTION);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
$aFields['APP_DATA'] = array_merge($aFields['APP_DATA'], $oPMScript->aFields);
|
$aFields['APP_DATA'] = array_merge($aFields['APP_DATA'], $oPMScript->aFields);
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ class Derivation
|
|||||||
$pmScript = new PMScript();
|
$pmScript = new PMScript();
|
||||||
$pmScript->setFields($arrayApplicationData["APP_DATA"]);
|
$pmScript->setFields($arrayApplicationData["APP_DATA"]);
|
||||||
$pmScript->setScript($arrayRouteData["ROU_CONDITION"]);
|
$pmScript->setScript($arrayRouteData["ROU_CONDITION"]);
|
||||||
|
$pmScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$flagAddDelegation = $pmScript->evaluate();
|
$flagAddDelegation = $pmScript->evaluate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1719,34 +1719,35 @@ class WsBase
|
|||||||
*
|
*
|
||||||
* @param string $caseId
|
* @param string $caseId
|
||||||
* @param string $variables
|
* @param string $variables
|
||||||
|
* @param bool $forceToSave
|
||||||
*
|
*
|
||||||
* @return $result will return an object
|
* @return $result will return an object
|
||||||
*/
|
*/
|
||||||
public function sendVariables($caseId, $variables)
|
public function sendVariables($caseId, $variables, $forceToSave = false)
|
||||||
{
|
{
|
||||||
//delegation where app uid (caseId) y usruid(session) ordenar delindes descendente y agaarr el primero
|
|
||||||
//delfinishdate != null error
|
|
||||||
try {
|
try {
|
||||||
$oCriteria = new Criteria('workflow');
|
if (!$forceToSave) {
|
||||||
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
|
$criteria = new Criteria('workflow');
|
||||||
$oCriteria->add(AppDelegationPeer::APP_UID, $caseId);
|
$criteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
|
||||||
$oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
|
$criteria->add(AppDelegationPeer::APP_UID, $caseId);
|
||||||
|
$criteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
|
||||||
|
|
||||||
$oCriteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_INDEX);
|
$criteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_INDEX);
|
||||||
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
$dataset = AppDelegationPeer::doSelectRS($criteria);
|
||||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
$cnt = 0;
|
$cnt = 0;
|
||||||
|
|
||||||
while ($oDataset->next()) {
|
while ($dataset->next()) {
|
||||||
$aRow = $oDataset->getRow();
|
$row = $dataset->getRow();
|
||||||
$cnt++;
|
$cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cnt == 0) {
|
if ($cnt == 0) {
|
||||||
$result = new WsResponse(18, G::loadTranslation('ID_CASE_DELEGATION_ALREADY_CLOSED'));
|
$result = new WsResponse(18, G::loadTranslation('ID_CASE_DELEGATION_ALREADY_CLOSED'));
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($variables)) {
|
if (is_array($variables)) {
|
||||||
@@ -2197,7 +2198,11 @@ class WsBase
|
|||||||
if (count($aTriggers) > 0) {
|
if (count($aTriggers) > 0) {
|
||||||
$varTriggers = $varTriggers . "<br /><b>" . $labelAssignment . "</b><br />";
|
$varTriggers = $varTriggers . "<br /><b>" . $labelAssignment . "</b><br />";
|
||||||
|
|
||||||
$oPMScript = new PMScript();
|
global $oPMScript;
|
||||||
|
|
||||||
|
if (!isset($oPMScript)) {
|
||||||
|
$oPMScript = new PMScript();
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($aTriggers as $aTrigger) {
|
foreach ($aTriggers as $aTrigger) {
|
||||||
//Set variables
|
//Set variables
|
||||||
@@ -2218,12 +2223,15 @@ class WsBase
|
|||||||
|
|
||||||
if ($aTrigger['ST_CONDITION'] !== '') {
|
if ($aTrigger['ST_CONDITION'] !== '') {
|
||||||
$oPMScript->setScript($aTrigger['ST_CONDITION']);
|
$oPMScript->setScript($aTrigger['ST_CONDITION']);
|
||||||
|
$oPMScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$bExecute = $oPMScript->evaluate();
|
$bExecute = $oPMScript->evaluate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bExecute) {
|
if ($bExecute) {
|
||||||
$oPMScript->setDataTrigger($aTrigger);
|
$oPMScript->setDataTrigger($aTrigger);
|
||||||
$oPMScript->setScript($aTrigger['TRI_WEBBOT']);
|
$oPMScript->setScript($aTrigger['TRI_WEBBOT']);
|
||||||
|
$executedOn = $oPMScript->getExecutionOriginForAStep($stepType, $stepUidObj, $triggerType);
|
||||||
|
$oPMScript->setExecutedOn($executedOn);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
$trigger = TriggersPeer::retrieveByPk($aTrigger["TRI_UID"]);
|
$trigger = TriggersPeer::retrieveByPk($aTrigger["TRI_UID"]);
|
||||||
@@ -2687,6 +2695,7 @@ class WsBase
|
|||||||
$oPMScript->setDataTrigger($row);
|
$oPMScript->setDataTrigger($row);
|
||||||
$oPMScript->setFields($appFields['APP_DATA']);
|
$oPMScript->setFields($appFields['APP_DATA']);
|
||||||
$oPMScript->setScript($row['TRI_WEBBOT']);
|
$oPMScript->setScript($row['TRI_WEBBOT']);
|
||||||
|
$oPMScript->setExecutedOn(PMScript::ISOLATED_TRIGGER);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
if (isset($oPMScript->aFields["__ERROR__"]) && trim($oPMScript->aFields["__ERROR__"]) != "" && $oPMScript->aFields["__ERROR__"] != "none") {
|
if (isset($oPMScript->aFields["__ERROR__"]) && trim($oPMScript->aFields["__ERROR__"]) != "" && $oPMScript->aFields["__ERROR__"] != "none") {
|
||||||
|
|||||||
@@ -418,18 +418,19 @@ function orderGrid ($dataM, $field, $ord = 'ASC')
|
|||||||
* @return array | $aGrid | Grid | Grid with executed operation
|
* @return array | $aGrid | Grid | Grid with executed operation
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function evaluateFunction ($aGrid, $sExpresion)
|
function evaluateFunction($aGrid, $sExpresion)
|
||||||
{
|
{
|
||||||
$sExpresion = str_replace( 'Array', '$this->aFields', $sExpresion );
|
$sExpresion = str_replace('Array', '$this->aFields', $sExpresion);
|
||||||
$sExpresion .= ';';
|
$sExpresion .= ';';
|
||||||
|
|
||||||
$pmScript = new PMScript();
|
$pmScript = new PMScript();
|
||||||
$pmScript->setScript( $sExpresion );
|
$pmScript->setScript($sExpresion);
|
||||||
|
$pmScript->setExecutedOn(PMScript::EVALUATE_FUNCTION);
|
||||||
|
|
||||||
for ($i = 1; $i <= count( $aGrid ); $i ++) {
|
for ($i = 1; $i <= count($aGrid); $i ++) {
|
||||||
$aFields = $aGrid[$i];
|
$aFields = $aGrid[$i];
|
||||||
|
|
||||||
$pmScript->setFields( $aFields );
|
$pmScript->setFields($aFields);
|
||||||
|
|
||||||
$pmScript->execute();
|
$pmScript->execute();
|
||||||
|
|
||||||
@@ -2030,13 +2031,19 @@ function PMFProcessList () //its test was successfull
|
|||||||
*/
|
*/
|
||||||
function PMFSendVariables ($caseId, $variables)
|
function PMFSendVariables ($caseId, $variables)
|
||||||
{
|
{
|
||||||
$ws = new WsBase();
|
global $oPMScript;
|
||||||
|
|
||||||
|
if (!isset($oPMScript)) {
|
||||||
|
$oPMScript = new PMScript();
|
||||||
|
}
|
||||||
|
|
||||||
|
$ws = new WsBase();
|
||||||
|
$result = $ws->sendVariables($caseId, $variables,
|
||||||
|
$oPMScript->executedOn() === PMScript::AFTER_ROUTING);
|
||||||
|
|
||||||
$result = $ws->sendVariables( $caseId, $variables );
|
|
||||||
if ($result->status_code == 0) {
|
if ($result->status_code == 0) {
|
||||||
if (isset($_SESSION['APPLICATION'])) {
|
if (isset($_SESSION['APPLICATION'])) {
|
||||||
if ($caseId == $_SESSION['APPLICATION']) {
|
if ($caseId == $_SESSION['APPLICATION']) {
|
||||||
global $oPMScript;
|
|
||||||
if (isset($oPMScript->aFields) && is_array($oPMScript->aFields)) {
|
if (isset($oPMScript->aFields) && is_array($oPMScript->aFields)) {
|
||||||
if (is_array($variables)) {
|
if (is_array($variables)) {
|
||||||
$oPMScript->aFields = array_merge($oPMScript->aFields, $variables);
|
$oPMScript->aFields = array_merge($oPMScript->aFields, $variables);
|
||||||
@@ -2432,7 +2439,7 @@ function PMFgetLabelOption ($PROCESS, $DYNAFORM_UID, $FIELD_NAME, $FIELD_SELECTE
|
|||||||
* @return none | $none | None | None
|
* @return none | $none | None | None
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function PMFRedirectToStep ($sApplicationUID, $iDelegation, $sStepType, $sStepUid)
|
function PMFRedirectToStep($sApplicationUID, $iDelegation, $sStepType, $sStepUid)
|
||||||
{
|
{
|
||||||
$g = new G();
|
$g = new G();
|
||||||
|
|
||||||
@@ -2444,26 +2451,27 @@ function PMFRedirectToStep ($sApplicationUID, $iDelegation, $sStepType, $sStepUi
|
|||||||
$_SESSION["INDEX"] = $iDelegation;
|
$_SESSION["INDEX"] = $iDelegation;
|
||||||
|
|
||||||
require_once 'classes/model/AppDelegation.php';
|
require_once 'classes/model/AppDelegation.php';
|
||||||
$oCriteria = new Criteria( 'workflow' );
|
$oCriteria = new Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn( AppDelegationPeer::TAS_UID );
|
$oCriteria->addSelectColumn(AppDelegationPeer::TAS_UID);
|
||||||
$oCriteria->add( AppDelegationPeer::APP_UID, $sApplicationUID );
|
$oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
|
||||||
$oCriteria->add( AppDelegationPeer::DEL_INDEX, $iDelegation );
|
$oCriteria->add(AppDelegationPeer::DEL_INDEX, $iDelegation);
|
||||||
$oDataset = AppDelegationPeer::doSelectRS( $oCriteria );
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
||||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
global $oPMScript;
|
global $oPMScript;
|
||||||
$aRow = $oDataset->getRow();
|
$aRow = $oDataset->getRow();
|
||||||
if ($aRow) {
|
if ($aRow) {
|
||||||
require_once 'classes/model/Step.php';
|
require_once 'classes/model/Step.php';
|
||||||
$oStep = new Step();
|
$oStep = new Step();
|
||||||
$oTheStep = $oStep->loadByType( $aRow['TAS_UID'], $sStepType, $sStepUid );
|
$oTheStep = $oStep->loadByType($aRow['TAS_UID'], $sStepType, $sStepUid);
|
||||||
$bContinue = true;
|
$bContinue = true;
|
||||||
$oCase = new Cases();
|
$oCase = new Cases();
|
||||||
$aFields = $oCase->loadCase( $sApplicationUID );
|
$aFields = $oCase->loadCase($sApplicationUID);
|
||||||
if ($oTheStep->getStepCondition() != '') {
|
if ($oTheStep->getStepCondition() != '') {
|
||||||
$pmScript = new PMScript();
|
$pmScript = new PMScript();
|
||||||
$pmScript->setFields( $aFields['APP_DATA'] );
|
$pmScript->setFields($aFields['APP_DATA']);
|
||||||
$pmScript->setScript( $oTheStep->getStepCondition() );
|
$pmScript->setScript($oTheStep->getStepCondition());
|
||||||
|
$pmScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$bContinue = $pmScript->evaluate();
|
$bContinue = $pmScript->evaluate();
|
||||||
}
|
}
|
||||||
if ($bContinue) {
|
if ($bContinue) {
|
||||||
@@ -2485,18 +2493,18 @@ function PMFRedirectToStep ($sApplicationUID, $iDelegation, $sStepType, $sStepUi
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// save data
|
// save data
|
||||||
if (! is_null( $oPMScript )) {
|
if (!is_null($oPMScript)) {
|
||||||
$aFields['APP_DATA'] = $oPMScript->aFields;
|
$aFields['APP_DATA'] = $oPMScript->aFields;
|
||||||
unset($aFields['APP_STATUS']);
|
unset($aFields['APP_STATUS']);
|
||||||
unset($aFields['APP_PROC_STATUS']);
|
unset($aFields['APP_PROC_STATUS']);
|
||||||
unset($aFields['APP_PROC_CODE']);
|
unset($aFields['APP_PROC_CODE']);
|
||||||
unset($aFields['APP_PIN']);
|
unset($aFields['APP_PIN']);
|
||||||
$oCase->updateCase( $sApplicationUID, $aFields );
|
$oCase->updateCase($sApplicationUID, $aFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
$g->sessionVarRestore();
|
$g->sessionVarRestore();
|
||||||
|
|
||||||
G::header( 'Location: ' . 'cases_Step?TYPE=' . $sStepType . '&UID=' . $sStepUid . '&POSITION=' . $oTheStep->getStepPosition() . '&ACTION=' . $sAction );
|
G::header('Location: ' . 'cases_Step?TYPE=' . $sStepType . '&UID=' . $sStepUid . '&POSITION=' . $oTheStep->getStepPosition() . '&ACTION=' . $sAction);
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2980,11 +2988,17 @@ function PMFRemoveMask ($field, $separator = '.', $currency = '')
|
|||||||
function PMFSaveCurrentData ()
|
function PMFSaveCurrentData ()
|
||||||
{
|
{
|
||||||
global $oPMScript;
|
global $oPMScript;
|
||||||
|
|
||||||
|
if (!isset($oPMScript)) {
|
||||||
|
$oPMScript = new PMScript();
|
||||||
|
}
|
||||||
|
|
||||||
$response = 0;
|
$response = 0;
|
||||||
|
|
||||||
if (isset($_SESSION['APPLICATION']) && isset($oPMScript->aFields)) {
|
if (isset($_SESSION['APPLICATION']) && isset($oPMScript->aFields)) {
|
||||||
$ws = new WsBase();
|
$ws = new WsBase();
|
||||||
$result = $ws->sendVariables($_SESSION['APPLICATION'], $oPMScript->aFields);
|
$result = $ws->sendVariables($_SESSION['APPLICATION'], $oPMScript->aFields,
|
||||||
|
$oPMScript->executedOn() === PMScript::AFTER_ROUTING);
|
||||||
$response = $result->status_code == 0 ? 1 : 0;
|
$response = $result->status_code == 0 ? 1 : 0;
|
||||||
}
|
}
|
||||||
return $response;
|
return $response;
|
||||||
|
|||||||
@@ -35,11 +35,51 @@ if (file_exists($dir)) {
|
|||||||
/**
|
/**
|
||||||
* PMScript - PMScript class
|
* PMScript - PMScript class
|
||||||
*
|
*
|
||||||
* @copyright 2007 COLOSA
|
|
||||||
* @package workflow.engine.ProcessMaker
|
* @package workflow.engine.ProcessMaker
|
||||||
*/
|
*/
|
||||||
class PMScript
|
class PMScript
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Constants to identify the execution origin
|
||||||
|
*/
|
||||||
|
const UNDEFINED_ORIGIN = 'executed.undefined.origin';
|
||||||
|
|
||||||
|
const BEFORE_DYNAFORM = 'executed.before.dynaform';
|
||||||
|
|
||||||
|
const AFTER_DYNAFORM = 'executed.after.dynaform';
|
||||||
|
|
||||||
|
const BEFORE_INPUT_DOCUMENT = 'executed.before.input';
|
||||||
|
|
||||||
|
const AFTER_INPUT_DOCUMENT = 'executed.after.input';
|
||||||
|
|
||||||
|
const BEFORE_OUTPUT_DOCUMENT = 'executed.before.output';
|
||||||
|
|
||||||
|
const AFTER_OUTPUT_DOCUMENT = 'executed.after.output';
|
||||||
|
|
||||||
|
const BEFORE_EXTERNAL_STEP = 'executed.before.external';
|
||||||
|
|
||||||
|
const AFTER_EXTERNAL_STEP = 'executed.after.external';
|
||||||
|
|
||||||
|
const BEFORE_ASSIGNMENT = 'executed.before.assignment';
|
||||||
|
|
||||||
|
const BEFORE_ROUTING = 'executed.before.routing';
|
||||||
|
|
||||||
|
const AFTER_ROUTING = 'executed.after.routing';
|
||||||
|
|
||||||
|
const CONDITION = 'executed.condition';
|
||||||
|
|
||||||
|
const SCRIPT_TASK = 'executed.script.task';
|
||||||
|
|
||||||
|
const CLASSIC_PROCESS_EVENTS = 'executed.classic.process.events';
|
||||||
|
|
||||||
|
const SELF_SERVICE_TIMEOUT = 'executed.selfservice.timeout';
|
||||||
|
|
||||||
|
const ISOLATED_TRIGGER = 'executed.isolated.trigger';
|
||||||
|
|
||||||
|
const PROCESS_ACTION = 'executed.process.action';
|
||||||
|
|
||||||
|
const EVALUATE_FUNCTION = 'executed.evaluate.function';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array $dataTrigger
|
* @var array $dataTrigger
|
||||||
*/
|
*/
|
||||||
@@ -72,12 +112,17 @@ class PMScript
|
|||||||
public $scriptExecutionTime = 0;
|
public $scriptExecutionTime = 0;
|
||||||
public $sRegexp = '/\@(?:([\@\%\#\?\$\=\&])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+|\-\>([a-zA-Z\_]\w*))?/';
|
public $sRegexp = '/\@(?:([\@\%\#\?\$\=\&])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+|\-\>([a-zA-Z\_]\w*))?/';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execution origin, by default is undefined
|
||||||
|
*/
|
||||||
|
protected $executedOn = self::UNDEFINED_ORIGIN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of the class PMScript
|
* Constructor of the class PMScript
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function PMScript()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->aFields['__ERROR__'] = 'none';
|
$this->aFields['__ERROR__'] = 'none';
|
||||||
}
|
}
|
||||||
@@ -161,6 +206,70 @@ class PMScript
|
|||||||
$this->dataTrigger = is_array($dataTrigger) ? $dataTrigger : [];
|
$this->dataTrigger = is_array($dataTrigger) ? $dataTrigger : [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the execution origin
|
||||||
|
*
|
||||||
|
* @param string $executedOn
|
||||||
|
*/
|
||||||
|
public function setExecutedOn($executedOn)
|
||||||
|
{
|
||||||
|
$this->executedOn = $executedOn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the execution origin
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function executedOn() {
|
||||||
|
return $this->executedOn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper to get the execution origin from an step
|
||||||
|
*
|
||||||
|
* @param string $stepType
|
||||||
|
* @param mixed $stepUidObj
|
||||||
|
* @param string $triggerType
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getExecutionOriginForAStep($stepType, $stepUidObj, $triggerType)
|
||||||
|
{
|
||||||
|
switch ($stepType) {
|
||||||
|
case 'DYNAFORM':
|
||||||
|
$executedOn = $triggerType === 'BEFORE' ? self::BEFORE_DYNAFORM : $triggerType === 'AFTER' ?
|
||||||
|
self::AFTER_DYNAFORM : self::UNDEFINED_ORIGIN;
|
||||||
|
break;
|
||||||
|
case 'INPUT_DOCUMENT':
|
||||||
|
$executedOn = $triggerType === 'BEFORE' ? self::BEFORE_INPUT_DOCUMENT : $triggerType === 'AFTER' ?
|
||||||
|
self::AFTER_INPUT_DOCUMENT : self::UNDEFINED_ORIGIN;
|
||||||
|
break;
|
||||||
|
case 'OUTPUT_DOCUMENT':
|
||||||
|
$executedOn = $triggerType === 'BEFORE' ? self::BEFORE_OUTPUT_DOCUMENT : $triggerType === 'AFTER' ?
|
||||||
|
self::AFTER_OUTPUT_DOCUMENT : self::UNDEFINED_ORIGIN;
|
||||||
|
break;
|
||||||
|
case 'EXTERNAL':
|
||||||
|
$executedOn = $triggerType === 'BEFORE' ? self::BEFORE_EXTERNAL_STEP : $triggerType === 'AFTER' ?
|
||||||
|
self::AFTER_EXTERNAL_STEP : self::UNDEFINED_ORIGIN;
|
||||||
|
break;
|
||||||
|
case 'ASSIGN_TASK':
|
||||||
|
if ($stepUidObj === -1) {
|
||||||
|
$executedOn = $triggerType === 'BEFORE' ? self::BEFORE_ASSIGNMENT : self::UNDEFINED_ORIGIN;
|
||||||
|
} elseif ($stepUidObj === -2) {
|
||||||
|
$executedOn = $triggerType === 'BEFORE' ? self::BEFORE_ROUTING : $triggerType === 'AFTER' ?
|
||||||
|
self::AFTER_ROUTING : self::UNDEFINED_ORIGIN;
|
||||||
|
} else {
|
||||||
|
$executedOn = self::UNDEFINED_ORIGIN;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$executedOn = self::UNDEFINED_ORIGIN;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $executedOn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $sScript
|
* @param $sScript
|
||||||
* @param $sCode
|
* @param $sCode
|
||||||
|
|||||||
@@ -178,99 +178,96 @@ class AppEvent extends BaseAppEvent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function executeEvents ($sNow, $debug = false, &$log = array(), $cron = 0)
|
public function executeEvents($sNow, $debug = false, &$log = array(), $cron = 0)
|
||||||
{
|
{
|
||||||
$debug = 1;
|
$debug = 1;
|
||||||
$oCase = new Cases();
|
$oCase = new Cases();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$oCriteria = new Criteria( 'workflow' );
|
$oCriteria = new Criteria('workflow');
|
||||||
|
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::APP_UID );
|
$oCriteria->addSelectColumn(AppEventPeer::APP_UID);
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::DEL_INDEX );
|
$oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX);
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::EVN_UID );
|
$oCriteria->addSelectColumn(AppEventPeer::EVN_UID);
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::APP_EVN_ACTION_DATE );
|
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE);
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::APP_EVN_ATTEMPTS );
|
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS);
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::APP_EVN_LAST_EXECUTION_DATE );
|
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE);
|
||||||
$oCriteria->addSelectColumn( AppEventPeer::APP_EVN_STATUS );
|
$oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS);
|
||||||
$oCriteria->addSelectColumn( EventPeer::PRO_UID );
|
$oCriteria->addSelectColumn(EventPeer::PRO_UID);
|
||||||
$oCriteria->addSelectColumn( EventPeer::EVN_ACTION );
|
$oCriteria->addSelectColumn(EventPeer::EVN_ACTION);
|
||||||
$oCriteria->addSelectColumn( EventPeer::TRI_UID );
|
$oCriteria->addSelectColumn(EventPeer::TRI_UID);
|
||||||
$oCriteria->addSelectColumn( EventPeer::EVN_ACTION_PARAMETERS );
|
$oCriteria->addSelectColumn(EventPeer::EVN_ACTION_PARAMETERS);
|
||||||
$oCriteria->addSelectColumn( EventPeer::EVN_RELATED_TO );
|
$oCriteria->addSelectColumn(EventPeer::EVN_RELATED_TO);
|
||||||
$oCriteria->addSelectColumn( AppDelegationPeer::TAS_UID );
|
$oCriteria->addSelectColumn(AppDelegationPeer::TAS_UID);
|
||||||
$oCriteria->addSelectColumn( AppDelegationPeer::USR_UID );
|
$oCriteria->addSelectColumn(AppDelegationPeer::USR_UID);
|
||||||
$oCriteria->addSelectColumn( AppDelegationPeer::DEL_TASK_DUE_DATE );
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
|
||||||
$oCriteria->addSelectColumn( AppDelegationPeer::DEL_FINISH_DATE );
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
|
||||||
|
|
||||||
$oCriteria->addJoin( AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::JOIN );
|
$oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::JOIN);
|
||||||
|
|
||||||
$aConditions = array ();
|
$aConditions = array ();
|
||||||
array_push( $aConditions, Array (AppEventPeer::APP_UID,AppDelegationPeer::APP_UID
|
array_push($aConditions, Array (AppEventPeer::APP_UID,AppDelegationPeer::APP_UID
|
||||||
) );
|
));
|
||||||
array_push( $aConditions, Array (AppEventPeer::DEL_INDEX,AppDelegationPeer::DEL_INDEX
|
array_push($aConditions, Array (AppEventPeer::DEL_INDEX,AppDelegationPeer::DEL_INDEX
|
||||||
) );
|
));
|
||||||
$oCriteria->addJoinMC( $aConditions, Criteria::LEFT_JOIN );
|
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
|
||||||
|
|
||||||
$oCriteria->addJoin( ApplicationPeer::APP_UID, AppEventPeer::APP_UID );
|
$oCriteria->addJoin(ApplicationPeer::APP_UID, AppEventPeer::APP_UID);
|
||||||
|
|
||||||
$oCriteria->add( AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL ); //by me
|
$oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
|
||||||
$oCriteria->add( AppEventPeer::APP_EVN_STATUS, 'OPEN' );
|
$oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN');
|
||||||
$oCriteria->add( AppEventPeer::APP_EVN_ACTION_DATE, $sNow, Criteria::LESS_EQUAL );
|
$oCriteria->add(AppEventPeer::APP_EVN_ACTION_DATE, $sNow, Criteria::LESS_EQUAL);
|
||||||
|
|
||||||
$oDataset = AppEventPeer::doSelectRS( $oCriteria );
|
$oDataset = AppEventPeer::doSelectRS($oCriteria);
|
||||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
$c = 0;
|
$c = 0;
|
||||||
while ($oDataset->next()) {
|
while ($oDataset->next()) {
|
||||||
if ($cron == 1) {
|
if ($cron == 1) {
|
||||||
$arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) );
|
$arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron")));
|
||||||
$arrayCron["processcTimeStart"] = time();
|
$arrayCron["processcTimeStart"] = time();
|
||||||
@file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) );
|
@file_put_contents(PATH_DATA . "cron", serialize($arrayCron));
|
||||||
}
|
}
|
||||||
|
|
||||||
$c ++;
|
$c ++;
|
||||||
$aRow = $oDataset->getRow();
|
$aRow = $oDataset->getRow();
|
||||||
$oTrigger = new Triggers();
|
$oTrigger = new Triggers();
|
||||||
$aFields = $oCase->loadCase( $aRow['APP_UID'] );
|
$aFields = $oCase->loadCase($aRow['APP_UID']);
|
||||||
$oAppEvent = AppEventPeer::retrieveByPK( $aRow['APP_UID'], $aRow['DEL_INDEX'], $aRow['EVN_UID'] );
|
$oAppEvent = AppEventPeer::retrieveByPK($aRow['APP_UID'], $aRow['DEL_INDEX'], $aRow['EVN_UID']);
|
||||||
|
|
||||||
//g::pr($aRow); //die;
|
|
||||||
|
|
||||||
|
|
||||||
if ($debug) {
|
if ($debug) {
|
||||||
require_once 'classes/model/Application.php';
|
require_once 'classes/model/Application.php';
|
||||||
$oApp = ApplicationPeer::retrieveByPk( $aRow['APP_UID'] );
|
$oApp = ApplicationPeer::retrieveByPk($aRow['APP_UID']);
|
||||||
$oEv = EventPeer::retrieveByPk( $aRow['EVN_UID'] );
|
$oEv = EventPeer::retrieveByPk($aRow['EVN_UID']);
|
||||||
$log[] = 'Event ' . $oEv->getEvnDescription() . ' with ID ' . $aRow['EVN_UID'];
|
$log[] = 'Event ' . $oEv->getEvnDescription() . ' with ID ' . $aRow['EVN_UID'];
|
||||||
|
|
||||||
println( "\nOK+ event \"" . $oEv->getEvnDescription() . "\" with ID {} was found" );
|
println("\nOK+ event \"" . $oEv->getEvnDescription() . "\" with ID {} was found");
|
||||||
println( " - PROCESS................" . $aRow['PRO_UID'] );
|
println(" - PROCESS................" . $aRow['PRO_UID']);
|
||||||
println( " - APPLICATION............" . $aRow['APP_UID'] . " CASE #" . $oApp->getAppNumber() );
|
println(" - APPLICATION............" . $aRow['APP_UID'] . " CASE #" . $oApp->getAppNumber());
|
||||||
println( " - ACTION DATE............" . $aRow['APP_EVN_ACTION_DATE'] );
|
println(" - ACTION DATE............" . $aRow['APP_EVN_ACTION_DATE']);
|
||||||
println( " - ATTEMPTS..............." . $aRow['APP_EVN_ATTEMPTS'] );
|
println(" - ATTEMPTS..............." . $aRow['APP_EVN_ATTEMPTS']);
|
||||||
println( " - INTERVAL WITH TASKS...." . $aRow['EVN_RELATED_TO'] );
|
println(" - INTERVAL WITH TASKS...." . $aRow['EVN_RELATED_TO']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($aRow['TRI_UID'] == '') {
|
if ($aRow['TRI_UID'] == '') {
|
||||||
//a rare case when the tri_uid is not set.
|
//a rare case when the tri_uid is not set.
|
||||||
$log[] = " (!) Any trigger was set................................SKIPPED and will be CLOSED";
|
$log[] = " (!) Any trigger was set................................SKIPPED and will be CLOSED";
|
||||||
if ($debug) {
|
if ($debug) {
|
||||||
println( " (!) Any trigger was set................................SKIPPED and will be CLOSED" );
|
println(" (!) Any trigger was set................................SKIPPED and will be CLOSED");
|
||||||
}
|
}
|
||||||
$oAppEvent->setAppEvnStatus( 'CLOSE' );
|
$oAppEvent->setAppEvnStatus('CLOSE');
|
||||||
$oAppEvent->save();
|
$oAppEvent->save();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$oTrigger = TriggersPeer::retrieveByPk( $aRow['TRI_UID'] );
|
$oTrigger = TriggersPeer::retrieveByPk($aRow['TRI_UID']);
|
||||||
if (! is_object( $oTrigger )) {
|
if (! is_object($oTrigger)) {
|
||||||
//the trigger record doesn't exist..
|
//the trigger record doesn't exist..
|
||||||
$log[] = ' (!) The trigger ' . $aRow['TRI_UID'] . ' ' . $oTrigger->getTriTitle() . " doesn't exist.......SKIPPED and will be CLOSED";
|
$log[] = ' (!) The trigger ' . $aRow['TRI_UID'] . ' ' . $oTrigger->getTriTitle() . " doesn't exist.......SKIPPED and will be CLOSED";
|
||||||
if ($debug) {
|
if ($debug) {
|
||||||
println( " (!) The trigger {$aRow['TRI_UID']} {$oTrigger->getTriTitle()} doesn't exist.......SKIPPED and will be CLOSED" );
|
println(" (!) The trigger {$aRow['TRI_UID']} {$oTrigger->getTriTitle()} doesn't exist.......SKIPPED and will be CLOSED");
|
||||||
}
|
}
|
||||||
$oAppEvent->setAppEvnStatus( 'CLOSE' );
|
$oAppEvent->setAppEvnStatus('CLOSE');
|
||||||
$oAppEvent->save();
|
$oAppEvent->save();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -279,38 +276,37 @@ class AppEvent extends BaseAppEvent
|
|||||||
$oPMScript = new PMScript();
|
$oPMScript = new PMScript();
|
||||||
|
|
||||||
$task = new Task();
|
$task = new Task();
|
||||||
$taskFields = $task->load( $aRow['TAS_UID'] );
|
$taskFields = $task->load($aRow['TAS_UID']);
|
||||||
$aFields['APP_DATA']['APP_NUMBER'] = $aFields['APP_NUMBER'];
|
$aFields['APP_DATA']['APP_NUMBER'] = $aFields['APP_NUMBER'];
|
||||||
$aFields['APP_DATA']['TAS_TITLE'] = $taskFields['TAS_TITLE'];
|
$aFields['APP_DATA']['TAS_TITLE'] = $taskFields['TAS_TITLE'];
|
||||||
$aFields['APP_DATA']['DEL_TASK_DUE_DATE'] = $aRow['DEL_TASK_DUE_DATE'];
|
$aFields['APP_DATA']['DEL_TASK_DUE_DATE'] = $aRow['DEL_TASK_DUE_DATE'];
|
||||||
$oPMScript->setDataTrigger($oTrigger->toArray(\BasePeer::TYPE_FIELDNAME));
|
$oPMScript->setDataTrigger($oTrigger->toArray(\BasePeer::TYPE_FIELDNAME));
|
||||||
$oPMScript->setFields( $aFields['APP_DATA'] );
|
$oPMScript->setFields($aFields['APP_DATA']);
|
||||||
$oPMScript->setScript( $oTrigger->getTriWebbot() );
|
$oPMScript->setScript($oTrigger->getTriWebbot());
|
||||||
|
$oPMScript->setExecutedOn(PMScript::CLASSIC_PROCESS_EVENTS);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
$oAppEvent->setAppEvnLastExecutionDate( date( 'Y-m-d H:i:s' ) );
|
$oAppEvent->setAppEvnLastExecutionDate(date('Y-m-d H:i:s'));
|
||||||
|
|
||||||
if (sizeof( $_SESSION['TRIGGER_DEBUG']['ERRORS'] ) == 0) {
|
if (sizeof($_SESSION['TRIGGER_DEBUG']['ERRORS']) == 0) {
|
||||||
$log[] = ' - The trigger ' . $oTrigger->getTriTitle() . ' was executed successfully!';
|
$log[] = ' - The trigger ' . $oTrigger->getTriTitle() . ' was executed successfully!';
|
||||||
if ($debug) {
|
if ($debug) {
|
||||||
println( " - The trigger '{$oTrigger->getTriTitle()}' was executed successfully!" );
|
println(" - The trigger '{$oTrigger->getTriTitle()}' was executed successfully!");
|
||||||
//g::pr($aFields);
|
|
||||||
}
|
}
|
||||||
$aFields['APP_DATA'] = $oPMScript->aFields;
|
$aFields['APP_DATA'] = $oPMScript->aFields;
|
||||||
$oCase->updateCase( $aRow['APP_UID'], $aFields );
|
$oCase->updateCase($aRow['APP_UID'], $aFields);
|
||||||
$oAppEvent->setAppEvnStatus( 'CLOSE' );
|
$oAppEvent->setAppEvnStatus('CLOSE');
|
||||||
} else {
|
} else {
|
||||||
if ($debug) {
|
if ($debug) {
|
||||||
$log[] = ' - The trigger ' . $aRow['TRI_UID'] . ' throw some errors!';
|
$log[] = ' - The trigger ' . $aRow['TRI_UID'] . ' throw some errors!';
|
||||||
println( " - The trigger {$aRow['TRI_UID']} throw some errors!" );
|
println(" - The trigger {$aRow['TRI_UID']} throw some errors!");
|
||||||
print_r( $_SESSION['TRIGGER_DEBUG']['ERRORS'] );
|
print_r($_SESSION['TRIGGER_DEBUG']['ERRORS']);
|
||||||
$_SESSION['TRIGGER_DEBUG']['ERRORS'] = array();
|
$_SESSION['TRIGGER_DEBUG']['ERRORS'] = array();
|
||||||
}
|
}
|
||||||
if ($oAppEvent->getAppEvnAttempts() > 0) {
|
if ($oAppEvent->getAppEvnAttempts() > 0) {
|
||||||
$oAppEvent->setAppEvnAttempts( $oAppEvent->getAppEvnAttempts() - 1 );
|
$oAppEvent->setAppEvnAttempts($oAppEvent->getAppEvnAttempts() - 1);
|
||||||
} else {
|
} else {
|
||||||
$oAppEvent->setAppEvnStatus( 'CLOSE' );
|
$oAppEvent->setAppEvnStatus('CLOSE');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$oAppEvent->save();
|
$oAppEvent->save();
|
||||||
@@ -320,7 +316,7 @@ class AppEvent extends BaseAppEvent
|
|||||||
$log[] = ' Error execute event : ' . $oError->getMessage();
|
$log[] = ' Error execute event : ' . $oError->getMessage();
|
||||||
$token = strtotime("now");
|
$token = strtotime("now");
|
||||||
PMException::registerErrorLog($oError, $token);
|
PMException::registerErrorLog($oError, $token);
|
||||||
G::outRes( G::LoadTranslation("ID_EXCEPTION_LOG_INTERFAZ", array($token)) );
|
G::outRes(G::LoadTranslation("ID_EXCEPTION_LOG_INTERFAZ", array($token)));
|
||||||
die;
|
die;
|
||||||
return $oError->getMessage();
|
return $oError->getMessage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -638,6 +638,7 @@ class ScriptTask
|
|||||||
$oPMScript->setDataTrigger($trigger->toArray(BasePeer::TYPE_FIELDNAME));
|
$oPMScript->setDataTrigger($trigger->toArray(BasePeer::TYPE_FIELDNAME));
|
||||||
$oPMScript->setFields($arrayApplicationData["APP_DATA"]);
|
$oPMScript->setFields($arrayApplicationData["APP_DATA"]);
|
||||||
$oPMScript->setScript($trigger->getTriWebbot());
|
$oPMScript->setScript($trigger->getTriWebbot());
|
||||||
|
$oPMScript->setExecutedOn(PMScript::SCRIPT_TASK);
|
||||||
$oPMScript->execute();
|
$oPMScript->execute();
|
||||||
|
|
||||||
if (isset($oPMScript->aFields["__ERROR__"])) {
|
if (isset($oPMScript->aFields["__ERROR__"])) {
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ foreach ($rs as $key => $aRow) {
|
|||||||
$bAccessStep = false;
|
$bAccessStep = false;
|
||||||
if (trim($aRow->getStepCondition()) != '') {
|
if (trim($aRow->getStepCondition()) != '') {
|
||||||
$oPMScript->setScript($aRow->getStepCondition());
|
$oPMScript->setScript($aRow->getStepCondition());
|
||||||
|
$oPMScript->setExecutedOn(PMScript::CONDITION);
|
||||||
$bAccessStep = $oPMScript->evaluate();
|
$bAccessStep = $oPMScript->evaluate();
|
||||||
} else {
|
} else {
|
||||||
$bAccessStep = true;
|
$bAccessStep = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user