/** * 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; } }
/** * 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; } }