Se modifica la funcionalidad de start event para Case Scheduler y Web Entry (remove event, add flow)

This commit is contained in:
Daniel Rojas
2014-04-28 15:22:53 -04:00
parent c0813f669e
commit 065183ba5c
3 changed files with 84 additions and 20 deletions

View File

@@ -226,6 +226,18 @@ class BpmnWorkflow extends Project\Bpmn
if ($event && $event->getEvnType() == "START") {
$this->wp->setStartTask($data["FLO_ELEMENT_DEST"]);
}
// update case scheduler
if ($event->getEvnType() == "START" && $event->getEvnMarker() == "TIMER") {
$aData = array('TAS_UID'=>$data["FLO_ELEMENT_DEST"], 'SCH_UID'=>$data["FLO_ELEMENT_ORIGIN"]);
$this->wp->updateCaseScheduler($aData);
}
// update web entry
if ($event->getEvnType() == "START" && $event->getEvnMarker() == "MESSAGE") {
$aData = array('TAS_UID'=>$data["FLO_ELEMENT_DEST"], 'WE_UID'=>$data["FLO_ELEMENT_ORIGIN"]);
$this->wp->updateWebEntry($aData);
}
break;
}
break;
@@ -310,16 +322,15 @@ class BpmnWorkflow extends Project\Bpmn
$event = \BpmnEventPeer::retrieveByPK($eventUid);
// create case scheduler
if ($event->getEvnMarker() == "TIMER") {
if ($event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") {
$this->wp->addCaseScheduler($eventUid);
}
// create web entry
if ($event->getEvnMarker() == "MESSAGE") {
if ($event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") {
$this->wp->addWebEntry($eventUid);
}
//return parent::addEvent($data);
return $eventUid;
}

View File

@@ -473,6 +473,17 @@ class Bpmn extends Handler
self::log("Remove Event: $evnUid");
$event = EventPeer::retrieveByPK($evnUid);
// delete case scheduler
if ($event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") {
$this->removeCaseScheduler($evnUid);
}
// delete web entry
if ($event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") {
$this->removeWebEntry($evnUid);
}
$event->delete();
self::log("Remove Event Success!");
@@ -824,4 +835,30 @@ class Bpmn extends Handler
$status = $value ? "DISABLED" : "ACTIVE";
$this->update(array("PRJ_STATUS" => $status));
}
public function removeCaseScheduler($schUid)
{
try {
$caseScheduler = new \CaseScheduler();
self::log("Remove Case Scheduler: ".$schUid);
$caseScheduler->remove($schUid);
self::log("Remove Case Scheduler Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function removeWebEntry($weUid)
{
try {
$webEntry = new \ProcessMaker\BusinessModel\WebEntry();
self::log("Remove Web Entry: ".$weUid);
$webEntry->delete($weUid);
self::log("Remove Web Entry Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
}

View File

@@ -668,9 +668,8 @@ class Workflow extends Handler
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
if ($aRow['EVN_UID'] == 'TIMER') {
$this->removeCaseScheduler();
}
$this->removeCaseScheduler($aRow['EVN_UID']);
$this->removeWebEntry($aRow['EVN_UID']);
$oEvent->remove($aRow['EVN_UID']);
$oDataset->next();
}
@@ -775,7 +774,7 @@ class Workflow extends Handler
$this->update(array("PRO_STATUS" => $status));
}
public function addCaseScheduler($eventUid)
public function addCaseScheduler($schUid)
{
try {
$caseScheduler = new \CaseScheduler();
@@ -805,7 +804,7 @@ class Workflow extends Handler
'SCH_REPEAT_STOP_IF_RUNNING'=>'',
'CASE_SH_PLUGIN_UID'=>NULL,
'SCH_DEL_USER_PASS'=>'',
'SCH_UID'=>$eventUid,
'SCH_UID'=>$schUid,
'SCH_REPEAT_UNTIL'=>''
);
@@ -819,12 +818,12 @@ class Workflow extends Handler
}
}
public function removeCaseScheduler()
public function removeCaseScheduler($schUid)
{
try {
$caseScheduler = new \CaseScheduler();
self::log("Remove Case Scheduler: ".$caseScheduler->getSchUid());
$caseScheduler->delete();
self::log("Remove Case Scheduler: ".$schUid);
$caseScheduler->remove($schUid);
self::log("Remove Case Scheduler Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
@@ -832,16 +831,23 @@ class Workflow extends Handler
}
}
public function updateCaseScheduler()
public function updateCaseScheduler($data)
{
try {
$caseScheduler = new \CaseScheduler();
$caseScheduler->update($data);
self::log("Update Case Scheduler Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function addWebEntry($eventUid)
public function addWebEntry($weUid)
{
try {
$webEntry = new \WebEntry();
$webEntryUid = $eventUid;
$webEntryUid = $weUid;
$webEntry->setWeUid($webEntryUid);
$webEntry->setProUid($this->proUid);
$webEntry->setWeMethod('');
@@ -856,12 +862,12 @@ class Workflow extends Handler
}
}
public function removeWebEntry()
public function removeWebEntry($weUid)
{
try {
$webEntry = new \WebEntry();
self::log("Remove Web Entry: ".$webEntry->getWeUid());
$webEntry->delete();
$webEntry = new \ProcessMaker\BusinessModel\WebEntry();
self::log("Remove Web Entry: ".$weUid);
$webEntry->delete($weUid);
self::log("Remove Web Entry Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
@@ -869,8 +875,18 @@ class Workflow extends Handler
}
}
public function updateWebEntry()
public function updateWebEntry($data)
{
try {
$webEntryUid = $data['WE_UID'];
$webEntry = \WebEntryPeer::retrieveByPK($webEntryUid);
$webEntry->fromArray($data, \BasePeer::TYPE_FIELDNAME);
$webEntry->save();
self::log("Update Web Entry Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
}