/**
  * 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;
     }
 }