diff --git a/gulliver/thirdparty/propel/map/TableMap.php b/gulliver/thirdparty/propel/map/TableMap.php
index 7b1ddc9be..5dac1415e 100755
--- a/gulliver/thirdparty/propel/map/TableMap.php
+++ b/gulliver/thirdparty/propel/map/TableMap.php
@@ -300,7 +300,7 @@ class TableMap {
$col = new ColumnMap($name, $this);
if ($fkTable && $fkColumn) {
- if (substr($fkColumn, '.') > 0 && substr($fkColumn, $fkTable) !== false) {
+ if (substr_count($fkColumn, '.') > 0 && substr($fkColumn, strlen($fkTable)) !== false) {
$fkColumn = substr($fkColumn, strlen($fkTable) + 1);
}
$col->setForeignKey($fkTable, $fkColumn);
diff --git a/workflow/engine/classes/model/map/BpmnEventMapBuilder.php b/workflow/engine/classes/model/map/BpmnEventMapBuilder.php
index 16f9787e9..6cb27475a 100644
--- a/workflow/engine/classes/model/map/BpmnEventMapBuilder.php
+++ b/workflow/engine/classes/model/map/BpmnEventMapBuilder.php
@@ -83,9 +83,9 @@ class BpmnEventMapBuilder
$tMap->addColumn('EVN_CANCEL_ACTIVITY', 'EvnCancelActivity', 'int', CreoleTypes::TINYINT, false, null);
- $tMap->addColumn('EVN_ACTIVITY REF', 'EvnActivity ref', 'string', CreoleTypes::VARCHAR, false, 32);
+ $tMap->addColumn('EVN_ACTIVITY_REF', 'EvnActivityRef', 'string', CreoleTypes::VARCHAR, false, 32);
- $tMap->addColumn('EVN_WAIT_FOR COMPLETION', 'EvnWaitFor completion', 'int', CreoleTypes::TINYINT, false, null);
+ $tMap->addColumn('EVN_WAIT_FOR_COMPLETION', 'EvnWaitForCompletion', 'int', CreoleTypes::TINYINT, false, null);
$tMap->addColumn('EVN_ERROR_NAME', 'EvnErrorName', 'string', CreoleTypes::VARCHAR, false, 255);
diff --git a/workflow/engine/classes/model/om/BaseBpmnEvent.php b/workflow/engine/classes/model/om/BaseBpmnEvent.php
index be9ccdee2..6fed383b6 100644
--- a/workflow/engine/classes/model/om/BaseBpmnEvent.php
+++ b/workflow/engine/classes/model/om/BaseBpmnEvent.php
@@ -82,16 +82,16 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
protected $evn_cancel_activity = 0;
/**
- * The value for the evn_activity ref field.
+ * The value for the evn_activity_ref field.
* @var string
*/
- protected $evn_activity ref = '';
+ protected $evn_activity_ref = '';
/**
- * The value for the evn_wait_for completion field.
+ * The value for the evn_wait_for_completion field.
* @var int
*/
- protected $evn_wait_for completion = 1;
+ protected $evn_wait_for_completion = 1;
/**
* The value for the evn_error_name field.
@@ -289,25 +289,25 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
}
/**
- * Get the [evn_activity ref] column value.
+ * Get the [evn_activity_ref] column value.
*
* @return string
*/
- public function getEvnActivity ref()
+ public function getEvnActivityRef()
{
- return $this->evn_activity ref;
+ return $this->evn_activity_ref;
}
/**
- * Get the [evn_wait_for completion] column value.
+ * Get the [evn_wait_for_completion] column value.
*
* @return int
*/
- public function getEvnWaitFor completion()
+ public function getEvnWaitForCompletion()
{
- return $this->evn_wait_for completion;
+ return $this->evn_wait_for_completion;
}
/**
@@ -649,12 +649,12 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
} // setEvnCancelActivity()
/**
- * Set the value of [evn_activity ref] column.
+ * Set the value of [evn_activity_ref] column.
*
* @param string $v new value
* @return void
*/
- public function setEvnActivity ref($v)
+ public function setEvnActivityRef($v)
{
// Since the native PHP type for this column is string,
@@ -663,20 +663,20 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$v = (string) $v;
}
- if ($this->evn_activity ref !== $v || $v === '') {
- $this->evn_activity ref = $v;
- $this->modifiedColumns[] = BpmnEventPeer::EVN_ACTIVITY REF;
+ if ($this->evn_activity_ref !== $v || $v === '') {
+ $this->evn_activity_ref = $v;
+ $this->modifiedColumns[] = BpmnEventPeer::EVN_ACTIVITY_REF;
}
- } // setEvnActivity ref()
+ } // setEvnActivityRef()
/**
- * Set the value of [evn_wait_for completion] column.
+ * Set the value of [evn_wait_for_completion] column.
*
* @param int $v new value
* @return void
*/
- public function setEvnWaitFor completion($v)
+ public function setEvnWaitForCompletion($v)
{
// Since the native PHP type for this column is integer,
@@ -685,12 +685,12 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$v = (int) $v;
}
- if ($this->evn_wait_for completion !== $v || $v === 1) {
- $this->evn_wait_for completion = $v;
- $this->modifiedColumns[] = BpmnEventPeer::EVN_WAIT_FOR COMPLETION;
+ if ($this->evn_wait_for_completion !== $v || $v === 1) {
+ $this->evn_wait_for_completion = $v;
+ $this->modifiedColumns[] = BpmnEventPeer::EVN_WAIT_FOR_COMPLETION;
}
- } // setEvnWaitFor completion()
+ } // setEvnWaitForCompletion()
/**
* Set the value of [evn_error_name] column.
@@ -991,9 +991,9 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$this->evn_cancel_activity = $rs->getInt($startcol + 8);
- $this->evn_activity ref = $rs->getString($startcol + 9);
+ $this->evn_activity_ref = $rs->getString($startcol + 9);
- $this->evn_wait_for completion = $rs->getInt($startcol + 10);
+ $this->evn_wait_for_completion = $rs->getInt($startcol + 10);
$this->evn_error_name = $rs->getString($startcol + 11);
@@ -1294,10 +1294,10 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
return $this->getEvnCancelActivity();
break;
case 9:
- return $this->getEvnActivity ref();
+ return $this->getEvnActivityRef();
break;
case 10:
- return $this->getEvnWaitFor completion();
+ return $this->getEvnWaitForCompletion();
break;
case 11:
return $this->getEvnErrorName();
@@ -1364,8 +1364,8 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$keys[6] => $this->getEvnIsInterrupting(),
$keys[7] => $this->getEvnAttachedTo(),
$keys[8] => $this->getEvnCancelActivity(),
- $keys[9] => $this->getEvnActivity ref(),
- $keys[10] => $this->getEvnWaitFor completion(),
+ $keys[9] => $this->getEvnActivityRef(),
+ $keys[10] => $this->getEvnWaitForCompletion(),
$keys[11] => $this->getEvnErrorName(),
$keys[12] => $this->getEvnErrorCode(),
$keys[13] => $this->getEvnEscalationName(),
@@ -1437,10 +1437,10 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$this->setEvnCancelActivity($value);
break;
case 9:
- $this->setEvnActivity ref($value);
+ $this->setEvnActivityRef($value);
break;
case 10:
- $this->setEvnWaitFor completion($value);
+ $this->setEvnWaitForCompletion($value);
break;
case 11:
$this->setEvnErrorName($value);
@@ -1538,11 +1538,11 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
}
if (array_key_exists($keys[9], $arr)) {
- $this->setEvnActivity ref($arr[$keys[9]]);
+ $this->setEvnActivityRef($arr[$keys[9]]);
}
if (array_key_exists($keys[10], $arr)) {
- $this->setEvnWaitFor completion($arr[$keys[10]]);
+ $this->setEvnWaitForCompletion($arr[$keys[10]]);
}
if (array_key_exists($keys[11], $arr)) {
@@ -1640,12 +1640,12 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$criteria->add(BpmnEventPeer::EVN_CANCEL_ACTIVITY, $this->evn_cancel_activity);
}
- if ($this->isColumnModified(BpmnEventPeer::EVN_ACTIVITY REF)) {
- $criteria->add(BpmnEventPeer::EVN_ACTIVITY REF, $this->evn_activity ref);
+ if ($this->isColumnModified(BpmnEventPeer::EVN_ACTIVITY_REF)) {
+ $criteria->add(BpmnEventPeer::EVN_ACTIVITY_REF, $this->evn_activity_ref);
}
- if ($this->isColumnModified(BpmnEventPeer::EVN_WAIT_FOR COMPLETION)) {
- $criteria->add(BpmnEventPeer::EVN_WAIT_FOR COMPLETION, $this->evn_wait_for completion);
+ if ($this->isColumnModified(BpmnEventPeer::EVN_WAIT_FOR_COMPLETION)) {
+ $criteria->add(BpmnEventPeer::EVN_WAIT_FOR_COMPLETION, $this->evn_wait_for_completion);
}
if ($this->isColumnModified(BpmnEventPeer::EVN_ERROR_NAME)) {
@@ -1771,9 +1771,9 @@ abstract class BaseBpmnEvent extends BaseObject implements Persistent
$copyObj->setEvnCancelActivity($this->evn_cancel_activity);
- $copyObj->setEvnActivity ref($this->evn_activity ref);
+ $copyObj->setEvnActivityRef($this->evn_activity_ref);
- $copyObj->setEvnWaitFor completion($this->evn_wait_for completion);
+ $copyObj->setEvnWaitForCompletion($this->evn_wait_for_completion);
$copyObj->setEvnErrorName($this->evn_error_name);
diff --git a/workflow/engine/classes/model/om/BaseBpmnEventPeer.php b/workflow/engine/classes/model/om/BaseBpmnEventPeer.php
index ec7856da4..97cf75933 100644
--- a/workflow/engine/classes/model/om/BaseBpmnEventPeer.php
+++ b/workflow/engine/classes/model/om/BaseBpmnEventPeer.php
@@ -58,11 +58,11 @@ abstract class BaseBpmnEventPeer
/** the column name for the EVN_CANCEL_ACTIVITY field */
const EVN_CANCEL_ACTIVITY = 'BPMN_EVENT.EVN_CANCEL_ACTIVITY';
- /** the column name for the EVN_ACTIVITY REF field */
- const EVN_ACTIVITY REF = 'BPMN_EVENT.EVN_ACTIVITY REF';
+ /** the column name for the EVN_ACTIVITY_REF field */
+ const EVN_ACTIVITY_REF = 'BPMN_EVENT.EVN_ACTIVITY_REF';
- /** the column name for the EVN_WAIT_FOR COMPLETION field */
- const EVN_WAIT_FOR COMPLETION = 'BPMN_EVENT.EVN_WAIT_FOR COMPLETION';
+ /** the column name for the EVN_WAIT_FOR_COMPLETION field */
+ const EVN_WAIT_FOR_COMPLETION = 'BPMN_EVENT.EVN_WAIT_FOR_COMPLETION';
/** the column name for the EVN_ERROR_NAME field */
const EVN_ERROR_NAME = 'BPMN_EVENT.EVN_ERROR_NAME';
@@ -111,9 +111,9 @@ abstract class BaseBpmnEventPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
- BasePeer::TYPE_PHPNAME => array ('EvnUid', 'PrjUid', 'ProUid', 'EvnName', 'EvnType', 'EvnMarker', 'EvnIsInterrupting', 'EvnAttachedTo', 'EvnCancelActivity', 'EvnActivity ref', 'EvnWaitFor completion', 'EvnErrorName', 'EvnErrorCode', 'EvnEscalationName', 'EvnEscalationCode', 'EvnCondition', 'EvnMessage', 'EvnOprerationName', 'EvnOperationImplementationRef', 'EvnTimeDate', 'EvnTimeCycle', 'EvnTimeDuration', 'EvnBehavior', ),
- BasePeer::TYPE_COLNAME => array (BpmnEventPeer::EVN_UID, BpmnEventPeer::PRJ_UID, BpmnEventPeer::PRO_UID, BpmnEventPeer::EVN_NAME, BpmnEventPeer::EVN_TYPE, BpmnEventPeer::EVN_MARKER, BpmnEventPeer::EVN_IS_INTERRUPTING, BpmnEventPeer::EVN_ATTACHED_TO, BpmnEventPeer::EVN_CANCEL_ACTIVITY, BpmnEventPeer::EVN_ACTIVITY REF, BpmnEventPeer::EVN_WAIT_FOR COMPLETION, BpmnEventPeer::EVN_ERROR_NAME, BpmnEventPeer::EVN_ERROR_CODE, BpmnEventPeer::EVN_ESCALATION_NAME, BpmnEventPeer::EVN_ESCALATION_CODE, BpmnEventPeer::EVN_CONDITION, BpmnEventPeer::EVN_MESSAGE, BpmnEventPeer::EVN_OPRERATION_NAME, BpmnEventPeer::EVN_OPERATION_IMPLEMENTATION_REF, BpmnEventPeer::EVN_TIME_DATE, BpmnEventPeer::EVN_TIME_CYCLE, BpmnEventPeer::EVN_TIME_DURATION, BpmnEventPeer::EVN_BEHAVIOR, ),
- BasePeer::TYPE_FIELDNAME => array ('EVN_UID', 'PRJ_UID', 'PRO_UID', 'EVN_NAME', 'EVN_TYPE', 'EVN_MARKER', 'EVN_IS_INTERRUPTING', 'EVN_ATTACHED_TO', 'EVN_CANCEL_ACTIVITY', 'EVN_ACTIVITY REF', 'EVN_WAIT_FOR COMPLETION', 'EVN_ERROR_NAME', 'EVN_ERROR_CODE', 'EVN_ESCALATION_NAME', 'EVN_ESCALATION_CODE', 'EVN_CONDITION', 'EVN_MESSAGE', 'EVN_OPRERATION_NAME', 'EVN_OPERATION_IMPLEMENTATION_REF', 'EVN_TIME_DATE', 'EVN_TIME_CYCLE', 'EVN_TIME_DURATION', 'EVN_BEHAVIOR', ),
+ BasePeer::TYPE_PHPNAME => array ('EvnUid', 'PrjUid', 'ProUid', 'EvnName', 'EvnType', 'EvnMarker', 'EvnIsInterrupting', 'EvnAttachedTo', 'EvnCancelActivity', 'EvnActivityRef', 'EvnWaitForCompletion', 'EvnErrorName', 'EvnErrorCode', 'EvnEscalationName', 'EvnEscalationCode', 'EvnCondition', 'EvnMessage', 'EvnOprerationName', 'EvnOperationImplementationRef', 'EvnTimeDate', 'EvnTimeCycle', 'EvnTimeDuration', 'EvnBehavior', ),
+ BasePeer::TYPE_COLNAME => array (BpmnEventPeer::EVN_UID, BpmnEventPeer::PRJ_UID, BpmnEventPeer::PRO_UID, BpmnEventPeer::EVN_NAME, BpmnEventPeer::EVN_TYPE, BpmnEventPeer::EVN_MARKER, BpmnEventPeer::EVN_IS_INTERRUPTING, BpmnEventPeer::EVN_ATTACHED_TO, BpmnEventPeer::EVN_CANCEL_ACTIVITY, BpmnEventPeer::EVN_ACTIVITY_REF, BpmnEventPeer::EVN_WAIT_FOR_COMPLETION, BpmnEventPeer::EVN_ERROR_NAME, BpmnEventPeer::EVN_ERROR_CODE, BpmnEventPeer::EVN_ESCALATION_NAME, BpmnEventPeer::EVN_ESCALATION_CODE, BpmnEventPeer::EVN_CONDITION, BpmnEventPeer::EVN_MESSAGE, BpmnEventPeer::EVN_OPRERATION_NAME, BpmnEventPeer::EVN_OPERATION_IMPLEMENTATION_REF, BpmnEventPeer::EVN_TIME_DATE, BpmnEventPeer::EVN_TIME_CYCLE, BpmnEventPeer::EVN_TIME_DURATION, BpmnEventPeer::EVN_BEHAVIOR, ),
+ BasePeer::TYPE_FIELDNAME => array ('EVN_UID', 'PRJ_UID', 'PRO_UID', 'EVN_NAME', 'EVN_TYPE', 'EVN_MARKER', 'EVN_IS_INTERRUPTING', 'EVN_ATTACHED_TO', 'EVN_CANCEL_ACTIVITY', 'EVN_ACTIVITY_REF', 'EVN_WAIT_FOR_COMPLETION', 'EVN_ERROR_NAME', 'EVN_ERROR_CODE', 'EVN_ESCALATION_NAME', 'EVN_ESCALATION_CODE', 'EVN_CONDITION', 'EVN_MESSAGE', 'EVN_OPRERATION_NAME', 'EVN_OPERATION_IMPLEMENTATION_REF', 'EVN_TIME_DATE', 'EVN_TIME_CYCLE', 'EVN_TIME_DURATION', 'EVN_BEHAVIOR', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, )
);
@@ -124,9 +124,9 @@ abstract class BaseBpmnEventPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
- BasePeer::TYPE_PHPNAME => array ('EvnUid' => 0, 'PrjUid' => 1, 'ProUid' => 2, 'EvnName' => 3, 'EvnType' => 4, 'EvnMarker' => 5, 'EvnIsInterrupting' => 6, 'EvnAttachedTo' => 7, 'EvnCancelActivity' => 8, 'EvnActivity ref' => 9, 'EvnWaitFor completion' => 10, 'EvnErrorName' => 11, 'EvnErrorCode' => 12, 'EvnEscalationName' => 13, 'EvnEscalationCode' => 14, 'EvnCondition' => 15, 'EvnMessage' => 16, 'EvnOprerationName' => 17, 'EvnOperationImplementationRef' => 18, 'EvnTimeDate' => 19, 'EvnTimeCycle' => 20, 'EvnTimeDuration' => 21, 'EvnBehavior' => 22, ),
- BasePeer::TYPE_COLNAME => array (BpmnEventPeer::EVN_UID => 0, BpmnEventPeer::PRJ_UID => 1, BpmnEventPeer::PRO_UID => 2, BpmnEventPeer::EVN_NAME => 3, BpmnEventPeer::EVN_TYPE => 4, BpmnEventPeer::EVN_MARKER => 5, BpmnEventPeer::EVN_IS_INTERRUPTING => 6, BpmnEventPeer::EVN_ATTACHED_TO => 7, BpmnEventPeer::EVN_CANCEL_ACTIVITY => 8, BpmnEventPeer::EVN_ACTIVITY REF => 9, BpmnEventPeer::EVN_WAIT_FOR COMPLETION => 10, BpmnEventPeer::EVN_ERROR_NAME => 11, BpmnEventPeer::EVN_ERROR_CODE => 12, BpmnEventPeer::EVN_ESCALATION_NAME => 13, BpmnEventPeer::EVN_ESCALATION_CODE => 14, BpmnEventPeer::EVN_CONDITION => 15, BpmnEventPeer::EVN_MESSAGE => 16, BpmnEventPeer::EVN_OPRERATION_NAME => 17, BpmnEventPeer::EVN_OPERATION_IMPLEMENTATION_REF => 18, BpmnEventPeer::EVN_TIME_DATE => 19, BpmnEventPeer::EVN_TIME_CYCLE => 20, BpmnEventPeer::EVN_TIME_DURATION => 21, BpmnEventPeer::EVN_BEHAVIOR => 22, ),
- BasePeer::TYPE_FIELDNAME => array ('EVN_UID' => 0, 'PRJ_UID' => 1, 'PRO_UID' => 2, 'EVN_NAME' => 3, 'EVN_TYPE' => 4, 'EVN_MARKER' => 5, 'EVN_IS_INTERRUPTING' => 6, 'EVN_ATTACHED_TO' => 7, 'EVN_CANCEL_ACTIVITY' => 8, 'EVN_ACTIVITY REF' => 9, 'EVN_WAIT_FOR COMPLETION' => 10, 'EVN_ERROR_NAME' => 11, 'EVN_ERROR_CODE' => 12, 'EVN_ESCALATION_NAME' => 13, 'EVN_ESCALATION_CODE' => 14, 'EVN_CONDITION' => 15, 'EVN_MESSAGE' => 16, 'EVN_OPRERATION_NAME' => 17, 'EVN_OPERATION_IMPLEMENTATION_REF' => 18, 'EVN_TIME_DATE' => 19, 'EVN_TIME_CYCLE' => 20, 'EVN_TIME_DURATION' => 21, 'EVN_BEHAVIOR' => 22, ),
+ BasePeer::TYPE_PHPNAME => array ('EvnUid' => 0, 'PrjUid' => 1, 'ProUid' => 2, 'EvnName' => 3, 'EvnType' => 4, 'EvnMarker' => 5, 'EvnIsInterrupting' => 6, 'EvnAttachedTo' => 7, 'EvnCancelActivity' => 8, 'EvnActivityRef' => 9, 'EvnWaitForCompletion' => 10, 'EvnErrorName' => 11, 'EvnErrorCode' => 12, 'EvnEscalationName' => 13, 'EvnEscalationCode' => 14, 'EvnCondition' => 15, 'EvnMessage' => 16, 'EvnOprerationName' => 17, 'EvnOperationImplementationRef' => 18, 'EvnTimeDate' => 19, 'EvnTimeCycle' => 20, 'EvnTimeDuration' => 21, 'EvnBehavior' => 22, ),
+ BasePeer::TYPE_COLNAME => array (BpmnEventPeer::EVN_UID => 0, BpmnEventPeer::PRJ_UID => 1, BpmnEventPeer::PRO_UID => 2, BpmnEventPeer::EVN_NAME => 3, BpmnEventPeer::EVN_TYPE => 4, BpmnEventPeer::EVN_MARKER => 5, BpmnEventPeer::EVN_IS_INTERRUPTING => 6, BpmnEventPeer::EVN_ATTACHED_TO => 7, BpmnEventPeer::EVN_CANCEL_ACTIVITY => 8, BpmnEventPeer::EVN_ACTIVITY_REF => 9, BpmnEventPeer::EVN_WAIT_FOR_COMPLETION => 10, BpmnEventPeer::EVN_ERROR_NAME => 11, BpmnEventPeer::EVN_ERROR_CODE => 12, BpmnEventPeer::EVN_ESCALATION_NAME => 13, BpmnEventPeer::EVN_ESCALATION_CODE => 14, BpmnEventPeer::EVN_CONDITION => 15, BpmnEventPeer::EVN_MESSAGE => 16, BpmnEventPeer::EVN_OPRERATION_NAME => 17, BpmnEventPeer::EVN_OPERATION_IMPLEMENTATION_REF => 18, BpmnEventPeer::EVN_TIME_DATE => 19, BpmnEventPeer::EVN_TIME_CYCLE => 20, BpmnEventPeer::EVN_TIME_DURATION => 21, BpmnEventPeer::EVN_BEHAVIOR => 22, ),
+ BasePeer::TYPE_FIELDNAME => array ('EVN_UID' => 0, 'PRJ_UID' => 1, 'PRO_UID' => 2, 'EVN_NAME' => 3, 'EVN_TYPE' => 4, 'EVN_MARKER' => 5, 'EVN_IS_INTERRUPTING' => 6, 'EVN_ATTACHED_TO' => 7, 'EVN_CANCEL_ACTIVITY' => 8, 'EVN_ACTIVITY_REF' => 9, 'EVN_WAIT_FOR_COMPLETION' => 10, 'EVN_ERROR_NAME' => 11, 'EVN_ERROR_CODE' => 12, 'EVN_ESCALATION_NAME' => 13, 'EVN_ESCALATION_CODE' => 14, 'EVN_CONDITION' => 15, 'EVN_MESSAGE' => 16, 'EVN_OPRERATION_NAME' => 17, 'EVN_OPERATION_IMPLEMENTATION_REF' => 18, 'EVN_TIME_DATE' => 19, 'EVN_TIME_CYCLE' => 20, 'EVN_TIME_DURATION' => 21, 'EVN_BEHAVIOR' => 22, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, )
);
@@ -246,9 +246,9 @@ abstract class BaseBpmnEventPeer
$criteria->addSelectColumn(BpmnEventPeer::EVN_CANCEL_ACTIVITY);
- $criteria->addSelectColumn(BpmnEventPeer::EVN_ACTIVITY REF);
+ $criteria->addSelectColumn(BpmnEventPeer::EVN_ACTIVITY_REF);
- $criteria->addSelectColumn(BpmnEventPeer::EVN_WAIT_FOR COMPLETION);
+ $criteria->addSelectColumn(BpmnEventPeer::EVN_WAIT_FOR_COMPLETION);
$criteria->addSelectColumn(BpmnEventPeer::EVN_ERROR_NAME);
diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml
index aeae74df7..c4a9c7ab7 100755
--- a/workflow/engine/config/schema.xml
+++ b/workflow/engine/config/schema.xml
@@ -3260,8 +3260,8 @@
-
-
+
+
diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql
index 0e6202553..81e09e77b 100755
--- a/workflow/engine/data/mysql/schema.sql
+++ b/workflow/engine/data/mysql/schema.sql
@@ -1788,8 +1788,8 @@ CREATE TABLE `BPMN_EVENT`
`EVN_IS_INTERRUPTING` TINYINT default 1,
`EVN_ATTACHED_TO` VARCHAR(32) default '',
`EVN_CANCEL_ACTIVITY` TINYINT default 0,
- `EVN_ACTIVITY REF` VARCHAR(32) default '',
- `EVN_WAIT_FOR COMPLETION` TINYINT default 1,
+ `EVN_ACTIVITY_REF` VARCHAR(32) default '',
+ `EVN_WAIT_FOR_COMPLETION` TINYINT default 1,
`EVN_ERROR_NAME` VARCHAR(255),
`EVN_ERROR_CODE` VARCHAR(255),
`EVN_ESCALATION_NAME` VARCHAR(255),
diff --git a/workflow/engine/src/ProcessMaker/Adapter/Bpmn/Model.php b/workflow/engine/src/ProcessMaker/Adapter/Bpmn/Model.php
new file mode 100644
index 000000000..3022610b5
--- /dev/null
+++ b/workflow/engine/src/ProcessMaker/Adapter/Bpmn/Model.php
@@ -0,0 +1,379 @@
+
+ */
+class Model
+{
+ public function createProject($data)
+ {
+ $data = array_change_key_case($data, CASE_UPPER);
+ $uids = array();
+ $oldPrjUid = $data['PRJ_UID'];
+ $diagrams = $data['DIAGRAMS'];
+
+ unset($data['PRJ_UID']);
+
+ /*
+ * 1. Create a project record
+ * 2. Create a default diagram record
+ * 3. Create a default process record
+ */
+
+ $project = new Project();
+ $project->fromArray($data, BasePeer::TYPE_FIELDNAME);
+ $project->setPrjUid(Hash::generateUID());
+ $project->setPrjCreateDate(date("Y-m-d H:i:s"));
+ $project->save();
+ $prjUid = $project->getPrjUid();
+ $prjName = $project->getPrjName();
+ $uids[] = array('old_uid' => $oldPrjUid, 'new_uid' => $prjUid, 'object' => 'project');
+
+ // By now, is thought create only one diagram for each project (1:1)
+ $diagramData = (array) $diagrams[0];
+ $oldDiaUid = $diagramData['dia_uid'];
+
+ $diagram = new Diagram();
+ $diagram->setDiaUid(Hash::generateUID());
+ $diagram->setPrjUid($prjUid);
+ $diagram->setDiaName($prjName);
+ $diagram->save();
+ $diaUid = $diagram->getDiaUid();
+ $uids[] = array('old_uid' => $oldDiaUid, 'new_uid' => $diaUid, 'object' => 'diagram');
+
+ $process = new Process();
+ $process->setProUid(Hash::generateUID());
+ $process->setPrjUid($prjUid);
+ $process->setDiaUid($diaUid);
+ $process->setProName($prjName);
+ $process->save();
+ $proUid = $process->getProUid();
+
+ $uids = array_merge($uids, $this->createDiagram($prjUid, $proUid, $diaUid, $diagramData));
+
+ return $uids;
+ }
+
+ private function createDiagram($prjUid, $proUid, $diaUid, $diagramData)
+ {
+ $uids = array();
+
+ /*
+ * 1. ensure that all related data of objects are defined, if not we define them as empty
+ * 2. create all related objects
+ */
+
+ $lanesets = array_key_exists('laneset', $diagramData) ? $diagramData['laneset'] : array();
+ $lanes = array_key_exists('lane', $diagramData) ? $diagramData['lanes'] : array();
+ $activities = array_key_exists('activities', $diagramData) ? $diagramData['activities'] : array();
+ $events = array_key_exists('events', $diagramData) ? $diagramData['events'] : array();
+ $gateways = array_key_exists('gateways', $diagramData) ? $diagramData['gateways'] : array();
+ $flows = array_key_exists('flows', $diagramData) ? $diagramData['flows'] : array();
+ $artifacts = array_key_exists('artifacts', $diagramData) ? $diagramData['artifacts'] : array();
+
+ foreach($lanesets as $lanesetData) {
+ $lanesetData = array_change_key_case((array) $lanesetData, CASE_UPPER);
+
+ $laneset = new Laneset();
+ $laneset->fromArray($lanesetData, BasePeer::TYPE_FIELDNAME);
+ $laneset->setLnsUid(Hash::generateUID());
+ $laneset->setPrjUid($prjUid);
+ $laneset->setProUid($proUid);
+ $laneset->save();
+ $lnsUid = $laneset->getLnsUid();
+ $oldLnsUid = $lanesetData['LNS_UID'];
+
+ $uids[] = array('old_uid' => $oldLnsUid, 'new_uid' => $lnsUid, 'object' => 'laneset');
+ }
+
+ foreach($lanes as $laneData) {
+ $laneData = array_change_key_case((array) $laneData, CASE_UPPER);
+
+ $lane = new Lane();
+ $lane->fromArray($laneData, BasePeer::TYPE_FIELDNAME);
+ $lane->setLanUid(Hash::generateUID());
+ $lane->setPrjUid($prjUid);
+ $lane->save();
+ $lanUid = $lane->getLanUid();
+ $oldLanUid = $laneData['LNS_UID'];
+
+ $uids[] = array('old_uid' => $oldLanUid, 'new_uid' => $lanUid, 'object' => 'lane');
+ }
+
+ /*
+ * 1. crate project related object
+ * 2. crate bound record for each object created previously
+ */
+
+ foreach($activities as $activityData) {
+ $activityData = array_change_key_case((array) $activityData, CASE_UPPER);
+
+
+ $activity = new Activity();
+ $activity->fromArray($activityData, BasePeer::TYPE_FIELDNAME);
+ $activity->setActUid(Hash::generateUID());
+ $activity->setPrjUid($prjUid);
+ $activity->setProUid($proUid);
+ $activity->save();
+
+ $actUid = $activity->getActUid();
+ $oldActUid = $activityData['ACT_UID'];
+ $uids[] = array('old_uid' => $oldActUid, 'new_uid' => $actUid, 'object' => 'activity');
+
+
+ $bound = new Bound();
+ $bound->fromArray($activityData, BasePeer::TYPE_FIELDNAME);
+ $bound->setBouUid(Hash::generateUID());
+ $bound->setPrjUid($prjUid);
+ $bound->setDiaUid($diaUid);
+ $bound->setElementUid($activity->getActUid());
+ $bound->setBouElementType(get_class($activity));
+ $bound->setBouElement('pm_canvas');
+ $bound->setBouContainer('bpmnDiagram');
+ $bound->save();
+ }
+
+ foreach($events as $eventData) {
+ $eventData = array_change_key_case((array) $eventData, CASE_UPPER);
+
+ $event = new Event();
+ $event->fromArray($eventData, BasePeer::TYPE_FIELDNAME);
+ $event->setEvnUid(Hash::generateUID());
+ $event->setPrjUid($prjUid);
+ $event->setProUid($proUid);
+ $event->save();
+
+ $evnUid = $event->getEvnUid();
+ $oldEvnUid = $eventData['EVN_UID'];
+ $uids[] = array('old_uid' => $oldEvnUid, 'new_uid' => $evnUid, 'object' => 'event');
+
+ $bound = new Bound();
+ $bound->fromArray($eventData, BasePeer::TYPE_FIELDNAME);
+ $bound->setBouUid(Hash::generateUID());
+ $bound->setPrjUid($prjUid);
+ $bound->setDiaUid($diaUid);
+ $bound->setElementUid($event->getEvnUid());
+ $bound->setBouElementType(get_class($event));
+ $bound->setBouElement('pm_canvas');
+ $bound->setBouContainer('bpmnDiagram');
+ $bound->save();
+ }
+
+ foreach($gateways as $gatewayData) {
+ $gatewayData = array_change_key_case((array) $gatewayData, CASE_UPPER);
+
+ $gateway = new Gateway();
+ $gateway->fromArray($gatewayData, BasePeer::TYPE_FIELDNAME);
+ $gateway->setGatUid(Hash::generateUID());
+ $gateway->setPrjUid($prjUid);
+ $gateway->setProUid($proUid);
+ $gateway->save();
+
+ $gatUid = $gateway->getGatUid();
+ $oldGatUid = $gatewayData['GAT_UID'];
+ $uids[] = array('old_uid' => $oldGatUid, 'new_uid' => $gatUid, 'object' => 'gateway');
+
+ $bound = new Bound();
+ $bound->fromArray($gatewayData, BasePeer::TYPE_FIELDNAME);
+ $bound->setBouUid(Hash::generateUID());
+ $bound->setPrjUid($prjUid);
+ $bound->setDiaUid($diaUid);
+ $bound->setElementUid($gateway->getGatUid());
+ $bound->setBouElementType(get_class($gateway));
+ $bound->setBouElement('pm_canvas');
+ $bound->setBouContainer('bpmnDiagram');
+ $bound->save();
+ }
+
+ foreach($flows as $flowData) {
+ $flowData = array_change_key_case((array) $flowData, CASE_UPPER);
+
+ $floState = json_encode($flowData['FLO_STATE']);
+ unset($flowData['FLO_STATE']);
+
+ $flow = new Flow();
+ $flow->fromArray($flowData, BasePeer::TYPE_FIELDNAME);
+ $flow->setFloUid(Hash::generateUID());
+ $flow->setPrjUid($prjUid);
+ $flow->setDiaUid($diaUid);
+ $flow->setFloState($floState);
+ $flow->save();
+
+ $floUid = $flow->getFloUid();
+ $oldFloUid = $flowData['FLO_UID'];
+ $uids[] = array('old_uid' => $oldFloUid, 'new_uid' => $floUid, 'object' => 'flow');
+ }
+
+ foreach($artifacts as $artifactData) {
+ $artifactData = array_change_key_case((array) $artifactData, CASE_UPPER);
+
+ $artifact = new Artifact();
+ $artifact->fromArray($artifactData, BasePeer::TYPE_FIELDNAME);
+ $artifact->setArtUid(Hash::generateUID());
+ $artifact->setPrjUid($prjUid);
+ $artifact->setProUid($proUid);
+ $artifact->save();
+
+ $artUid = $artifact->getFloUid();
+ $oldArtUid = $artifactData['ART_UID'];
+ $uids[] = array('old_uid' => $oldArtUid, 'new_uid' => $artUid, 'object' => 'artifact');
+ }
+
+ return $uids;
+ }
+
+ public function loadProject($prjUid)
+ {
+ /*
+ * 1. load object of project
+ * 2. load object of process
+ * 3. load object of diagram
+ * 4. load collection of lanesets
+ * 5. load collection of lanes
+ * 6. load collection of activities
+ * 7. load collection of events
+ * 8. load collection of gateways
+ * 9. load collection of flows
+ * 10. load collection of artifacts
+ * 11. compose project data structure
+ */
+
+ $project = self::getBpmnObjectBy('Project', ProjectPeer::PRJ_UID, $prjUid, true);
+ $process = self::getBpmnObjectBy('Process', ProcessPeer::PRJ_UID, $prjUid, true);
+ $diagram = self::getBpmnObjectBy('Diagram', DiagramPeer::DIA_UID, $process['dia_uid'], true);
+ $lanesets = self::getBpmnCollectionBy('Laneset', LanesetPeer::PRJ_UID, $prjUid, true);
+ $lanes = self::getBpmnCollectionBy('Lane', LanePeer::PRJ_UID, $prjUid, true);
+ $activities = self::getBpmnCollectionBy('Activity', ActivityPeer::PRJ_UID, $prjUid, true);
+ $events = self::getBpmnCollectionBy('Event', EventPeer::PRJ_UID, $prjUid, true);
+ $gateways = self::getBpmnCollectionBy('Gateway', GatewayPeer::PRJ_UID, $prjUid, true);
+ $flows = self::getBpmnCollectionBy('Flow', FlowPeer::PRJ_UID, $prjUid, true);
+ $artifacts = self::getBpmnCollectionBy('Artifact', ArtifactPeer::PRJ_UID, $prjUid, true);
+
+ // getting activity bound data
+ foreach ($activities as $i => $activity) {
+ $activities[$i] = array_merge(
+ $activities[$i],
+ self::getBpmnObjectBy('Bound', BoundPeer::ELEMENT_UID, $activity['act_uid'], true)
+ );
+ }
+
+ // getting event bound data
+ foreach ($events as $i => $event) {
+ $events[$i] = array_merge(
+ $events[$i],
+ self::getBpmnObjectBy('Bound', BoundPeer::ELEMENT_UID, $event['evn_uid'], true)
+ );
+ }
+
+ // getting gateway bound data
+ foreach ($gateways as $i => $gateway) {
+ $gateways[$i] = array_merge(
+ $gateways[$i],
+ self::getBpmnObjectBy('Bound', BoundPeer::ELEMENT_UID, $gateway['gat_uid'], true)
+ );
+ }
+
+ $project = array_change_key_case($project);
+ $project['diagrams'] = array($diagram);
+ $project['diagrams'][0]['lanesets'] = $lanesets;
+ $project['diagrams'][0]['lanes'] = $lanes;
+ $project['diagrams'][0]['activities'] = $activities;
+ $project['diagrams'][0]['events'] = $events;
+ $project['diagrams'][0]['gateways'] = $gateways;
+ $project['diagrams'][0]['flows'] = $flows;
+ $project['diagrams'][0]['artifacts'] = $artifacts;
+
+ return $project;
+ }
+
+ public static function loadProjects()
+ {
+ $projectsList = self::getAllBpmnCollectionFrom('Project', true);
+ $projects = array();
+
+ foreach ($projectsList as $project) {
+ $projects[] = self::loadProject($project['prj_uid']);
+ }
+
+ return $projects;
+ }
+
+ /*** Private Functions ***/
+
+ private static function getAllBpmnCollectionFrom($class, $changeCase = false)
+ {
+ $data = array();
+
+ $c = new \Criteria('workflow');
+ //$c->add($field, $value);
+
+ $classPeer = 'Bpmn' . $class . 'Peer';
+ $rs = $classPeer::doSelectRS($c);
+
+ $rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+
+ while ($rs->next()) {
+ $data[] = $changeCase ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
+ }
+
+ return $data;
+ }
+
+ private static function getBpmnCollectionBy($class, $field, $value, $changeCase = false)
+ {
+ $data = array();
+
+ $c = new \Criteria('workflow');
+ $c->add($field, $value);
+
+ $classPeer = 'Bpmn' . $class . 'Peer';
+ $rs = $classPeer::doSelectRS($c);
+
+ $rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+
+ while ($rs->next()) {
+ $data[] = $changeCase ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
+ }
+
+ return $data;
+ }
+
+ private static function getBpmnObjectBy($class, $field, $value, $changeCase = false)
+ {
+ $record = self::getBpmnCollectionBy($class, $field, $value, $changeCase);
+
+ return empty($record) ? null : $record[0];
+ }
+}
+
diff --git a/workflow/engine/src/ProcessMaker/Adapter/Bpmn/Port.php b/workflow/engine/src/ProcessMaker/Adapter/Bpmn/Port.php
new file mode 100644
index 000000000..bc78df494
--- /dev/null
+++ b/workflow/engine/src/ProcessMaker/Adapter/Bpmn/Port.php
@@ -0,0 +1,48 @@
+
+ */
+class Port
+{
+ public function convertBpmnProjectToPmWorkflow($bpmnProject)
+ {
+ $proUid = $bpmnProject['prj_uid'];
+
+ $process = array();
+ $process['PRO_UID'] = $proUid;
+ $process['PRO_TITLE'] = $bpmnProject['prj_name'];
+ $process['PRO_DESCRIPTION'] = '';
+ $process['PRO_CATEGORY'] = '';
+ $process['PRO_UID'] = $proUid;
+ $process['PRO_UID'] = $proUid;
+ $process['tasks'] = array();
+
+ $diagram = $bpmnProject['prj_name']['diagrams'][0];
+
+ foreach ($diagram['activities'] as $activity) {
+ $process['tasks'][] = array(
+ 'TAS_UID' => $activity['act_uid'],
+ 'TAS_TITLE' => $activity['act_name'],
+ 'TAS_DESCRIPTION' => $activity['act_name'],
+ 'TAS_POSX' => $activity['bou_x'],
+ 'TAS_POSY' => $activity['bou_y'],
+ 'TAS_START' => ''
+ );
+ }
+
+ $process['routes'][] = array(
+ 'ROU_UID' => '',
+ 'TAS_UID' => '',
+ 'ROU_NEXT_TASK' => '',
+ 'ROU_TYPE' => ''
+ );
+
+ }
+}
diff --git a/workflow/engine/src/ProcessMaker/Services/Api.php b/workflow/engine/src/ProcessMaker/Services/Api.php
index e84fc532f..29de0d07d 100644
--- a/workflow/engine/src/ProcessMaker/Services/Api.php
+++ b/workflow/engine/src/ProcessMaker/Services/Api.php
@@ -1,7 +1,15 @@
+ */
+abstract class Api
{
private static $workspace;
private static $userId;
diff --git a/workflow/engine/src/ProcessMaker/Util/Hash.php b/workflow/engine/src/ProcessMaker/Util/Hash.php
new file mode 100644
index 000000000..3e6e22ee5
--- /dev/null
+++ b/workflow/engine/src/ProcessMaker/Util/Hash.php
@@ -0,0 +1,68 @@
+
+ * @access public
+ * @return string
+ */
+ public static function generateUID()
+ {
+ do {
+ $sUID = str_replace('.', '0', uniqid(rand(0, 999999999), true));
+ } while (strlen( $sUID ) != 32);
+
+ return $sUID;
+ }
+
+ /**
+ * Generate a numeric or alphanumeric code
+ *
+ * @author Julio Cesar Laura AvendaƱo
+ * @access public
+ * @param int $iDigits
+ * @param string $sType
+ * @return string
+ */
+ public function generateCode($iDigits = 4, $sType = 'NUMERIC')
+ {
+ if (($iDigits < 4) || ($iDigits > 50)) {
+ $iDigits = 4;
+ }
+ if (($sType != 'NUMERIC') && ($sType != 'ALPHA') && ($sType != 'ALPHANUMERIC')) {
+ $sType = 'NUMERIC';
+ }
+
+ $aValidCharacters = array(
+ '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H',
+ 'I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
+ );
+
+ switch ($sType) {
+ case 'NUMERIC':
+ $iMin = 0;
+ $iMax = 9;
+ break;
+ case 'ALPHA':
+ $iMin = 10;
+ $iMax = 35;
+ break;
+ case 'ALPHANUMERIC':
+ $iMin = 0;
+ $iMax = 35;
+ break;
+ }
+
+ $sCode = '';
+ for ($i = 0; $i < $iDigits; $i ++) {
+ $sCode .= $aValidCharacters[rand($iMin, $iMax)];
+ }
+
+ return $sCode;
+ }
+}
+
diff --git a/workflow/engine/src/ProcessMaker/Util/Logger.php b/workflow/engine/src/ProcessMaker/Util/Logger.php
index 89b065837..fb4115799 100644
--- a/workflow/engine/src/ProcessMaker/Util/Logger.php
+++ b/workflow/engine/src/ProcessMaker/Util/Logger.php
@@ -1,7 +1,13 @@
+ */
class Logger
{
private static $instance;
diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project.php b/workflow/engine/src/Services/Api/ProcessMaker/Project.php
new file mode 100644
index 000000000..c065c5c91
--- /dev/null
+++ b/workflow/engine/src/Services/Api/ProcessMaker/Project.php
@@ -0,0 +1,52 @@
+
+ *
+ * @protected
+ */
+class Project extends Api
+{
+ function index()
+ {
+ //return \BusinessModel\Process::loadProcess('647625648528d91278a87f5076732980');
+
+ try {
+ $projects = BpmnModel::loadProjects();
+
+ return $projects;
+ } catch (\Exception $e) {
+ throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
+ }
+ }
+
+ function post($request_data)
+ {
+ try {
+ $bpmnModel = new BpmnModel();
+
+ return $bpmnModel->createProject($request_data);
+ } catch (\Exception $e) {
+ throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
+ }
+ }
+
+ function get($prjUid)
+ {
+ try {
+ $project = BpmnModel::loadProject($prjUid);
+
+ return $project;
+ } catch (\Exception $e) {
+ throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
+ }
+ }
+}
diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity.php
index 4b75f9270..ca6837cc2 100644
--- a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity.php
+++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity.php
@@ -12,6 +12,9 @@ use \Luracast\Restler\RestException;
class Activity extends Api
{
/**
+ * @param string $projectUid
+ * @param string $activityUid
+ * @param string $filter {@choice definition,,properties}
* @url GET /:projectUid/activity/:activityUid
*/
public function doGetProjectActivity($projectUid, $activityUid, $filter = '')