Refactoring Bpmn/Workflow handling layer (3rd commit)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
//***************** Operating Systems parameters **************************
|
//***************** Operating Systems parameters **************************
|
||||||
if ( PHP_OS == 'WINNT' )
|
if ( PHP_OS == 'WINNT' )
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ class Bootstrap
|
|||||||
self::registerClass("Propel", PATH_THIRDPARTY . "propel" . PATH_SEP . "Propel.php");
|
self::registerClass("Propel", PATH_THIRDPARTY . "propel" . PATH_SEP . "Propel.php");
|
||||||
self::registerClass("Creole", PATH_THIRDPARTY . "creole" . PATH_SEP . "Creole.php");
|
self::registerClass("Creole", PATH_THIRDPARTY . "creole" . PATH_SEP . "Creole.php");
|
||||||
self::registerClass("Criteria", PATH_THIRDPARTY . "propel" . PATH_SEP . "util" . PATH_SEP . "Criteria.php");
|
self::registerClass("Criteria", PATH_THIRDPARTY . "propel" . PATH_SEP . "util" . PATH_SEP . "Criteria.php");
|
||||||
|
self::registerClass("BasePeer", PATH_THIRDPARTY . "propel" . PATH_SEP . "util" . PATH_SEP . "BasePeer.php");
|
||||||
|
|
||||||
//DATABASE propel classes used in "Cases" Options
|
//DATABASE propel classes used in "Cases" Options
|
||||||
self::registerClass("Entity_Base", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "entities" . PATH_SEP . "Base.php");
|
self::registerClass("Entity_Base", PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "entities" . PATH_SEP . "Base.php");
|
||||||
|
|||||||
@@ -91,12 +91,6 @@ class BpmnActivity extends BaseBpmnActivity
|
|||||||
|
|
||||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $returnType = null, $changeCaseTo=CASE_UPPER)
|
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $returnType = null, $changeCaseTo=CASE_UPPER)
|
||||||
{
|
{
|
||||||
if (is_array($prjUid)) {
|
|
||||||
// $start, is a array config
|
|
||||||
extract($prjUid, EXTR_OVERWRITE);
|
|
||||||
}
|
|
||||||
|
|
||||||
$activities = array();
|
|
||||||
$c = new Criteria('workflow');
|
$c = new Criteria('workflow');
|
||||||
$c->addSelectColumn("BPMN_ACTIVITY.*");
|
$c->addSelectColumn("BPMN_ACTIVITY.*");
|
||||||
$c->addSelectColumn("BPMN_BOUND.*");
|
$c->addSelectColumn("BPMN_BOUND.*");
|
||||||
@@ -107,6 +101,8 @@ class BpmnActivity extends BaseBpmnActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
$returnType = ($returnType != 'array' && $returnType != 'object') ? 'array' : $returnType;
|
$returnType = ($returnType != 'array' && $returnType != 'object') ? 'array' : $returnType;
|
||||||
|
$activities = array();
|
||||||
|
|
||||||
|
|
||||||
switch ($returnType) {
|
switch ($returnType) {
|
||||||
case 'object':
|
case 'object':
|
||||||
@@ -122,13 +118,13 @@ class BpmnActivity extends BaseBpmnActivity
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $activities;
|
return $activities;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fromArray($data)
|
public function fromArray($data, $type = BasePeer::TYPE_FIELDNAME)
|
||||||
{
|
{
|
||||||
parent::fromArray($data, BasePeer::TYPE_FIELDNAME);
|
parent::fromArray($data, $type);
|
||||||
|
|
||||||
$bound = BpmnBound::findByElement('Activity', $this->getActUid());
|
$bound = BpmnBound::findByElement('Activity', $this->getActUid());
|
||||||
|
|
||||||
@@ -142,12 +138,18 @@ class BpmnActivity extends BaseBpmnActivity
|
|||||||
$this->bound->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
$this->bound->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function toArray($keyType = BasePeer::TYPE_PHPNAME)
|
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||||
{
|
{
|
||||||
$data = parent::toArray($keyType);
|
$data = parent::toArray($type);
|
||||||
|
$bouUid = $this->bound->getBouUid();
|
||||||
|
|
||||||
if (is_object($this->bound) && get_class($this->bound) == 'BpmnBound') {
|
if (empty($bouUid)) {
|
||||||
$data = array_merge($data, $this->bound->toArray($keyType));
|
$bound = BpmnBound::findByElement('Activity', $this->getActUid());
|
||||||
|
|
||||||
|
if (is_object($bound)) {
|
||||||
|
$this->bound = $bound;
|
||||||
|
$data = array_merge($data, $this->bound->toArray($type));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
|
|||||||
@@ -14,6 +14,20 @@ require_once 'classes/model/om/BaseBpmnDiagram.php';
|
|||||||
*
|
*
|
||||||
* @package classes.model
|
* @package classes.model
|
||||||
*/
|
*/
|
||||||
class BpmnDiagram extends BaseBpmnDiagram {
|
class BpmnDiagram extends BaseBpmnDiagram
|
||||||
|
{
|
||||||
|
public static function findAllByProUid($prjUid)
|
||||||
|
{
|
||||||
|
$c = new Criteria("workflow");
|
||||||
|
$c->add(BpmnDiagramPeer::PRJ_UID, $prjUid);
|
||||||
|
|
||||||
|
return BpmnDiagramPeer::doSelect($c);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overrides
|
||||||
|
|
||||||
|
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||||
|
{
|
||||||
|
return parent::toArray($type);
|
||||||
|
}
|
||||||
} // BpmnDiagram
|
} // BpmnDiagram
|
||||||
|
|||||||
@@ -14,6 +14,21 @@ require_once 'classes/model/om/BaseBpmnProcess.php';
|
|||||||
*
|
*
|
||||||
* @package classes.model
|
* @package classes.model
|
||||||
*/
|
*/
|
||||||
class BpmnProcess extends BaseBpmnProcess {
|
class BpmnProcess extends BaseBpmnProcess
|
||||||
|
{
|
||||||
|
public static function findAllByProUid($prjUid)
|
||||||
|
{
|
||||||
|
$c = new Criteria("workflow");
|
||||||
|
$c->add(BpmnProcessPeer::PRJ_UID, $prjUid);
|
||||||
|
|
||||||
|
return BpmnProcessPeer::doSelect($c);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Overrides
|
||||||
|
|
||||||
|
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||||
|
{
|
||||||
|
return parent::toArray($type);
|
||||||
|
}
|
||||||
} // BpmnProcess
|
} // BpmnProcess
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ require_once 'classes/model/om/BaseBpmnProject.php';
|
|||||||
*
|
*
|
||||||
* @package classes.model
|
* @package classes.model
|
||||||
*/
|
*/
|
||||||
class BpmnProject extends BaseBpmnProject {
|
class BpmnProject extends BaseBpmnProject
|
||||||
|
{
|
||||||
|
|
||||||
|
// Overrides
|
||||||
|
|
||||||
|
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||||
|
{
|
||||||
|
return parent::toArray($type);
|
||||||
|
}
|
||||||
|
|
||||||
} // BpmnProject
|
} // BpmnProject
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ class BpmnProjectMapBuilder
|
|||||||
|
|
||||||
$tMap->addColumn('PRJ_NAME', 'PrjName', 'string', CreoleTypes::VARCHAR, true, 255);
|
$tMap->addColumn('PRJ_NAME', 'PrjName', 'string', CreoleTypes::VARCHAR, true, 255);
|
||||||
|
|
||||||
|
$tMap->addColumn('PRJ_DESCRIPTION', 'PrjDescription', 'string', CreoleTypes::VARCHAR, false, 512);
|
||||||
|
|
||||||
$tMap->addColumn('PRJ_TARGET_NAMESPACE', 'PrjTargetNamespace', 'string', CreoleTypes::LONGVARCHAR, true, null);
|
$tMap->addColumn('PRJ_TARGET_NAMESPACE', 'PrjTargetNamespace', 'string', CreoleTypes::LONGVARCHAR, true, null);
|
||||||
|
|
||||||
$tMap->addColumn('PRJ_EXPRESION_LANGUAGE', 'PrjExpresionLanguage', 'string', CreoleTypes::LONGVARCHAR, false, null);
|
$tMap->addColumn('PRJ_EXPRESION_LANGUAGE', 'PrjExpresionLanguage', 'string', CreoleTypes::LONGVARCHAR, false, null);
|
||||||
|
|||||||
@@ -39,6 +39,12 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
*/
|
*/
|
||||||
protected $prj_name = '';
|
protected $prj_name = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the prj_description field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $prj_description;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The value for the prj_target_namespace field.
|
* The value for the prj_target_namespace field.
|
||||||
* @var string
|
* @var string
|
||||||
@@ -303,6 +309,17 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
return $this->prj_name;
|
return $this->prj_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [prj_description] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getPrjDescription()
|
||||||
|
{
|
||||||
|
|
||||||
|
return $this->prj_description;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the [prj_target_namespace] column value.
|
* Get the [prj_target_namespace] column value.
|
||||||
*
|
*
|
||||||
@@ -499,6 +516,28 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
|
|
||||||
} // setPrjName()
|
} // setPrjName()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [prj_description] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setPrjDescription($v)
|
||||||
|
{
|
||||||
|
|
||||||
|
// Since the native PHP type for this column is string,
|
||||||
|
// we will cast the input to a string (if it is not).
|
||||||
|
if ($v !== null && !is_string($v)) {
|
||||||
|
$v = (string) $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->prj_description !== $v) {
|
||||||
|
$this->prj_description = $v;
|
||||||
|
$this->modifiedColumns[] = BpmnProjectPeer::PRJ_DESCRIPTION;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // setPrjDescription()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of [prj_target_namespace] column.
|
* Set the value of [prj_target_namespace] column.
|
||||||
*
|
*
|
||||||
@@ -746,32 +785,34 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
|
|
||||||
$this->prj_name = $rs->getString($startcol + 1);
|
$this->prj_name = $rs->getString($startcol + 1);
|
||||||
|
|
||||||
$this->prj_target_namespace = $rs->getString($startcol + 2);
|
$this->prj_description = $rs->getString($startcol + 2);
|
||||||
|
|
||||||
$this->prj_expresion_language = $rs->getString($startcol + 3);
|
$this->prj_target_namespace = $rs->getString($startcol + 3);
|
||||||
|
|
||||||
$this->prj_type_language = $rs->getString($startcol + 4);
|
$this->prj_expresion_language = $rs->getString($startcol + 4);
|
||||||
|
|
||||||
$this->prj_exporter = $rs->getString($startcol + 5);
|
$this->prj_type_language = $rs->getString($startcol + 5);
|
||||||
|
|
||||||
$this->prj_exporter_version = $rs->getString($startcol + 6);
|
$this->prj_exporter = $rs->getString($startcol + 6);
|
||||||
|
|
||||||
$this->prj_create_date = $rs->getTimestamp($startcol + 7, null);
|
$this->prj_exporter_version = $rs->getString($startcol + 7);
|
||||||
|
|
||||||
$this->prj_update_date = $rs->getTimestamp($startcol + 8, null);
|
$this->prj_create_date = $rs->getTimestamp($startcol + 8, null);
|
||||||
|
|
||||||
$this->prj_author = $rs->getString($startcol + 9);
|
$this->prj_update_date = $rs->getTimestamp($startcol + 9, null);
|
||||||
|
|
||||||
$this->prj_author_version = $rs->getString($startcol + 10);
|
$this->prj_author = $rs->getString($startcol + 10);
|
||||||
|
|
||||||
$this->prj_original_source = $rs->getString($startcol + 11);
|
$this->prj_author_version = $rs->getString($startcol + 11);
|
||||||
|
|
||||||
|
$this->prj_original_source = $rs->getString($startcol + 12);
|
||||||
|
|
||||||
$this->resetModified();
|
$this->resetModified();
|
||||||
|
|
||||||
$this->setNew(false);
|
$this->setNew(false);
|
||||||
|
|
||||||
// FIXME - using NUM_COLUMNS may be clearer.
|
// FIXME - using NUM_COLUMNS may be clearer.
|
||||||
return $startcol + 12; // 12 = BpmnProjectPeer::NUM_COLUMNS - BpmnProjectPeer::NUM_LAZY_LOAD_COLUMNS).
|
return $startcol + 13; // 13 = BpmnProjectPeer::NUM_COLUMNS - BpmnProjectPeer::NUM_LAZY_LOAD_COLUMNS).
|
||||||
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
throw new PropelException("Error populating BpmnProject object", $e);
|
throw new PropelException("Error populating BpmnProject object", $e);
|
||||||
@@ -1206,33 +1247,36 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
return $this->getPrjName();
|
return $this->getPrjName();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
return $this->getPrjTargetNamespace();
|
return $this->getPrjDescription();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
return $this->getPrjExpresionLanguage();
|
return $this->getPrjTargetNamespace();
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
return $this->getPrjTypeLanguage();
|
return $this->getPrjExpresionLanguage();
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
return $this->getPrjExporter();
|
return $this->getPrjTypeLanguage();
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
return $this->getPrjExporterVersion();
|
return $this->getPrjExporter();
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
return $this->getPrjCreateDate();
|
return $this->getPrjExporterVersion();
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
return $this->getPrjUpdateDate();
|
return $this->getPrjCreateDate();
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
return $this->getPrjAuthor();
|
return $this->getPrjUpdateDate();
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
return $this->getPrjAuthorVersion();
|
return $this->getPrjAuthor();
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
|
return $this->getPrjAuthorVersion();
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
return $this->getPrjOriginalSource();
|
return $this->getPrjOriginalSource();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -1257,16 +1301,17 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
$result = array(
|
$result = array(
|
||||||
$keys[0] => $this->getPrjUid(),
|
$keys[0] => $this->getPrjUid(),
|
||||||
$keys[1] => $this->getPrjName(),
|
$keys[1] => $this->getPrjName(),
|
||||||
$keys[2] => $this->getPrjTargetNamespace(),
|
$keys[2] => $this->getPrjDescription(),
|
||||||
$keys[3] => $this->getPrjExpresionLanguage(),
|
$keys[3] => $this->getPrjTargetNamespace(),
|
||||||
$keys[4] => $this->getPrjTypeLanguage(),
|
$keys[4] => $this->getPrjExpresionLanguage(),
|
||||||
$keys[5] => $this->getPrjExporter(),
|
$keys[5] => $this->getPrjTypeLanguage(),
|
||||||
$keys[6] => $this->getPrjExporterVersion(),
|
$keys[6] => $this->getPrjExporter(),
|
||||||
$keys[7] => $this->getPrjCreateDate(),
|
$keys[7] => $this->getPrjExporterVersion(),
|
||||||
$keys[8] => $this->getPrjUpdateDate(),
|
$keys[8] => $this->getPrjCreateDate(),
|
||||||
$keys[9] => $this->getPrjAuthor(),
|
$keys[9] => $this->getPrjUpdateDate(),
|
||||||
$keys[10] => $this->getPrjAuthorVersion(),
|
$keys[10] => $this->getPrjAuthor(),
|
||||||
$keys[11] => $this->getPrjOriginalSource(),
|
$keys[11] => $this->getPrjAuthorVersion(),
|
||||||
|
$keys[12] => $this->getPrjOriginalSource(),
|
||||||
);
|
);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
@@ -1305,33 +1350,36 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
$this->setPrjName($value);
|
$this->setPrjName($value);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$this->setPrjTargetNamespace($value);
|
$this->setPrjDescription($value);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$this->setPrjExpresionLanguage($value);
|
$this->setPrjTargetNamespace($value);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
$this->setPrjTypeLanguage($value);
|
$this->setPrjExpresionLanguage($value);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
$this->setPrjExporter($value);
|
$this->setPrjTypeLanguage($value);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
$this->setPrjExporterVersion($value);
|
$this->setPrjExporter($value);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
$this->setPrjCreateDate($value);
|
$this->setPrjExporterVersion($value);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
$this->setPrjUpdateDate($value);
|
$this->setPrjCreateDate($value);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
$this->setPrjAuthor($value);
|
$this->setPrjUpdateDate($value);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
$this->setPrjAuthorVersion($value);
|
$this->setPrjAuthor($value);
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
|
$this->setPrjAuthorVersion($value);
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
$this->setPrjOriginalSource($value);
|
$this->setPrjOriginalSource($value);
|
||||||
break;
|
break;
|
||||||
} // switch()
|
} // switch()
|
||||||
@@ -1366,43 +1414,47 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[2], $arr)) {
|
if (array_key_exists($keys[2], $arr)) {
|
||||||
$this->setPrjTargetNamespace($arr[$keys[2]]);
|
$this->setPrjDescription($arr[$keys[2]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[3], $arr)) {
|
if (array_key_exists($keys[3], $arr)) {
|
||||||
$this->setPrjExpresionLanguage($arr[$keys[3]]);
|
$this->setPrjTargetNamespace($arr[$keys[3]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[4], $arr)) {
|
if (array_key_exists($keys[4], $arr)) {
|
||||||
$this->setPrjTypeLanguage($arr[$keys[4]]);
|
$this->setPrjExpresionLanguage($arr[$keys[4]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[5], $arr)) {
|
if (array_key_exists($keys[5], $arr)) {
|
||||||
$this->setPrjExporter($arr[$keys[5]]);
|
$this->setPrjTypeLanguage($arr[$keys[5]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[6], $arr)) {
|
if (array_key_exists($keys[6], $arr)) {
|
||||||
$this->setPrjExporterVersion($arr[$keys[6]]);
|
$this->setPrjExporter($arr[$keys[6]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[7], $arr)) {
|
if (array_key_exists($keys[7], $arr)) {
|
||||||
$this->setPrjCreateDate($arr[$keys[7]]);
|
$this->setPrjExporterVersion($arr[$keys[7]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[8], $arr)) {
|
if (array_key_exists($keys[8], $arr)) {
|
||||||
$this->setPrjUpdateDate($arr[$keys[8]]);
|
$this->setPrjCreateDate($arr[$keys[8]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[9], $arr)) {
|
if (array_key_exists($keys[9], $arr)) {
|
||||||
$this->setPrjAuthor($arr[$keys[9]]);
|
$this->setPrjUpdateDate($arr[$keys[9]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[10], $arr)) {
|
if (array_key_exists($keys[10], $arr)) {
|
||||||
$this->setPrjAuthorVersion($arr[$keys[10]]);
|
$this->setPrjAuthor($arr[$keys[10]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($keys[11], $arr)) {
|
if (array_key_exists($keys[11], $arr)) {
|
||||||
$this->setPrjOriginalSource($arr[$keys[11]]);
|
$this->setPrjAuthorVersion($arr[$keys[11]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_key_exists($keys[12], $arr)) {
|
||||||
|
$this->setPrjOriginalSource($arr[$keys[12]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1424,6 +1476,10 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
$criteria->add(BpmnProjectPeer::PRJ_NAME, $this->prj_name);
|
$criteria->add(BpmnProjectPeer::PRJ_NAME, $this->prj_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->isColumnModified(BpmnProjectPeer::PRJ_DESCRIPTION)) {
|
||||||
|
$criteria->add(BpmnProjectPeer::PRJ_DESCRIPTION, $this->prj_description);
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->isColumnModified(BpmnProjectPeer::PRJ_TARGET_NAMESPACE)) {
|
if ($this->isColumnModified(BpmnProjectPeer::PRJ_TARGET_NAMESPACE)) {
|
||||||
$criteria->add(BpmnProjectPeer::PRJ_TARGET_NAMESPACE, $this->prj_target_namespace);
|
$criteria->add(BpmnProjectPeer::PRJ_TARGET_NAMESPACE, $this->prj_target_namespace);
|
||||||
}
|
}
|
||||||
@@ -1520,6 +1576,8 @@ abstract class BaseBpmnProject extends BaseObject implements Persistent
|
|||||||
|
|
||||||
$copyObj->setPrjName($this->prj_name);
|
$copyObj->setPrjName($this->prj_name);
|
||||||
|
|
||||||
|
$copyObj->setPrjDescription($this->prj_description);
|
||||||
|
|
||||||
$copyObj->setPrjTargetNamespace($this->prj_target_namespace);
|
$copyObj->setPrjTargetNamespace($this->prj_target_namespace);
|
||||||
|
|
||||||
$copyObj->setPrjExpresionLanguage($this->prj_expresion_language);
|
$copyObj->setPrjExpresionLanguage($this->prj_expresion_language);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ abstract class BaseBpmnProjectPeer
|
|||||||
const CLASS_DEFAULT = 'classes.model.BpmnProject';
|
const CLASS_DEFAULT = 'classes.model.BpmnProject';
|
||||||
|
|
||||||
/** The total number of columns. */
|
/** The total number of columns. */
|
||||||
const NUM_COLUMNS = 12;
|
const NUM_COLUMNS = 13;
|
||||||
|
|
||||||
/** The number of lazy-loaded columns. */
|
/** The number of lazy-loaded columns. */
|
||||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||||
@@ -37,6 +37,9 @@ abstract class BaseBpmnProjectPeer
|
|||||||
/** the column name for the PRJ_NAME field */
|
/** the column name for the PRJ_NAME field */
|
||||||
const PRJ_NAME = 'BPMN_PROJECT.PRJ_NAME';
|
const PRJ_NAME = 'BPMN_PROJECT.PRJ_NAME';
|
||||||
|
|
||||||
|
/** the column name for the PRJ_DESCRIPTION field */
|
||||||
|
const PRJ_DESCRIPTION = 'BPMN_PROJECT.PRJ_DESCRIPTION';
|
||||||
|
|
||||||
/** the column name for the PRJ_TARGET_NAMESPACE field */
|
/** the column name for the PRJ_TARGET_NAMESPACE field */
|
||||||
const PRJ_TARGET_NAMESPACE = 'BPMN_PROJECT.PRJ_TARGET_NAMESPACE';
|
const PRJ_TARGET_NAMESPACE = 'BPMN_PROJECT.PRJ_TARGET_NAMESPACE';
|
||||||
|
|
||||||
@@ -78,10 +81,10 @@ abstract class BaseBpmnProjectPeer
|
|||||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||||
*/
|
*/
|
||||||
private static $fieldNames = array (
|
private static $fieldNames = array (
|
||||||
BasePeer::TYPE_PHPNAME => array ('PrjUid', 'PrjName', 'PrjTargetNamespace', 'PrjExpresionLanguage', 'PrjTypeLanguage', 'PrjExporter', 'PrjExporterVersion', 'PrjCreateDate', 'PrjUpdateDate', 'PrjAuthor', 'PrjAuthorVersion', 'PrjOriginalSource', ),
|
BasePeer::TYPE_PHPNAME => array ('PrjUid', 'PrjName', 'PrjDescription', 'PrjTargetNamespace', 'PrjExpresionLanguage', 'PrjTypeLanguage', 'PrjExporter', 'PrjExporterVersion', 'PrjCreateDate', 'PrjUpdateDate', 'PrjAuthor', 'PrjAuthorVersion', 'PrjOriginalSource', ),
|
||||||
BasePeer::TYPE_COLNAME => array (BpmnProjectPeer::PRJ_UID, BpmnProjectPeer::PRJ_NAME, BpmnProjectPeer::PRJ_TARGET_NAMESPACE, BpmnProjectPeer::PRJ_EXPRESION_LANGUAGE, BpmnProjectPeer::PRJ_TYPE_LANGUAGE, BpmnProjectPeer::PRJ_EXPORTER, BpmnProjectPeer::PRJ_EXPORTER_VERSION, BpmnProjectPeer::PRJ_CREATE_DATE, BpmnProjectPeer::PRJ_UPDATE_DATE, BpmnProjectPeer::PRJ_AUTHOR, BpmnProjectPeer::PRJ_AUTHOR_VERSION, BpmnProjectPeer::PRJ_ORIGINAL_SOURCE, ),
|
BasePeer::TYPE_COLNAME => array (BpmnProjectPeer::PRJ_UID, BpmnProjectPeer::PRJ_NAME, BpmnProjectPeer::PRJ_DESCRIPTION, BpmnProjectPeer::PRJ_TARGET_NAMESPACE, BpmnProjectPeer::PRJ_EXPRESION_LANGUAGE, BpmnProjectPeer::PRJ_TYPE_LANGUAGE, BpmnProjectPeer::PRJ_EXPORTER, BpmnProjectPeer::PRJ_EXPORTER_VERSION, BpmnProjectPeer::PRJ_CREATE_DATE, BpmnProjectPeer::PRJ_UPDATE_DATE, BpmnProjectPeer::PRJ_AUTHOR, BpmnProjectPeer::PRJ_AUTHOR_VERSION, BpmnProjectPeer::PRJ_ORIGINAL_SOURCE, ),
|
||||||
BasePeer::TYPE_FIELDNAME => array ('PRJ_UID', 'PRJ_NAME', 'PRJ_TARGET_NAMESPACE', 'PRJ_EXPRESION_LANGUAGE', 'PRJ_TYPE_LANGUAGE', 'PRJ_EXPORTER', 'PRJ_EXPORTER_VERSION', 'PRJ_CREATE_DATE', 'PRJ_UPDATE_DATE', 'PRJ_AUTHOR', 'PRJ_AUTHOR_VERSION', 'PRJ_ORIGINAL_SOURCE', ),
|
BasePeer::TYPE_FIELDNAME => array ('PRJ_UID', 'PRJ_NAME', 'PRJ_DESCRIPTION', 'PRJ_TARGET_NAMESPACE', 'PRJ_EXPRESION_LANGUAGE', 'PRJ_TYPE_LANGUAGE', 'PRJ_EXPORTER', 'PRJ_EXPORTER_VERSION', 'PRJ_CREATE_DATE', 'PRJ_UPDATE_DATE', 'PRJ_AUTHOR', 'PRJ_AUTHOR_VERSION', 'PRJ_ORIGINAL_SOURCE', ),
|
||||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
|
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -91,10 +94,10 @@ abstract class BaseBpmnProjectPeer
|
|||||||
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||||
*/
|
*/
|
||||||
private static $fieldKeys = array (
|
private static $fieldKeys = array (
|
||||||
BasePeer::TYPE_PHPNAME => array ('PrjUid' => 0, 'PrjName' => 1, 'PrjTargetNamespace' => 2, 'PrjExpresionLanguage' => 3, 'PrjTypeLanguage' => 4, 'PrjExporter' => 5, 'PrjExporterVersion' => 6, 'PrjCreateDate' => 7, 'PrjUpdateDate' => 8, 'PrjAuthor' => 9, 'PrjAuthorVersion' => 10, 'PrjOriginalSource' => 11, ),
|
BasePeer::TYPE_PHPNAME => array ('PrjUid' => 0, 'PrjName' => 1, 'PrjDescription' => 2, 'PrjTargetNamespace' => 3, 'PrjExpresionLanguage' => 4, 'PrjTypeLanguage' => 5, 'PrjExporter' => 6, 'PrjExporterVersion' => 7, 'PrjCreateDate' => 8, 'PrjUpdateDate' => 9, 'PrjAuthor' => 10, 'PrjAuthorVersion' => 11, 'PrjOriginalSource' => 12, ),
|
||||||
BasePeer::TYPE_COLNAME => array (BpmnProjectPeer::PRJ_UID => 0, BpmnProjectPeer::PRJ_NAME => 1, BpmnProjectPeer::PRJ_TARGET_NAMESPACE => 2, BpmnProjectPeer::PRJ_EXPRESION_LANGUAGE => 3, BpmnProjectPeer::PRJ_TYPE_LANGUAGE => 4, BpmnProjectPeer::PRJ_EXPORTER => 5, BpmnProjectPeer::PRJ_EXPORTER_VERSION => 6, BpmnProjectPeer::PRJ_CREATE_DATE => 7, BpmnProjectPeer::PRJ_UPDATE_DATE => 8, BpmnProjectPeer::PRJ_AUTHOR => 9, BpmnProjectPeer::PRJ_AUTHOR_VERSION => 10, BpmnProjectPeer::PRJ_ORIGINAL_SOURCE => 11, ),
|
BasePeer::TYPE_COLNAME => array (BpmnProjectPeer::PRJ_UID => 0, BpmnProjectPeer::PRJ_NAME => 1, BpmnProjectPeer::PRJ_DESCRIPTION => 2, BpmnProjectPeer::PRJ_TARGET_NAMESPACE => 3, BpmnProjectPeer::PRJ_EXPRESION_LANGUAGE => 4, BpmnProjectPeer::PRJ_TYPE_LANGUAGE => 5, BpmnProjectPeer::PRJ_EXPORTER => 6, BpmnProjectPeer::PRJ_EXPORTER_VERSION => 7, BpmnProjectPeer::PRJ_CREATE_DATE => 8, BpmnProjectPeer::PRJ_UPDATE_DATE => 9, BpmnProjectPeer::PRJ_AUTHOR => 10, BpmnProjectPeer::PRJ_AUTHOR_VERSION => 11, BpmnProjectPeer::PRJ_ORIGINAL_SOURCE => 12, ),
|
||||||
BasePeer::TYPE_FIELDNAME => array ('PRJ_UID' => 0, 'PRJ_NAME' => 1, 'PRJ_TARGET_NAMESPACE' => 2, 'PRJ_EXPRESION_LANGUAGE' => 3, 'PRJ_TYPE_LANGUAGE' => 4, 'PRJ_EXPORTER' => 5, 'PRJ_EXPORTER_VERSION' => 6, 'PRJ_CREATE_DATE' => 7, 'PRJ_UPDATE_DATE' => 8, 'PRJ_AUTHOR' => 9, 'PRJ_AUTHOR_VERSION' => 10, 'PRJ_ORIGINAL_SOURCE' => 11, ),
|
BasePeer::TYPE_FIELDNAME => array ('PRJ_UID' => 0, 'PRJ_NAME' => 1, 'PRJ_DESCRIPTION' => 2, 'PRJ_TARGET_NAMESPACE' => 3, 'PRJ_EXPRESION_LANGUAGE' => 4, 'PRJ_TYPE_LANGUAGE' => 5, 'PRJ_EXPORTER' => 6, 'PRJ_EXPORTER_VERSION' => 7, 'PRJ_CREATE_DATE' => 8, 'PRJ_UPDATE_DATE' => 9, 'PRJ_AUTHOR' => 10, 'PRJ_AUTHOR_VERSION' => 11, 'PRJ_ORIGINAL_SOURCE' => 12, ),
|
||||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
|
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -199,6 +202,8 @@ abstract class BaseBpmnProjectPeer
|
|||||||
|
|
||||||
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_NAME);
|
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_NAME);
|
||||||
|
|
||||||
|
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_DESCRIPTION);
|
||||||
|
|
||||||
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_TARGET_NAMESPACE);
|
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_TARGET_NAMESPACE);
|
||||||
|
|
||||||
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_EXPRESION_LANGUAGE);
|
$criteria->addSelectColumn(BpmnProjectPeer::PRJ_EXPRESION_LANGUAGE);
|
||||||
|
|||||||
@@ -3099,6 +3099,7 @@
|
|||||||
<table name="BPMN_PROJECT">
|
<table name="BPMN_PROJECT">
|
||||||
<column name="PRJ_UID" type="VARCHAR" size="32" required="true" default="" primaryKey="true"/>
|
<column name="PRJ_UID" type="VARCHAR" size="32" required="true" default="" primaryKey="true"/>
|
||||||
<column name="PRJ_NAME" type="VARCHAR" size="255" required="true" default=""/>
|
<column name="PRJ_NAME" type="VARCHAR" size="255" required="true" default=""/>
|
||||||
|
<column name="PRJ_DESCRIPTION" type="VARCHAR" size="512" required="false"/>
|
||||||
<column name="PRJ_TARGET_NAMESPACE" type="LONGVARCHAR" required="true"/>
|
<column name="PRJ_TARGET_NAMESPACE" type="LONGVARCHAR" required="true"/>
|
||||||
<column name="PRJ_EXPRESION_LANGUAGE" type="LONGVARCHAR" required="false"/>
|
<column name="PRJ_EXPRESION_LANGUAGE" type="LONGVARCHAR" required="false"/>
|
||||||
<column name="PRJ_TYPE_LANGUAGE" type="LONGVARCHAR" required="false"/>
|
<column name="PRJ_TYPE_LANGUAGE" type="LONGVARCHAR" required="false"/>
|
||||||
|
|||||||
@@ -1600,6 +1600,7 @@ CREATE TABLE `BPMN_PROJECT`
|
|||||||
(
|
(
|
||||||
`PRJ_UID` VARCHAR(32) default '' NOT NULL,
|
`PRJ_UID` VARCHAR(32) default '' NOT NULL,
|
||||||
`PRJ_NAME` VARCHAR(255) default '' NOT NULL,
|
`PRJ_NAME` VARCHAR(255) default '' NOT NULL,
|
||||||
|
`PRJ_DESCRIPTION` VARCHAR(512),
|
||||||
`PRJ_TARGET_NAMESPACE` MEDIUMTEXT NOT NULL,
|
`PRJ_TARGET_NAMESPACE` MEDIUMTEXT NOT NULL,
|
||||||
`PRJ_EXPRESION_LANGUAGE` MEDIUMTEXT,
|
`PRJ_EXPRESION_LANGUAGE` MEDIUMTEXT,
|
||||||
`PRJ_TYPE_LANGUAGE` MEDIUMTEXT,
|
`PRJ_TYPE_LANGUAGE` MEDIUMTEXT,
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace ProcessMaker\Project\Adapter;
|
|
||||||
|
|
||||||
use ProcessMaker\Project\ProjectHandler;
|
|
||||||
|
|
||||||
class BpmnProject extends ProjectHandler
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -2,8 +2,10 @@
|
|||||||
namespace ProcessMaker\Project\Adapter;
|
namespace ProcessMaker\Project\Adapter;
|
||||||
|
|
||||||
use ProcessMaker\Project\Adapter\BpmnHandler;
|
use ProcessMaker\Project\Adapter\BpmnHandler;
|
||||||
|
use ProcessMaker\Util\Hash;
|
||||||
|
|
||||||
class WorkflowBpmnProject extends BpmnHandler
|
|
||||||
|
class BpmnWorkflowProject extends BpmnHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
421
workflow/engine/src/ProcessMaker/Project/BpmnProject.php
Normal file
421
workflow/engine/src/ProcessMaker/Project/BpmnProject.php
Normal file
@@ -0,0 +1,421 @@
|
|||||||
|
<?php
|
||||||
|
namespace ProcessMaker\Project;
|
||||||
|
|
||||||
|
use \BpmnProject as Project;
|
||||||
|
use \BpmnProcess as Process;
|
||||||
|
use \BpmnDiagram as Diagram;
|
||||||
|
use \BpmnLaneset as Laneset;
|
||||||
|
use \BpmnLane as Lane;
|
||||||
|
use \BpmnActivity as Activity;
|
||||||
|
use \BpmnBound as Bound;
|
||||||
|
use \BpmnEvent as Event;
|
||||||
|
use \BpmnGateway as Gateway;
|
||||||
|
use \BpmnFlow as Flow;
|
||||||
|
use \BpmnArtifact as Artifact;
|
||||||
|
|
||||||
|
use \BpmnProjectPeer as ProjectPeer;
|
||||||
|
use \BpmnProcessPeer as ProcessPeer;
|
||||||
|
use \BpmnDiagramPeer as DiagramPeer;
|
||||||
|
use \BpmnLanesetPeer as LanesetPeer;
|
||||||
|
use \BpmnLanePeer as LanePeer;
|
||||||
|
use \BpmnActivityPeer as ActivityPeer;
|
||||||
|
use \BpmnBoundPeer as BoundPeer;
|
||||||
|
use \BpmnEventPeer as EventPeer;
|
||||||
|
use \BpmnGatewayPeer as GatewayPeer;
|
||||||
|
use \BpmnFlowPeer as FlowPeer;
|
||||||
|
use \BpmnArtifactPeer as ArtifactPeer;
|
||||||
|
|
||||||
|
use \BasePeer;
|
||||||
|
|
||||||
|
use ProcessMaker\Project\ProjectHandler;
|
||||||
|
use ProcessMaker\Util\Hash;
|
||||||
|
|
||||||
|
class BpmnProject //extends ProjectHandler
|
||||||
|
{
|
||||||
|
protected static $diagramElements = array(
|
||||||
|
'activities' => 'act_uid',
|
||||||
|
'events' => 'evn_uid',
|
||||||
|
'flows' => 'flo_uid',
|
||||||
|
'artifacts' => 'art_uid',
|
||||||
|
'laneset' => 'lns_uid',
|
||||||
|
'lanes' => 'lan_uid'
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \BpmnProject
|
||||||
|
*/
|
||||||
|
protected $project;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \BpmnProcess
|
||||||
|
*/
|
||||||
|
protected $process;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \BpmnDiagram
|
||||||
|
*/
|
||||||
|
protected $diagram;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array of \BpmnActivities objects
|
||||||
|
*/
|
||||||
|
protected $activities = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array of \BpmnEvents objects
|
||||||
|
*/
|
||||||
|
protected $events = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array on \BpmnFlow objects
|
||||||
|
*/
|
||||||
|
protected $flows = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array of \BpmnArtifact objects
|
||||||
|
*/
|
||||||
|
protected $artifacts = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array of \BpmnLaneset objects
|
||||||
|
*/
|
||||||
|
protected $laneset = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array of \BpmnLanes objects
|
||||||
|
*/
|
||||||
|
protected $lanes = array();
|
||||||
|
|
||||||
|
|
||||||
|
public function __construct($data = null)
|
||||||
|
{
|
||||||
|
if (! is_null($data)) {
|
||||||
|
$this->create($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function load($prjUid)
|
||||||
|
{
|
||||||
|
$me = new BpmnProject();
|
||||||
|
$me->project = ProjectPeer::retrieveByPK($prjUid);
|
||||||
|
|
||||||
|
return $me;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array|null $data optional array attributes to create and initialize a BpmnProject
|
||||||
|
*/
|
||||||
|
public function create($data)
|
||||||
|
{
|
||||||
|
// setting defaults
|
||||||
|
$data['PRJ_UID'] = array_key_exists('PRJ_UID', $data) ? $data['PRJ_UID'] : Hash::generateUID();
|
||||||
|
|
||||||
|
$this->project = new Project();
|
||||||
|
$this->project->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||||
|
$this->project->setPrjCreateDate(date("Y-m-d H:i:s"));
|
||||||
|
$this->project->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addDiagram($data = array())
|
||||||
|
{
|
||||||
|
if (empty($this->project)) {
|
||||||
|
throw new \Exception("Error: There is not an initialized project.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// setting defaults
|
||||||
|
$data['DIA_UID'] = array_key_exists('DIA_UID', $data) ? $data['DIA_UID'] : Hash::generateUID();
|
||||||
|
$data['DIA_NAME'] = array_key_exists('DIA_NAME', $data) ? $data['DIA_NAME'] : $this->project->getPrjName();
|
||||||
|
|
||||||
|
$this->diagram = new Diagram();
|
||||||
|
$this->diagram->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||||
|
$this->diagram->setPrjUid($this->project->getPrjUid());
|
||||||
|
$this->diagram->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addProcess($data = array())
|
||||||
|
{
|
||||||
|
if (empty($this->diagram)) {
|
||||||
|
throw new \Exception("Error: There is not an initialized diagram.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// setting defaults
|
||||||
|
$data['PRO_UID'] = array_key_exists('PRO_UID', $data) ? $data['PRO_UID'] : Hash::generateUID();;
|
||||||
|
$data['PRO_NAME'] = array_key_exists('PRO_NAME', $data) ? $data['PRO_NAME'] : $this->diagram->getDiaName();
|
||||||
|
|
||||||
|
$this->process = new Process();
|
||||||
|
$this->process->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||||
|
$this->process->setPrjUid($this->project->getPrjUid());
|
||||||
|
$this->process->setDiaUid($this->getDiagram("object")->getDiaUid());
|
||||||
|
$this->process->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addActivity($data)
|
||||||
|
{
|
||||||
|
if (empty($this->diagram)) {
|
||||||
|
throw new \Exception("Error: There is not an initialized diagram.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// setting defaults
|
||||||
|
$data['ACT_UID'] = array_key_exists('ACT_UID', $data) ? $data['ACT_UID'] : Hash::generateUID();;
|
||||||
|
|
||||||
|
$activity = new Activity();
|
||||||
|
$activity->fromArray($data);
|
||||||
|
$activity->setPrjUid($this->project->getPrjUid());
|
||||||
|
$activity->setProUid($this->getProcess("object")->getProUid());
|
||||||
|
$activity->save();
|
||||||
|
|
||||||
|
$this->activities[$activity->getActUid()] = $activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getActivity($actUid)
|
||||||
|
{
|
||||||
|
if (empty($this->activities) || ! array_key_exists($actUid, $this->activities)) {
|
||||||
|
$activity = ActivityPeer::retrieveByPK($actUid);
|
||||||
|
|
||||||
|
if (! is_object($activity)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->activities[$actUid] = $activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->activities[$actUid];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getActivities()
|
||||||
|
{
|
||||||
|
if (empty($this->activities)) {
|
||||||
|
$this->activities = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||||
|
}
|
||||||
|
|
||||||
|
$activitiesList = array();
|
||||||
|
|
||||||
|
foreach ($this->activities as $activity) {
|
||||||
|
$activitiesList[] = $activity->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $activitiesList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addEvent($data)
|
||||||
|
{
|
||||||
|
// setting defaults
|
||||||
|
$data['EVN_UID'] = array_key_exists('EVN_UID', $data) ? $data['EVN_UID'] : Hash::generateUID();;
|
||||||
|
|
||||||
|
$event = new Event();
|
||||||
|
$event->fromArray($data);
|
||||||
|
$event->setPrjUid($this->project->getPrjUid());
|
||||||
|
$event->setProUid($this->getProcess("object")->getProUid());
|
||||||
|
$event->save();
|
||||||
|
|
||||||
|
$this->events[$event->getEvnUid()] = $event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getEvent($evnUid)
|
||||||
|
{
|
||||||
|
if (empty($this->events) || ! array_key_exists($evnUid, $this->activities)) {
|
||||||
|
$event = EventPeer::retrieveByPK($evnUid);
|
||||||
|
|
||||||
|
if (! is_object($event)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->events[$evnUid] = $event;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->events[$evnUid];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getEvents()
|
||||||
|
{
|
||||||
|
if (empty($this->events)) {
|
||||||
|
$this->events = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||||
|
}
|
||||||
|
|
||||||
|
$eventsList = array();
|
||||||
|
|
||||||
|
foreach ($this->events as $event) {
|
||||||
|
$eventsList[] = $event->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $eventsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addGateway($data)
|
||||||
|
{
|
||||||
|
// setting defaults
|
||||||
|
$data['GAT_UID'] = array_key_exists('GAT_UID', $data) ? $data['GAT_UID'] : Hash::generateUID();;
|
||||||
|
|
||||||
|
$gateway = new Gateway();
|
||||||
|
$gateway->fromArray($data);
|
||||||
|
$gateway->setPrjUid($this->project->getPrjUid());
|
||||||
|
$gateway->setProUid($this->getProcess("object")->getProUid());
|
||||||
|
$gateway->save();
|
||||||
|
|
||||||
|
$this->gateways[$gateway->getGatUid()] = $gateway;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getGateway($gatUid)
|
||||||
|
{
|
||||||
|
if (empty($this->gateways) || ! array_key_exists($gatUid, $this->gateways)) {
|
||||||
|
$gateway = GatewayPeer::retrieveByPK($gatUid);
|
||||||
|
|
||||||
|
if (! is_object($gateway)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->gateways[$gatUid] = $gateway;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->gateways[$gatUid];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getGateways()
|
||||||
|
{
|
||||||
|
if (empty($this->gateways)) {
|
||||||
|
$this->gateways = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||||
|
}
|
||||||
|
|
||||||
|
$gatewaysList = array();
|
||||||
|
|
||||||
|
foreach ($this->gateways as $gateway) {
|
||||||
|
$gatewaysList[] = $gateway->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $gatewaysList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addFlow($data)
|
||||||
|
{
|
||||||
|
// setting defaults
|
||||||
|
$data['GAT_UID'] = array_key_exists('GAT_UID', $data) ? $data['GAT_UID'] : Hash::generateUID();;
|
||||||
|
$data['FLO_STATE'] = json_encode($data['FLO_STATE']);
|
||||||
|
|
||||||
|
$flow = new Flow();
|
||||||
|
$flow->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||||
|
$flow->setPrjUid($this->project->getPrjUid());
|
||||||
|
$flow->setDiaUid($this->getDiagram("object")->getDiaUid());
|
||||||
|
$flow->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFlow($floUid)
|
||||||
|
{
|
||||||
|
if (empty($this->flows) || ! array_key_exists($floUid, $this->flows)) {
|
||||||
|
$flow = GatewayPeer::retrieveByPK($floUid);
|
||||||
|
|
||||||
|
if (! is_object($flow)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->flows[$floUid] = $flow;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->flows[$floUid];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFlows()
|
||||||
|
{
|
||||||
|
if (empty($this->flows)) {
|
||||||
|
$this->flows = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||||
|
}
|
||||||
|
|
||||||
|
$flowsList = array();
|
||||||
|
|
||||||
|
foreach ($this->flows as $flow) {
|
||||||
|
$flowsList[] = $flow->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $flowsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addArtifact($data)
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getArtifact($artUid)
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getArtifacts()
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addLane($data)
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLane($lanUid)
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLanes()
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addLaneset($data)
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLaneset($lnsUid)
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLanesets()
|
||||||
|
{
|
||||||
|
// TODO: Implement update() method.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
public function getUid()
|
||||||
|
{
|
||||||
|
if (empty($this->project)) {
|
||||||
|
throw new \Exception("Error: There is not an initialized project.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->project->getPrjUid();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getProject($retType = "array")
|
||||||
|
{
|
||||||
|
return $retType == "array" ? $this->project->toArray() : $this->project;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDiagram($retType = "array")
|
||||||
|
{
|
||||||
|
if (empty($this->diagram)) {
|
||||||
|
$diagrams = Diagram::findAllByProUid($this->getUid());
|
||||||
|
|
||||||
|
if (! empty($diagrams)) {
|
||||||
|
//NOTICE for ProcessMaker we're just handling a "one to one" relationship between project and process
|
||||||
|
$this->diagram = $diagrams[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retType == "array" ? $this->diagram->toArray() : $this->diagram;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getProcess($retType = "array")
|
||||||
|
{
|
||||||
|
if (empty($this->process)) {
|
||||||
|
$processes = Process::findAllByProUid($this->getUid());
|
||||||
|
|
||||||
|
if (! empty($processes)) {
|
||||||
|
//NOTICE for ProcessMaker we're just handling a "one to one" relationship between project and process
|
||||||
|
$this->process = $processes[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retType == "array" ? $this->process->toArray() : $this->process;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace ProcessMaker\Project\Adapter;
|
namespace ProcessMaker\Project;
|
||||||
|
|
||||||
use \Criteria;
|
use \Criteria;
|
||||||
use \ResultSet;
|
use \ResultSet;
|
||||||
112
workflow/engine/src/Tests/ProcessMaker/BpmnProjectTest.php
Normal file
112
workflow/engine/src/Tests/ProcessMaker/BpmnProjectTest.php
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (! class_exists("Propel")) {
|
||||||
|
include_once __DIR__ . "/../bootstrap.php";
|
||||||
|
}
|
||||||
|
|
||||||
|
use \ProcessMaker\Project\BpmnProject;
|
||||||
|
use \PHPUnit_Framework_TestCase;
|
||||||
|
|
||||||
|
|
||||||
|
class BpmnProjectTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testCreate()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"PRJ_NAME" => "Test BPMN Project #1",
|
||||||
|
"PRJ_DESCRIPTION" => "Description for - Test BPMN Project #1",
|
||||||
|
"PRJ_AUTHOR" => "00000000000000000000000000000001"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create a new BpmnProject and save to DB
|
||||||
|
$bp = new BpmnProject($data);
|
||||||
|
$projectData = $bp->getProject();
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$this->assertEquals($value, $projectData[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $bp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
* @var $bp \ProcessMaker\Project\BpmnProject
|
||||||
|
*/
|
||||||
|
public function testAddDiagram($bp)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"DIA_NAME" => "Sample Diagram #1"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Save to DB
|
||||||
|
$bp->addDiagram($data);
|
||||||
|
|
||||||
|
// Load from DB
|
||||||
|
$bpLoaded = BpmnProject::load($bp->getUid());
|
||||||
|
$diagramData = $bpLoaded->getDiagram();
|
||||||
|
|
||||||
|
$this->assertEquals($data["DIA_NAME"], $diagramData["DIA_NAME"]);
|
||||||
|
$this->assertEquals($bp->getUid(), $diagramData["PRJ_UID"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
* @var $bp \ProcessMaker\Project\BpmnProject
|
||||||
|
*/
|
||||||
|
public function testAddProcess($bp)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"PRO_NAME" => "Sample Process #1"
|
||||||
|
);
|
||||||
|
|
||||||
|
$diagramData = $bp->getDiagram();
|
||||||
|
|
||||||
|
// Save to DB
|
||||||
|
$bp->addProcess($data);
|
||||||
|
|
||||||
|
// Load from DB
|
||||||
|
$bpLoaded = BpmnProject::load($bp->getUid());
|
||||||
|
$processData = $bpLoaded->getProcess();
|
||||||
|
|
||||||
|
|
||||||
|
$this->assertEquals($data["PRO_NAME"], $processData["PRO_NAME"]);
|
||||||
|
$this->assertEquals($bp->getUid(), $processData["PRJ_UID"]);
|
||||||
|
$this->assertEquals($diagramData['DIA_UID'], $processData["DIA_UID"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
* @var $bp \ProcessMaker\Project\BpmnProject
|
||||||
|
*/
|
||||||
|
public function testAddActivity($bp)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"ACT_NAME" => "Activity #1",
|
||||||
|
"BOU_X" => "50",
|
||||||
|
"BOU_Y" => "50"
|
||||||
|
);
|
||||||
|
|
||||||
|
$processData = $bp->getProcess();
|
||||||
|
|
||||||
|
|
||||||
|
// Save to DB
|
||||||
|
$bp->addActivity($data);
|
||||||
|
|
||||||
|
// Load from DB
|
||||||
|
$bpLoaded = BpmnProject::load($bp->getUid());
|
||||||
|
$activities = $bpLoaded->getActivities();
|
||||||
|
|
||||||
|
$this->assertCount(1, $activities);
|
||||||
|
|
||||||
|
$activityData = $activities[0];
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$this->assertEquals($value, $activityData[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->assertEquals($bpLoaded->getUid(), $activityData["PRJ_UID"]);
|
||||||
|
$this->assertEquals($processData["PRO_UID"], $activityData["PRO_UID"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
257
workflow/engine/src/Tests/ProcessMaker/WorkflowProjectTest.php
Normal file
257
workflow/engine/src/Tests/ProcessMaker/WorkflowProjectTest.php
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (! class_exists("Propel")) {
|
||||||
|
include_once __DIR__ . "/../bootstrap.php";
|
||||||
|
}
|
||||||
|
|
||||||
|
use \ProcessMaker\Project\WorkflowProject;
|
||||||
|
|
||||||
|
|
||||||
|
class WorkflowProjectTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
protected $workflowProject;
|
||||||
|
|
||||||
|
protected function setUp()
|
||||||
|
{
|
||||||
|
$this->workflowProject = new WorkflowProject();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCreate()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"PRO_TITLE" => "Test Project #1",
|
||||||
|
"PRO_DESCRIPTION" => "Description for - Test Project #1",
|
||||||
|
"PRO_CATEGORY" => "",
|
||||||
|
"PRO_CREATE_USER" => "00000000000000000000000000000001"
|
||||||
|
);
|
||||||
|
|
||||||
|
$wp = new WorkflowProject($data);
|
||||||
|
|
||||||
|
$processData = $wp->getProperties();
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$this->assertEquals($data[$key], $processData[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $wp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
*/
|
||||||
|
public function testAddTask($wp)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"TAS_TITLE" => "task #1",
|
||||||
|
"TAS_DESCRIPTION" => "Description for task #1",
|
||||||
|
"TAS_POSX" => "50",
|
||||||
|
"TAS_POSY" => "50",
|
||||||
|
"TAS_WIDTH" => "100",
|
||||||
|
"TAS_HEIGHT" => "25"
|
||||||
|
);
|
||||||
|
|
||||||
|
$tasUid = $wp->addTask($data);
|
||||||
|
|
||||||
|
$taskData = $wp->getTask($tasUid);
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$this->assertEquals($data[$key], $taskData[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
*/
|
||||||
|
public function testUpdateTask($wp)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"TAS_TITLE" => "task #1 (updated)",
|
||||||
|
"TAS_POSX" => "150",
|
||||||
|
"TAS_POSY" => "250"
|
||||||
|
);
|
||||||
|
|
||||||
|
// at this time, there is only one task
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(1, $tasks);
|
||||||
|
|
||||||
|
$wp->updateTask($tasks[0]['TAS_UID'], $data);
|
||||||
|
$taskData = $wp->getTask($tasks[0]['TAS_UID']);
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$this->assertEquals($data[$key], $taskData[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
*/
|
||||||
|
public function testRemoveTask($wp)
|
||||||
|
{
|
||||||
|
$tasUid = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #2",
|
||||||
|
"TAS_POSX" => "150",
|
||||||
|
"TAS_POSY" => "250"
|
||||||
|
));
|
||||||
|
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(2, $tasks);
|
||||||
|
|
||||||
|
$wp->removeTask($tasUid);
|
||||||
|
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(1, $tasks);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreate
|
||||||
|
*/
|
||||||
|
public function testGetTasks($wp)
|
||||||
|
{
|
||||||
|
$tasUid1 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #2",
|
||||||
|
"TAS_POSX" => "250",
|
||||||
|
"TAS_POSY" => "250"
|
||||||
|
));
|
||||||
|
$tasUid2 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #3",
|
||||||
|
"TAS_POSX" => "350",
|
||||||
|
"TAS_POSY" => "350"
|
||||||
|
));
|
||||||
|
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(3, $tasks);
|
||||||
|
|
||||||
|
$wp->removeTask($tasUid1);
|
||||||
|
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(2, $tasks);
|
||||||
|
|
||||||
|
$wp->removeTask($tasUid2);
|
||||||
|
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(1, $tasks);
|
||||||
|
|
||||||
|
$wp->removeTask($tasks[0]['TAS_UID']);
|
||||||
|
|
||||||
|
$tasks = $wp->getTasks();
|
||||||
|
$this->assertInternalType('array', $tasks);
|
||||||
|
$this->assertCount(0, $tasks);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function testAddRoute()
|
||||||
|
{
|
||||||
|
$wp = new WorkflowProject(array(
|
||||||
|
"PRO_TITLE" => "Test Project #2 (Sequential)",
|
||||||
|
"PRO_CREATE_USER" => "00000000000000000000000000000001"
|
||||||
|
));
|
||||||
|
|
||||||
|
$tasUid1 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #1",
|
||||||
|
"TAS_POSX" => "410",
|
||||||
|
"TAS_POSY" => "61"
|
||||||
|
));
|
||||||
|
$tasUid2 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #2",
|
||||||
|
"TAS_POSX" => "159",
|
||||||
|
"TAS_POSY" => "370"
|
||||||
|
));
|
||||||
|
|
||||||
|
$rouUid = $wp->addRoute($tasUid1, $tasUid2, "SEQUENTIAL");
|
||||||
|
|
||||||
|
$routeSaved = $wp->getRoute($rouUid);
|
||||||
|
|
||||||
|
$this->assertEquals($tasUid1, $routeSaved['TAS_UID']);
|
||||||
|
$this->assertEquals($tasUid2, $routeSaved['ROU_NEXT_TASK']);
|
||||||
|
$this->assertEquals("SEQUENTIAL", $routeSaved['ROU_TYPE']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAddSelectRoute()
|
||||||
|
{
|
||||||
|
$wp = new WorkflowProject(array(
|
||||||
|
"PRO_TITLE" => "Test Project #3 (Select)",
|
||||||
|
"PRO_CREATE_USER" => "00000000000000000000000000000001"
|
||||||
|
));
|
||||||
|
|
||||||
|
$tasUid1 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #1",
|
||||||
|
"TAS_POSX" => "410",
|
||||||
|
"TAS_POSY" => "61"
|
||||||
|
));
|
||||||
|
$tasUid2 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #2",
|
||||||
|
"TAS_POSX" => "159",
|
||||||
|
"TAS_POSY" => "370"
|
||||||
|
));
|
||||||
|
$tasUid3 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #3",
|
||||||
|
"TAS_POSX" => "670",
|
||||||
|
"TAS_POSY" => "372"
|
||||||
|
));
|
||||||
|
|
||||||
|
$wp->addSelectRoute($tasUid1, array($tasUid2, $tasUid3));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCompleteWorkflowProject()
|
||||||
|
{
|
||||||
|
$wp = new WorkflowProject(array(
|
||||||
|
"PRO_TITLE" => "Test Complete Project #4",
|
||||||
|
"PRO_CREATE_USER" => "00000000000000000000000000000001"
|
||||||
|
));
|
||||||
|
|
||||||
|
$tasUid1 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #1",
|
||||||
|
"TAS_POSX" => "406",
|
||||||
|
"TAS_POSY" => "71"
|
||||||
|
));
|
||||||
|
$tasUid2 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #2",
|
||||||
|
"TAS_POSX" => "188",
|
||||||
|
"TAS_POSY" => "240"
|
||||||
|
));
|
||||||
|
$tasUid3 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #3",
|
||||||
|
"TAS_POSX" => "406",
|
||||||
|
"TAS_POSY" => "239"
|
||||||
|
));
|
||||||
|
$tasUid4 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #4",
|
||||||
|
"TAS_POSX" => "294",
|
||||||
|
"TAS_POSY" => "366"
|
||||||
|
));
|
||||||
|
$tasUid5 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #5",
|
||||||
|
"TAS_POSX" => "640",
|
||||||
|
"TAS_POSY" => "240"
|
||||||
|
));
|
||||||
|
$tasUid6 = $wp->addTask(array(
|
||||||
|
"TAS_TITLE" => "task #6",
|
||||||
|
"TAS_POSX" => "640",
|
||||||
|
"TAS_POSY" => "359"
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
|
$wp->addRoute($tasUid1, $tasUid2, "PARALLEL");
|
||||||
|
$wp->addRoute($tasUid1, $tasUid3, "PARALLEL");
|
||||||
|
$wp->addRoute($tasUid1, $tasUid5, "PARALLEL");
|
||||||
|
|
||||||
|
$wp->addRoute($tasUid2, $tasUid4, "SEC-JOIN");
|
||||||
|
$wp->addRoute($tasUid3, $tasUid4, "SEC-JOIN");
|
||||||
|
|
||||||
|
$wp->addRoute($tasUid5, $tasUid6, "EVALUATE");
|
||||||
|
$wp->addRoute($tasUid5, "-1", "EVALUATE");
|
||||||
|
|
||||||
|
$wp->setStartTask($tasUid1);
|
||||||
|
|
||||||
|
$wp->setEndTask($tasUid4);
|
||||||
|
$wp->setEndTask($tasUid6);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user