HOR-1501 Crear el método recursivo para encontrar la siguiente tarea con usuarios asignados después de un intermediase event
up observations fix in type function return source_uid
This commit is contained in:
@@ -50,6 +50,28 @@ class Derivation
|
|||||||
var $case;
|
var $case;
|
||||||
protected $flagControl;
|
protected $flagControl;
|
||||||
protected $flagControlMulInstance;
|
protected $flagControlMulInstance;
|
||||||
|
private $regexpTaskTypeToInclude;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->setRegexpTaskTypeToInclude("GATEWAYTOGATEWAY|END-MESSAGE-EVENT|END-EMAIL-EVENT");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function getRegexpTaskTypeToInclude()
|
||||||
|
{
|
||||||
|
return $this->regexpTaskTypeToInclude;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param mixed $regexpTaskTypeToInclude
|
||||||
|
*/
|
||||||
|
public function setRegexpTaskTypeToInclude($regexpTaskTypeToInclude)
|
||||||
|
{
|
||||||
|
$this->regexpTaskTypeToInclude = $regexpTaskTypeToInclude;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* prepareInformationTask
|
* prepareInformationTask
|
||||||
@@ -240,15 +262,15 @@ class Derivation
|
|||||||
foreach ($arrayNextTaskBackup as $value) {
|
foreach ($arrayNextTaskBackup as $value) {
|
||||||
$arrayNextTaskData = $value;
|
$arrayNextTaskData = $value;
|
||||||
|
|
||||||
$regexpTaskTypeToInclude = "GATEWAYTOGATEWAY|END-MESSAGE-EVENT|END-EMAIL-EVENT";
|
|
||||||
|
|
||||||
if ($arrayNextTaskData["NEXT_TASK"]["TAS_UID"] != "-1" &&
|
if ($arrayNextTaskData["NEXT_TASK"]["TAS_UID"] != "-1" &&
|
||||||
preg_match("/^(?:" . $regexpTaskTypeToInclude . ")$/", $arrayNextTaskData["NEXT_TASK"]["TAS_TYPE"])
|
preg_match("/^(?:" . $this->regexpTaskTypeToInclude . ")$/", $arrayNextTaskData["NEXT_TASK"]["TAS_TYPE"])
|
||||||
) {
|
) {
|
||||||
$arrayAux = $this->prepareInformation($arrayData, $arrayNextTaskData["NEXT_TASK"]["TAS_UID"]);
|
$arrayAux = $this->prepareInformation($arrayData, $arrayNextTaskData["NEXT_TASK"]["TAS_UID"]);
|
||||||
|
|
||||||
foreach ($arrayAux as $value2) {
|
foreach ($arrayAux as $value2) {
|
||||||
$arrayNextTask[++$i] = $value2;
|
$key = ++$i;
|
||||||
|
$arrayNextTask[$key] = $value2;
|
||||||
|
$arrayNextTask[$key]['SOURCE_UID'] = $value['ROU_NEXT_TASK'];
|
||||||
foreach($aSecJoin as $rsj){
|
foreach($aSecJoin as $rsj){
|
||||||
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TASK"] = $rsj["ROU_PREVIOUS_TASK"];
|
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TASK"] = $rsj["ROU_PREVIOUS_TASK"];
|
||||||
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TYPE"] = "SEC-JOIN";
|
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TYPE"] = "SEC-JOIN";
|
||||||
@@ -262,7 +284,7 @@ class Derivation
|
|||||||
) {
|
) {
|
||||||
$arrayNextTaskData["NEXT_TASK"]["TAS_UID"] = $arrayNextTaskData["TAS_UID"] . "/" . $arrayNextTaskData["NEXT_TASK"]["TAS_UID"];
|
$arrayNextTaskData["NEXT_TASK"]["TAS_UID"] = $arrayNextTaskData["TAS_UID"] . "/" . $arrayNextTaskData["NEXT_TASK"]["TAS_UID"];
|
||||||
}
|
}
|
||||||
|
$arrayNextTaskData['SOURCE_UID'] = $value['ROU_NEXT_TASK'];
|
||||||
$arrayNextTask[++$i] = $arrayNextTaskData;
|
$arrayNextTask[++$i] = $arrayNextTaskData;
|
||||||
foreach($aSecJoin as $rsj){
|
foreach($aSecJoin as $rsj){
|
||||||
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TASK"] = $rsj["ROU_PREVIOUS_TASK"];
|
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TASK"] = $rsj["ROU_PREVIOUS_TASK"];
|
||||||
|
|||||||
@@ -368,7 +368,7 @@ class PMScript
|
|||||||
/**
|
/**
|
||||||
* Evaluate the current script
|
* Evaluate the current script
|
||||||
*
|
*
|
||||||
* @return void
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function evaluate ()
|
public function evaluate ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -798,8 +798,13 @@ try {
|
|||||||
$aFields['TAS_TYPE_DAY'] = G::LoadTranslation( 'ID_COUNT_DAYS' );
|
$aFields['TAS_TYPE_DAY'] = G::LoadTranslation( 'ID_COUNT_DAYS' );
|
||||||
$aFields['TAS_CALENDAR'] = G::LoadTranslation( 'ID_CALENDAR' );
|
$aFields['TAS_CALENDAR'] = G::LoadTranslation( 'ID_CALENDAR' );
|
||||||
|
|
||||||
$aFields['TASK'] = $oDerivation->prepareInformation( array ('USER_UID' => $_SESSION['USER_LOGGED'],'APP_UID' => $_SESSION['APPLICATION'],'DEL_INDEX' => $_SESSION['INDEX']
|
$oRoute = new \ProcessMaker\Core\RoutingScreen();
|
||||||
) );
|
$arrayData = array(
|
||||||
|
'USER_UID' => $_SESSION['USER_LOGGED'],
|
||||||
|
'APP_UID' => $_SESSION['APPLICATION'],
|
||||||
|
'DEL_INDEX' => $_SESSION['INDEX']
|
||||||
|
);
|
||||||
|
$aFields['TASK'] = $oRoute->prepareInformation($arrayData);
|
||||||
|
|
||||||
if (empty( $aFields['TASK'] )) {
|
if (empty( $aFields['TASK'] )) {
|
||||||
throw (new Exception( G::LoadTranslation( 'ID_NO_DERIVATION_RULE' ) ));
|
throw (new Exception( G::LoadTranslation( 'ID_NO_DERIVATION_RULE' ) ));
|
||||||
|
|||||||
14
workflow/engine/src/ProcessMaker/Core/RoutingScreen.php
Normal file
14
workflow/engine/src/ProcessMaker/Core/RoutingScreen.php
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ProcessMaker\Core;
|
||||||
|
|
||||||
|
|
||||||
|
class RoutingScreen extends \Derivation
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->setRegexpTaskTypeToInclude("GATEWAYTOGATEWAY|END-MESSAGE-EVENT|END-EMAIL-EVENT|SCRIPT-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user