Ejemplo n.º 1
0
    /**

     * Create "Process Variables" records

     *

     * @param array $arrayData Data to create

     *

     * return void

     */

    public function createProcessVariables(array $arrayData)

    {

        try {

            foreach ($arrayData as $value) {

                $processVariables = new ProcessVariables();

                $record = $value;



                if ($processVariables->Exists($record["VAR_UID"])) {

                    $result = $processVariables->remove($record["VAR_UID"]);

                }

                $result = $processVariables->create($record);

            }

        } catch (Exception $e) {

            throw $e;

        }

    }
Ejemplo n.º 2
0
 /**
  * Create Variable for a Process
  *
  * @param string $processUid Unique id of Process
  * @param array  $arrayData  Data
  *
  * return array Return data of the new Variable created
  */
 public function create($processUid, array $arrayData)
 {
     try {
         //Verify data
         Validator::proUid($processUid, '$prj_uid');
         $arrayData = array_change_key_case($arrayData, CASE_UPPER);
         $this->existsName($processUid, $arrayData["VAR_NAME"], "");
         $this->throwExceptionFieldDefinition($arrayData);
         //Create
         $cnn = \Propel::getConnection("workflow");
         try {
             $variable = new \ProcessVariables();
             $sPkProcessVariables = \ProcessMaker\Util\Common::generateUID();
             $variable->setVarUid($sPkProcessVariables);
             $variable->setPrjUid($processUid);
             if ($variable->validate()) {
                 $cnn->begin();
                 if (isset($arrayData["VAR_NAME"])) {
                     $variable->setVarName($arrayData["VAR_NAME"]);
                 } else {
                     throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('$var_name')));
                 }
                 if (isset($arrayData["VAR_FIELD_TYPE"])) {
                     $variable->setVarFieldType($arrayData["VAR_FIELD_TYPE"]);
                 } else {
                     throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('$var_field_type')));
                 }
                 if (isset($arrayData["VAR_FIELD_SIZE"])) {
                     $variable->setVarFieldSize($arrayData["VAR_FIELD_SIZE"]);
                 }
                 if (isset($arrayData["VAR_LABEL"])) {
                     $variable->setVarLabel($arrayData["VAR_LABEL"]);
                 } else {
                     throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('$var_label')));
                 }
                 if (isset($arrayData["VAR_DBCONNECTION"])) {
                     $variable->setVarDbconnection($arrayData["VAR_DBCONNECTION"]);
                 } else {
                     $variable->setVarDbconnection("");
                 }
                 if (isset($arrayData["VAR_SQL"])) {
                     $variable->setVarSql($arrayData["VAR_SQL"]);
                 } else {
                     $variable->setVarSql("");
                 }
                 if (isset($arrayData["VAR_NULL"])) {
                     $variable->setVarNull($arrayData["VAR_NULL"]);
                 } else {
                     $variable->setVarNull(0);
                 }
                 if (isset($arrayData["VAR_DEFAULT"])) {
                     $variable->setVarDefault($arrayData["VAR_DEFAULT"]);
                 }
                 if (isset($arrayData["VAR_ACCEPTED_VALUES"])) {
                     $encodeAcceptedValues = \G::json_encode($arrayData["VAR_ACCEPTED_VALUES"]);
                     $variable->setVarAcceptedValues($encodeAcceptedValues);
                 }
                 if (isset($arrayData["INP_DOC_UID"])) {
                     $variable->setInpDocUid($arrayData["INP_DOC_UID"]);
                 }
                 $variable->save();
                 $cnn->commit();
             } else {
                 $msg = "";
                 foreach ($variable->getValidationFailures() as $validationFailure) {
                     $msg = $msg . ($msg != "" ? "\n" : "") . $validationFailure->getMessage();
                 }
                 throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . "\n" . $msg);
             }
         } catch (\Exception $e) {
             $cnn->rollback();
             throw $e;
         }
         //Return
         $variable = $this->getVariable($processUid, $sPkProcessVariables);
         return $variable;
     } catch (\Exception $e) {
         throw $e;
     }
 }