/** * Update Script-Task * * @param string $scriptTaskUid Unique id of Script-Task * @param array $arrayData Data * * return array Return data of the Script-Task updated */ public function update($scriptTaskUid, array $arrayData) { try { //Verify data $process = new \ProcessMaker\BusinessModel\Process(); $validator = new \ProcessMaker\BusinessModel\Validator(); $validator->throwExceptionIfDataIsNotArray($arrayData, "\$arrayData"); $validator->throwExceptionIfDataIsEmpty($arrayData, "\$arrayData"); //Set data $arrayData = array_change_key_case($arrayData, CASE_UPPER); $arrayDataBackup = $arrayData; unset($arrayData["SCRTAS_UID"]); unset($arrayData["PRJ_UID"]); //Set variables $arrayScriptTaskData = $this->getScriptTask($scriptTaskUid, true); //Verify data $this->throwExceptionIfNotExistsScriptTask($scriptTaskUid, $this->arrayFieldNameForException["scrtasUid"]); $this->throwExceptionIfDataIsInvalid($scriptTaskUid, $arrayScriptTaskData["PRJ_UID"], $arrayData); //Update $cnn = \Propel::getConnection("workflow"); try { $scriptTask = \ScriptTaskPeer::retrieveByPK($scriptTaskUid); $scriptTask->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME); if ($scriptTask->validate()) { $cnn->begin(); $result = $scriptTask->save(); $cnn->commit(); //Return $arrayData = $arrayDataBackup; if (!$this->formatFieldNameInUppercase) { $arrayData = array_change_key_case($arrayData, CASE_LOWER); } return $arrayData; } else { $msg = ""; foreach ($scriptTask->getValidationFailures() as $validationFailure) { $msg = $msg . ($msg != "" ? "\n" : "") . $validationFailure->getMessage(); } throw new \Exception(\G::LoadTranslation("ID_REGISTRY_CANNOT_BE_UPDATED") . ($msg != "" ? "\n" . $msg : "")); } } catch (\Exception $e) { $cnn->rollback(); throw $e; } } catch (\Exception $e) { throw $e; } }