diff --git a/workflow/engine/classes/class.patch.php b/workflow/engine/classes/class.patch.php
new file mode 100644
index 000000000..5a0cf840f
--- /dev/null
+++ b/workflow/engine/classes/class.patch.php
@@ -0,0 +1,83 @@
+prepareStatement("describe TASK;");
+ $rs = $stmt->executeQuery();
+ $rs->next();
+ while($row = $rs->getRow()) {
+ if ($row ['Field'] == "TAS_GROUP_VARIABLE") {
+ $version = System::getVersion ();
+ $version = explode('-',$version);
+ //$pos = strpos($version,'2.5.1-testing');
+ if ($version[0] == '2.5.1') {
+ echo "Version " . $version[0] . " Patch\n";
+ patch::$isPathchable = true;
+ }
+ break;
+ }
+ $rs->next();
+ }
+ return patch::$isPathchable;
+ }
+
+ /*
+ * Note.- Use after DB was upgraded.
+ * Set the patch, setting all the TAS_GROUP_VARIABLE to ''
+ * if the current task has asignated users, means SELF_SERVICE only,
+ * otherwise leave TAS_GROUP_VARIABLE as it is.
+ */
+ static public function execute_11835()
+ {
+ //Check if this is the version to apply the patch
+ $count = 0;
+ $task = new Task();
+ if ( patch::$isPathchable && method_exists($task,'getTasGroupVariable')) {
+ $con = Propel::getConnection("workflow");
+ $stmt = $con->prepareStatement("select TAS_UID from TASK where TAS_ASSIGN_TYPE = 'SELF_SERVICE';");
+ $recordSet = $stmt->executeQuery();
+ $recordSet->next();
+ $aRow = $recordSet->getRow();
+ while ($aRow) {
+ $tasUid = $aRow['TAS_UID'];
+ $conUser = Propel::getConnection("workflow");
+ $stmtUser = $conUser->prepareStatement("select * from TASK_USER where TAS_UID = '".$tasUid."';");
+ $recordSetTaskUser = $stmtUser->executeQuery();
+ if ($recordSetTaskUser->next()) {
+ echo "Patching uid: " . $tasUid . "\n";
+ //Set the values if they match the pattern
+ $conChange = Propel::getConnection("workflow");
+ $stmtChange = $conChange->prepareStatement("update TASK set TAS_GROUP_VARIABLE = '' where TAS_UID = '".$tasUid."';");
+ $recordResult = $stmtChange->executeQuery();
+ $count++;
+ }
+ $recordSet->next();
+ $aRow = $recordSet->getRow();
+ }
+ }
+ echo $count. " records where patched to use SELF_SERVICE feature.\n";
+ }
+}
+
+
diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php
index 83a329367..7a5ed4253 100755
--- a/workflow/engine/classes/class.wsTools.php
+++ b/workflow/engine/classes/class.wsTools.php
@@ -598,13 +598,17 @@ class workspaceTools
* @param bool $checkOnly only check if the upgrade is needed if true
* @return array bool upgradeSchema for more information
*/
- public function upgradeDatabase($checkOnly = false)
+ public function upgradeDatabase ($checkOnly = false)
{
+ G::LoadClass("patch");
+ $this->initPropel( true );
+ patch::is_11835Applicable();
$systemSchema = System::getSystemSchema();
- $this->upgradeSchema($systemSchema);
+ $this->upgradeSchema( $systemSchema );
$this->upgradeData();
+ patch::execute_11835();
return true;
- }
+ }
/**
* Upgrade this workspace database from a schema
diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml
index 8c0835ed1..e0b6ce986 100755
--- a/workflow/engine/config/schema.xml
+++ b/workflow/engine/config/schema.xml
@@ -1198,7 +1198,7 @@
-
+
diff --git a/workflow/engine/data/mssql/schema.sql b/workflow/engine/data/mssql/schema.sql
index 385b720d8..dfd1d81f9 100755
--- a/workflow/engine/data/mssql/schema.sql
+++ b/workflow/engine/data/mssql/schema.sql
@@ -1271,7 +1271,7 @@ CREATE TABLE [TASK]
[TAS_PRIORITY_VARIABLE] VARCHAR(100) default '' NOT NULL,
[TAS_ASSIGN_TYPE] VARCHAR(30) default 'BALANCED' NOT NULL,
[TAS_ASSIGN_VARIABLE] VARCHAR(100) default '@@SYS_NEXT_USER_TO_BE_ASSIGNED' NOT NULL,
- [TAS_GROUP_VARIABLE] VARCHAR(100) default '@@SYS_GROUP_TO_BE_ASSIGNED' NULL,
+ [TAS_GROUP_VARIABLE] VARCHAR(100) default '' NULL,
[TAS_MI_INSTANCE_VARIABLE] VARCHAR(100) default '@@SYS_VAR_TOTAL_INSTANCE' NOT NULL,
[TAS_MI_COMPLETE_VARIABLE] VARCHAR(100) default '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE' NOT NULL,
[TAS_ASSIGN_LOCATION] VARCHAR(20) default 'FALSE' NOT NULL,
diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql
index fa1b8c1fa..bfe35e306 100755
--- a/workflow/engine/data/mysql/schema.sql
+++ b/workflow/engine/data/mysql/schema.sql
@@ -568,7 +568,7 @@ CREATE TABLE `TASK`
`TAS_PRIORITY_VARIABLE` VARCHAR(100) default '' NOT NULL,
`TAS_ASSIGN_TYPE` VARCHAR(30) default 'BALANCED' NOT NULL,
`TAS_ASSIGN_VARIABLE` VARCHAR(100) default '@@SYS_NEXT_USER_TO_BE_ASSIGNED' NOT NULL,
- `TAS_GROUP_VARIABLE` VARCHAR(100) default '@@SYS_GROUP_TO_BE_ASSIGNED',
+ `TAS_GROUP_VARIABLE` VARCHAR(100) default '',
`TAS_MI_INSTANCE_VARIABLE` VARCHAR(100) default '@@SYS_VAR_TOTAL_INSTANCE' NOT NULL,
`TAS_MI_COMPLETE_VARIABLE` VARCHAR(100) default '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE' NOT NULL,
`TAS_ASSIGN_LOCATION` VARCHAR(20) default 'FALSE' NOT NULL,
diff --git a/workflow/engine/data/oracle/schema.sql b/workflow/engine/data/oracle/schema.sql
index 41d49ce45..21c1e0227 100755
--- a/workflow/engine/data/oracle/schema.sql
+++ b/workflow/engine/data/oracle/schema.sql
@@ -711,7 +711,7 @@ CREATE TABLE "TASK"
"TAS_PRIORITY_VARIABLE" VARCHAR2(100) default '' NOT NULL,
"TAS_ASSIGN_TYPE" VARCHAR2(30) default 'BALANCED' NOT NULL,
"TAS_ASSIGN_VARIABLE" VARCHAR2(100) default '@@SYS_NEXT_USER_TO_BE_ASSIGNED' NOT NULL,
- "TAS_GROUP_VARIABLE" VARCHAR2(100) default '@@SYS_GROUP_TO_BE_ASSIGNED',
+ "TAS_GROUP_VARIABLE" VARCHAR2(100) default '',
"TAS_MI_INSTANCE_VARIABLE" VARCHAR2(100) default '@@SYS_VAR_TOTAL_INSTANCE' NOT NULL,
"TAS_MI_COMPLETE_VARIABLE" VARCHAR2(100) default '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE' NOT NULL,
"TAS_ASSIGN_LOCATION" VARCHAR2(20) default 'FALSE' NOT NULL,
diff --git a/workflow/engine/methods/tasks/tasks_Ajax.php b/workflow/engine/methods/tasks/tasks_Ajax.php
index fd90b99e4..79b4e07f1 100755
--- a/workflow/engine/methods/tasks/tasks_Ajax.php
+++ b/workflow/engine/methods/tasks/tasks_Ajax.php
@@ -69,6 +69,9 @@ try {
}
if ($aData['TAS_ASSIGN_TYPE'] == 'SELF_SERVICE_EVALUATE') {
$aData['TAS_ASSIGN_TYPE'] = 'SELF_SERVICE';
+ if(trim($aData['TAS_GROUP_VARIABLE']) == '') {
+ $aData['TAS_GROUP_VARIABLE'] = '@@SYS_GROUP_TO_BE_ASSIGNED';
+ }
} else {
$aData['TAS_GROUP_VARIABLE'] = '';
}