function CreateTrigger($data, $fields) { try { $Trigger = new Triggers(); $result = $Trigger->create($fields); $this->domain->addDomainValue('CREATED', $Trigger->getTriUid()); return $result; } catch (Exception $e) { return array('Exception!! ' => $e->getMessage()); } }
/** * Create Step Trigger Rows for a Process form an array * * @param array $aTrigger * @return void */ public function createTriggerRows ($aTrigger) { foreach ($aTrigger as $key => $row) { $oTrigger = new Triggers(); //unset ($row['TAS_UID']); if ($oTrigger->TriggerExists( $row['TRI_UID'] )) { $oTrigger->remove( $row['TRI_UID'] ); } $res = $oTrigger->create( $row ); } return; }
function create($aData) { if (!isset($aData['EVN_UID']) || $aData['EVN_UID'] == '') { $aData['EVN_UID'] = G::generateUniqueID(); } $oConnection = Propel::getConnection(EventPeer::DATABASE_NAME); try { $oEvent = new Event(); $oEvent->setEvnUid($aData['EVN_UID']); $oEvent->setProUid($aData['PRO_UID']); if (isset($aData['EVN_RELATED_TO'])) { $oEvent->setEvnRelatedTo($aData['EVN_RELATED_TO']); if ($aData['EVN_RELATED_TO'] == 'SINGLE') { if (isset($aData['TAS_UID'])) { $oEvent->setTasUid($aData['TAS_UID']); } $oEvent->setEvnTasUidTo(''); $oEvent->setEvnTasUidFrom(''); } else { $oEvent->setTasUid(''); if (isset($aData['EVN_TAS_UID_TO'])) { $oEvent->setEvnTasUidTo($aData['EVN_TAS_UID_TO']); } if (isset($aData['EVN_TAS_UID_FROM'])) { $oEvent->setEvnTasUidFrom($aData['EVN_TAS_UID_FROM']); } } } if (isset($aData['EVN_POSX'])) { $oEvent->setEvnPosx($aData['EVN_POSX']); } if (isset($aData['EVN_POSY'])) { $oEvent->setEvnPosy($aData['EVN_POSY']); } if (isset($aData['EVN_TYPE'])) { $oEvent->setEvnType($aData['EVN_TYPE']); } if (isset($aData['EVN_TAS_ESTIMATED_DURATION'])) { $oEvent->setEvnTasEstimatedDuration($aData['EVN_TAS_ESTIMATED_DURATION']); } if (isset($aData['EVN_WHEN_OCCURS'])) { $oEvent->setEvnWhenOccurs($aData['EVN_WHEN_OCCURS']); } if (isset($aData['EVN_ACTION'])) { $oEvent->setEvnAction($aData['EVN_ACTION']); } if (isset($aData['EVN_CONDITIONS'])) { $oEvent->setEvnConditions($aData['EVN_CONDITIONS']); } if (isset($aData['EVN_STATUS'])) { $oEvent->setEvnStatus($aData['EVN_STATUS']); } if (isset($aData['EVN_WHEN'])) { $oEvent->setEvnWhen($aData['EVN_WHEN']); } $oEvent->setEvnMaxAttempts(3); //start the transaction $oConnection->begin(); if (isset($aData['EVN_TYPE'])) { if ($aData['EVN_TYPE'] === 'bpmnEventEmptyEnd') { unset($aData['TRI_UID']); } } if (isset($aData['TRI_UID'])) { $oTrigger = new Triggers(); if (trim($aData['TRI_UID']) === "" || !$oTrigger->TriggerExists($aData['TRI_UID'])) { //create an empty trigger $aTrigger = array(); $aTrigger['PRO_UID'] = $aData['PRO_UID']; $aTrigger['TRI_TITLE'] = 'For event: ' . $aData['EVN_DESCRIPTION']; $aTrigger['TRI_DESCRIPTION'] = 'Autogenerated ' . $aTrigger['TRI_TITLE']; $aTrigger['TRI_WEBBOT'] = '// ' . $aTrigger['TRI_DESCRIPTION']; $oTrigger->create($aTrigger); } else { $oTrigger = TriggersPeer::retrieveByPk($aData['TRI_UID']); } $oEvent->setTriUid($oTrigger->getTriUid()); $parameters = new StdClass(); $parameters->hash = md5($oTrigger->getTriWebbot()); if (isset($aData['EVN_ACTION_PARAMETERS']->SUBJECT)) { $parameters->SUBJECT = $aData['EVN_ACTION_PARAMETERS']->SUBJECT; $parameters->TO = $aData['EVN_ACTION_PARAMETERS']->TO; $parameters->CC = $aData['EVN_ACTION_PARAMETERS']->CC; $parameters->BCC = $aData['EVN_ACTION_PARAMETERS']->BCC; $parameters->TEMPLATE = $aData['EVN_ACTION_PARAMETERS']->TEMPLATE; } $oEvent->setEvnActionParameters(serialize($parameters)); } if ($oEvent->validate()) { $iResult = $oEvent->save(); if (isset($aData['EVN_DESCRIPTION'])) { $oEvent->setEvnDescription($aData['EVN_DESCRIPTION']); } $oConnection->commit(); return $aData['EVN_UID']; } else { $sMessage = ''; $aValidationFailures = $oEvent->getValidationFailures(); foreach ($aValidationFailures as $oValidationFailure) { $sMessage .= $oValidationFailure->getMessage() . '<br />'; } throw new Exception('The row Event cannot be created!<br />' . $sMessage); } } catch (Exception $oError) { $oConnection->rollback(); throw $oError; } }
G::LoadClass("processMap"); $response = array(); try { $oTrigger = new Triggers(); $oProcessMap = new processMap(new DBConnection()); if (isset($_POST['form'])) { $value = $_POST['form']; } else { $value = $_POST; } /*----------------------------------********---------------------------------*/ $swCreate = true; if ($value['TRI_UID'] != '') { $oTrigger->load($value['TRI_UID']); } else { $oTrigger->create($value); $value['TRI_UID'] = $oTrigger->getTriUid(); $swCreate = false; } $oTrigger->update($value); if ($swCreate) { //Add Audit Log $fields = $oTrigger->load($value['TRI_UID']); $description = "Trigger Name: " . $fields['TRI_TITLE'] . ", Trigger Uid: " . $value['TRI_UID']; if (isset($fields['TRI_DESCRIPTION'])) { $description .= ", Description: " . $fields['TRI_DESCRIPTION']; } if (isset($value["TRI_WEBBOT"])) { $description .= ", [EDIT CODE]"; } G::auditLog("UpdateTrigger", $description);
* ProcessMaker Open Source Edition * Copyright (C) 2004 - 2008 Colosa Inc.23 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) { return $RBAC_Response; } require_once 'classes/model/Triggers.php'; $oTrigger = new Triggers(); if ($_POST['form']['TRI_UID'] != '') { $oTrigger->load($_POST['form']['TRI_UID']); } else { $oTrigger->create($_POST['form']); $_POST['form']['TRI_UID'] = $oTrigger->getTriUid(); } $oTrigger->update($_POST['form']);
/** * Save Data for Trigger * @var string $sProcessUID. Uid for Process * @var string $dataTrigger. Data for Trigger * @var string $create. Create o Update Trigger * @var string $sTriggerUid. Uid for Trigger * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia * * @return array */ public function saveTrigger($sProcessUID = '', $dataTrigger = array(), $create = false, $sTriggerUid = '') { if ($sProcessUID == '' || count($dataTrigger) == 0) { return false; } $dataTrigger = array_change_key_case($dataTrigger, CASE_UPPER); if ($create && isset($dataTrigger['TRI_UID'])) { unset($dataTrigger['TRI_UID']); } $dataTrigger = (array) $dataTrigger; $dataTrigger['TRI_TYPE'] = 'SCRIPT'; if (isset($dataTrigger['TRI_TITLE'])) { if (!$this->verifyNameTrigger($sProcessUID, $dataTrigger['TRI_TITLE'], $sTriggerUid)) { throw new \Exception(\G::LoadTranslation("ID_CANT_SAVE_TRIGGER")); } } /*----------------------------------********---------------------------------*/ $dataTrigger['PRO_UID'] = $sProcessUID; $oTrigger = new \Triggers(); if ($create) { $oTrigger->create($dataTrigger); $dataTrigger['TRI_UID'] = $oTrigger->getTriUid(); } $oTrigger->update($dataTrigger); if ($create) { $dataResp = $oTrigger->load($dataTrigger['TRI_UID']); $dataResp = array_change_key_case($dataResp, CASE_LOWER); if (isset($dataResp['pro_uid'])) { unset($dataResp['pro_uid']); } return $dataResp; } return array(); }
$aOptionParameters = explode("=", $sOptionTrigger); $sOptionTrigger = trim($aOptionParameters[0]); } if ($aDataTriggers[$sOptionTrigger] != '') { if (strstr($aDataTriggers[$sOptionTrigger], "@@")) { $option = trim($aDataTriggers[$sOptionTrigger]); } else { $aDataTriggers[$sOptionTrigger] = strstr($aDataTriggers[$sOptionTrigger], 'array') ? str_replace("'", '"', $aDataTriggers[$sOptionTrigger]) : str_replace("'", "\\'", $aDataTriggers[$sOptionTrigger]); $option = is_numeric($aDataTriggers[$sOptionTrigger]) ? trim($aDataTriggers[$sOptionTrigger]) : strstr($aDataTriggers[$sOptionTrigger], "array") ? trim($aDataTriggers[$sOptionTrigger]) : "'" . trim($aDataTriggers[$sOptionTrigger]) . "'"; } } else { $option = "''"; } $methodParamsFinal[] = $option; } } //G::pr($methodParamsFinal);die; $sPMfunction .= isset($aDataTriggers['TRI_ANSWER']) && $aDataTriggers['TRI_ANSWER'] != '' ? $aDataTriggers['TRI_ANSWER'] . " = " : ""; $sPMfunction .= $aDataTriggers['PMFUNTION_NAME'] . " (" . implode(",", $methodParamsFinal) . ");"; //Create Trigger $aDataTriggers['TRI_WEBBOT'] = $sPMfunction; $aDataTriggersParams = array(); $aDataTriggersParams['hash'] = md5($sPMfunction); $aDataTriggersParams['params'] = $aDataTriggers; $aDataTriggers['TRI_PARAM'] = serialize($aDataTriggersParams); $oTrigger->create($aDataTriggers); //Update Info $aDataTriggers['TRI_UID'] = $oTrigger->getTriUid(); $oTrigger->update($aDataTriggers); //Update Trigger Array $oProcessMap->triggersList($aDataTriggers['PRO_UID']);
/** * Create Trigger for a Process * * @param string $libraryName Library name * @param string $methodName Method name * @param string $processUid Unique id of Process * @param array $arrayData Data * * return array Return data of the new Trigger created */ public function create($libraryName, $methodName, $processUid, $arrayData) { try { $arrayData = array_change_key_case($arrayData, CASE_UPPER); //Verify data $process = new \ProcessMaker\BusinessModel\Process(); $trigger = new \ProcessMaker\BusinessModel\Trigger(); $this->throwExceptionIfNotExistsMethodInLibrary($libraryName, $methodName, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"]); $process->throwExceptionIfNotExistsProcess($processUid, $this->arrayFieldNameForException["processUid"]); $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, true); $arrayParamData = $this->throwExceptionIfDataNotMetTriggerParamsDefinition($libraryName, $methodName, $arrayData, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"], $this->arrayFieldNameForException["triggerParams"]); $trigger->throwExceptionIfExistsTitle($processUid, $arrayData["TRI_TITLE"], $this->arrayFieldNameForException["triggerTitle"]); //TRI_PARAMS if (isset($arrayData["TRI_PARAMS"])) { $arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_UPPER); } //Create $trigger = new \Triggers(); $arrayData["PRO_UID"] = $processUid; $result = $trigger->create($arrayData); $triggerUid = $trigger->getTriUid(); $this->setData($libraryName, $methodName, $triggerUid, $arrayParamData); //Return unset($arrayData["PRO_UID"]); $arrayData = array_merge(array("TRI_UID" => $triggerUid), $arrayData); if (!$this->formatFieldNameInUppercase) { if (isset($arrayData["TRI_PARAMS"])) { $arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_LOWER); } $arrayData = array_change_key_case($arrayData, CASE_LOWER); } return $arrayData; } catch (\Exception $e) { throw $e; } }