/** * Get all Message-Type-Variable * * @param string $messageTypeUid {@min 32}{@max 32} * @param array $arrayFilterData Data of the filters * @param string $sortField Field name to sort * @param string $sortDir Direction of sorting (ASC, DESC) * @param int $start Start * @param int $limit Limit * * return array Return an array with all Message-Type-Variable */ public function getMessageTypeVariables($messageTypeUid, $arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null) { try { $arrayMessage = array(); //Verify data $process = new \ProcessMaker\BusinessModel\Process(); $messageType = new \ProcessMaker\BusinessModel\MessageType(); $messageType->throwExceptionIfNotExistsMessageType($messageTypeUid, $this->arrayFieldNameForException["messageTypeUid"]); $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException); //Get data if (!is_null($limit) && $limit . "" == "0") { return $arrayMessage; } //SQL $criteria = $this->getMessageTypeVariableCriteria(); $criteria->add(\MessageTypeVariablePeer::MSGT_UID, $messageTypeUid, \Criteria::EQUAL); if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") { $criteria->add($criteria->getNewCriterion(\MessageTypeVariablePeer::MSGTV_NAME, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE)); } //Number records total $criteriaCount = clone $criteria; $criteriaCount->clearSelectColumns(); $criteriaCount->addSelectColumn("COUNT(" . \MessageTypeVariablePeer::MSGTV_UID . ") AS NUM_REC"); $rsCriteriaCount = \MessageTypeVariablePeer::doSelectRS($criteriaCount); $rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteriaCount->next(); $row = $rsCriteriaCount->getRow(); $numRecTotal = $row["NUM_REC"]; //SQL if (!is_null($sortField) && trim($sortField) != "") { $sortField = strtoupper($sortField); if (in_array($sortField, array("MSGTV_NAME"))) { $sortField = \MessageTypeVariablePeer::TABLE_NAME . "." . $sortField; } else { $sortField = \MessageTypeVariablePeer::MSGTV_NAME; } } else { $sortField = \MessageTypeVariablePeer::MSGTV_NAME; } if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") { $criteria->addDescendingOrderByColumn($sortField); } else { $criteria->addAscendingOrderByColumn($sortField); } if (!is_null($start)) { $criteria->setOffset((int) $start); } if (!is_null($limit)) { $criteria->setLimit((int) $limit); } $rsCriteria = \MessageTypeVariablePeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $arrayMessage[] = $this->getMessageTypeVariableDataFromRecord($row); } //Return return array("total" => $numRecTotal, "start" => (int) (!is_null($start) ? $start : 0), "limit" => (int) (!is_null($limit) ? $limit : 0), "filter" => !is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) ? $arrayFilterData["filter"] : "", "data" => $arrayMessage); } catch (\Exception $e) { throw $e; } }
/** * Validate the data if they are invalid (INSERT and UPDATE) * * @param string $messageEventDefinitionUid Unique id of Message-Event-Definition * @param string $projectUid Unique id of Project * @param array $arrayData Data * * return void Throw exception if data has an invalid value */ public function throwExceptionIfDataIsInvalid($messageEventDefinitionUid, $projectUid, array $arrayData) { try { //Set variables $arrayMessageEventDefinitionData = $messageEventDefinitionUid == "" ? array() : $this->getMessageEventDefinition($messageEventDefinitionUid, true); $flagInsert = $messageEventDefinitionUid == "" ? true : false; $arrayFinalData = array_merge($arrayMessageEventDefinitionData, $arrayData); //Verify data - Field definition $process = new \ProcessMaker\BusinessModel\Process(); $messageType = new \ProcessMaker\BusinessModel\MessageType(); $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, $flagInsert); //Verify data if (isset($arrayData["EVN_UID"])) { $this->throwExceptionIfEventIsRegistered($projectUid, $arrayData["EVN_UID"], $this->arrayFieldNameForException["eventUid"], $messageEventDefinitionUid); } if (isset($arrayData["EVN_UID"])) { $arrayEventType = array("START", "END", "INTERMEDIATE"); $arrayEventMarker = array("MESSAGETHROW", "MESSAGECATCH"); $bpmnEvent = \BpmnEventPeer::retrieveByPK($arrayData["EVN_UID"]); if (is_null($bpmnEvent)) { throw new \Exception(\G::LoadTranslation("ID_EVENT_NOT_EXIST", array($this->arrayFieldNameForException["eventUid"], $arrayData["EVN_UID"]))); } if (!in_array($bpmnEvent->getEvnType(), $arrayEventType) || !in_array($bpmnEvent->getEvnMarker(), $arrayEventMarker)) { throw new \Exception(\G::LoadTranslation("ID_EVENT_NOT_IS_MESSAGE_EVENT", array($this->arrayFieldNameForException["eventUid"], $arrayData["EVN_UID"]))); } } if (isset($arrayData["MSGT_UID"]) && $arrayData["MSGT_UID"] . "" != "") { $messageType->throwExceptionIfNotExistsMessageType($arrayData["MSGT_UID"], $this->arrayFieldNameForException["messageTypeUid"]); } $flagCheckData = false; $flagCheckData = isset($arrayData["MSGT_UID"]) && $arrayData["MSGT_UID"] . "" != "" ? true : $flagCheckData; $flagCheckData = isset($arrayData["MSGED_VARIABLES"]) ? true : $flagCheckData; if (isset($arrayFinalData["MSGT_UID"]) && $arrayFinalData["MSGT_UID"] . "" != "" && $flagCheckData) { $arrayMessageTypeVariable = array(); $arrayMessageTypeData = $messageType->getMessageType($arrayFinalData["MSGT_UID"], true); foreach ($arrayMessageTypeData["MSGT_VARIABLES"] as $value) { $arrayMessageTypeVariable[$value["MSGTV_NAME"]] = $value["MSGTV_DEFAULT_VALUE"]; } if (count($arrayMessageTypeVariable) != count($arrayFinalData["MSGED_VARIABLES"]) || count(array_diff_key($arrayMessageTypeVariable, $arrayFinalData["MSGED_VARIABLES"])) > 0) { throw new \Exception(\G::LoadTranslation("ID_MESSAGE_EVENT_DEFINITION_VARIABLES_DO_NOT_MEET_DEFINITION")); } } } catch (\Exception $e) { throw $e; } }