BUG 6643 Adjustment triggers & imp/exp processes to avoid duplic of events
This commit is contained in:
@@ -717,7 +717,17 @@ class Processes {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// New process bpmn
|
||||||
|
if ( isset($oData->event ) && is_array($oData->event) ) {
|
||||||
|
foreach ( $oData->event as $key => $val ) {
|
||||||
|
if (isset($map[ $val['EVN_TAS_UID_FROM'] ])) {
|
||||||
|
$newGuid = $map[ $val['EVN_TAS_UID_FROM'] ];
|
||||||
|
$oData->event[$key]['EVN_TAS_UID_FROM'] = $newGuid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( isset($oData->caseScheduler ) && is_array($oData->caseScheduler) ) {
|
if ( isset($oData->caseScheduler ) && is_array($oData->caseScheduler) ) {
|
||||||
foreach ( $oData->caseScheduler as $key => $val ) {
|
foreach ( $oData->caseScheduler as $key => $val ) {
|
||||||
if (isset($map[ $val['TAS_UID'] ])) {
|
if (isset($map[ $val['TAS_UID'] ])) {
|
||||||
@@ -2889,7 +2899,7 @@ class Processes {
|
|||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Delete the dynaforms of process
|
//Delete the dynaforms of process
|
||||||
$oCriteria = new Criteria('workflow');
|
$oCriteria = new Criteria('workflow');
|
||||||
$oCriteria->add(DynaformPeer::PRO_UID, $sProUid);
|
$oCriteria->add(DynaformPeer::PRO_UID, $sProUid);
|
||||||
$oDataset = DynaformPeer::doSelectRS($oCriteria);
|
$oDataset = DynaformPeer::doSelectRS($oCriteria);
|
||||||
@@ -3087,6 +3097,11 @@ class Processes {
|
|||||||
if($oEvent->Exists ($aRow['EVN_UID']))
|
if($oEvent->Exists ($aRow['EVN_UID']))
|
||||||
$oEvent->remove($aRow['EVN_UID']);
|
$oEvent->remove($aRow['EVN_UID']);
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
|
if($oEvent->existsByTaskUidFrom($aRow['TAS_UID'])) {
|
||||||
|
$aRowEvent = $oEvent->getRowByTaskUidFrom($aRow['TAS_UID']);
|
||||||
|
$oEvent->remove($aRowEvent['EVN_UID']);
|
||||||
|
}
|
||||||
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Delete the CaseScheduler of process
|
//Delete the CaseScheduler of process
|
||||||
@@ -3117,6 +3132,9 @@ class Processes {
|
|||||||
$this->removeProcessRows ($oData->process['PRO_UID'] );
|
$this->removeProcessRows ($oData->process['PRO_UID'] );
|
||||||
$this->createProcessRow($oData->process);
|
$this->createProcessRow($oData->process);
|
||||||
$this->createTaskRows($oData->tasks);
|
$this->createTaskRows($oData->tasks);
|
||||||
|
|
||||||
|
$this->createEventRows(isset($oData->event) ? $oData->event : array());
|
||||||
|
|
||||||
$aRoutesUID = $this->createRouteRows($oData->routes);
|
$aRoutesUID = $this->createRouteRows($oData->routes);
|
||||||
$this->createLaneRows($oData->lanes);
|
$this->createLaneRows($oData->lanes);
|
||||||
|
|
||||||
@@ -3164,9 +3182,12 @@ class Processes {
|
|||||||
$this->createStageRows(isset($oData->stage) ? $oData->stage : array());
|
$this->createStageRows(isset($oData->stage) ? $oData->stage : array());
|
||||||
|
|
||||||
$this->createFieldCondition(isset($oData->fieldCondition) ? $oData->fieldCondition : array(), $oData->dynaforms);
|
$this->createFieldCondition(isset($oData->fieldCondition) ? $oData->fieldCondition : array(), $oData->dynaforms);
|
||||||
$this->createEventRows(isset($oData->event) ? $oData->event : array());
|
|
||||||
|
// Create before to createRouteRows for avoid duplicates
|
||||||
|
// $this->createEventRows(isset($oData->event) ? $oData->event : array());
|
||||||
|
|
||||||
$this->createCaseSchedulerRows(isset($oData->caseScheduler) ? $oData->caseScheduler : array());
|
$this->createCaseSchedulerRows(isset($oData->caseScheduler) ? $oData->caseScheduler : array());
|
||||||
|
|
||||||
//and finally create the files, dynaforms (xml and html), emailTemplates and Public files
|
//and finally create the files, dynaforms (xml and html), emailTemplates and Public files
|
||||||
$this->createFiles($oData, $pmFilename);
|
$this->createFiles($oData, $pmFilename);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -239,28 +239,29 @@ class Tasks
|
|||||||
|
|
||||||
//saving end event while import old processes
|
//saving end event while import old processes
|
||||||
if(isset($end) && $end==1){
|
if(isset($end) && $end==1){
|
||||||
if($sRouteType == "SEQUENTIAL"){
|
if(! $oEvent->existsByTaskUidFrom($idTask)) {
|
||||||
$aTaskDetails = $oTask->load($idTask);
|
if($sRouteType == "SEQUENTIAL"){
|
||||||
$positionX = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;
|
$aTaskDetails = $oTask->load($idTask);
|
||||||
$positionY = $aTaskDetails['TAS_POSY'] + $aTaskDetails['TAS_HEIGHT'] + 10;
|
$positionX = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;
|
||||||
|
$positionY = $aTaskDetails['TAS_POSY'] + $aTaskDetails['TAS_HEIGHT'] + 10;
|
||||||
$aData['PRO_UID'] = $row['PRO_UID'];
|
|
||||||
$aData['EVN_TYPE'] = 'bpmnEventEmptyEnd';
|
|
||||||
$aData['EVN_POSX'] = $positionX;
|
|
||||||
$aData['EVN_POSY'] = $positionY;
|
|
||||||
$aData['EVN_TAS_UID_FROM'] = $idTask;
|
|
||||||
$aData['EVN_STATUS'] = 'ACTIVE';
|
|
||||||
$aData['EVN_RELATED_TO'] = 'MULTIPLE';
|
|
||||||
$aData['EVN_WHEN'] = '1';
|
|
||||||
$aData['EVN_ACTION'] = '';
|
|
||||||
$sEvn_uid = $oEvent->create($aData);
|
|
||||||
|
|
||||||
$aField['ROU_UID'] = $routeID;
|
$aData['PRO_UID'] = $row['PRO_UID'];
|
||||||
$aField['ROU_EVN_UID'] = $sEvn_uid;
|
$aData['EVN_TYPE'] = 'bpmnEventEmptyEnd';
|
||||||
$oRoute->update($aField);
|
$aData['EVN_POSX'] = $positionX;
|
||||||
$end = 0;
|
$aData['EVN_POSY'] = $positionY;
|
||||||
|
$aData['EVN_TAS_UID_FROM'] = $idTask;
|
||||||
|
$aData['EVN_STATUS'] = 'ACTIVE';
|
||||||
|
$aData['EVN_RELATED_TO'] = 'MULTIPLE';
|
||||||
|
$aData['EVN_WHEN'] = '1';
|
||||||
|
$aData['EVN_ACTION'] = '';
|
||||||
|
$sEvn_uid = $oEvent->create($aData);
|
||||||
|
|
||||||
|
$aField['ROU_UID'] = $routeID;
|
||||||
|
$aField['ROU_EVN_UID'] = $sEvn_uid;
|
||||||
|
$oRoute->update($aField);
|
||||||
|
$end = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,6 +150,8 @@ class Event extends BaseEvent {
|
|||||||
//start the transaction
|
//start the transaction
|
||||||
$oConnection->begin();
|
$oConnection->begin();
|
||||||
|
|
||||||
|
if($aData['EVN_TYPE']==='bpmnEventEmptyEnd')
|
||||||
|
unset($aData['TRI_UID']);
|
||||||
if(isset($aData['TRI_UID']))
|
if(isset($aData['TRI_UID']))
|
||||||
{
|
{
|
||||||
$oTrigger = new Triggers();
|
$oTrigger = new Triggers();
|
||||||
@@ -803,5 +805,33 @@ class Event extends BaseEvent {
|
|||||||
throw($oError);
|
throw($oError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function existsByTaskUidFrom( $TAS_UID_FROM )
|
||||||
|
{
|
||||||
|
$oCriteria = new Criteria('workflow');
|
||||||
|
$oCriteria->addSelectColumn('COUNT(*) AS COUNT_EVENTS');
|
||||||
|
$oCriteria->add(EventPeer::EVN_TAS_UID_FROM, $TAS_UID_FROM);
|
||||||
|
|
||||||
|
$oDataset = EventPeer::doSelectRs($oCriteria);
|
||||||
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
$oDataset->next();
|
||||||
|
$aRow = $oDataset->getRow();
|
||||||
|
|
||||||
|
return ($aRow['COUNT_EVENTS'] != 0) ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRowByTaskUidFrom( $TAS_UID_FROM )
|
||||||
|
{
|
||||||
|
$oCriteria = new Criteria('workflow');
|
||||||
|
|
||||||
|
$oCriteria->add(EventPeer::EVN_TAS_UID_FROM, $TAS_UID_FROM);
|
||||||
|
$oDataset = EventPeer::doSelectRs($oCriteria);
|
||||||
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
$oDataset->next();
|
||||||
|
$aRow = $oDataset->getRow();
|
||||||
|
return $aRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // Event
|
} // Event
|
||||||
?>
|
?>
|
||||||
|
|||||||
Reference in New Issue
Block a user