BUG 6879 PM 2.0.23 Error en subproceso genera dos casos

This issue was fixed, we're going to do an insert into cache_view table if this is not sub process

Conflicts:

	workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql
	workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql
This commit is contained in:
Carlos Pacha
2011-05-30 11:54:02 -04:00
parent 6c4c016f4f
commit 4aa3eb49f6
2 changed files with 111 additions and 97 deletions

View File

@@ -12,6 +12,7 @@ BEGIN
DECLARE PREVIOUS_USR_UID VARCHAR(32);
DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255);
DECLARE APP_THREAD_STATUS VARCHAR(32);
DECLARE TAS_TYPE VARCHAR(20);
SET @DEFAULT_LANG = '{lang}';
SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
SELECT APPLICATION.APP_STATUS into @APP_STATUS FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
@@ -41,70 +42,76 @@ BEGIN
SET @APP_THREAD_STATUS = 'OPEN';
END IF;
INSERT INTO `APP_CACHE_VIEW` (
APP_UID,
DEL_INDEX,
APP_NUMBER,
APP_STATUS,
USR_UID,
PREVIOUS_USR_UID,
TAS_UID,
PRO_UID,
DEL_DELEGATE_DATE,
DEL_INIT_DATE,
DEL_TASK_DUE_DATE,
DEL_FINISH_DATE,
DEL_THREAD_STATUS,
APP_THREAD_STATUS,
APP_TITLE,
APP_PRO_TITLE,
APP_TAS_TITLE,
APP_CURRENT_USER,
APP_DEL_PREVIOUS_USER,
DEL_PRIORITY,
DEL_DURATION,
DEL_QUEUE_DURATION,
DEL_DELAY_DURATION,
DEL_STARTED,
DEL_FINISHED,
DEL_DELAYED,
APP_CREATE_DATE,
APP_FINISH_DATE,
APP_UPDATE_DATE,
APP_OVERDUE_PERCENTAGE
)
VALUES (
NEW.APP_UID,
NEW.DEL_INDEX,
@APP_NUMBER,
@APP_STATUS,
NEW.USR_UID,
@PREVIOUS_USR_UID,
NEW.TAS_UID,
NEW.PRO_UID,
substring(NEW.DEL_DELEGATE_DATE,1,10),
substring(NEW.DEL_INIT_DATE, 1,10),
substring(NEW.DEL_TASK_DUE_DATE,1,19),
substring(NEW.DEL_FINISH_DATE, 1,10),
NEW.DEL_THREAD_STATUS,
@APP_THREAD_STATUS,
@APP_TITLE,
@APP_PRO_TITLE,
@APP_TAS_TITLE,
@APP_CURRENT_USER,
@APP_DEL_PREVIOUS_USER,
NEW.DEL_PRIORITY,
NEW.DEL_DURATION,
NEW.DEL_QUEUE_DURATION,
NEW.DEL_DELAY_DURATION,
NEW.DEL_STARTED,
NEW.DEL_FINISHED,
NEW.DEL_DELAYED,
@APP_CREATE_DATE,
NULL,
NOW(),
NEW.APP_OVERDUE_PERCENTAGE
);
SELECT TASK.TAS_TYPE INTO @TAS_TYPE FROM APP_DELEGATION LEFT JOIN TASK ON ( APP_DELEGATION.TAS_UID = TASK.TAS_UID ) WHERE APP_DELEGATION.TAS_UID = NEW.TAS_UID LIMIT 1;
IF ( @TAS_TYPE IS NULL ) THEN
SET @TAS_TYPE = 'NORMAL';
END IF;
IF( @TAS_TYPE != 'SUBPROCESS') THEN
INSERT INTO `APP_CACHE_VIEW` (
APP_UID,
DEL_INDEX,
APP_NUMBER,
APP_STATUS,
USR_UID,
PREVIOUS_USR_UID,
TAS_UID,
PRO_UID,
DEL_DELEGATE_DATE,
DEL_INIT_DATE,
DEL_TASK_DUE_DATE,
DEL_FINISH_DATE,
DEL_THREAD_STATUS,
APP_THREAD_STATUS,
APP_TITLE,
APP_PRO_TITLE,
APP_TAS_TITLE,
APP_CURRENT_USER,
APP_DEL_PREVIOUS_USER,
DEL_PRIORITY,
DEL_DURATION,
DEL_QUEUE_DURATION,
DEL_DELAY_DURATION,
DEL_STARTED,
DEL_FINISHED,
DEL_DELAYED,
APP_CREATE_DATE,
APP_FINISH_DATE,
APP_UPDATE_DATE,
APP_OVERDUE_PERCENTAGE
)
VALUES (
NEW.APP_UID,
NEW.DEL_INDEX,
@APP_NUMBER,
@APP_STATUS,
NEW.USR_UID,
@PREVIOUS_USR_UID,
NEW.TAS_UID,
NEW.PRO_UID,
substring(NEW.DEL_DELEGATE_DATE,1,10),
substring(NEW.DEL_INIT_DATE, 1,10),
substring(NEW.DEL_TASK_DUE_DATE,1,10),
substring(NEW.DEL_FINISH_DATE, 1,10),
NEW.DEL_THREAD_STATUS,
@APP_THREAD_STATUS,
@APP_TITLE,
@APP_PRO_TITLE,
@APP_TAS_TITLE,
@APP_CURRENT_USER,
@APP_DEL_PREVIOUS_USER,
NEW.DEL_PRIORITY,
NEW.DEL_DURATION,
NEW.DEL_QUEUE_DURATION,
NEW.DEL_DELAY_DURATION,
NEW.DEL_STARTED,
NEW.DEL_FINISHED,
NEW.DEL_DELAYED,
@APP_CREATE_DATE,
NULL,
NOW(),
NEW.APP_OVERDUE_PERCENTAGE
);
END IF;
END

View File

@@ -12,6 +12,7 @@ BEGIN
DECLARE PREVIOUS_USR_UID VARCHAR(32);
DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255);
DECLARE APP_THREAD_STATUS VARCHAR(32);
DECLARE TAS_TYPE VARCHAR(20);
SET @DEFAULT_LANG = '{lang}';
SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
SELECT APPLICATION.APP_STATUS into @APP_STATUS FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
@@ -40,36 +41,42 @@ BEGIN
IF ( @APP_THREAD_STATUS IS NULL ) THEN
SET @APP_THREAD_STATUS = 'OPEN';
END IF;
UPDATE `APP_CACHE_VIEW`
SET
APP_NUMBER = @APP_NUMBER,
APP_STATUS = @APP_STATUS,
USR_UID = NEW.USR_UID,
PREVIOUS_USR_UID = @PREVIOUS_USR_UID,
TAS_UID = NEW.TAS_UID,
PRO_UID = NEW.PRO_UID,
DEL_DELEGATE_DATE = substring(NEW.DEL_DELEGATE_DATE,1,10),
DEL_INIT_DATE = substring(NEW.DEL_INIT_DATE,1,10),
DEL_TASK_DUE_DATE = substring(NEW.DEL_TASK_DUE_DATE,1,19),
DEL_FINISH_DATE = substring(NEW.DEL_FINISH_DATE,1,10),
DEL_THREAD_STATUS = NEW.DEL_THREAD_STATUS,
APP_THREAD_STATUS = @APP_THREAD_STATUS,
APP_TITLE = @APP_TITLE,
APP_PRO_TITLE = @APP_PRO_TITLE,
APP_TAS_TITLE = @APP_TAS_TITLE,
APP_CURRENT_USER = @APP_CURRENT_USER,
APP_DEL_PREVIOUS_USER = @APP_DEL_PREVIOUS_USER,
DEL_PRIORITY = NEW.DEL_PRIORITY,
DEL_DURATION = NEW.DEL_DURATION,
DEL_QUEUE_DURATION = NEW.DEL_QUEUE_DURATION,
DEL_DELAY_DURATION = NEW.DEL_DELAY_DURATION,
DEL_STARTED = NEW.DEL_STARTED,
DEL_FINISHED = NEW.DEL_FINISHED,
DEL_DELAYED = NEW.DEL_DELAYED,
APP_FINISH_DATE = NULL,
APP_UPDATE_DATE = NOW(),
APP_OVERDUE_PERCENTAGE = NEW.APP_OVERDUE_PERCENTAGE
WHERE
APP_UID = NEW.APP_UID
AND DEL_INDEX = NEW.DEL_INDEX;
SELECT TASK.TAS_TYPE INTO @TAS_TYPE FROM APP_DELEGATION LEFT JOIN TASK ON ( APP_DELEGATION.TAS_UID = TASK.TAS_UID ) WHERE APP_DELEGATION.TAS_UID = NEW.TAS_UID LIMIT 1;
IF ( @TAS_TYPE IS NULL ) THEN
SET @TAS_TYPE = 'NORMAL';
END IF;
IF( @TAS_TYPE != 'SUBPROCESS') THEN
UPDATE `APP_CACHE_VIEW`
SET
APP_NUMBER = @APP_NUMBER,
APP_STATUS = @APP_STATUS,
USR_UID = NEW.USR_UID,
PREVIOUS_USR_UID = @PREVIOUS_USR_UID,
TAS_UID = NEW.TAS_UID,
PRO_UID = NEW.PRO_UID,
DEL_DELEGATE_DATE = substring(NEW.DEL_DELEGATE_DATE,1,10),
DEL_INIT_DATE = substring(NEW.DEL_INIT_DATE,1,10),
DEL_TASK_DUE_DATE = substring(NEW.DEL_TASK_DUE_DATE,1,10),
DEL_FINISH_DATE = substring(NEW.DEL_FINISH_DATE,1,10),
DEL_THREAD_STATUS = NEW.DEL_THREAD_STATUS,
APP_THREAD_STATUS = @APP_THREAD_STATUS,
APP_TITLE = @APP_TITLE,
APP_PRO_TITLE = @APP_PRO_TITLE,
APP_TAS_TITLE = @APP_TAS_TITLE,
APP_CURRENT_USER = @APP_CURRENT_USER,
APP_DEL_PREVIOUS_USER = @APP_DEL_PREVIOUS_USER,
DEL_PRIORITY = NEW.DEL_PRIORITY,
DEL_DURATION = NEW.DEL_DURATION,
DEL_QUEUE_DURATION = NEW.DEL_QUEUE_DURATION,
DEL_DELAY_DURATION = NEW.DEL_DELAY_DURATION,
DEL_STARTED = NEW.DEL_STARTED,
DEL_FINISHED = NEW.DEL_FINISHED,
DEL_DELAYED = NEW.DEL_DELAYED,
APP_FINISH_DATE = NULL,
APP_UPDATE_DATE = NOW(),
APP_OVERDUE_PERCENTAGE = NEW.APP_OVERDUE_PERCENTAGE
WHERE
APP_UID = NEW.APP_UID
AND DEL_INDEX = NEW.DEL_INDEX;
END IF;
END