fixing xpdl import

This commit is contained in:
fernando
2011-03-21 19:15:24 -04:00
parent bfc93d1a75
commit 9b68a75fc1
6 changed files with 168 additions and 86 deletions

View File

@@ -526,62 +526,118 @@ class Processes {
$sProUid = $oData->process['PRO_UID']; $sProUid = $oData->process['PRO_UID'];
$oData->process['PRO_UID'] = $sNewProUid; $oData->process['PRO_UID'] = $sNewProUid;
foreach ($oData->tasks as $key => $val ) { if ( isset($oData->tasks ) && is_array($oData->tasks) ) {
$oData->tasks[$key]['PRO_UID'] = $sNewProUid; foreach ($oData->tasks as $key => $val ) {
$oData->tasks[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->routes as $key => $val ) {
$oData->routes[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->routes ) && is_array($oData->routes) ) {
foreach ($oData->routes as $key => $val ) {
$oData->routes[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->lanes as $key => $val ) {
$oData->lanes[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->lanes ) && is_array($oData->lanes) ) {
foreach ($oData->lanes as $key => $val ) {
$oData->lanes[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->inputs as $key => $val ) {
$oData->inputs[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->inputs ) && is_array($oData->inputs) ) {
foreach ($oData->inputs as $key => $val ) {
$oData->inputs[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->outputs as $key => $val ) {
$oData->outputs[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->outputs ) && is_array($oData->outputs) ) {
foreach ($oData->outputs as $key => $val ) {
$oData->outputs[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->steps as $key => $val ) {
$oData->steps[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->steps ) && is_array($oData->steps) ) {
foreach ($oData->steps as $key => $val ) {
$oData->steps[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->dynaforms as $key => $val ) {
$oData->dynaforms[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->dynaforms ) && is_array($oData->dynaforms) ) {
foreach ($oData->dynaforms as $key => $val ) {
$oData->dynaforms[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->triggers as $key => $val ) {
$oData->triggers[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->triggers ) && is_array($oData->triggers) ) {
foreach ($oData->triggers as $key => $val ) {
$oData->triggers[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->reportTables as $key => $val ) {
$oData->reportTables[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->reportTables ) && is_array($oData->reportTables) ) {
foreach ($oData->reportTables as $key => $val ) {
$oData->reportTables[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->reportTablesVars as $key => $val ) {
$oData->reportTablesVars[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->reportTablesVars ) && is_array($oData->reportTablesVars) ) {
foreach ($oData->reportTablesVars as $key => $val ) {
$oData->reportTablesVars[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->dbconnections as $key => $val ) {
$oData->dbconnections[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->dbconnections ) && is_array($oData->dbconnections) ) {
foreach ($oData->dbconnections as $key => $val ) {
$oData->dbconnections[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->stepSupervisor as $key => $val ) {
$oData->stepSupervisor[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->stepSupervisor ) && is_array($oData->stepSupervisor) ) {
foreach ($oData->stepSupervisor as $key => $val ) {
$oData->stepSupervisor[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->objectPermissions as $key => $val ) {
$oData->objectPermissions[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->objectPermissions ) && is_array($oData->objectPermissions) ) {
foreach ($oData->objectPermissions as $key => $val ) {
$oData->objectPermissions[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->caseTracker as $key => $val ) {
$oData->caseTracker[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->caseTracker ) && is_array($oData->caseTracker) ) {
foreach ($oData->caseTracker as $key => $val ) {
$oData->caseTracker[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->caseTrackerObject as $key => $val ) {
$oData->caseTrackerObject[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->caseTrackerObject ) && is_array($oData->caseTrackerObject) ) {
foreach ($oData->caseTrackerObject as $key => $val ) {
$oData->caseTrackerObject[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->stage as $key => $val ) {
$oData->stage[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->stage ) && is_array($oData->stage) ) {
foreach ($oData->stage as $key => $val ) {
$oData->stage[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->subProcess as $key => $val ) {
$oData->subProcess[$key]['PRO_PARENT'] = $sNewProUid; if ( isset($oData->subProcess ) && is_array($oData->subProcess) ) {
foreach ($oData->subProcess as $key => $val ) {
$oData->subProcess[$key]['PRO_PARENT'] = $sNewProUid;
}
} }
foreach ($oData->event as $key => $val ) {
$oData->event[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->event ) && is_array($oData->event) ) {
foreach ($oData->event as $key => $val ) {
$oData->event[$key]['PRO_UID'] = $sNewProUid;
}
} }
foreach ($oData->caseScheduler as $key => $val){
$oData->caseScheduler[$key]['PRO_UID'] = $sNewProUid; if ( isset($oData->caseScheduler ) && is_array($oData->caseScheduler) ) {
foreach ($oData->caseScheduler as $key => $val){
$oData->caseScheduler[$key]['PRO_UID'] = $sNewProUid;
}
} }
return true; return true;
} }
@@ -610,45 +666,64 @@ class Processes {
$map[ $val['TAS_UID'] ] = $newGuid; $map[ $val['TAS_UID'] ] = $newGuid;
$oData->tasks[$key]['TAS_UID'] = $newGuid; $oData->tasks[$key]['TAS_UID'] = $newGuid;
} }
foreach ( $oData->routes as $key => $val ) { if ( isset($oData->routes ) && is_array($oData->routes) ) {
$newGuid = $map[ $val['TAS_UID'] ]; foreach ( $oData->routes as $key => $val ) {
$oData->routes[$key]['TAS_UID'] = $newGuid;
if ( strlen ( $val['ROU_NEXT_TASK'] ) > 0 && $val['ROU_NEXT_TASK'] >0 ) {
$newGuid = $map[ $val['ROU_NEXT_TASK'] ];
$oData->routes[$key]['ROU_NEXT_TASK'] = $newGuid;
}
}
foreach ( $oData->steps as $key => $val ) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->steps[$key]['TAS_UID'] = $newGuid;
}
foreach ( $oData->steptriggers as $key => $val ) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->steptriggers[$key]['TAS_UID'] = $newGuid;
}
foreach ( $oData->taskusers as $key => $val ) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->taskusers[$key]['TAS_UID'] = $newGuid;
}
foreach ( $oData->subProcess as $key => $val ) {
$newGuid = $map[ $val['TAS_PARENT'] ];
$oData->subProcess[$key]['TAS_PARENT'] = $newGuid;
if (isset($map[ $val['TAS_UID'] ])) {
$newGuid = $map[ $val['TAS_UID'] ]; $newGuid = $map[ $val['TAS_UID'] ];
$oData->subProcess[$key]['TAS_UID'] = $newGuid; $oData->routes[$key]['TAS_UID'] = $newGuid;
} if ( strlen ( $val['ROU_NEXT_TASK'] ) > 0 && $val['ROU_NEXT_TASK'] >0 ) {
} $newGuid = $map[ $val['ROU_NEXT_TASK'] ];
foreach ( $oData->objectPermissions as $key => $val ) { $oData->routes[$key]['ROU_NEXT_TASK'] = $newGuid;
if (isset($map[ $val['TAS_UID'] ])) { }
$newGuid = $map[ $val['TAS_UID'] ];
$oData->objectPermissions[$key]['TAS_UID'] = $newGuid;
} }
} }
foreach ( $oData->caseScheduler as $key => $val ) { if ( isset($oData->steps) && is_array($oData->steps) ) {
if (isset($map[ $val['TAS_UID'] ])) { foreach ( $oData->steps as $key => $val ) {
$newGuid = $map[ $val['TAS_UID'] ]; $newGuid = $map[ $val['TAS_UID'] ];
$oData->caseScheduler[$key]['TAS_UID'] = $newGuid; $oData->steps[$key]['TAS_UID'] = $newGuid;
}
}
if ( isset($oData->steptriggers ) && is_array($oData->steptriggers) ) {
foreach ( $oData->steptriggers as $key => $val ) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->steptriggers[$key]['TAS_UID'] = $newGuid;
}
}
if ( isset($oData->taskusers ) && is_array($oData->taskusers) ) {
foreach ( $oData->taskusers as $key => $val ) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->taskusers[$key]['TAS_UID'] = $newGuid;
}
}
if ( isset($oData->subProcess ) && is_array($oData->subProcess) ) {
foreach ( $oData->subProcess as $key => $val ) {
$newGuid = $map[ $val['TAS_PARENT'] ];
$oData->subProcess[$key]['TAS_PARENT'] = $newGuid;
if (isset($map[ $val['TAS_UID'] ])) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->subProcess[$key]['TAS_UID'] = $newGuid;
}
}
}
if ( isset($oData->objectPermissions ) && is_array($oData->objectPermissions) ) {
foreach ( $oData->objectPermissions as $key => $val ) {
if (isset($map[ $val['TAS_UID'] ])) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->objectPermissions[$key]['TAS_UID'] = $newGuid;
}
}
}
if ( isset($oData->caseScheduler ) && is_array($oData->caseScheduler) ) {
foreach ( $oData->caseScheduler as $key => $val ) {
if (isset($map[ $val['TAS_UID'] ])) {
$newGuid = $map[ $val['TAS_UID'] ];
$oData->caseScheduler[$key]['TAS_UID'] = $newGuid;
}
} }
} }
@@ -1446,10 +1521,12 @@ class Processes {
*/ */
function renewAllRouteGuid ( &$oData ) { function renewAllRouteGuid ( &$oData ) {
$map = array (); $map = array ();
foreach ( $oData->routes as $key => $val ) { if ( isset($oData->routes ) && is_array($oData->routes) ) {
$newGuid = $this->getUnusedRouteGUID(); foreach ( $oData->routes as $key => $val ) {
$map[ $val['ROU_UID'] ] = $newGuid; $newGuid = $this->getUnusedRouteGUID();
$oData->routes[$key]['ROU_UID'] = $newGuid; $map[ $val['ROU_UID'] ] = $newGuid;
$oData->routes[$key]['ROU_UID'] = $newGuid;
}
} }
} }

View File

@@ -238,7 +238,7 @@ class Tasks
$routeID = $oRoute->create($row); $routeID = $oRoute->create($row);
//saving end event while import old processes //saving end event while import old processes
if($end==1){ if(isset($end) && $end==1){
if($sRouteType == "SEQUENTIAL"){ if($sRouteType == "SEQUENTIAL"){
$aTaskDetails = $oTask->load($idTask); $aTaskDetails = $oTask->load($idTask);
$positionX = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2; $positionX = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;

View File

@@ -44,11 +44,15 @@ class Xpdl extends processes
* @param string $pmFilename * @param string $pmFilename
* @return void * @return void
*/ */
function createProcessFromDataXpdl ($oData,$tasks) function createProcessFromDataXpdl ($oData,$tasks) {
{ $this->removeProcessRows ($oData->process['PRO_UID'] ); if ( !isset($oData->process['PRO_UID']) || trim($oData->process['PRO_UID']) == '' )
$oData->process['PRO_UID'] = G::generateUniqueID() ;
$this->removeProcessRows ($oData->process['PRO_UID'] );
$uid = $this->createProcessRow($oData->process); $uid = $this->createProcessRow($oData->process);
$this->createTaskRows($oData->tasks); $this->createTaskRows($oData->tasks);
$newTasks=$this->verifyTasks($uid,$tasks); $newTasks=$this->verifyTasks($uid,$tasks);
if ( !isset($oData->routes) ) $oData->routes = array();
$this->createRouteRowsXpdl($uid,$oData->routes,$newTasks); $this->createRouteRowsXpdl($uid,$oData->routes,$newTasks);
$this->createLaneRows($oData->lanes); $this->createLaneRows($oData->lanes);
$this->createDynaformRows($oData->dynaforms); $this->createDynaformRows($oData->dynaforms);
@@ -1602,7 +1606,7 @@ class Xpdl extends processes
$nameProcess = ''; $nameProcess = '';
$sw = 0; $sw = 0;
$file = new DOMDocument(); $file = new DOMDocument();
$file->load($pmFilename); @$file->load($pmFilename, LIBXML_DTDLOAD);
$root = $file->documentElement; $root = $file->documentElement;
$node = $root->firstChild; $node = $root->firstChild;
$numberTasks = 0; $numberTasks = 0;
@@ -1751,7 +1755,7 @@ class Xpdl extends processes
$oData->subProcess = array(); $oData->subProcess = array();
$numberSubProcess = 0; $numberSubProcess = 0;
$arraySubProcess = $subProcesses; $arraySubProcess = $subProcesses;
$numberSubProcess = sizeof($arraySubProcesses); $numberSubProcess = isset($arraySubProcesses) && is_array($arraySubProcesses) ? sizeof($arraySubProcesses) : 0;
$numberCount = 0; $numberCount = 0;
foreach($subProcesses as $key => $value) { foreach($subProcesses as $key => $value) {
foreach($oData->tasks as $keyTask => $valueTask) { foreach($oData->tasks as $keyTask => $valueTask) {

View File

@@ -70,7 +70,7 @@ class Process extends BaseProcess {
public function setProTitle($v) public function setProTitle($v)
{ {
if ( $this->getProUid() == '' ) { if ( $this->getProUid() == '' ) {
throw ( new Exception( "Error in setProTitle, the PRO_UID can't be blank") ); throw ( new Exception( "Error in setProTitle, the PRO_UID can't be blank" . print_r (debug_backtrace(), 1) ) );
} }
// Since the native PHP type for this column is string, // Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not). // we will cast the input to a string (if it is not).
@@ -376,7 +376,7 @@ class Process extends BaseProcess {
public function createRow($aData) public function createRow($aData)
{ {
$con = Propel::getConnection( ProcessPeer::DATABASE_NAME ); $con = Propel::getConnection( ProcessPeer::DATABASE_NAME );
$con->begin(); //$con->begin(); //does not allow dual BEGIN
$this->setProUid ( $aData['PRO_UID'] ); $this->setProUid ( $aData['PRO_UID'] );
$this->setProParent ( $aData['PRO_PARENT'] ); $this->setProParent ( $aData['PRO_PARENT'] );
$this->setProTime ( $aData['PRO_TIME'] ); $this->setProTime ( $aData['PRO_TIME'] );
@@ -399,11 +399,10 @@ class Process extends BaseProcess {
$this->setProTitleX ( $aData['PRO_TITLE_X'] ); $this->setProTitleX ( $aData['PRO_TITLE_X'] );
$this->setProTitleY ( $aData['PRO_TITLE_Y'] ); $this->setProTitleY ( $aData['PRO_TITLE_Y'] );
if ( $this->validate() ) { if ( $this->validate() ) {
///-- Does not allow dual Begin $con->begin();
///-- $con->begin();
$res = $this->save(); $res = $this->save();
if (isset ( $aData['PRO_TITLE'] ) ) if (isset ( $aData['PRO_TITLE'] ) && trim ($aData['PRO_TITLE']) != '' )
$this->setProTitle ( $aData['PRO_TITLE'] ); $this->setProTitle ( $aData['PRO_TITLE'] );
else else
$this->setProTitle ( 'Default Process Title' ); $this->setProTitle ( 'Default Process Title' );

View File

@@ -48,6 +48,7 @@
$sProUid = $oData->process['PRO_UID']; $sProUid = $oData->process['PRO_UID'];
$oData->process['PRO_UID_OLD']=$sProUid; $oData->process['PRO_UID_OLD']=$sProUid;
if ( !isset( $oData->tasks) ) $oData->tasks = array();
$tasks = $oData->tasks; $tasks = $oData->tasks;
// code added by gustavo cruz gustavo-at-colosa-dot-com // code added by gustavo cruz gustavo-at-colosa-dot-com
// evaluate actions or import options // evaluate actions or import options

View File

@@ -92,6 +92,7 @@
die; die;
} }
// end added code // end added code
if ( !isset( $oData->tasks) ) $oData->tasks = array();
$tasks = $oData->tasks; $tasks = $oData->tasks;
$oProcess->createProcessFromDataXpdl ($oData,$tasks); $oProcess->createProcessFromDataXpdl ($oData,$tasks);
G::header('Location: processes_Map?PRO_UID=' . $sProUid); G::header('Location: processes_Map?PRO_UID=' . $sProUid);