From 3ac5fdf9bafb530f257df1a9beddafdf6a872a6c Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Fri, 13 Feb 2015 14:57:00 -0400 Subject: [PATCH 1/6] I solved the issue PM-140 and PM-1547 --- workflow/engine/classes/class.derivation.php | 9 ++++++++- workflow/engine/methods/cases/cases_Step.php | 11 ++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 9c3328886..7b5fc2b65 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -240,7 +240,14 @@ class Derivation //1. There is no rule if (count($arrayNextTask) == 0) { - throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); + $c = new Criteria("workflow"); + $c->add(BpmnProcessPeer::PRJ_UID, $_SESSION['PROCESS']); + $res = BpmnProcessPeer::doSelect($c); + if( sizeof($res) == 0 ){ + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); + }else{ + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_BPMN_RULE")); + } } //Return diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 0ff76c553..d1b8bc9b1 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -1019,7 +1019,16 @@ try { } //Add content content step - End } catch (Exception $e) { - G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + //Check if the process is BPMN + $c = new Criteria("workflow"); + $c->add(BpmnProcessPeer::PRJ_UID, $_SESSION['PROCESS']); + $res = BpmnProcessPeer::doSelect($c); + if( sizeof($res) == 0 ){ + G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + }else{ + G::SendTemporalMessage( G::LoadTranslation( 'ID_BPMN_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + } + $aMessage = array (); $aMessage['MESSAGE'] = $e->getMessage(); $G_PUBLISH = new Publisher(); From d485b5a3f67e88c934b064b7f6ccdee4e9e9f265 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Fri, 13 Feb 2015 15:56:51 -0400 Subject: [PATCH 2/6] PM-1366 --- workflow/engine/templates/processes/main.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 97717d73f..33d52b715 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -476,6 +476,8 @@ Ext.onReady(function(){ function newProcess(params) { + if (winDesigner) + winDesigner.close(); params = typeof params == 'undefined' ? {type:'classicProject'} : params; // TODO this variable have hardcoded labels, it must be changed on the future @@ -589,6 +591,8 @@ function saveProcess() "../designer?prj_uid="+resp.result.PRO_UID, '_blank' ); + Ext.getCmp('newProjectWin').close(); + processesGrid.store.reload(); } else { PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED')); } From ae4d111bfadc27bb17e38c8b2067d061c5750e88 Mon Sep 17 00:00:00 2001 From: Brayan Pereyra Date: Fri, 13 Feb 2015 16:15:31 -0400 Subject: [PATCH 3/6] BUG-16676 Default flow no tiene funcionalidad --- workflow/engine/classes/class.derivation.php | 10 ++++------ .../model/map/ListParticipatedLastMapBuilder.php | 2 +- workflow/engine/classes/model/om/BaseBpmnFlow.php | 14 +++++++------- workflow/engine/config/schema.xml | 2 +- workflow/engine/data/mysql/schema.sql | 2 +- 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 9c3328886..de0c40c80 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -142,7 +142,6 @@ class Derivation $arrayNextTask = array(); $arrayNextTaskDefault = array(); - $i = 0; //SELECT * //FROM APP_DELEGATION AS A @@ -211,18 +210,17 @@ class Derivation } if ($flagContinue) { - $arrayNextTask[++$i] = $this->prepareInformationTask($arrayRouteData); + $arrayNextTask[] = $this->prepareInformationTask($arrayRouteData); } } if (count($arrayNextTask) == 0 && count($arrayNextTaskDefault) > 0) { - $arrayNextTask[++$i] = $this->prepareInformationTask($arrayNextTaskDefault); + $arrayNextTask[] = $this->prepareInformationTask($arrayNextTaskDefault); } //Check Task GATEWAYTOGATEWAY $arrayNextTaskBk = $arrayNextTask; $arrayNextTask = array(); - $i = 0; foreach ($arrayNextTaskBk as $value) { $arrayNextTaskData = $value; @@ -231,10 +229,10 @@ class Derivation $arrayAux = $this->prepareInformation($arrayData, $arrayNextTaskData["NEXT_TASK"]["TAS_UID"]); foreach ($arrayAux as $value2) { - $arrayNextTask[++$i] = $value2; + $arrayNextTask[] = $value2; } } else { - $arrayNextTask[++$i] = $arrayNextTaskData; + $arrayNextTask[] = $arrayNextTaskData; } } diff --git a/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php b/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php index 10a3e1bf3..78843fad8 100644 --- a/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php +++ b/workflow/engine/classes/model/map/ListParticipatedLastMapBuilder.php @@ -81,7 +81,7 @@ class ListParticipatedLastMapBuilder $tMap->addColumn('APP_TAS_TITLE', 'AppTasTitle', 'string', CreoleTypes::VARCHAR, true, 255); - $tMap->addColumn('APP_STATUS', 'AppStatus', 'string', CreoleTypes::VARCHAR, true, 20); + $tMap->addColumn('APP_STATUS', 'AppStatus', 'string', CreoleTypes::VARCHAR, false, 20); $tMap->addColumn('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null); diff --git a/workflow/engine/classes/model/om/BaseBpmnFlow.php b/workflow/engine/classes/model/om/BaseBpmnFlow.php index 15f28a2ad..4badba254 100755 --- a/workflow/engine/classes/model/om/BaseBpmnFlow.php +++ b/workflow/engine/classes/model/om/BaseBpmnFlow.php @@ -141,7 +141,7 @@ abstract class BaseBpmnFlow extends BaseObject implements Persistent */ protected $flo_position = 0; - /** + /** * @var BpmnProject */ protected $aBpmnProject; @@ -365,7 +365,7 @@ abstract class BaseBpmnFlow extends BaseObject implements Persistent /** * Get the [flo_position] column value. - * + * * @return int */ public function getFloPosition() @@ -374,7 +374,7 @@ abstract class BaseBpmnFlow extends BaseObject implements Persistent return $this->flo_position; } - /* + /** * Set the value of [flo_uid] column. * * @param string $v new value @@ -780,7 +780,7 @@ abstract class BaseBpmnFlow extends BaseObject implements Persistent /** * Set the value of [flo_position] column. - * + * * @param int $v new value * @return void */ @@ -794,9 +794,9 @@ abstract class BaseBpmnFlow extends BaseObject implements Persistent } if ($this->flo_position !== $v || $v === 0) { - $this->flo_position = $v; - $this->modifiedColumns[] = BpmnFlowPeer::FLO_POSITION; - } + $this->flo_position = $v; + $this->modifiedColumns[] = BpmnFlowPeer::FLO_POSITION; + } } // setFloPosition() diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index 411c38c86..6badf1c45 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -4015,7 +4015,7 @@ - + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index e034b44a1..79ea43eb2 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -2263,7 +2263,7 @@ CREATE TABLE `LIST_PARTICIPATED_LAST` `APP_TITLE` VARCHAR(255) default '' NOT NULL, `APP_PRO_TITLE` VARCHAR(255) default '' NOT NULL, `APP_TAS_TITLE` VARCHAR(255) default '' NOT NULL, - `APP_STATUS` VARCHAR(20) default '0' NOT NULL, + `APP_STATUS` VARCHAR(20) default '0', `DEL_INDEX` INTEGER default 0 NOT NULL, `DEL_PREVIOUS_USR_UID` VARCHAR(32) default '', `DEL_PREVIOUS_USR_USERNAME` VARCHAR(100) default '', From 762f38ab7e6cd6f38608bcafc12e096355f6cc4b Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Fri, 13 Feb 2015 16:26:45 -0400 Subject: [PATCH 4/6] PM-1368 --- workflow/engine/templates/processes/main.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 740c0c357..c6f3a92b0 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -1163,6 +1163,11 @@ importProcessExistProcess = function() importProcess = function() { + if (winDesigner) { + winDesigner.close(); + if (!winDesigner.closed) + return; + } var processFileType = importProcessGlobal.processFileType; var processFileTypeTitle = (processFileType == "pm") ? "" : " " + processFileType; From 0087164f0d46cde68d0266ec5404bba1cd8fc941 Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Fri, 13 Feb 2015 16:30:11 -0400 Subject: [PATCH 5/6] I replace the code with a function isBpmnProcess --- workflow/engine/classes/class.derivation.php | 11 +++++------ workflow/engine/classes/model/Process.php | 13 +++++++++++++ workflow/engine/methods/cases/cases_Step.php | 11 ++++------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 7b5fc2b65..4950006a9 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -240,13 +240,12 @@ class Derivation //1. There is no rule if (count($arrayNextTask) == 0) { - $c = new Criteria("workflow"); - $c->add(BpmnProcessPeer::PRJ_UID, $_SESSION['PROCESS']); - $res = BpmnProcessPeer::doSelect($c); - if( sizeof($res) == 0 ){ - throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); + $oProcess = new Process(); + $oProcessFieds = $oProcess->Load( $_SESSION['PROCESS'] ); + if(isset($oProcessFieds['PRO_BPMN']) && $oProcessFieds['PRO_BPMN'] == 1){ + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_BPMN_RULE")); }else{ - throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_BPMN_RULE")); + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); } } diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index 32d67cc4d..ad4dd65c0 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -326,6 +326,8 @@ class Process extends BaseProcess } $aFields['PRO_DYNAFORMS'] = @unserialize( $aFields['PRO_DYNAFORMS'] ); + //Check if is BPMN process + $aFields['PRO_BPMN'] = $this->isBpmnProcess($ProUid); return $aFields; } else { @@ -1009,5 +1011,16 @@ class Process extends BaseProcess return 0; } } + + public function isBpmnProcess($proUid){ + $c = new Criteria("workflow"); + $c->add(BpmnProcessPeer::PRJ_UID, $proUid); + $res = BpmnProcessPeer::doSelect($c); + if( sizeof($res) == 0 ){ + return 0; + }else{ + return 1; + } + } } diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index d1b8bc9b1..19d11f170 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -1019,14 +1019,11 @@ try { } //Add content content step - End } catch (Exception $e) { - //Check if the process is BPMN - $c = new Criteria("workflow"); - $c->add(BpmnProcessPeer::PRJ_UID, $_SESSION['PROCESS']); - $res = BpmnProcessPeer::doSelect($c); - if( sizeof($res) == 0 ){ - G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + //Check if the process is BPMN + if(isset($oProcessFieds['PRO_BPMN']) && $oProcessFieds['PRO_BPMN'] == 1){ + G::SendTemporalMessage( G::LoadTranslation( 'ID_BPMN_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); }else{ - G::SendTemporalMessage( G::LoadTranslation( 'ID_BPMN_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); } $aMessage = array (); From fa7f8290bd9ecb1c1cec8a6a1dafa5001b173bfa Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Fri, 13 Feb 2015 16:33:22 -0400 Subject: [PATCH 6/6] I added some comments --- workflow/engine/classes/model/Process.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index ad4dd65c0..0cf034466 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -1011,7 +1011,12 @@ class Process extends BaseProcess return 0; } } - + /** + * Check is the Process is BPMN. + * + * @param string $ProUid the uid of the Prolication + * @return int 1 if is BPMN process or 0 if a Normal process + */ public function isBpmnProcess($proUid){ $c = new Criteria("workflow"); $c->add(BpmnProcessPeer::PRJ_UID, $proUid);