Updates On Bpmn->Workflow Adapter, now activities and flows are updated just when its data have changed
This commit is contained in:
@@ -1409,6 +1409,7 @@ class processMap
|
|||||||
}
|
}
|
||||||
|
|
||||||
$oTask = new Task();
|
$oTask = new Task();
|
||||||
|
$oNewTask = new StdClass();
|
||||||
$oNewTask->label = G::LoadTranslation('ID_TASK') . ' ' . $iTaskNumber;
|
$oNewTask->label = G::LoadTranslation('ID_TASK') . ' ' . $iTaskNumber;
|
||||||
$oNewTask->uid = $oTask->create(array('PRO_UID' => $sProcessUID, 'TAS_TITLE' => $oNewTask->label, 'TAS_POSX' => $iX, 'TAS_POSY' => $iY, 'TAS_WIDTH' => $iWidth, 'TAS_HEIGHT' => $iHeight ));
|
$oNewTask->uid = $oTask->create(array('PRO_UID' => $sProcessUID, 'TAS_TITLE' => $oNewTask->label, 'TAS_POSX' => $iX, 'TAS_POSY' => $iY, 'TAS_WIDTH' => $iWidth, 'TAS_HEIGHT' => $iHeight ));
|
||||||
$oNewTask->statusIcons = array();
|
$oNewTask->statusIcons = array();
|
||||||
|
|||||||
@@ -166,4 +166,12 @@ class BpmnActivity extends BaseBpmnActivity
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function exists($actUid)
|
||||||
|
{
|
||||||
|
$c = new Criteria("workflow");
|
||||||
|
$c->add(BpmnActivityPeer::ACT_UID, $actUid);
|
||||||
|
|
||||||
|
return BpmnActivityPeer::doCount($c) > 0 ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
} // BpmnActivity
|
} // BpmnActivity
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class BpmnFlow extends BaseBpmnFlow
|
|||||||
|
|
||||||
while ($rs->next()) {
|
while ($rs->next()) {
|
||||||
$flow = $rs->getRow();
|
$flow = $rs->getRow();
|
||||||
$flow["FLO_STATE"] = @json_decode($flow["FLO_STATE"]);
|
$flow["FLO_STATE"] = @json_decode($flow["FLO_STATE"], true);
|
||||||
//$flow["FLO_IS_INMEDIATE"] = $flow["FLO_IS_INMEDIATE"] == 1 ? true : false;
|
//$flow["FLO_IS_INMEDIATE"] = $flow["FLO_IS_INMEDIATE"] == 1 ? true : false;
|
||||||
$flow = $changeCaseTo !== CASE_UPPER ? array_change_key_case($flow, CASE_LOWER) : $flow;
|
$flow = $changeCaseTo !== CASE_UPPER ? array_change_key_case($flow, CASE_LOWER) : $flow;
|
||||||
|
|
||||||
@@ -77,7 +77,10 @@ class BpmnFlow extends BaseBpmnFlow
|
|||||||
|
|
||||||
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||||
{
|
{
|
||||||
return parent::toArray($type);
|
$flow = parent::toArray($type);
|
||||||
|
$flow["FLO_STATE"] = @json_decode($flow["FLO_STATE"], true);
|
||||||
|
|
||||||
|
return $flow;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // BpmnFlow
|
} // BpmnFlow
|
||||||
|
|||||||
@@ -907,7 +907,7 @@ class Model
|
|||||||
private static function getChecksum($data)
|
private static function getChecksum($data)
|
||||||
{
|
{
|
||||||
if (! is_string($data)) {
|
if (! is_string($data)) {
|
||||||
$data = var_export($data, true);
|
$data = ksort(var_export($data, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return sha1($data);
|
return sha1($data);
|
||||||
|
|||||||
@@ -116,6 +116,13 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
|
|
||||||
public function updateActivity($actUid, $data)
|
public function updateActivity($actUid, $data)
|
||||||
{
|
{
|
||||||
|
unset($data["BOU_ELEMENT_ID"]);
|
||||||
|
|
||||||
|
if (! self::isModified("activity", $actUid, $data)) {
|
||||||
|
self::log("Update Activity: $actUid (No Changes)");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
parent::updateActivity($actUid, $data);
|
parent::updateActivity($actUid, $data);
|
||||||
|
|
||||||
$taskData = array();
|
$taskData = array();
|
||||||
@@ -175,6 +182,16 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateFlow($floUid, $data)
|
||||||
|
{
|
||||||
|
if (! self::isModified("flow", $floUid, $data)) {
|
||||||
|
self::log("Update Flow: $floUid (No Changes)");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::updateFlow($floUid, $data);
|
||||||
|
}
|
||||||
|
|
||||||
public function removeFlow($floUid)
|
public function removeFlow($floUid)
|
||||||
{
|
{
|
||||||
$flow = \BpmnFlowPeer::retrieveByPK($floUid);
|
$flow = \BpmnFlowPeer::retrieveByPK($floUid);
|
||||||
@@ -364,8 +381,4 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
$this->wp->remove();
|
$this->wp->remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function hello($s)
|
|
||||||
{
|
|
||||||
echo "--->".$s;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -55,6 +55,14 @@ class Bpmn extends Handler
|
|||||||
*/
|
*/
|
||||||
protected $diagram;
|
protected $diagram;
|
||||||
|
|
||||||
|
protected static $excludeFields = array(
|
||||||
|
"activity" => array(
|
||||||
|
"PRJ_UID", "PRO_UID", "BOU_ELEMENT", "BOU_ELEMENT_TYPE", "BOU_REL_POSITION",
|
||||||
|
"BOU_SIZE_IDENTICAL", "DIA_UID", "BOU_UID", "ELEMENT_UID"
|
||||||
|
),
|
||||||
|
"flow" => array("PRJ_UID", "DIA_UID", "FLO_ELEMENT_DEST_PORT", "FLO_ELEMENT_ORIGIN_PORT")
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
public function __construct($data = null)
|
public function __construct($data = null)
|
||||||
{
|
{
|
||||||
@@ -267,6 +275,7 @@ class Bpmn extends Handler
|
|||||||
|
|
||||||
if ($retType != "object" && ! empty($activity)) {
|
if ($retType != "object" && ! empty($activity)) {
|
||||||
$activity = $activity->toArray();
|
$activity = $activity->toArray();
|
||||||
|
$activity = self::filterArrayKeys($activity, self::$excludeFields["activity"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $activity;
|
return $activity;
|
||||||
@@ -278,20 +287,20 @@ class Bpmn extends Handler
|
|||||||
extract($start);
|
extract($start);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Activity::getAll($this->getUid(), $start, $limit, $filter, $changeCaseTo);
|
$filter = $changeCaseTo != CASE_UPPER ? array_map("strtolower", self::$excludeFields["activity"]) : self::$excludeFields["activity"];
|
||||||
|
|
||||||
|
return self::filterCollectionArrayKeys(
|
||||||
|
Activity::getAll($this->getUid(), $start, $limit, $filter, $changeCaseTo),
|
||||||
|
$filter
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateActivity($actUid, $data)
|
public function updateActivity($actUid, $data)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
self::log("Update Activity: $actUid", "With data: ", $data);
|
self::log("Update Activity: $actUid, with data: ", $data);
|
||||||
|
|
||||||
$activity = ActivityPeer::retrieveByPk($actUid);
|
$activity = ActivityPeer::retrieveByPk($actUid);
|
||||||
|
|
||||||
// fixing data
|
|
||||||
//$data['ELEMENT_UID'] = $data['BOU_ELEMENT_UID'];
|
|
||||||
//unset($data['BOU_ELEMENT_UID']);
|
|
||||||
|
|
||||||
$activity->fromArray($data);
|
$activity->fromArray($data);
|
||||||
$activity->save();
|
$activity->save();
|
||||||
|
|
||||||
@@ -317,6 +326,11 @@ class Bpmn extends Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function activityExists($actUid)
|
||||||
|
{
|
||||||
|
return \BpmnActivity::exists($actUid);
|
||||||
|
}
|
||||||
|
|
||||||
public function addEvent($data)
|
public function addEvent($data)
|
||||||
{
|
{
|
||||||
// setting defaults
|
// setting defaults
|
||||||
@@ -511,8 +525,9 @@ class Bpmn extends Handler
|
|||||||
{
|
{
|
||||||
$flow = FlowPeer::retrieveByPK($floUid);
|
$flow = FlowPeer::retrieveByPK($floUid);
|
||||||
|
|
||||||
if ($retType != "object" && ! empty($activity)) {
|
if ($retType != "object" && ! empty($flow)) {
|
||||||
$flow = $flow->toArray();
|
$flow = $flow->toArray();
|
||||||
|
$flow = self::filterArrayKeys($flow, self::$excludeFields["flow"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $flow;
|
return $flow;
|
||||||
@@ -524,7 +539,12 @@ class Bpmn extends Handler
|
|||||||
extract($start);
|
extract($start);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Flow::getAll($this->getUid(), null, null, '', $changeCaseTo);
|
$filter = $changeCaseTo != CASE_UPPER ? array_map("strtolower", self::$excludeFields["flow"]) : self::$excludeFields["flow"];
|
||||||
|
|
||||||
|
return self::filterCollectionArrayKeys(
|
||||||
|
Flow::getAll($this->getUid(), $start, $limit, $filter, $changeCaseTo),
|
||||||
|
$filter
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function removeFlow($floUid)
|
public function removeFlow($floUid)
|
||||||
@@ -542,6 +562,11 @@ class Bpmn extends Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function flowExists($floUid)
|
||||||
|
{
|
||||||
|
return \BpmnFlow::exists($floUid);
|
||||||
|
}
|
||||||
|
|
||||||
public function addArtifact($data)
|
public function addArtifact($data)
|
||||||
{
|
{
|
||||||
// TODO: Implement update() method.
|
// TODO: Implement update() method.
|
||||||
@@ -590,104 +615,18 @@ class Bpmn extends Handler
|
|||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Others functions/methods
|
|
||||||
*/
|
|
||||||
|
|
||||||
public static function getDiffFromProjects($updatedProject)
|
public function isModified($element, $uid, $newData)
|
||||||
{
|
{
|
||||||
// preparing target project
|
$data = array();
|
||||||
$diagramElements = array(
|
|
||||||
'act_uid' => 'activities',
|
|
||||||
'evn_uid' => 'events',
|
|
||||||
'flo_uid' => 'flows',
|
|
||||||
'art_uid' => 'artifacts',
|
|
||||||
'lns_uid' => 'laneset',
|
|
||||||
'lan_uid' => 'lanes'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Getting Differences
|
switch ($element) {
|
||||||
$newRecords = array();
|
case "activity": $data = $this->getActivity($uid); break;
|
||||||
$newRecordsUids = array();
|
case "gateway": $data = $this->getGateway($uid); break;
|
||||||
$deletedRecords = array();
|
case "event": $data = $this->getEvent($uid); break;
|
||||||
$updatedRecords = array();
|
case "flow": $data = $this->getFlow($uid); break;
|
||||||
|
|
||||||
// Get new records
|
|
||||||
foreach ($diagramElements as $key => $element) {
|
|
||||||
if (! array_key_exists($element, $updatedProject['diagrams'][0])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*print_r($savedProject['diagrams'][0][$element]);
|
|
||||||
print_r($updatedProject['diagrams'][0][$element]);
|
|
||||||
var_dump($key);*/
|
|
||||||
|
|
||||||
$arrayDiff = self::arrayDiff(
|
|
||||||
$savedProject['diagrams'][0][$element],
|
|
||||||
$updatedProject['diagrams'][0][$element],
|
|
||||||
$key
|
|
||||||
);
|
|
||||||
|
|
||||||
if (! empty($arrayDiff)) {
|
|
||||||
$newRecordsUids[$element] = $arrayDiff;
|
|
||||||
|
|
||||||
foreach ($updatedProject['diagrams'][0][$element] as $item) {
|
|
||||||
if (in_array($item[$key], $newRecordsUids[$element])) {
|
|
||||||
$newRecords[$element][] = $item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get deleted records
|
return (self::getChecksum($data) !== self::getChecksum($newData));
|
||||||
foreach ($diagramElements as $key => $element) {
|
|
||||||
if (! array_key_exists($element, $updatedProject['diagrams'][0])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$arrayDiff = self::arrayDiff(
|
|
||||||
$updatedProject['diagrams'][0][$element],
|
|
||||||
$savedProject['diagrams'][0][$element],
|
|
||||||
$key
|
|
||||||
);
|
|
||||||
|
|
||||||
if (! empty($arrayDiff)) {
|
|
||||||
$deletedRecords[$element] = $arrayDiff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get updated records
|
|
||||||
$checksum = array();
|
|
||||||
foreach ($diagramElements as $key => $element) {
|
|
||||||
$checksum[$element] = self::getArrayChecksum($savedProject['diagrams'][0][$element], $key);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
foreach ($diagramElements as $key => $element) {
|
|
||||||
if (! array_key_exists($element, $updatedProject['diagrams'][0])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($updatedProject['diagrams'][0][$element] as $item) {
|
|
||||||
if ((array_key_exists($element, $newRecordsUids) && in_array($item[$key], $newRecordsUids[$element])) ||
|
|
||||||
(array_key_exists($element, $deletedRecords) && in_array($item[$key], $deletedRecords[$element]))
|
|
||||||
) {
|
|
||||||
// skip new or deleted records
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self::getChecksum($item) !== $checksum[$element][$item[$key]]) {
|
|
||||||
$updatedRecords[$element][] = $item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$diff = array(
|
|
||||||
'new' => $newRecords,
|
|
||||||
'deleted' => $deletedRecords,
|
|
||||||
'updated' => $updatedRecords
|
|
||||||
);
|
|
||||||
|
|
||||||
return $diff;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -41,6 +41,55 @@ abstract class Handler
|
|||||||
return $diff;
|
return $diff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static function getArrayChecksum($list, $key = null)
|
||||||
|
{
|
||||||
|
$checksum = array();
|
||||||
|
|
||||||
|
foreach ($list as $k => $item) {
|
||||||
|
if (empty($key)) {
|
||||||
|
$checksum[$k] = self::getChecksum($item);
|
||||||
|
} else {
|
||||||
|
$checksum[$item[$key]] = self::getChecksum($item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getChecksum($data)
|
||||||
|
{
|
||||||
|
if (! is_string($data)) {
|
||||||
|
ksort($data);
|
||||||
|
$data = print_r($data, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sha1($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function filterCollectionArrayKeys($data, $filter = array())
|
||||||
|
{
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
foreach ($data as $row) {
|
||||||
|
$result[] = self::filterArrayKeys($row, $filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function filterArrayKeys($data, $filter = array())
|
||||||
|
{
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
if (! in_array($key, $filter)) {
|
||||||
|
$result[$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log in ProcessMaker Standard Output if debug mode is enabled.
|
* Log in ProcessMaker Standard Output if debug mode is enabled.
|
||||||
*
|
*
|
||||||
@@ -52,15 +101,25 @@ abstract class Handler
|
|||||||
* self::log("Method: ", __METHOD__, 'Returns: ', $result);
|
* self::log("Method: ", __METHOD__, 'Returns: ', $result);
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
public static function logstr($str)
|
||||||
|
{
|
||||||
|
if (\System::isDebugMode()) {
|
||||||
|
Logger::getInstance()->setLog($str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function logInline()
|
||||||
|
{
|
||||||
|
if (\System::isDebugMode()) {
|
||||||
|
call_user_func_array(array(Logger::getInstance(), 'setLogInline'), func_get_args());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static function log()
|
public static function log()
|
||||||
{
|
{
|
||||||
if (\System::isDebugMode()) {
|
if (\System::isDebugMode()) {
|
||||||
|
$logger = Logger::getInstance();
|
||||||
$me = Logger::getInstance();
|
call_user_func_array(array($logger, 'setLogLine'), func_get_args());
|
||||||
$args = func_get_args();
|
|
||||||
//array_unshift($args, 'Class '.__CLASS__.' ');
|
|
||||||
|
|
||||||
call_user_func_array(array($me, 'setLog'), $args);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -61,7 +61,7 @@ class Workflow extends Handler
|
|||||||
$data['PRO_CATEGORY'] = array_key_exists('PRO_CATEGORY', $data) ? $data['PRO_CATEGORY'] : "";
|
$data['PRO_CATEGORY'] = array_key_exists('PRO_CATEGORY', $data) ? $data['PRO_CATEGORY'] : "";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Create Process with data:", $data);
|
self::log("Create Process with data:", $data);
|
||||||
|
|
||||||
//validate if process with specified name already exists
|
//validate if process with specified name already exists
|
||||||
if (Process::existsByProTitle($data["PRO_TITLE"])) {
|
if (Process::existsByProTitle($data["PRO_TITLE"])) {
|
||||||
@@ -102,7 +102,7 @@ class Workflow extends Handler
|
|||||||
public function remove()
|
public function remove()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Remove Process with uid: {$this->proUid}");
|
self::log("Remove Process with uid: {$this->proUid}");
|
||||||
$this->deleteProcess($this->proUid);
|
$this->deleteProcess($this->proUid);
|
||||||
self::log("Remove Process Success!");
|
self::log("Remove Process Success!");
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
@@ -163,7 +163,7 @@ class Workflow extends Handler
|
|||||||
$taskData['PRO_UID'] = $this->proUid;
|
$taskData['PRO_UID'] = $this->proUid;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Add Task with data: ", $taskData);
|
self::log("Add Task with data: ", $taskData);
|
||||||
$task = new Task();
|
$task = new Task();
|
||||||
$tasUid = $task->create($taskData, false);
|
$tasUid = $task->create($taskData, false);
|
||||||
self::log("Add Task Success!");
|
self::log("Add Task Success!");
|
||||||
@@ -178,7 +178,7 @@ class Workflow extends Handler
|
|||||||
public function updateTask($tasUid, $taskData)
|
public function updateTask($tasUid, $taskData)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Update Task: $tasUid", "With data: ", $taskData);
|
self::log("Update Task: $tasUid", "With data: ", $taskData);
|
||||||
$task = new Task();
|
$task = new Task();
|
||||||
$taskData['TAS_UID'] = $tasUid;
|
$taskData['TAS_UID'] = $tasUid;
|
||||||
$result = $task->update($taskData);
|
$result = $task->update($taskData);
|
||||||
@@ -194,7 +194,7 @@ class Workflow extends Handler
|
|||||||
public function removeTask($tasUid)
|
public function removeTask($tasUid)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Remove Task: $tasUid");
|
self::log("Remove Task: $tasUid");
|
||||||
$task = new Task();
|
$task = new Task();
|
||||||
$task->remove($tasUid);
|
$task->remove($tasUid);
|
||||||
self::log("Remove Task Success!");
|
self::log("Remove Task Success!");
|
||||||
@@ -300,7 +300,7 @@ class Workflow extends Handler
|
|||||||
$routeData['ROU_UID'] = $rouUid;
|
$routeData['ROU_UID'] = $rouUid;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Update Route: $rouUid with data:", $routeData);
|
self::log("Update Route: $rouUid with data:", $routeData);
|
||||||
$route = new Route();
|
$route = new Route();
|
||||||
$route->update($routeData);
|
$route->update($routeData);
|
||||||
self::log("Update Route Success!");
|
self::log("Update Route Success!");
|
||||||
@@ -313,7 +313,7 @@ class Workflow extends Handler
|
|||||||
public function removeRoute($rouUid)
|
public function removeRoute($rouUid)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
self::log("===> Executing -> ".__METHOD__, "Remove Route: $rouUid");
|
self::log("Remove Route: $rouUid");
|
||||||
$route = new Route();
|
$route = new Route();
|
||||||
$result = $route->remove($rouUid);
|
$result = $route->remove($rouUid);
|
||||||
self::log("Remove Route Success!");
|
self::log("Remove Route Success!");
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ class Logger
|
|||||||
protected function __construct()
|
protected function __construct()
|
||||||
{
|
{
|
||||||
$this->logFile = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'processmaker.log';
|
$this->logFile = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'processmaker.log';
|
||||||
|
|
||||||
if (! file_exists($this->logFile)) {
|
if (! file_exists($this->logFile)) {
|
||||||
file_put_contents($this->logFile, "");
|
if (! touch($this->logFile)) {
|
||||||
|
error_log("ProcessMaker Log file can't be created!");
|
||||||
|
}
|
||||||
chmod($this->logFile, 0777);
|
chmod($this->logFile, 0777);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,19 +36,30 @@ class Logger
|
|||||||
return self::$instance;
|
return self::$instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setLog()
|
public function setLogLine()
|
||||||
{
|
{
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
|
|
||||||
foreach ($args as $arg) {
|
$this->setLog(date('Y-m-d H:i:s') . " ");
|
||||||
if (! is_string($arg)) {
|
|
||||||
$arg = print_r($arg, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
fwrite($this->fp, "- " . date('Y-m-d H:i:s') . " " . $arg . PHP_EOL);
|
foreach ($args as $str) {
|
||||||
|
$this->setLog((is_string($str) ? $str : print_r($str, true)) . PHP_EOL);
|
||||||
}
|
}
|
||||||
//if (count($args) > 1)
|
}
|
||||||
// fwrite($this->fp, PHP_EOL);
|
|
||||||
|
public function setLogInline()
|
||||||
|
{
|
||||||
|
$args = func_get_args();
|
||||||
|
$this->setLog(date('Y-m-d H:i:s') . " ");
|
||||||
|
|
||||||
|
foreach ($args as $str) {
|
||||||
|
$this->setLog((is_string($str) ? $str : print_r($str, true)) . " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setLog($str)
|
||||||
|
{
|
||||||
|
fwrite($this->fp, $str);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function log()
|
public static function log()
|
||||||
@@ -55,7 +67,7 @@ class Logger
|
|||||||
$me = Logger::getInstance();
|
$me = Logger::getInstance();
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
|
|
||||||
call_user_func_array(array($me, 'setLog'), $args);
|
call_user_func_array(array($me, 'setLogLine'), $args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -119,9 +119,10 @@ class Project extends Api
|
|||||||
$whiteList = array();
|
$whiteList = array();
|
||||||
foreach ($diagram["activities"] as $i => $activityData) {
|
foreach ($diagram["activities"] as $i => $activityData) {
|
||||||
$activityData = array_change_key_case($activityData, CASE_UPPER);
|
$activityData = array_change_key_case($activityData, CASE_UPPER);
|
||||||
|
unset($activityData["_EXTENDED"]);
|
||||||
|
|
||||||
// activity exists ?
|
// activity exists ?
|
||||||
if ($activity = $bwp->getActivity($activityData["ACT_UID"])) {
|
if ($bwp->activityExists($activityData["ACT_UID"])) {
|
||||||
// then update activity
|
// then update activity
|
||||||
$bwp->updateActivity($activityData["ACT_UID"], $activityData);
|
$bwp->updateActivity($activityData["ACT_UID"], $activityData);
|
||||||
} else {
|
} else {
|
||||||
@@ -233,7 +234,7 @@ class Project extends Api
|
|||||||
$oldFloUid = $flowData["FLO_UID"];
|
$oldFloUid = $flowData["FLO_UID"];
|
||||||
$flowData["FLO_UID"] = Hash::generateUID();
|
$flowData["FLO_UID"] = Hash::generateUID();
|
||||||
|
|
||||||
$mappedUid = self::mapUid($flowData["FLO_ELEMENT_ORIGIN"], $result) ;
|
$mappedUid = self::mapUid($flowData["FLO_ELEMENT_ORIGIN"], $result);
|
||||||
if ($mappedUid !== false) {
|
if ($mappedUid !== false) {
|
||||||
$flowData["FLO_ELEMENT_ORIGIN"] = $mappedUid;
|
$flowData["FLO_ELEMENT_ORIGIN"] = $mappedUid;
|
||||||
}
|
}
|
||||||
@@ -252,7 +253,7 @@ class Project extends Api
|
|||||||
|
|
||||||
foreach ($diagram["flows"] as $flowData) {
|
foreach ($diagram["flows"] as $flowData) {
|
||||||
// flow exists ?
|
// flow exists ?
|
||||||
if (\BpmnFlow::exists($flowData["FLO_UID"])) {
|
if ($bwp->flowExists($flowData["FLO_UID"])) {
|
||||||
// then update activity
|
// then update activity
|
||||||
$bwp->updateFlow($flowData["FLO_UID"], $flowData);
|
$bwp->updateFlow($flowData["FLO_UID"], $flowData);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user