public function removeEventDefinition(\BpmnEvent $bpmnEvent) { try { //WebEntry-Event - Delete if ($bpmnEvent->getEvnType() == "START" && $bpmnEvent->getEvnMarker() == "EMPTY") { $webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent(); if ($webEntryEvent->existsEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid())) { $arrayWebEntryEventData = $webEntryEvent->getWebEntryEventByEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid(), true); $webEntryEvent->delete($arrayWebEntryEventData["WEE_UID"]); } } //Message-Event-Definition - Delete $arrayEventType = array("START", "END", "INTERMEDIATE"); $arrayEventMarker = array("MESSAGETHROW", "MESSAGECATCH"); if (in_array($bpmnEvent->getEvnType(), $arrayEventType) && in_array($bpmnEvent->getEvnMarker(), $arrayEventMarker)) { $messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition(); if ($messageEventDefinition->existsEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid())) { $arrayMessageEventDefinitionData = $messageEventDefinition->getMessageEventDefinitionByEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid(), true); $messageEventDefinition->delete($arrayMessageEventDefinitionData["MSGED_UID"]); } } //Timer-Event - Delete $arrayEventType = array("START", "INTERMEDIATE"); $arrayEventMarker = array("TIMER"); if (in_array($bpmnEvent->getEvnType(), $arrayEventType) && in_array($bpmnEvent->getEvnMarker(), $arrayEventMarker)) { $timerEvent = new \ProcessMaker\BusinessModel\TimerEvent(); $timerEvent->deleteWhere(array( \TimerEventPeer::PRJ_UID => array($bpmnEvent->getPrjUid(), \Criteria::EQUAL), \TimerEventPeer::EVN_UID => array($bpmnEvent->getEvnUid(), \Criteria::EQUAL) )); } //Email-Event - Delete $arrayEventType = array("END", "INTERMEDIATE"); $arrayEventMarker = array("EMAIL"); if (in_array($bpmnEvent->getEvnType(), $arrayEventType) && in_array($bpmnEvent->getEvnMarker(), $arrayEventMarker)) { $emailEvent = new \ProcessMaker\BusinessModel\EmailEvent(); if ($emailEvent->existsEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid())) { $arrayEmailEventData = $emailEvent->getEmailEventData($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid()); $arrayEmailEventData = array_change_key_case($arrayEmailEventData, CASE_UPPER); $emailEvent->delete($bpmnEvent->getPrjUid(), $arrayEmailEventData["EMAIL_EVENT_UID"], true); } } //Element-Task-Relation - Delete $this->removeElementTaskRelation($bpmnEvent->getEvnUid(), "bpmnEvent"); } catch (\Exception $e) { throw $e; } }
/** * Create Message-Application for the Case * * @param string $applicationUid Unique id of Case * @param string $projectUid Unique id of Project * @param string $eventUidThrow Unique id of Event (throw) * @param array $arrayApplicationData Case data * * return bool Return true if been created, false otherwise */ public function create($applicationUid, $projectUid, $eventUidThrow, array $arrayApplicationData) { try { $flagCreate = true; //Set data //Message-Event-Relation - Get unique id of Event (catch) $messageEventRelation = new \ProcessMaker\BusinessModel\MessageEventRelation(); $arrayMessageEventRelationData = $messageEventRelation->getMessageEventRelationWhere( array( \MessageEventRelationPeer::PRJ_UID => $projectUid, \MessageEventRelationPeer::EVN_UID_THROW => $eventUidThrow ), true ); if (!is_null($arrayMessageEventRelationData)) { $eventUidCatch = $arrayMessageEventRelationData["EVN_UID_CATCH"]; } else { $flagCreate = false; } //Message-Application - Get data ($eventUidThrow) $messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition(); if ($messageEventDefinition->existsEvent($projectUid, $eventUidThrow)) { $arrayMessageEventDefinitionData = $messageEventDefinition->getMessageEventDefinitionByEvent($projectUid, $eventUidThrow, true); $arrayMessageApplicationVariables = $arrayMessageEventDefinitionData["MSGED_VARIABLES"]; $messageApplicationCorrelation = \G::replaceDataField($arrayMessageEventDefinitionData["MSGED_CORRELATION"], $arrayApplicationData["APP_DATA"]); foreach ($arrayMessageApplicationVariables as $key => $value) { $arrayMessageApplicationVariables[$key] = \G::replaceDataField($value, $arrayApplicationData["APP_DATA"]); } } else { $flagCreate = false; } if (!$flagCreate) { //Return return false; } //Create $cnn = \Propel::getConnection("workflow"); try { $messageApplication = new \MessageApplication(); $messageApplicationUid = \ProcessMaker\Util\Common::generateUID(); $messageApplication->setMsgappUid($messageApplicationUid); $messageApplication->setAppUid($applicationUid); $messageApplication->setPrjUid($projectUid); $messageApplication->setEvnUidThrow($eventUidThrow); $messageApplication->setEvnUidCatch($eventUidCatch); $messageApplication->setMsgappVariables(serialize($arrayMessageApplicationVariables)); $messageApplication->setMsgappCorrelation($messageApplicationCorrelation); $messageApplication->setMsgappThrowDate("now"); if ($messageApplication->validate()) { $cnn->begin(); $result = $messageApplication->save(); $cnn->commit(); //Return return true; } else { $msg = ""; foreach ($messageApplication->getValidationFailures() as $validationFailure) { $msg = $msg . (($msg != "")? "\n" : "") . $validationFailure->getMessage(); } throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . (($msg != "")? "\n" . $msg : "")); } } catch (\Exception $e) { $cnn->rollback(); throw $e; } } catch (\Exception $e) { throw $e; } }
public function removeEventDefinition(\BpmnEvent $bpmnEvent) { try { //Case-Scheduler - Delete if ($bpmnEvent->getEvnType() == "START" && $bpmnEvent->getEvnMarker() == "TIMER") { $caseScheduler = new \CaseScheduler(); if ($caseScheduler->Exists($bpmnEvent->getEvnUid())) { $this->wp->removeCaseScheduler($bpmnEvent->getEvnUid()); } } //WebEntry-Event - Delete if ($bpmnEvent->getEvnType() == "START" && $bpmnEvent->getEvnMarker() == "EMPTY") { $webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent(); if ($webEntryEvent->existsEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid())) { $arrayWebEntryEventData = $webEntryEvent->getWebEntryEventByEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid(), true); $webEntryEvent->delete($arrayWebEntryEventData["WEE_UID"]); } } //Message-Event-Definition - Delete $arrayEventType = array("START", "END", "INTERMEDIATE"); $arrayEventMarker = array("MESSAGETHROW", "MESSAGECATCH"); if (in_array($bpmnEvent->getEvnType(), $arrayEventType) && in_array($bpmnEvent->getEvnMarker(), $arrayEventMarker)) { $messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition(); if ($messageEventDefinition->existsEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid())) { $arrayMessageEventDefinitionData = $messageEventDefinition->getMessageEventDefinitionByEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid(), true); $messageEventDefinition->delete($arrayMessageEventDefinitionData["MSGED_UID"]); } } //Element-Task-Relation - Delete $this->removeElementTaskRelation($bpmnEvent->getEvnUid(), "bpmnEvent"); } catch (\Exception $e) { throw $e; } }