From 0620f7f1e8d163cc4239094b1786416764ef31ce Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Tue, 6 Jan 2015 15:32:05 -0400 Subject: [PATCH 01/13] PMFormDesigner --- Rakefile | 3 +-- .../engine/js/cases/core/cases_Step_Pmdynaform.js | 15 --------------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/Rakefile b/Rakefile index 40f0a5ebb..920ab3a8f 100644 --- a/Rakefile +++ b/Rakefile @@ -230,8 +230,7 @@ def buildMafe(homeDir, targetDir, mode) "#{homeDir}/build/js/designer.js" => "#{mafeDir}/designer.min.js", "#{homeDir}/build/js/mafe.js" => "#{mafeDir}/mafe.min.js", "#{homeDir}/build/css/mafe.css" => "#{mafeDir}/mafe.min.css", - "#{homeDir}/img/*.*" => "#{imgTargetDir}", - "#{homeDir}/srcForm/img/*.*" => "#{imgTargetDir}" + "#{homeDir}/img/*.*" => "#{imgTargetDir}" }) puts "\nCopying lib files into: #{jsTargetDir}".bold diff --git a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js index 3ecda0e5e..c00f8e6aa 100644 --- a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js +++ b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js @@ -46,21 +46,6 @@ $(window).load(function () { var form = document.getElementsByTagName("form")[0]; - var el = form.elements; - var dt = data.items[0].items; - for (var i = 0; i < dt.length; i++) { - var dr = dt[i]; - for (var j = 0; j < dr.length; j++) { - if (dr[j].name) { - for (var k = 0; k < el.length; k++) { - if (el[k].name === dr[j].name) { - el[k].name = "form[" + dr[j].name + "]"; - } - } - } - } - } - var type = document.createElement("input"); type.type = "hidden"; type.name = "TYPE"; From d0a3d36dc30f4a9c288a4e8171a231a593a40b3d Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Tue, 6 Jan 2015 17:19:59 -0400 Subject: [PATCH 02/13] "Se adiciona end points. GET data with value y POST data value" --- .../src/ProcessMaker/BusinessModel/Cases.php | 126 +++++++++++++++++- .../src/ProcessMaker/Services/Api/Cases.php | 58 ++++++++ 2 files changed, 183 insertions(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index b36cc3cf9..14b9aa188 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1905,5 +1905,129 @@ class Cases throw $e; } } -} + protected static $excludeFields = array( + "dataFields" => array( + "SYS_LANG", "SYS_SKIN", "SYS_SYS", "APPLICATION", "PROCESS", + "TASK", "INDEX", "USER_LOGGED", "USR_USERNAME", "PIN"), + "dataFieldsPost" => array( + "APP_PARENT", "APP_STATUS", "PRO_UID", "APP_PROC_STATUS", "APP_PROC_CODE", + "APP_PARALLEL", "APP_INIT_USER", "APP_CUR_USER", "APP_CREATE_DATE", "APP_INIT_DATE", + "APP_FINISH_DATE", "APP_UPDATE_DATE", "APP_DATA", "APP_PIN", "APP_DESCRIPTION", + "STATUS", "TITLE", "DESCRIPTION", "CREATOR", "CREATE_DATE", "UPDATE_DATE") + ); + + public static function filterArrayKeys($data, $filter = array()) + { + $result = array(); + + foreach ($data as $key => $value) { + if (! in_array($key, $filter)) { + $result[$key] = $value; + } + } + + return $result; + } + + /** + * Get data + * + * @param string $applicationUid Unique id of Case + * + * return array Return an array with Data + */ + public function getCaseData($applicationUid) + { + try { + $aFieldsAssoc = array(); + + //Verify data + Validator::isString($applicationUid, '$app_uid'); + Validator::appUid($applicationUid, '$app_uid'); + + //Set variables + $oApp = new \Application(); + $aFields = $oApp->Load($applicationUid); + + $appData = unserialize($aFields['APP_DATA']); + + $aFields['APP_DATA'] = \G::array_merges(\G::getSystemConstants(), $appData); + $aFields = $aFields['APP_DATA']; + + $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]); + + foreach($aFields as $key => $value) { + $aFieldsAssoc[] = array ('name' => $key, 'value' => $value); + } + + //Return + return $aFieldsAssoc; + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Get data non assoc + * + * @param string $applicationUid Unique id of Case + * + * return array Return an array with all Data + */ + public function getCaseDataNonAssoc($applicationUid) + { + try { + //Verify data + Validator::isString($applicationUid, '$app_uid'); + Validator::appUid($applicationUid, '$app_uid'); + + //Set variables + $oApp = new \Application(); + $aFields = $oApp->Load($applicationUid); + + $appData = unserialize($aFields['APP_DATA']); + + $aFields['APP_DATA'] = \G::array_merges(\G::getSystemConstants(), $appData); + $aFields = $aFields['APP_DATA']; + + $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]); + + //Return + return $aFields; + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Post data + * + * @param string $applicationUid Unique id of Case + * @param array $data + * + * return array Return an array with all Data + */ + public function addCaseData($applicationUid, $data) + { + try { + Validator::isString($applicationUid, '$app_uid'); + Validator::appUid($applicationUid, '$app_uid'); + Validator::isArray($data, '$app_data'); + + $case = new \Cases(); + $aFields = $case->loadCase($applicationUid); + + $data['APP_DATA'] = array_merge($aFields['APP_DATA'], $data); + $case->updateCase($applicationUid, $data); + + $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFieldsPost"]); + $aFields = array_change_key_case($aFields, CASE_LOWER); + //Return + return $aFields; + + } catch (\Exception $e) { + throw $e; + } + } +} diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php index e27f6017a..fc62b89b2 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php @@ -994,5 +994,63 @@ class Cases extends Api throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } + + /** + * @url GET /:app_uid/data/non-assoc + * + * @param string $app_uid {@min 32}{@max 32} + */ + public function doGetCaseDataNonAssoc($app_uid) + { + try { + $case = new \ProcessMaker\BusinessModel\Cases(); + $case->setFormatFieldNameInUppercase(false); + + $response = $case->getCaseDataNonAssoc($app_uid); + + return $response; + } catch (\Exception $e) { + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + } + + /** + * @url GET /:app_uid/data + * + * @param string $app_uid {@min 32}{@max 32} + */ + public function doGetCaseData($app_uid) + { + try { + $case = new \ProcessMaker\BusinessModel\Cases(); + $case->setFormatFieldNameInUppercase(false); + + $response = $case->getCaseData($app_uid); + + return $response; + } catch (\Exception $e) { + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + } + + /** + * @url POST /:app_uid/data + * + * @param string $app_uid {@min 32}{@max 32} + * @param array $variables {@from body} + * + */ + public function doPostCaseData($app_uid, $variables = null) + { + try { + $cases = new \ProcessMaker\BusinessModel\Cases(); + + $response = $cases->addCaseData($app_uid, $variables); + + return $response; + } catch (\Exception $e) { + throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); + } + } } From 7378bc23fb44d5736be318a40dbf03af426cb8cf Mon Sep 17 00:00:00 2001 From: norahmollo Date: Wed, 7 Jan 2015 16:47:21 -0400 Subject: [PATCH 03/13] PM-1123 Marks Added for Community version Omitting gulliver options --- gulliver/bin/tasks/pakeGulliver.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gulliver/bin/tasks/pakeGulliver.php b/gulliver/bin/tasks/pakeGulliver.php index ce6721b17..4160cc929 100755 --- a/gulliver/bin/tasks/pakeGulliver.php +++ b/gulliver/bin/tasks/pakeGulliver.php @@ -69,8 +69,10 @@ pake_task('workspace-backup', 'project_exists'); pake_desc("restore a previously backed-up workspace\n args: [-o|--overwrite] "); pake_task('workspace-restore', 'project_exists'); +/*----------------------------------********---------------------------------*/ pake_desc("check standard code\n args: "); pake_task('check-standard-code', 'project_exists' ); +/*----------------------------------********---------------------------------*/ /** * Function run_version From 7e2cc9f40890be199823e4359fe3e67f04ee3e20 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Wed, 7 Jan 2015 09:17:47 -0400 Subject: [PATCH 04/13] "Se adiciona end points. GET data with value y POST data value" --- .../src/ProcessMaker/BusinessModel/Cases.php | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 14b9aa188..f34586f31 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1947,12 +1947,9 @@ class Cases Validator::appUid($applicationUid, '$app_uid'); //Set variables - $oApp = new \Application(); - $aFields = $oApp->Load($applicationUid); + $case = new \Cases(); + $aFields = $case->loadCase($applicationUid); - $appData = unserialize($aFields['APP_DATA']); - - $aFields['APP_DATA'] = \G::array_merges(\G::getSystemConstants(), $appData); $aFields = $aFields['APP_DATA']; $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]); @@ -1983,12 +1980,9 @@ class Cases Validator::appUid($applicationUid, '$app_uid'); //Set variables - $oApp = new \Application(); - $aFields = $oApp->Load($applicationUid); + $case = new \Cases(); + $aFields = $case->loadCase($applicationUid); - $appData = unserialize($aFields['APP_DATA']); - - $aFields['APP_DATA'] = \G::array_merges(\G::getSystemConstants(), $appData); $aFields = $aFields['APP_DATA']; $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]); From 42668f52aebbad78654c68d7a51f60d37820a47f Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Thu, 8 Jan 2015 11:54:19 -0400 Subject: [PATCH 05/13] "Se modifica la funcion doPutCaseVariables para el envio opcional de id del dynaform para validar datos" --- .../src/ProcessMaker/BusinessModel/Cases.php | 135 ++---------------- .../src/ProcessMaker/Services/Api/Cases.php | 63 +------- 2 files changed, 17 insertions(+), 181 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index f34586f31..6d39a5039 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1424,11 +1424,12 @@ class Cases * @access public * @param string $app_uid, Uid for case * @param array $app_data, Data for case variables + * @param string $dyn_uid, Uid for dynaform * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia */ - public function setCaseVariables($app_uid, $app_data) + public function setCaseVariables($app_uid, $app_data, $dyn_uid = null) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); @@ -1436,7 +1437,18 @@ class Cases $case = new \Cases(); $fields = $case->loadCase($app_uid); - $data['APP_DATA'] = array_merge($fields['APP_DATA'], $app_data); + $_POST['form'] = $app_data; + + if ($dyn_uid) { + $oDynaform = \DynaformPeer::retrieveByPK($dyn_uid); + + if ($oDynaform->getDynVersion() < 2) { + $oForm = new \Form ( $fields['PRO_UID'] . "/" . $dyn_uid, PATH_DYNAFORM ); + $oForm->validatePost(); + } + } + + $data['APP_DATA'] = array_merge($fields['APP_DATA'], $_POST['form']); $case->updateCase($app_uid, $data); } @@ -1905,123 +1917,4 @@ class Cases throw $e; } } - - protected static $excludeFields = array( - "dataFields" => array( - "SYS_LANG", "SYS_SKIN", "SYS_SYS", "APPLICATION", "PROCESS", - "TASK", "INDEX", "USER_LOGGED", "USR_USERNAME", "PIN"), - "dataFieldsPost" => array( - "APP_PARENT", "APP_STATUS", "PRO_UID", "APP_PROC_STATUS", "APP_PROC_CODE", - "APP_PARALLEL", "APP_INIT_USER", "APP_CUR_USER", "APP_CREATE_DATE", "APP_INIT_DATE", - "APP_FINISH_DATE", "APP_UPDATE_DATE", "APP_DATA", "APP_PIN", "APP_DESCRIPTION", - "STATUS", "TITLE", "DESCRIPTION", "CREATOR", "CREATE_DATE", "UPDATE_DATE") - ); - - public static function filterArrayKeys($data, $filter = array()) - { - $result = array(); - - foreach ($data as $key => $value) { - if (! in_array($key, $filter)) { - $result[$key] = $value; - } - } - - return $result; - } - - /** - * Get data - * - * @param string $applicationUid Unique id of Case - * - * return array Return an array with Data - */ - public function getCaseData($applicationUid) - { - try { - $aFieldsAssoc = array(); - - //Verify data - Validator::isString($applicationUid, '$app_uid'); - Validator::appUid($applicationUid, '$app_uid'); - - //Set variables - $case = new \Cases(); - $aFields = $case->loadCase($applicationUid); - - $aFields = $aFields['APP_DATA']; - - $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]); - - foreach($aFields as $key => $value) { - $aFieldsAssoc[] = array ('name' => $key, 'value' => $value); - } - - //Return - return $aFieldsAssoc; - } catch (\Exception $e) { - throw $e; - } - } - - /** - * Get data non assoc - * - * @param string $applicationUid Unique id of Case - * - * return array Return an array with all Data - */ - public function getCaseDataNonAssoc($applicationUid) - { - try { - //Verify data - Validator::isString($applicationUid, '$app_uid'); - Validator::appUid($applicationUid, '$app_uid'); - - //Set variables - $case = new \Cases(); - $aFields = $case->loadCase($applicationUid); - - $aFields = $aFields['APP_DATA']; - - $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]); - - //Return - return $aFields; - } catch (\Exception $e) { - throw $e; - } - } - - /** - * Post data - * - * @param string $applicationUid Unique id of Case - * @param array $data - * - * return array Return an array with all Data - */ - public function addCaseData($applicationUid, $data) - { - try { - Validator::isString($applicationUid, '$app_uid'); - Validator::appUid($applicationUid, '$app_uid'); - Validator::isArray($data, '$app_data'); - - $case = new \Cases(); - $aFields = $case->loadCase($applicationUid); - - $data['APP_DATA'] = array_merge($aFields['APP_DATA'], $data); - $case->updateCase($applicationUid, $data); - - $aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFieldsPost"]); - $aFields = array_change_key_case($aFields, CASE_LOWER); - //Return - return $aFields; - - } catch (\Exception $e) { - throw $e; - } - } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php index fc62b89b2..3cc9ba728 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php @@ -838,17 +838,18 @@ class Cases extends Api * * @param string $app_uid {@min 1}{@max 32} * @param array $request_data + * @param string $dyn_uid {@from path} * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia * * @url PUT /:app_uid/variable */ - public function doPutCaseVariables($app_uid, $request_data) + public function doPutCaseVariables($app_uid, $request_data, $dyn_uid = '') { try { $cases = new \ProcessMaker\BusinessModel\Cases(); - $cases->setCaseVariables($app_uid, $request_data); + $cases->setCaseVariables($app_uid, $request_data, $dyn_uid); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } @@ -994,63 +995,5 @@ class Cases extends Api throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } - - /** - * @url GET /:app_uid/data/non-assoc - * - * @param string $app_uid {@min 32}{@max 32} - */ - public function doGetCaseDataNonAssoc($app_uid) - { - try { - $case = new \ProcessMaker\BusinessModel\Cases(); - $case->setFormatFieldNameInUppercase(false); - - $response = $case->getCaseDataNonAssoc($app_uid); - - return $response; - } catch (\Exception $e) { - throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); - } - } - - /** - * @url GET /:app_uid/data - * - * @param string $app_uid {@min 32}{@max 32} - */ - public function doGetCaseData($app_uid) - { - try { - $case = new \ProcessMaker\BusinessModel\Cases(); - $case->setFormatFieldNameInUppercase(false); - - $response = $case->getCaseData($app_uid); - - return $response; - } catch (\Exception $e) { - throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); - } - } - - /** - * @url POST /:app_uid/data - * - * @param string $app_uid {@min 32}{@max 32} - * @param array $variables {@from body} - * - */ - public function doPostCaseData($app_uid, $variables = null) - { - try { - $cases = new \ProcessMaker\BusinessModel\Cases(); - - $response = $cases->addCaseData($app_uid, $variables); - - return $response; - } catch (\Exception $e) { - throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); - } - } } From 6bad7433086be0c88f079617a2c7b7d1acd5b49c Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 9 Jan 2015 12:05:10 -0400 Subject: [PATCH 06/13] PM-1156 "Change text: Table Name (Auto Prefix "PMT")-report table" SOLVED --- workflow/engine/templates/pmTables/editReport.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/templates/pmTables/editReport.js b/workflow/engine/templates/pmTables/editReport.js index 44b1f225f..fc88597d1 100755 --- a/workflow/engine/templates/pmTables/editReport.js +++ b/workflow/engine/templates/pmTables/editReport.js @@ -967,7 +967,7 @@ function validateFieldSizeAutoincrement(valueType, defaultValue) { items.push({ id: 'REP_TAB_NAME', - fieldLabel: _("ID_TABLE_NAME") + ' ('+_("ID_AUTO_PREFIX") + ' "PMT")', + fieldLabel: _("ID_TABLE_NAME") + ' ('+_("ID_AUTO_PREFIX") + ' "PMT_")', xtype:'textfield', emptyText: _("ID_SET_A_TABLE_NAME"), width: 250, From e5a2bd3dd0d72816883baed38fdeeec03379c2b5 Mon Sep 17 00:00:00 2001 From: jennylee Date: Fri, 9 Jan 2015 12:26:26 -0400 Subject: [PATCH 07/13] PM-1175 Event Message no funciona. Se comenta el boton de la funcionalidad Event Message. --- workflow/engine/templates/designer/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/templates/designer/index.html b/workflow/engine/templates/designer/index.html index 1bb60caac..c245247f9 100644 --- a/workflow/engine/templates/designer/index.html +++ b/workflow/engine/templates/designer/index.html @@ -132,10 +132,10 @@ -
  • +
  • From 000a010ae86ec058e019b476cdc27b20360c680a Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Thu, 8 Jan 2015 15:46:13 -0400 Subject: [PATCH 08/13] PM-1165 "Se modifica funcion doPutCaseVariables para el envio opcional de id del dynaform para validar datos. Se agrega funcion doPutExecuteTriggers, para ejecucion de triggers" --- .../src/ProcessMaker/BusinessModel/Cases.php | 34 ++++++++++++++++++- .../src/ProcessMaker/Services/Api/Cases.php | 20 +++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 6d39a5039..8c113377e 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1439,7 +1439,7 @@ class Cases $fields = $case->loadCase($app_uid); $_POST['form'] = $app_data; - if ($dyn_uid) { + if (!is_null($dyn_uid)) { $oDynaform = \DynaformPeer::retrieveByPK($dyn_uid); if ($oDynaform->getDynVersion() < 2) { @@ -1917,4 +1917,36 @@ class Cases throw $e; } } + + /** + * Put execute triggers + * + * @access public + * @param string $app_uid , Uid for case + * + * @copyright Colosa - Bolivia + */ + public function putExecuteTriggers($app_uid, $del_index = false) + { + Validator::isString($app_uid, '$app_uid'); + Validator::appUid($app_uid, '$app_uid'); + + if ($del_index === false) { + $del_index = \AppDelegation::getCurrentIndex($app_uid); + } + Validator::isInteger($del_index, '$del_index'); + + $oCase = new \Cases(); + $aField = $oCase->loadCase($app_uid, $del_index); + $tas_uid = $aField["TAS_UID"]; + + $task = new \Tasks(); + $arrayStep = $task->getStepsOfTask($tas_uid); + + foreach ($arrayStep as $step) { + $arrayField = $oCase->loadCase($app_uid); + $arrayField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $step["STEP_TYPE_OBJ"], $step["STEP_UID_OBJ"], "AFTER", $arrayField["APP_DATA"]); + $arrayField = $oCase->updateCase($app_uid, $arrayField); + } + } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php index 3cc9ba728..c9fa3d993 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php @@ -995,5 +995,25 @@ class Cases extends Api throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } + + /** + * Execute triggers + * + * @param string $app_uid {@min 1}{@max 32} + * @param string $del_index {@from body} + * + * @copyright Colosa - Bolivia + * + * @url PUT /:app_uid/execute-triggers + */ + public function doPutExecuteTriggers($app_uid, $del_index = false) + { + try { + $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases->putExecuteTriggers($app_uid, $del_index); + } catch (\Exception $e) { + throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); + } + } } From 6217efe4c020a3328ff4cb8a7f1302ca52642f8c Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 9 Jan 2015 17:07:49 -0400 Subject: [PATCH 09/13] Fix Notice: Undefined variable: sqlConditionLike.En Process variables --- workflow/engine/src/ProcessMaker/BusinessModel/Variable.php | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php index d253dd5ef..f73506687 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php @@ -610,6 +610,7 @@ class Variable $variableSql = ""; $sqlLimit = ""; $variableSqlLimit = ""; + $sqlConditionLike = ""; $criteria = new \Criteria("workflow"); From e9d274b7d7209974d8ce4bbc91a0122955ae179b Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 9 Jan 2015 11:48:36 -0400 Subject: [PATCH 10/13] PM-1165 "Se modifica funcion doPutCaseVariables, se envia dynaform id. Se agrega funcion doPutExecuteTriggers, para ejecucion de triggers" --- .../src/ProcessMaker/BusinessModel/Cases.php | 14 +++++++------- .../engine/src/ProcessMaker/Services/Api/Cases.php | 6 ++++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 8c113377e..30f3250e4 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1923,10 +1923,13 @@ class Cases * * @access public * @param string $app_uid , Uid for case + * @param bool|string $del_index , Index for case + * @param string $obj_type , Index for case + * @param string $obj_uid , Index for case * * @copyright Colosa - Bolivia */ - public function putExecuteTriggers($app_uid, $del_index = false) + public function putExecuteTriggers($app_uid, $del_index = false, $obj_type, $obj_uid) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); @@ -1942,11 +1945,8 @@ class Cases $task = new \Tasks(); $arrayStep = $task->getStepsOfTask($tas_uid); - - foreach ($arrayStep as $step) { - $arrayField = $oCase->loadCase($app_uid); - $arrayField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $step["STEP_TYPE_OBJ"], $step["STEP_UID_OBJ"], "AFTER", $arrayField["APP_DATA"]); - $arrayField = $oCase->updateCase($app_uid, $arrayField); - } + $arrayField = $oCase->loadCase($app_uid); + $aField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $obj_type, $obj_uid, "AFTER", $aField["APP_DATA"]); + $aField = $oCase->updateCase($app_uid, $aField); } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php index c9fa3d993..5e1f44720 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php @@ -1001,16 +1001,18 @@ class Cases extends Api * * @param string $app_uid {@min 1}{@max 32} * @param string $del_index {@from body} + * @param string $obj_type {@from body} + * @param string $obj_uid {@from body} * * @copyright Colosa - Bolivia * * @url PUT /:app_uid/execute-triggers */ - public function doPutExecuteTriggers($app_uid, $del_index = false) + public function doPutExecuteTriggers($app_uid, $del_index = false, $obj_type, $obj_uid) { try { $cases = new \ProcessMaker\BusinessModel\Cases(); - $cases->putExecuteTriggers($app_uid, $del_index); + $cases->putExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } From bf99195495cb5dcdd8d4cbdc0a97c1a3e6f27a46 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 9 Jan 2015 15:28:20 -0400 Subject: [PATCH 11/13] PM-1165 "Se modifica funcion doPutCaseVariables, se envia dynaform id. Se agrega funcion doPutExecuteTriggers, para ejecucion de triggers" --- workflow/engine/src/ProcessMaker/BusinessModel/Cases.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 30f3250e4..701c4a397 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1929,14 +1929,10 @@ class Cases * * @copyright Colosa - Bolivia */ - public function putExecuteTriggers($app_uid, $del_index = false, $obj_type, $obj_uid) + public function putExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); - - if ($del_index === false) { - $del_index = \AppDelegation::getCurrentIndex($app_uid); - } Validator::isInteger($del_index, '$del_index'); $oCase = new \Cases(); @@ -1945,7 +1941,6 @@ class Cases $task = new \Tasks(); $arrayStep = $task->getStepsOfTask($tas_uid); - $arrayField = $oCase->loadCase($app_uid); $aField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $obj_type, $obj_uid, "AFTER", $aField["APP_DATA"]); $aField = $oCase->updateCase($app_uid, $aField); } From 0735d3ef339167f20bcffe2319401341e029575b Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 9 Jan 2015 15:33:23 -0400 Subject: [PATCH 12/13] PM-1165 "Se modifica funcion doPutCaseVariables, se envia dynaform id. Se agrega funcion doPutExecuteTriggers, para ejecucion de triggers" --- workflow/engine/src/ProcessMaker/BusinessModel/Cases.php | 1 - 1 file changed, 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 701c4a397..67cdf1455 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1940,7 +1940,6 @@ class Cases $tas_uid = $aField["TAS_UID"]; $task = new \Tasks(); - $arrayStep = $task->getStepsOfTask($tas_uid); $aField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $obj_type, $obj_uid, "AFTER", $aField["APP_DATA"]); $aField = $oCase->updateCase($app_uid, $aField); } From 7807f3da17690d8dfb3c11296fc4118b8cd5cf4c Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 9 Jan 2015 16:31:28 -0400 Subject: [PATCH 13/13] PM-1165 "Se modifica funcion doPutCaseVariables, se envia dynaform id. Se agrega funcion doPutExecuteTriggers, para ejecucion de triggers" --- workflow/engine/src/ProcessMaker/Services/Api/Cases.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php index 5e1f44720..04f06b767 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php @@ -1008,7 +1008,7 @@ class Cases extends Api * * @url PUT /:app_uid/execute-triggers */ - public function doPutExecuteTriggers($app_uid, $del_index = false, $obj_type, $obj_uid) + public function doPutExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid) { try { $cases = new \ProcessMaker\BusinessModel\Cases();