BUG 11835 : Assignment rules after upgrade to 2.0.46

Sol: Adding patch for next versions usign SELF_SERVICE.
This commit is contained in:
ralpheav
2013-06-05 10:08:40 -04:00
parent 793667712d
commit cdb43f480c
5 changed files with 91 additions and 6 deletions

View File

@@ -0,0 +1,81 @@
<?php
G::LoadClass("Task");
G::LoadClass("TaskUser");
require_once ("propel/Propel.php");
require_once ("creole/Creole.php");
/**
* class, helping to set some not desirable settings but necesary
* @author reav
*
*/
class patch
{
static private $isPathchable = false;
/*
* Note.- Use before upgrade DB.
* Check if the table TASK has the field TAS_GROUP_VARIABLE
* @return boolean
*/
static public function is_11835Applicable()
{
patch::$isPathchable = false;
$con = Propel::getConnection("workflow");
$stmt = $con->prepareStatement("describe TASK;");
$rs = $stmt->executeQuery();
$rs->next();
while($row = $rs->getRow()) {
if ($row ['Field'] == "TAS_GROUP_VARIABLE"){
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;");
$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 = '';");
$recordResult = $stmtChange->executeQuery();
$count++;
//$task->load( $tasUid );
//$task->setTasGroupVariable('');
//$task->save();
}
$recordSet->next();
$aRow = $recordSet->getRow();
}
}
echo $count. " records where patched to use SELF_SERVICE feature.\n";
}
}

View File

@@ -598,13 +598,17 @@ class workspaceTools
* @param bool $checkOnly only check if the upgrade is needed if true * @param bool $checkOnly only check if the upgrade is needed if true
* @return array bool upgradeSchema for more information * @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(); $systemSchema = System::getSystemSchema();
$this->upgradeSchema($systemSchema); $this->upgradeSchema( $systemSchema );
$this->upgradeData(); $this->upgradeData();
patch::execute_11835();
return true; return true;
} }
/** /**
* Upgrade this workspace database from a schema * Upgrade this workspace database from a schema

View File

@@ -1271,7 +1271,7 @@ CREATE TABLE [TASK]
[TAS_PRIORITY_VARIABLE] VARCHAR(100) default '' NOT NULL, [TAS_PRIORITY_VARIABLE] VARCHAR(100) default '' NOT NULL,
[TAS_ASSIGN_TYPE] VARCHAR(30) default 'BALANCED' 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_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_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_MI_COMPLETE_VARIABLE] VARCHAR(100) default '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE' NOT NULL,
[TAS_ASSIGN_LOCATION] VARCHAR(20) default 'FALSE' NOT NULL, [TAS_ASSIGN_LOCATION] VARCHAR(20) default 'FALSE' NOT NULL,

View File

@@ -568,7 +568,7 @@ CREATE TABLE `TASK`
`TAS_PRIORITY_VARIABLE` VARCHAR(100) default '' NOT NULL, `TAS_PRIORITY_VARIABLE` VARCHAR(100) default '' NOT NULL,
`TAS_ASSIGN_TYPE` VARCHAR(30) default 'BALANCED' 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_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_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_MI_COMPLETE_VARIABLE` VARCHAR(100) default '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE' NOT NULL,
`TAS_ASSIGN_LOCATION` VARCHAR(20) default 'FALSE' NOT NULL, `TAS_ASSIGN_LOCATION` VARCHAR(20) default 'FALSE' NOT NULL,

View File

@@ -711,7 +711,7 @@ CREATE TABLE "TASK"
"TAS_PRIORITY_VARIABLE" VARCHAR2(100) default '' NOT NULL, "TAS_PRIORITY_VARIABLE" VARCHAR2(100) default '' NOT NULL,
"TAS_ASSIGN_TYPE" VARCHAR2(30) default 'BALANCED' 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_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_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_MI_COMPLETE_VARIABLE" VARCHAR2(100) default '@@SYS_VAR_TOTAL_INSTANCES_COMPLETE' NOT NULL,
"TAS_ASSIGN_LOCATION" VARCHAR2(20) default 'FALSE' NOT NULL, "TAS_ASSIGN_LOCATION" VARCHAR2(20) default 'FALSE' NOT NULL,