diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 5eb8d8588..a0600408e 100644 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -5599,71 +5599,74 @@ class Processes } /** - * + * * @param type $oData */ public function loadIdsFromData($oData) { $this->loadIdsFor(Process::class, ProcessPeer::PRO_UID, ProcessPeer::PRO_ID, $oData['process']); $this->loadIdsFor(Task::class, TaskPeer::TAS_UID, TaskPeer::TAS_ID, $oData['tasks']); - //The following code matches the Models and the correspondent Property - // in the imported data object, so it could be used to change the UID - // fields by ID on the other tables. - //$this->loadIdsFor(ProcessCategory::class, ProcessCategoryPeer::CATEGORY_UID, ?, $oData->processCategory); - //$this->loadIdsFor(SwimlanesElements::class, ?, ?, $oData->lanes); - //$this->loadIdsFor(Gateway::class, GatewayPeer::GAT_UID, ?, $oData->gateways); - //$this->loadIdsFor(Dynaform::class, $oData->dynaforms); - //$this->loadIdsFor(InputDocument::class, $oData->inputs); - //$this->loadIdsFor(OutputDocument::class, $oData->outputs); - //$this->loadIdsFor(Step::class, $oData->steps); - //$this->loadIdsFor(StepSupervisor::class, $oData->stepSupervisor); - //$this->loadIdsFor(Triggers::class, $oData->triggers); - //$this->loadIdsFor(StepTrigger::class, $oData->steptriggers); - //$this->loadIdsFor(TaskUser::class, ?, ?, $oData->taskusers); - //$this->loadIdsFor(Groupwf::class, $oData->groupwfs); - //$this->loadIdsFor(DbSource::class, $oData->dbconnections); - //$this->loadIdsFor(ReportTables::class, $oData->reportTablesVars); - //$this->loadIdsFor(SubProcess::class, $oData->subProcess); - //$this->loadIdsFor(CaseTracker::class, $oData->caseTracker); - //$this->loadIdsFor(CaseTrackerObject::class, $oData->caseTrackerObject); - //$this->loadIdsFor(ObjectPermission::class, $oData->objectPermissions); - //$this->loadIdsFor(Stage::class, $oData->stage); - //$this->loadIdsFor(FieldCondition::class, $oData->fieldCondition); - //$this->loadIdsFor(Event::class, $oData->event); - //$this->loadIdsFor(CaseScheduler::class, $oData->caseScheduler); - //$this->loadIdsFor(Configuration::class, $oData->taskExtraProperties); - //$this->loadIdsFor(ProcessUser::class, $oData->processUser); - //$this->loadIdsFor(ProcessVariables::class, $oData->processVariables); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\WebEntry::class, $arrayProcessData["PRO_UID"], $arrayProcessData["PRO_CREATE_USER"], $oData->webEntry); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\WebEntryEvent::class, $arrayProcessData["PRO_UID"], $arrayProcessData["PRO_CREATE_USER"], $oData->webEntryEvent); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\MessageType::class, $oData->messageType); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\MessageType\Variable::class, $oData->messageTypeVariable); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\MessageEventDefinition::class, $arrayProcessData["PRO_UID"], $oData->messageEventDefinition); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\ScriptTask::class, $arrayProcessData["PRO_UID"], $oData->scriptTask); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\TimerEvent::class, $arrayProcessData["PRO_UID"], $oData->timerEvent); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\EmailEvent::class, $arrayProcessData["PRO_UID"], $oData->emailEvent); - //$this->loadIdsFor(AbeConfiguration::class, $arrayProcessData["PRO_UID"], $oData->abeConfiguration); - //$this->loadIdsFor(\ProcessMaker\BusinessModel\FilesManager::class, $arrayProcessData["PRO_UID"], $oData->filesManager); + /** + * @todo The following code matches the Models and the correspondent Property + * in the imported data object, so it could be used to change the UID + * fields by ID on the other tables. + * $this->loadIdsFor(ProcessCategory::class, ProcessCategoryPeer::CATEGORY_UID, ?, $oData->processCategory); + * $this->loadIdsFor(SwimlanesElements::class, ?, ?, $oData->lanes); + * $this->loadIdsFor(Gateway::class, GatewayPeer::GAT_UID, ?, $oData->gateways); + * $this->loadIdsFor(Dynaform::class, $oData->dynaforms); + * $this->loadIdsFor(InputDocument::class, $oData->inputs); + * $this->loadIdsFor(OutputDocument::class, $oData->outputs); + * $this->loadIdsFor(Step::class, $oData->steps); + * $this->loadIdsFor(StepSupervisor::class, $oData->stepSupervisor); + * $this->loadIdsFor(Triggers::class, $oData->triggers); + * $this->loadIdsFor(StepTrigger::class, $oData->steptriggers); + * $this->loadIdsFor(TaskUser::class, ?, ?, $oData->taskusers); + * $this->loadIdsFor(Groupwf::class, $oData->groupwfs); + * $this->loadIdsFor(DbSource::class, $oData->dbconnections); + * $this->loadIdsFor(ReportTables::class, $oData->reportTablesVars); + * $this->loadIdsFor(SubProcess::class, $oData->subProcess); + * $this->loadIdsFor(CaseTracker::class, $oData->caseTracker); + * $this->loadIdsFor(CaseTrackerObject::class, $oData->caseTrackerObject); + * $this->loadIdsFor(ObjectPermission::class, $oData->objectPermissions); + * $this->loadIdsFor(Stage::class, $oData->stage); + * $this->loadIdsFor(FieldCondition::class, $oData->fieldCondition); + * $this->loadIdsFor(Event::class, $oData->event); + * $this->loadIdsFor(CaseScheduler::class, $oData->caseScheduler); + * $this->loadIdsFor(Configuration::class, $oData->taskExtraProperties); + * $this->loadIdsFor(ProcessUser::class, $oData->processUser); + * $this->loadIdsFor(ProcessVariables::class, $oData->processVariables); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\WebEntry::class, $arrayProcessData["PRO_UID"], $arrayProcessData["PRO_CREATE_USER"], $oData->webEntry); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\WebEntryEvent::class, $arrayProcessData["PRO_UID"], $arrayProcessData["PRO_CREATE_USER"], $oData->webEntryEvent); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\MessageType::class, $oData->messageType); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\MessageType\Variable::class, $oData->messageTypeVariable); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\MessageEventDefinition::class, $arrayProcessData["PRO_UID"], $oData->messageEventDefinition); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\ScriptTask::class, $arrayProcessData["PRO_UID"], $oData->scriptTask); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\TimerEvent::class, $arrayProcessData["PRO_UID"], $oData->timerEvent); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\EmailEvent::class, $arrayProcessData["PRO_UID"], $oData->emailEvent); + * $this->loadIdsFor(AbeConfiguration::class, $arrayProcessData["PRO_UID"], $oData->abeConfiguration); + * $this->loadIdsFor(\ProcessMaker\BusinessModel\FilesManager::class, $arrayProcessData["PRO_UID"], $oData->filesManager); + */ return $oData; } - private function loadIdsFor($modelClass, $uidTableField, $idTableField, &$data) { - if(empty($data)) { + private function loadIdsFor($modelClass, $uidTableField, $idTableField, &$data) + { + if (empty($data)) { return $data; } - if(!is_array($data)) { - throw new \Exception("invalid input data form $modelClass($key)" . json_encode($data)); + if (!is_array($data)) { + throw new Exception("Invalid input data form $modelClass($key)" . G::json_encode($data)); } $uidField = explode('.', $uidTableField)[1]; $idField = explode('.', $idTableField)[1]; - if(isset($data[$uidField])) { - //$data is an sigle row + if (isset($data[$uidField])) { + //$data is an single row $model = new $modelClass(); $row = $model->load($data[$uidField]); $data[$idField] = $model->getByName($idTableField, BasePeer::TYPE_COLNAME); } else { //$data is an array of row - foreach($data as &$dataRow) { + foreach ($data as &$dataRow) { $model = new $modelClass(); $row = $model->load($dataRow[$uidField]); $dataRow[$idField] = $model->getByName($idTableField, BasePeer::TYPE_COLNAME);