From 21b8072452b45be4f1516696a7f58f572d9bb8dc Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Mon, 2 Mar 2015 17:48:53 -0400 Subject: [PATCH 01/11] PM-1700 "Ocurre un error al importar y actualizar un proceso..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue: Ocurre un error al importar y actualizar un proceso de tipo bpmn, despliega un error sin descripció el proceso se convierte en un proceso de tipo classic Cause: Mala definicion de variables para el "Add Audit Log" Solution: Se a suprimido las variables, ahora se utiliza el objeto para el seteo de variables --- workflow/engine/classes/model/OutputDocument.php | 10 ++++++---- workflow/engine/classes/model/Triggers.php | 16 ++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index 7a0e2fd64..9929c2e7c 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -201,7 +201,7 @@ class OutputDocument extends BaseOutputDocument } $description .= ", By clicking on the generated file link: ".$genLink; G::auditLog("CreateOutputDocument", $description); - + return $aData['OUT_DOC_UID']; } else { $sMessage = ''; @@ -329,9 +329,11 @@ class OutputDocument extends BaseOutputDocument Content::removeContent('OUT_DOC_TEMPLATE', '', $oOutputDocument->getOutDocUid()); $iResult = $oOutputDocument->delete(); $oConnection->commit(); - //Add Audit Log - G::auditLog("DeleteOutputDocument", "Output Document Name: ".$outputName.", Output Document Uid: ".$sOutDocUid.", Description: ".$outputDesc.", Filename generated: ".$outputFile); + //Add Audit Log + G::auditLog("DeleteOutputDocument", "Output Document Name: " . $oOutputDocument->getOutDocTitle() . ", Output Document Uid: " . $sOutDocUid . ", Description: " . $oOutputDocument->getOutDocDescription() . ", Filename generated: " . $oOutputDocument->getOutDocFilename()); + + //Return return $iResult; } else { throw (new Exception('This row doesn\'t exist!')); @@ -845,7 +847,7 @@ class OutputDocument extends BaseOutputDocument $sContent = str_ireplace("", "", $sContent); $sContent = str_replace($nrthtml, $nrt, $sContent); - + $sContent = str_replace("margin-left", "text-indent", $sContent); // define Save file diff --git a/workflow/engine/classes/model/Triggers.php b/workflow/engine/classes/model/Triggers.php index 13321d6d0..0f381703c 100755 --- a/workflow/engine/classes/model/Triggers.php +++ b/workflow/engine/classes/model/Triggers.php @@ -189,7 +189,7 @@ class Triggers extends BaseTriggers $description .= ", Description: ".$aData['TRI_DESCRIPTION']; } G::auditLog("CreateTrigger", $description); - + return $result; } else { $con->rollback(); @@ -240,18 +240,14 @@ class Triggers extends BaseTriggers $con->begin(); $oTri = TriggersPeer::retrieveByPK( $TriUid ); if (!is_null($oTri)) { - $triggerName = $this->getTriTitle(); - $triggerDesc = $this->getTriDescription(); - Content::removeContent( 'TRI_TITLE', '', $this->getTriUid()); - Content::removeContent( 'TRI_DESCRIPTION', '', $this->getTriUid()); + Content::removeContent("TRI_TITLE", "", $TriUid); + Content::removeContent("TRI_DESCRIPTION", "", $TriUid); + $result = $oTri->delete(); $con->commit(); + //Add Audit Log - $description = "Trigger Name: ".$triggerName.", Trigger Uid: ".$TriUid; - if (isset ( $triggerDesc )) { - $description .= ", Description: ".$triggerDesc; - } - G::auditLog("DeleteTrigger", $description); + G::auditLog("DeleteTrigger", "Trigger Name: " . $oTri->getTriTitle() . ", Trigger Uid: " . $TriUid . ", Description: " . $oTri->getTriDescription()); } return $result; } catch (Exception $e) { From 752e65a57f95cf1c1b46b752de2accd7f6777be3 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Tue, 3 Mar 2015 16:32:11 -0400 Subject: [PATCH 02/11] PM-1691 "0016872: Event execution times are not being..." SOLVED Issue: 0016872: Event execution times are not being generated correctly Cause: Se esta mandando un numero real (ej 955.33) a la funcion "strtotime" Solution: Se esta redondeando el numero con la funcion "round", para que de esa manera se mande un numero entero a la funcion "strtotime" Explanation: - En nuestro "Calendario" se tiene definido por default que son 8 horas de trabajo por dia (8 horas/dia) - En el proceso adjunto en el bug, se tiene definido lo siguiente: > ... > The time starts with task: Task2 > Estimated Task duration: 8 hours (esto se transforma a: 0.33333333333333 (8/24), segun la wiki) > Execution time: 0 days After interval ends > ... Estos valores mas el resto de campos son almacenados en la tabla "EVENT" - Ahora como ejemplo tenemos el siguiente caso: en fecha y hora "2015-03-03 13:49:52" se inicia un caso con el Task1 y es derivado al Task2, entonces se crea un registro en la tabla "APP_EVENT". El campo que es objeto de estudio es "APP_EVENT.APP_EVN_ACTION_DATE", el cual tiene un valor de "2015-03-03 16:29:52" - Entonces el analisis es el siguiente: 0.33333333333333 dias * 8 horas/dia = 2.6666666666666 horas Lo que quiere decir que el cron.php ejecutara/iniciara/revisara el caso el "2015-03-03 13:49:52" + "2.6666666666666 horas" osea el "2015-03-03 16:29:52" --- workflow/engine/classes/class.calendar.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.calendar.php b/workflow/engine/classes/class.calendar.php index 07939d4bd..e6e28c5b9 100755 --- a/workflow/engine/classes/class.calendar.php +++ b/workflow/engine/classes/class.calendar.php @@ -414,7 +414,7 @@ class calendar extends CalendarDefinition $hoursDuration -= (float)($secondRes/3600); //$dataLog[] = (float)($secondRes/3600); } else { - $newDate = date('Y-m-d H:i:s', strtotime('+' . (((float)$hoursDuration)*3600) . ' seconds', strtotime($newDate))); + $newDate = date("Y-m-d H:i:s", strtotime("+" . round(((float)($hoursDuration)) * 3600) . " seconds", strtotime($newDate))); //$dataLog[] = (float)($hoursDuration); $hoursDuration = 0; } @@ -797,4 +797,4 @@ class calendar extends CalendarDefinition } } -?> \ No newline at end of file +?> From c11b14fee967b7ccd9f892be2e23a5377ac490a3 Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Wed, 4 Mar 2015 16:11:01 -0400 Subject: [PATCH 03/11] PM-1650 Nuevo directorio para filtrar xss --- ...166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser | Bin 0 -> 25532 bytes ...03c8ec0e84e7feb92afd4c0f1735841b5fdacf,1.ser | Bin 0 -> 516 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.6.0,24166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser create mode 100644 gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.6.0,8d03c8ec0e84e7feb92afd4c0f1735841b5fdacf,1.ser diff --git a/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.6.0,24166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser b/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.6.0,24166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser new file mode 100644 index 0000000000000000000000000000000000000000..fe7977acbaf2b8d6484375b1d243fcfc794e314a GIT binary patch literal 25532 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 literal 0 HcmV?d00001 From 578d58a89fca01033503d10cbf9e1b7f2f2f1dd5 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Wed, 4 Mar 2015 16:51:41 -0400 Subject: [PATCH 04/11] PM-1723 "Designer: Se pierde las configuraciones de un..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue: Designer: Se pierde las configuraciones de un subproceso al importar el proceso Cause: Al momento de importar no se esta registrando de manera correcta los registros en la tabla "SUB_PROCESS" Solution: Se esta validando que los registros en la tabla "SUB_PROCESS" sean unicos al momento de la importacion Explanation: - Al momento de la importacion de un projecto, si un Activity de tipo sub-process tiene definido sus properties, esta configuracion se registra en la tabla correspondiente, no importando si previamente ya fue importado el projecto que es el sub-process. - La importacion del projecto-principal y el projecto-sub-proceso es independiente, este criterio ya se lo tiene en produccion desde hace varias veriones atras. - Un ejemplo practico seria el siguiente caso: Un administrador exporta el projecto-principal y el projecto-sub-proceso, y dadas las circunstancias el projecto-sub-proceso se pierde, dañetc. Entonces el administrador por lo menos lograra importar en su workspace el projecto-principal (pues la importacion no valida que primero deba importar el projecto-sub-proceso) --- workflow/engine/classes/class.processes.php | 17 ++++++++++++++--- .../src/ProcessMaker/Project/Workflow.php | 7 +++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 513b78ba1..6725e8f66 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -1516,9 +1516,20 @@ class Processes { foreach ($SubProcess as $key => $row) { $oSubProcess = new SubProcess(); - if ($oSubProcess->subProcessExists( $row['SP_UID'] )) { - $oSubProcess->remove( $row['SP_UID'] ); - } + + //if ($oSubProcess->subProcessExists( $row['SP_UID'] )) { + // $oSubProcess->remove( $row['SP_UID'] ); + //} + + //Delete + $criteria = new Criteria("workflow"); + + $criteria->add(SubProcessPeer::PRO_PARENT, $row["PRO_PARENT"], Criteria::EQUAL); + $criteria->add(SubProcessPeer::TAS_PARENT, $row["TAS_PARENT"], Criteria::EQUAL); + + $result = SubProcessPeer::doDelete($criteria); + + //Create $res = $oSubProcess->create( $row ); } return; diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index 688023b9d..c46911cfc 100755 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -764,6 +764,13 @@ class Workflow extends Handler $oCriteria->add(\CaseTrackerObjectPeer::PRO_UID, $sProcessUID); \ProcessUserPeer::doDelete($oCriteria); + //Delete SubProcess + $criteria = new \Criteria("workflow"); + + $criteria->add(\SubProcessPeer::PRO_PARENT, $sProcessUID, \Criteria::EQUAL); + + $result = \SubProcessPeer::doDelete($criteria); + //Delete WebEntries $webEntry = new \ProcessMaker\BusinessModel\WebEntry(); From 681dfff07d55d9f319fc35f2f642236e555f3780 Mon Sep 17 00:00:00 2001 From: jonathan Date: Wed, 4 Mar 2015 17:25:52 -0400 Subject: [PATCH 05/11] fix 1423 view proces map legends in internet explorer --- workflow/engine/templates/cases/open.js | 39 ++++++++++++++++--------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index bcd38d4f4..32dbe0da1 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -30,7 +30,14 @@ function formatAMPM(date, initVal) { minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours + ':' + minutes + ' ' + ampm; return strTime; -} +}; + +function isBrowserIE(){ + if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE + return true; + } + return false; +}; Ext.onReady(function(){ openToRevisePanel = function() { @@ -1531,20 +1538,24 @@ Ext.onReady(function(){ TabPanel.setActiveTab(tabId); } else { - TabPanel.add({ - id: tabId, - title: menuSelectedTitle[name], - frameConfig: {name: name + 'Frame', id: name + 'Frame'}, - defaultSrc: uri, - loadMask: {msg: _('ID_LOADING_GRID') + '...'}, - autoWidth: true, - closable: true, - autoScroll: true, - bodyStyle: {height: (PMExt.getBrowser().screen.height - 60) + 'px', overflow: 'auto'} - }).show(); + if(!isBrowserIE()){ + TabPanel.add({ + id: tabId, + title: menuSelectedTitle[name], + frameConfig: {name: name + 'Frame', id: name + 'Frame'}, + defaultSrc: uri, + loadMask: {msg: _('ID_LOADING_GRID') + '...'}, + autoWidth: true, + closable: true, + autoScroll: true, + bodyStyle: {height: (PMExt.getBrowser().screen.height - 60) + 'px', overflow: 'auto'} + }).show(); - TabPanel.doLayout(); - } + TabPanel.doLayout(); + }else{ + var windContainer = window.open(uri,"winContainer"); + } + } } }, failure: function ( result, request) { From 90425e7a6efb4bf49e3f6731ad3a25d903de6aa9 Mon Sep 17 00:00:00 2001 From: jonathan Date: Thu, 5 Mar 2015 10:51:54 -0400 Subject: [PATCH 06/11] update function for recognize ie11 --- workflow/engine/templates/cases/open.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index 32dbe0da1..ea9cc3336 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -33,10 +33,11 @@ function formatAMPM(date, initVal) { }; function isBrowserIE(){ - if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE - return true; - } - return false; + if ( (navigator.userAgent.indexOf("MSIE")!=-1) || (navigator.userAgent.indexOf("Trident")!=-1) ){ + return true; + } else { + return false; + } }; Ext.onReady(function(){ From cb2e834dc17ddb49f7daf80959294f20d0b39022 Mon Sep 17 00:00:00 2001 From: dheeyi Date: Thu, 5 Mar 2015 12:20:19 -0400 Subject: [PATCH 07/11] =?UTF-8?q?PM-1485=200016744:=20In=20the=20BPMN=20De?= =?UTF-8?q?signer,=20can=20not=20connect=20to=20Oracle=20(and=20probably?= =?UTF-8?q?=20MS=20SQL)=20databases=20because=20no=20"Encode"=20options.?= =?UTF-8?q?=20Causa:=20Solo=20exisitia=20en=20el=20dise=C3=B1r=20anterior.?= =?UTF-8?q?=20Solicion:=20Se=20agrego=20esa=20funcionalidad=20al=20nuevo?= =?UTF-8?q?=20dise=C3=B1r.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/class.net.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.net.php b/workflow/engine/classes/class.net.php index 10dd46d50..78e3e2e0a 100755 --- a/workflow/engine/classes/class.net.php +++ b/workflow/engine/classes/class.net.php @@ -213,7 +213,15 @@ class NET } $stat = new Stat(); - $flagTns = (isset($arrayServerData["connectionType"]) && $arrayServerData["connectionType"] == "TNS")? 1 : 0; + if (array_key_exists("connectionType", $arrayServerData) || array_key_exists("DBS_TYPEORACLE", $arrayServerData)) { + if ($arrayServerData["connectionType"] == "TNS" || $arrayServerData["DBS_TYPEORACLE"] == "TNS") { + $flagTns=1; + }else{ + $flagTns=0; + } + }else{ + $flagTns=0; + } if (isset($this->db_user) && (isset($this->db_passwd) || $this->db_passwd == "") && (isset($this->db_sourcename) || $flagTns == 1)) { switch ($pDbDriver) { @@ -323,7 +331,15 @@ class NET set_time_limit( 0 ); $stat = new Stat(); - $flagTns = (isset($arrayServerData["connectionType"]) && $arrayServerData["connectionType"] == "TNS")? 1 : 0; + if (array_key_exists("connectionType", $arrayServerData) || array_key_exists("DBS_TYPEORACLE", $arrayServerData)) { + if ($arrayServerData["connectionType"] == "TNS" || $arrayServerData["DBS_TYPEORACLE"] == "TNS") { + $flagTns=1; + }else{ + $flagTns=0; + } + }else{ + $flagTns=0; + } if (isset($this->db_user) && (isset($this->db_passwd) || $this->db_passwd == "") && (isset($this->db_sourcename) || $flagTns == 1)) { switch ($pDbDriver) { From 8fe15e8ea5364c4d0abda2bd9d1430e05d117eb5 Mon Sep 17 00:00:00 2001 From: dheeyi Date: Thu, 5 Mar 2015 13:16:20 -0400 Subject: [PATCH 08/11] PM-878: Change description of the "processmaker change-password-hash-method" command in the help --- workflow/engine/bin/tasks/cliAddons.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/bin/tasks/cliAddons.php b/workflow/engine/bin/tasks/cliAddons.php index 27af448db..1fdffd8cf 100644 --- a/workflow/engine/bin/tasks/cliAddons.php +++ b/workflow/engine/bin/tasks/cliAddons.php @@ -21,7 +21,7 @@ EOT /*----------------------------------********---------------------------------*/ CLI::taskName('change-password-hash-method'); CLI::taskDescription(<< Date: Thu, 5 Mar 2015 13:38:57 -0400 Subject: [PATCH 09/11] PM-1127 Change following text in the Trigger Wizard. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Causa: Textos definidos previamentes. SolucióEdicion de nuevos textos. --- workflow/engine/classes/class.pmFunctions.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index f69f43390..78dd3f11f 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -885,7 +885,7 @@ function PMFSendMessage( if ($result->status_code == 0) { return 1; } else { - error_log($result->message); + error_log($result->message); return 0; } } @@ -1402,8 +1402,8 @@ function WSUnpauseCase ($caseUid, $delIndex, $userUid) * * Add a case note. * - * @name WSAddCaseNote - * @label WS Add case note + * @name WSAddACaseNote + * @label WS Add a case note * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSAddCaseNote.28.29 * * @param string(32) | $caseUid | ID of the case | The unique ID of the case. @@ -1539,8 +1539,8 @@ function PMFUserList () //its test was successfull * * Add an Input Document. * - * @name PMFAddInputDocument - * @label PMF Add a input document + * @name PMFAddAnInputDocument + * @label PMF Add an input document * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFAddInputDocument.28.29 * * @param string(32) | $inputDocumentUid | ID of the input document | The unique ID of the input document. @@ -2773,8 +2773,8 @@ function PMFUnpauseCase ($caseUid, $delIndex, $userUid) * * Add case note. * - * @name PMFAddCaseNote - * @label PMF Add case note + * @name PMFAddACaseNote + * @label PMF Add a case note * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFAddCaseNote.28.29 * * @param string(32) | $caseUid | ID of the case | The unique ID of the case. From a441d6ff0c93deb500d5fb18a15fba8233c4ba93 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 5 Mar 2015 13:44:46 -0400 Subject: [PATCH 10/11] =?UTF-8?q?PM-1774=20No=20esta=20grabando=20el=20dis?= =?UTF-8?q?e=C3=B1o=20de=20un=20parallel=20join=20en=20el=20dise=C3=B1ador?= =?UTF-8?q?=20SOLVED?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/methods/processes/processes_Ajax.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/workflow/engine/methods/processes/processes_Ajax.php b/workflow/engine/methods/processes/processes_Ajax.php index bb3b3555a..01fe49f6e 100755 --- a/workflow/engine/methods/processes/processes_Ajax.php +++ b/workflow/engine/methods/processes/processes_Ajax.php @@ -462,6 +462,7 @@ try { break; case 5: $sType = 'SEC-JOIN'; + $oProcessNewPattern = new Process(); $taskProcess=$oProcessNewPattern->load($oData->pro_uid); $titleProcess=$taskProcess['PRO_TITLE']; $oTaskNewPattern = new Task(); @@ -478,6 +479,7 @@ try { break; case 8: $sType = 'DISCRIMINATOR'; + $oProcessNewPattern = new Process(); $taskProcess=$oProcessNewPattern->load($oData->pro_uid); $titleProcess=$taskProcess['PRO_TITLE']; $oTaskNewPattern = new Task(); From 09ec9b175d905de80b764b6feced263c30034e28 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 5 Mar 2015 13:47:34 -0400 Subject: [PATCH 11/11] PM-1700 "Ocurre un error al importar y actualizar un proceso..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue: Ocurre un error al importar y actualizar un proceso de tipo bpmn, despliega un error sin descripció el proceso se convierte en un proceso de tipo classic Cause: Mala definicion de variables para el "Add Audit Log" Solution: Se a suprimido las variables, ahora se utiliza el objeto para el seteo de variables --- workflow/engine/classes/class.processes.php | 28 +++++++----- .../src/ProcessMaker/Importer/Importer.php | 44 +++++++++++++------ 2 files changed, 47 insertions(+), 25 deletions(-) diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 6725e8f66..3f0d72746 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -2290,14 +2290,16 @@ class Processes try { $map = array(); - foreach ($data->messageType as $key => $value) { - $record = $value; + if (isset($data->messageType)) { + foreach ($data->messageType as $key => $value) { + $record = $value; - if (isset($record["MSGT_UID"])) { - $newUid = $this->getUnusedMessageTypeUid(); + if (isset($record["MSGT_UID"])) { + $newUid = $this->getUnusedMessageTypeUid(); - $map[$record["MSGT_UID"]] = $newUid; - $data->messageType[$key]["MSGT_UID"] = $newUid; + $map[$record["MSGT_UID"]] = $newUid; + $data->messageType[$key]["MSGT_UID"] = $newUid; + } } } @@ -2344,14 +2346,16 @@ class Processes try { $map = array(); - foreach ($data->messageTypeVariable as $key => $value) { - $record = $value; + if (isset($data->messageTypeVariable)) { + foreach ($data->messageTypeVariable as $key => $value) { + $record = $value; - if (isset($record["MSGTV_UID"])) { - $newUid = $this->getUnusedMessageTypeVariableUid(); + if (isset($record["MSGTV_UID"])) { + $newUid = $this->getUnusedMessageTypeVariableUid(); - $map[$record["MSGTV_UID"]] = $newUid; - $data->messageTypeVariable[$key]["MSGTV_UID"] = $newUid; + $map[$record["MSGTV_UID"]] = $newUid; + $data->messageTypeVariable[$key]["MSGTV_UID"] = $newUid; + } } } diff --git a/workflow/engine/src/ProcessMaker/Importer/Importer.php b/workflow/engine/src/ProcessMaker/Importer/Importer.php index 1aef380dc..a240f90cd 100755 --- a/workflow/engine/src/ProcessMaker/Importer/Importer.php +++ b/workflow/engine/src/ProcessMaker/Importer/Importer.php @@ -73,8 +73,7 @@ abstract class Importer { $this->prepare(); - $name = $this->importData["tables"]["bpmn"]["project"][0]["prj_name"]; - + //Verify data switch ($option) { case self::IMPORT_OPTION_CREATE_NEW: if ($this->targetExists()) { @@ -94,23 +93,12 @@ abstract class Importer self::IMPORT_STAT_TARGET_ALREADY_EXISTS ); } - $generateUid = false; break; case self::IMPORT_OPTION_OVERWRITE: - $this->removeProject(); - // this option shouldn't generate new uid for all objects - $generateUid = false; break; case self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW: - $this->disableProject(); - // this option should generate new uid for all objects - $generateUid = true; - $name = "New - " . $name . " - " . date("M d, H:i"); break; case self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW: - // this option should generate new uid for all objects - $generateUid = true; - $name = \G::LoadTranslation("ID_COPY_OF") . " - " . $name . " - " . date("M d, H:i"); break; } @@ -149,6 +137,36 @@ abstract class Importer break; } + //Import + $name = $this->importData["tables"]["bpmn"]["project"][0]["prj_name"]; + + switch ($option) { + case self::IMPORT_OPTION_CREATE_NEW: + //Shouldn't generate new UID for all objects + $generateUid = false; + break; + case self::IMPORT_OPTION_OVERWRITE: + //Shouldn't generate new UID for all objects + $this->removeProject(); + + $generateUid = false; + break; + case self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW: + //Should generate new UID for all objects + $this->disableProject(); + + $name = "New - " . $name . " - " . date("M d, H:i"); + + $generateUid = true; + break; + case self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW: + //Should generate new UID for all objects + $name = \G::LoadTranslation("ID_COPY_OF") . " - " . $name . " - " . date("M d, H:i"); + + $generateUid = true; + break; + } + $this->importData["tables"]["bpmn"]["project"][0]["prj_name"] = $name; $this->importData["tables"]["bpmn"]["diagram"][0]["dia_name"] = $name; $this->importData["tables"]["bpmn"]["process"][0]["pro_name"] = $name;