public function updateDataUidByArrayUid(array $arrayWorkflowData, array $arrayWorkflowFile, array $arrayUid) { try { $processUidOld = $arrayUid[0]["old_uid"]; $processUid = $arrayUid[0]["new_uid"]; //Update Table.Field $arrayUpdateTableField = array("tasks" => array("fieldname" => "TAS_UID", "oldFieldname" => "TAS_UID_OLD"), "webEntryEvent" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), "messageEventDefinition" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), "scriptTask" => array("fieldname" => "ACT_UID", "oldFieldname" => "ACT_UID_OLD"), "timerEvent" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), "emailEvent" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), "abeConfiguration" => array("fieldname" => "TAS_UID", "oldFieldname" => "TAS_UID_OLD")); foreach ($arrayUpdateTableField as $key => $value) { $table = $key; $fieldname = $value["fieldname"]; $oldFieldname = $value["oldFieldname"]; if (isset($arrayWorkflowData[$table])) { foreach ($arrayWorkflowData[$table] as $key2 => $value2) { $uid = $arrayWorkflowData[$table][$key2][$fieldname]; foreach ($arrayUid as $value3) { $arrayItem = $value3; if ($arrayItem["old_uid"] == $uid) { $arrayWorkflowData[$table][$key2][$fieldname] = $arrayItem["new_uid"]; $arrayWorkflowData[$table][$key2][$oldFieldname] = $uid; break; } } } } } //Workflow tables $workflowData = (object) $arrayWorkflowData; $processes = new \Processes(); $processes->setProcessGUID($workflowData, $processUid); $processes->renewAll($workflowData); $arrayWorkflowData = (array) $workflowData; foreach ($arrayWorkflowData["dynaforms"] as $key => $value) { if ($arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"] != "") { $dynaFormContent = $arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"]; foreach ($arrayWorkflowData["uid"] as $value2) { $arrayAux = $value2; foreach ($arrayAux as $key3 => $value3) { $uidOld = $key3; $uid = $value3; $dynaFormContent = str_replace($uidOld, $uid, $dynaFormContent); } } $arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"] = $dynaFormContent; } } //Workflow files foreach ($arrayWorkflowFile as $key => $value) { $arrayFile = $value; foreach ($arrayFile as $key2 => $value2) { $file = $value2; $arrayWorkflowFile[$key][$key2]["file_path"] = str_replace($processUidOld, $processUid, isset($file["file_path"]) ? $file["file_path"] : $file["filepath"]); $arrayWorkflowFile[$key][$key2]["file_content"] = str_replace($processUidOld, $processUid, $file["file_content"]); } } if (isset($arrayWorkflowData["uid"])) { foreach ($arrayWorkflowData["uid"] as $key => $value) { $arrayT = $value; foreach ($arrayT as $key2 => $value2) { $uidOld = $key2; $uid = $value2; foreach ($arrayWorkflowFile as $key3 => $value3) { $arrayFile = $value3; foreach ($arrayFile as $key4 => $value4) { $file = $value4; $arrayWorkflowFile[$key3][$key4]["file_path"] = str_replace($uidOld, $uid, $file["file_path"]); $arrayWorkflowFile[$key3][$key4]["file_content"] = str_replace($uidOld, $uid, $file["file_content"]); } } } } } //Return return array($arrayWorkflowData, $arrayWorkflowFile); } catch (\Exception $e) { self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); throw $e; } }
public function updateDataUidByArrayUid(array $arrayWorkflowData, array $arrayWorkflowFile, array $arrayUid) { try { $processUidOld = $arrayUid[0]["old_uid"]; $processUid = $arrayUid[0]["new_uid"]; //Update Table.Field $arrayUpdateTableField = array( "tasks" => array("fieldname" => "TAS_UID", "oldFieldname" => "TAS_UID_OLD"), //Update TASK.TAS_UID "webEntryEvent" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), //Update WEB_ENTRY_EVENT.EVN_UID "messageEventDefinition" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), //Update MESSAGE_EVENT_DEFINITION.EVN_UID "scriptTask" => array("fieldname" => "ACT_UID", "oldFieldname" => "ACT_UID_OLD"), //Update SCRIPT_TASK.ACT_UID "timerEvent" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD"), //Update TIMER_EVENT.EVN_UID "emailEvent" => array("fieldname" => "EVN_UID", "oldFieldname" => "EVN_UID_OLD") //Update EMAIL_EVENT.EVN_UID ); foreach ($arrayUpdateTableField as $key => $value) { $table = $key; $fieldname = $value["fieldname"]; $oldFieldname = $value["oldFieldname"]; if (isset($arrayWorkflowData[$table])) { foreach ($arrayWorkflowData[$table] as $key2 => $value2) { $uid = $arrayWorkflowData[$table][$key2][$fieldname]; foreach ($arrayUid as $value3) { $arrayItem = $value3; if ($arrayItem["old_uid"] == $uid) { $arrayWorkflowData[$table][$key2][$fieldname] = $arrayItem["new_uid"]; $arrayWorkflowData[$table][$key2][$oldFieldname] = $uid; break; } } } } } //Workflow tables $workflowData = (object)($arrayWorkflowData); $processes = new \Processes(); $processes->setProcessGUID($workflowData, $processUid); $processes->renewAll($workflowData); $arrayWorkflowData = (array)($workflowData); //Workflow files foreach ($arrayWorkflowFile as $key => $value) { $arrayFile = $value; foreach ($arrayFile as $key2 => $value2) { $file = $value2; $arrayWorkflowFile[$key][$key2]["file_path"] = str_replace($processUidOld, $processUid, (isset($file["file_path"]))? $file["file_path"] : $file["filepath"]); $arrayWorkflowFile[$key][$key2]["file_content"] = str_replace($processUidOld, $processUid, $file["file_content"]); } } if (isset($arrayWorkflowData["uid"])) { foreach ($arrayWorkflowData["uid"] as $key => $value) { $arrayT = $value; foreach ($arrayT as $key2 => $value2) { $uidOld = $key2; $uid = $value2; foreach ($arrayWorkflowFile as $key3 => $value3) { $arrayFile = $value3; foreach ($arrayFile as $key4 => $value4) { $file = $value4; $arrayWorkflowFile[$key3][$key4]["file_path"] = str_replace($uidOld, $uid, $file["file_path"]); $arrayWorkflowFile[$key3][$key4]["file_content"] = str_replace($uidOld, $uid, $file["file_content"]); } } } } } //Return return array($arrayWorkflowData, $arrayWorkflowFile); } catch (\Exception $e) { self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); throw $e; } }
if (file_exists(PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid)) { $oDirectory = dir(PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid); while ($sObjectName = $oDirectory->read()) { if ($sObjectName != '.' && $sObjectName != '..') { unlink(PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid . PATH_SEP . $sObjectName); } } $oDirectory->close(); } $sNewProUid = $sProUid; } //Disable current Process and create a new version of the Process if ($option == 2) { $oProcess->disablePreviousProcesses($sProUid); $sNewProUid = $oProcess->getUnusedProcessGUID(); $oProcess->setProcessGUID($oData, $sNewProUid); $oProcess->setProcessParent($oData, $sProUid); $oData->process['PRO_TITLE'] = "New - " . $oData->process['PRO_TITLE'] . ' - ' . date('M d, H:i'); $oProcess->renewAll($oData); if ($processFileType == "pm") { $oProcess->createProcessFromData($oData, $path . $filename); } } //Create a completely new Process without change the current Process if ($option == 3) { //krumo ($oData); die; $sNewProUid = $oProcess->getUnusedProcessGUID(); $oProcess->setProcessGUID($oData, $sNewProUid); $oData->process['PRO_TITLE'] = G::LoadTranslation('ID_COPY_OF') . ' - ' . $oData->process['PRO_TITLE'] . ' - ' . date('M d, H:i'); $oProcess->renewAll($oData); if ($processFileType == "pm") {
public function updateDataUidByArrayUid(array $arrayWorkflowData, array $arrayWorkflowFile, array $arrayUid) { try { $processUidOld = $arrayUid[0]["old_uid"]; $processUid = $arrayUid[0]["new_uid"]; //Update TASK.TAS_UID foreach ($arrayWorkflowData["tasks"] as $key => $value) { $taskUid = $arrayWorkflowData["tasks"][$key]["TAS_UID"]; foreach ($arrayUid as $value2) { $arrayItem = $value2; if ($arrayItem["old_uid"] == $taskUid) { $arrayWorkflowData["tasks"][$key]["TAS_UID_OLD"] = $taskUid; $arrayWorkflowData["tasks"][$key]["TAS_UID"] = $arrayItem["new_uid"]; break; } } } //Update WEB_ENTRY_EVENT.EVN_UID if (isset($arrayWorkflowData["webEntryEvent"])) { foreach ($arrayWorkflowData["webEntryEvent"] as $key => $value) { $webEntryEventEventUid = $arrayWorkflowData["webEntryEvent"][$key]["EVN_UID"]; foreach ($arrayUid as $value2) { $arrayItem = $value2; if ($arrayItem["old_uid"] == $webEntryEventEventUid) { $arrayWorkflowData["webEntryEvent"][$key]["EVN_UID"] = $arrayItem["new_uid"]; break; } } } } //Update MESSAGE_EVENT_DEFINITION.EVN_UID if (isset($arrayWorkflowData["messageEventDefinition"])) { foreach ($arrayWorkflowData["messageEventDefinition"] as $key => $value) { $messageEventDefinitionEventUid = $arrayWorkflowData["messageEventDefinition"][$key]["EVN_UID"]; foreach ($arrayUid as $value2) { $arrayItem = $value2; if ($arrayItem["old_uid"] == $messageEventDefinitionEventUid) { $arrayWorkflowData["messageEventDefinition"][$key]["EVN_UID"] = $arrayItem["new_uid"]; break; } } } } //Workflow tables $workflowData = (object)($arrayWorkflowData); $processes = new \Processes(); $processes->setProcessGUID($workflowData, $processUid); $processes->renewAll($workflowData); $arrayWorkflowData = (array)($workflowData); //Workflow files foreach ($arrayWorkflowFile as $key => $value) { $arrayFile = $value; foreach ($arrayFile as $key2 => $value2) { $file = $value2; $arrayWorkflowFile[$key][$key2]["file_path"] = str_replace($processUidOld, $processUid, (isset($file["file_path"]))? $file["file_path"] : $file["filepath"]); $arrayWorkflowFile[$key][$key2]["file_content"] = str_replace($processUidOld, $processUid, $file["file_content"]); } } if (isset($arrayWorkflowData["uid"])) { foreach ($arrayWorkflowData["uid"] as $key => $value) { $arrayT = $value; foreach ($arrayT as $key2 => $value2) { $uidOld = $key2; $uid = $value2; foreach ($arrayWorkflowFile as $key3 => $value3) { $arrayFile = $value3; foreach ($arrayFile as $key4 => $value4) { $file = $value4; $arrayWorkflowFile[$key3][$key4]["file_path"] = str_replace($uidOld, $uid, $file["file_path"]); $arrayWorkflowFile[$key3][$key4]["file_content"] = str_replace($uidOld, $uid, $file["file_content"]); } } } } } //Return return array($arrayWorkflowData, $arrayWorkflowFile); } catch (\Exception $e) { self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); throw $e; } }