Files
luos/workflow/engine/methods/setup/setupSchemas/triggerSubApplicationInsert.sql
Luis Fernando Saisa Lopez 7a13688b83 BUG 12029 "Sent By column blank in sub process" SOLVED
- "Sent By" column blank in sub process
- Problema:
  Al crear un Proceso y un Sub Proceso, cuando se inicia una tarea del Proceso Padre y se deriva a la tarea del Sub Proceso,
  en el Inbox el usuario autorizado en el Sub Proceso de la tarea al visualizar la columna "Sent By" no indica quien
  derivo la tarea mostrando siempre vacia.

- Solucion:
  Cuando se crea un Proceso y Sub Proceso, al iniciar la tarea del Proceso Padre y al derivar el caso a la tarea del
  Sub Proceso, en el Inbox el usuario autorizado de esa tarea visualizara la columna "Sent By" con el usuario quien derivo
  el caso.
  - Se ha creado el trigger SUB_APPLICATION_INSERT para la tabla SUB_APPLICATION, ya que en este punto se crea las
    delegaciones del Sub Proceso.
    El trigger corrige el campo PREVIOUS_USR_UID de la tabla APP_CACHE_VIEW que siempre esta vacio, esto cuando la delegacion
    es de un Sub Proceso.
  - Se ha añgo SQL al archivo "app_cache_view_insert.sql" para corregir el campo en conflicto "APP_CACHE_VIEW.PREVIOUS_USR_UID",
    ya que este SQL es utilizado para reconstruir la tabla APP_CACHE_VIEW, esto por ejemplo cuando se hace el "Build Cache"
    que esta en ADMIN>Settings>CasesListCacheBuilder

    Disponible para la version 2.5.2
2013-09-25 17:24:04 -04:00

29 lines
1.1 KiB
SQL

CREATE TRIGGER SUB_APPLICATION_INSERT BEFORE INSERT ON SUB_APPLICATION
FOR EACH ROW
BEGIN
DECLARE PREVIOUS_USR_UID VARCHAR(32);
SET @PREVIOUS_USR_UID = '';
SET @PREVIOUS_USR_UID = (
SELECT APPDEL2.USR_UID
FROM APP_DELEGATION AS APPDEL1, APP_DELEGATION AS APPDEL2
WHERE APPDEL1.APP_UID = NEW.APP_PARENT AND APPDEL1.DEL_INDEX = NEW.DEL_INDEX_PARENT AND
APPDEL1.APP_UID = APPDEL2.APP_UID AND APPDEL1.DEL_PREVIOUS = APPDEL2.DEL_INDEX
LIMIT 1
);
IF (@PREVIOUS_USR_UID IS NULL) THEN
SET @PREVIOUS_USR_UID = '';
END IF;
-- Update record in APP_CACHE_VIEW
UPDATE APP_CACHE_VIEW
SET PREVIOUS_USR_UID = @PREVIOUS_USR_UID
WHERE APP_UID = NEW.APP_UID AND DEL_INDEX = (SELECT APPDEL.DEL_INDEX
FROM APP_DELEGATION AS APPDEL
WHERE APPDEL.APP_UID = NEW.APP_UID AND APPDEL.DEL_PREVIOUS = 0
LIMIT 1
);
END