From f0c75ce4a7de1894a9bbed3ffb96e3faaa807b72 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 15 Sep 2015 10:40:56 -0400 Subject: [PATCH] PM-3374 "REST endpoint PUT cases/{app_uid}/execute-trigger/..." SOLVED > Code Issue: REST: Endpoint PUT /api/1.0/{workspace}/cases/{app_uid}/execute-trigger/{trig_uid} allways return 200 > Solution: Se agrega validacion en el siguiente Endpoint cuando se utiliza el servicio REST, el mismo mostrara un mensaje cuando se ejecuta el trigger con status 200 PM-3374 "REST endpoint PUT cases/{app_uid}/execute-trigger/..." SOLVED --- workflow/engine/classes/class.wsBase.php | 4 ++++ workflow/engine/src/ProcessMaker/BusinessModel/Cases.php | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index 4c082d685..0875ffbbd 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -2688,6 +2688,10 @@ class wsBase $oPMScript->setScript( $row['TRI_WEBBOT'] ); $oPMScript->execute(); + if (isset($oPMScript->aFields["__ERROR__"]) && trim($oPMScript->aFields["__ERROR__"]) != "" && $oPMScript->aFields["__ERROR__"] != "none") { + throw new Exception($oPMScript->aFields["__ERROR__"]); + } + //Save data - Start $appFields['APP_DATA'] = $oPMScript->aFields; unset($appFields['APP_STATUS']); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 2b594d325..2b370490d 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -932,7 +932,11 @@ class Cases } $case = new \wsBase(); - $case->executeTrigger( $usr_uid, $app_uid, $tri_uid, $del_index ); + $result = $case->executeTrigger($usr_uid, $app_uid, $tri_uid, $del_index); + + if ($result->status_code != 0) { + throw new \Exception($result->message); + } } /** @@ -1600,7 +1604,7 @@ class Cases $_SESSION['APPLICATION'] = $app_uid; $_SESSION['USER_LOGGED'] = $usr_uid; - + $case = new \Cases(); $fields = $case->loadCase($app_uid); $_POST['form'] = $app_data;