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);
     }
Beispiel #3
0
 * 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']);
Beispiel #4
0
 /**
  * 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;
     }
 }