/** * Execute Trigger case * * @param string $prj_uid {@min 1}{@max 32} * @param string $act_uid {@min 1}{@max 32} * @param string $cas_uid {@min 1}{@max 32} * @param string $step_uid {@min 32}{@max 32} * @param string $type {@choice before,after} * * @copyright Colosa - Bolivia * * @url POST /process/:prj_uid/task/:act_uid/case/:cas_uid/step/:step_uid/execute-trigger/:type */ public function doPutExecuteTriggerCase($prj_uid, $act_uid, $cas_uid, $step_uid, $type) { try { $userUid = $this->getUserId(); $step = new \ProcessMaker\Services\Api\Project\Activity\Step(); $triggers= $step->doGetActivityStepTriggers($step_uid, $act_uid, $prj_uid); $step = new \ProcessMaker\BusinessModel\Step(); $step->setFormatFieldNameInUppercase(false); $step->setArrayParamException(array("stepUid" => "step_uid", "taskUid" => "act_uid", "processUid" => "prj_uid")); $cases = new \ProcessMaker\BusinessModel\Cases(); foreach($triggers as $trigger){ if (strtolower($trigger['st_type']) == $type) { $cases->putExecuteTriggerCase($cas_uid, $trigger['tri_uid'], $userUid); } } } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } }
/** * Get all Steps of a Task * * @param string $taskUid Unique id of Task * * return array Return an array with all Steps of a Task */ public function getSteps($taskUid) { try { $arrayStep = array(); $step = new \ProcessMaker\BusinessModel\Step(); $step->setFormatFieldNameInUppercase($this->formatFieldNameInUppercase); $step->setArrayParamException($this->arrayParamException); //Verify data $this->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]); //Get data $criteria = new \Criteria("workflow"); $criteria->add(\StepPeer::TAS_UID, $taskUid, \Criteria::EQUAL); $criteria->addAscendingOrderByColumn(\StepPeer::STEP_POSITION); $rsCriteria = \StepPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $arrayData = $step->getStep($row["STEP_UID"]); if (count($arrayData) > 0) { $arrayStep[] = $arrayData; } } //Return return $arrayStep; } catch (\Exception $e) { throw $e; } }
/** * @url POST /:prj_uid/activity/:act_uid/step/all * * @param string $act_uid {@min 32}{@max 32} * @param string $prj_uid {@min 32}{@max 32} * @param array $request_data * @param string $step_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT,EXTERNAL}{@required true} * @param string $step_uid_obj {@from body}{@min 32}{@max 32}{@required true} * @param string $step_condition {@from body} * @param int $step_position {@from body}{@min 1} * @param string $step_mode {@from body}{@choice EDIT,VIEW}{@required true} * * @status 201 */ public function doPostActivityStepAll($act_uid, $prj_uid, $request_data, $step_type_obj = "DYNAFORM", $step_uid_obj = "00000000000000000000000000000000", $step_condition = "", $step_position = 1, $step_mode = "EDIT") { try { $step = new \ProcessMaker\BusinessModel\Step(); $stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger(); $step->deleteAll($act_uid); foreach ($request_data as $key => $valueRequest) { if (array_key_exists('tri_uid', $valueRequest)) { $response[] = $stepTrigger->createAll("", $valueRequest["st_type"], $act_uid, $valueRequest["tri_uid"], $valueRequest); } else { $step->setFormatFieldNameInUppercase(false); $step->setArrayParamException(array("stepUid" => "step_uid", "taskUid" => "act_uid", "processUid" => "prj_uid")); $arrayData[] = $step->createAll($act_uid, $prj_uid, $valueRequest); if (array_key_exists('triggers', $valueRequest)) { foreach ($valueRequest["triggers"] as $key => $valueTrigger) { $response["triggers"] = $stepTrigger->createAll($arrayData[0]["step_uid"], $valueTrigger["st_type"], $act_uid, $valueTrigger["tri_uid"], $valueTrigger); } } $response = $arrayData; } } return $response; } catch (\Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } }