/** * Update Message-Event-Definition * * @param string $messageEventDefinitionUid Unique id of Message-Event-Definition * @param array $arrayData Data * * return array Return data of the Message-Event-Definition updated */ public function update($messageEventDefinitionUid, 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["MSGED_UID"]); unset($arrayData["PRJ_UID"]); //Set variables $arrayMessageEventDefinitionData = $this->getMessageEventDefinition($messageEventDefinitionUid, true); //Verify data $this->throwExceptionIfNotExistsMessageEventDefinition($messageEventDefinitionUid, $this->arrayFieldNameForException["messageEventDefinitionUid"]); $this->throwExceptionIfDataIsInvalid($messageEventDefinitionUid, $arrayMessageEventDefinitionData["PRJ_UID"], $arrayData); //Update $cnn = \Propel::getConnection("workflow"); try { $messageEventDefinition = \MessageEventDefinitionPeer::retrieveByPK($messageEventDefinitionUid); if (isset($arrayData["MSGT_UID"]) && $arrayData["MSGT_UID"] . "" == "") { $arrayData["MSGED_VARIABLES"] = array(); } if (isset($arrayData["MSGED_VARIABLES"])) { $arrayData["MSGED_VARIABLES"] = serialize($arrayData["MSGED_VARIABLES"]); } $messageEventDefinition->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME); if ($messageEventDefinition->validate()) { $cnn->begin(); $result = $messageEventDefinition->save(); $cnn->commit(); //Return $arrayData = $arrayDataBackup; if (!$this->formatFieldNameInUppercase) { $arrayData = array_change_key_case($arrayData, CASE_LOWER); } return $arrayData; } else { $msg = ""; foreach ($messageEventDefinition->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; } }