diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php
index 9c3328886..e39589493 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,16 +229,22 @@ 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;
}
}
//1. There is no rule
if (count($arrayNextTask) == 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_RULE"));
+ }
}
//Return
diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php
index 32d67cc4d..0cf034466 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,21 @@ 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);
+ $res = BpmnProcessPeer::doSelect($c);
+ if( sizeof($res) == 0 ){
+ return 0;
+ }else{
+ return 1;
+ }
+ }
}
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 b5ebe8129..4c3a8eba0 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 bb4595bdb..cf4d3ff61 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 '',
diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php
index 872daac9e..68b364007 100755
--- a/workflow/engine/methods/cases/cases_Step.php
+++ b/workflow/engine/methods/cases/cases_Step.php
@@ -1026,7 +1026,13 @@ 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
+ 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_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 );
+ }
+
$aMessage = array ();
$aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH = new Publisher();
diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js
index 740c0c357..a7876f6ad 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,
'winDesigner'
);
+ Ext.getCmp('newProjectWin').close();
+ processesGrid.store.reload();
} else {
PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED'));
}
@@ -1163,6 +1167,11 @@ importProcessExistProcess = function()
importProcess = function()
{
+ if (winDesigner) {
+ winDesigner.close();
+ if (!winDesigner.closed)
+ return;
+ }
var processFileType = importProcessGlobal.processFileType;
var processFileTypeTitle = (processFileType == "pm") ? "" : " " + processFileType;