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()); } }
$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(); }
$option = floatval($aDataTriggers[$sOptionTrigger]); break; default: $option = is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ? trim($aDataTriggers[$sOptionTrigger]) : strstr($aDataTriggers[$sOptionTrigger], "array") ? trim($aDataTriggers[$sOptionTrigger]) : '"' . trim($aDataTriggers[$sOptionTrigger]) . '"'; break; } } } else { $option = "' '"; } $methodParamsFinal[] = $option; } $i++; } $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'] = G::encryptOld($sPMfunction); $aDataTriggersParams['params'] = $aDataTriggers; $aDataTriggers['TRI_PARAM'] = serialize($aDataTriggersParams); //$oTrigger->create ( $aDataTriggers ); $aDataTriggerLoaded = $oTrigger->load($triUid); //var_dump($aDataTriggerLoaded); //die; //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; } }