589 lines
18 KiB
Transact-SQL
Raw Blame History

ALTER TABLE TBDD_MODULES
ADD PRODUCT_VERSION VARCHAR(10) NOT NULL DEFAULT '1.0.0.0'
GO
UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.4.4.4' where NAME = 'Record-Organizer'
GO
ALTER VIEW [dbo].[VWPMO_GUI_ENTITY] AS
SELECT TOP 100 PERCENT
TBPMO_FORM.GUID AS ID,
TBPMO_FORM.PARENT_ID,
TBPMO_FORM.LEVEL,
TBPMO_FORM.FORM_TYPE_ID,
TBPMO_FORM.NAME AS Name,
TBPMO_FORM_VIEW.GUID As FormViewID,
TBPMO_FORM_VIEW.FORM_TITLE AS Title
FROM
TBPMO_FORM INNER JOIN
TBPMO_FORM_VIEW ON TBPMO_FORM.GUID = TBPMO_FORM_VIEW.FORM_ID
WHERE
(TBPMO_FORM.FORM_TYPE_ID IN (1, 2, 3, 5))
ORDER BY
TBPMO_FORM.PARENT_ID, Title
GO
CREATE TABLE TBPMO_WORKFLOW_ENTITY_STATE
(
GUID INTEGER NOT NULL IDENTITY(1,1),
WF_ID INTEGER NOT NULL,
ENTITY_ID INTEGER NOT NULL,
STATE_ID INTEGER NOT NULL,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBPMO_WORKFLOW_ENTITY_STATE PRIMARY KEY (GUID),
CONSTRAINT UNIQUE_ENTITY_ID_STATE_ID UNIQUE(WF_ID,ENTITY_ID,STATE_ID),
CONSTRAINT FK_TBPMO_WORKFLOW_ENTITY_STATE_WF_ID FOREIGN KEY (WF_ID) REFERENCES TBPMO_WORKFLOW (GUID),
CONSTRAINT FK_TBPMO_WORKFLOW_ENTITY_STATE_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBPMO_WORKFLOW_TASK_STATE (GUID),
CONSTRAINT FK_TBPMO_WORKFLOW_ENTITY_STATE_ENTITY_ID FOREIGN KEY (ENTITY_ID) REFERENCES TBPMO_FORM (GUID)
)
GO
CREATE TRIGGER TBPMO_WORKFLOW_TASK_STATE_DELETE
ON TBPMO_WORKFLOW_TASK_STATE
FOR DELETE
AS
DELETE FROM TBPMO_WORKFLOW_ENTITY_STATE WHERE STATE_ID = (
SELECT GUID FROM DELETED)
GO
CREATE TABLE TBPMO_WORKFLOW_TASK
(
GUID INTEGER NOT NULL IDENTITY(1,1),
RECORD_ID INTEGER NOT NULL,
WF_ID INTEGER NOT NULL,
COMMENT VARCHAR(500),
DUE_DATE DATE,
TASK_DATE DATE,
STATE_ID INTEGER NOT NULL DEFAULT 1,
ACTIVE BIT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBPMO_WORKFLOW_TASK PRIMARY KEY (GUID),
CONSTRAINT FK_TBPMO_WORKFLOW_TASK_RECORD_ID FOREIGN KEY (RECORD_ID) REFERENCES TBPMO_RECORD (GUID),
CONSTRAINT FK_TBPMO_WORKFLOW_TASK_WF_ID FOREIGN KEY (WF_ID) REFERENCES TBPMO_WORKFLOW (GUID),
CONSTRAINT FK_TBPMO_WORKFLOW_TASK_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBPMO_WORKFLOW_ENTITY_STATE (GUID)
)
GO
CREATE TRIGGER TBPMO_WORKFLOW_TASK_AFT_UPD ON TBPMO_WORKFLOW_TASK
FOR UPDATE
AS
UPDATE TBPMO_WORKFLOW_TASK SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_WORKFLOW_TASK.GUID = INSERTED.GUID
GO
--###############################################################################
CREATE TABLE TBPMO_WORKFLOW_TASK_USER
(
GUID INTEGER NOT NULL IDENTITY(1,1),
WF_TASK_ID INTEGER NOT NULL,
[USER_ID] INTEGER NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
CONSTRAINT PK_TBPMO_WF_TASK_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBPMO_WF_TASK_USER_WF_TASK_ID FOREIGN KEY (WF_TASK_ID) REFERENCES TBPMO_WORKFLOW_TASK (GUID),
CONSTRAINT FK_TBPMO_WF_TASK_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES TBDD_USER (GUID)
)
GO
ALTER PROCEDURE [dbo].[PRPMO_CREATE_WF_TASKS] (@FORM_ID INTEGER, @RECORD_ID INTEGER)
AS
BEGIN
DECLARE
@WF_ID INTEGER,
@TITLE VARCHAR(50),
@SEQUENCE INTEGER,
@MELDUNG VARCHAR(250)--,
--@STATE_ID INTEGER
DECLARE c_TASK CURSOR FOR
SELECT T.WF_ID
FROM TBPMO_WORKFLOW_FORM T, TBPMO_WORKFLOW T1
WHERE T.WF_ID = T1.GUID AND
T.FORM_ID = @FORM_ID ORDER BY T.SEQUENCE
OPEN c_TASK
FETCH NEXT FROM c_TASK INTO @WF_ID
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE FROM TBPMO_WORKFLOW_TASK_USER WHERE WF_TASK_ID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @RECORD_ID AND WF_ID = @WF_ID)
DELETE FROM TBPMO_WORKFLOW_TASK WHERE GUID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @RECORD_ID AND WF_ID = @WF_ID)
--SELECT @STATE_ID = STATE_ID FROM TBPMO_WORKFLOW_ENTITY_STATE WHERE ENTITY_ID = @FORM_ID and WF_ID = @WF_ID
--IF @STATE_ID IS NOT NULL
BEGIN
--INSERT DES TASKS
INSERT INTO TBPMO_WORKFLOW_TASK(
RECORD_ID,
WF_ID,
ACTIVE,
STATE_ID)
VALUES (
@RECORD_ID,
@WF_ID,
1,
1)
END
FETCH NEXT FROM c_TASK INTO @WF_ID
END
CLOSE c_TASK
DEALLOCATE c_TASK
END
GO
ALTER TRIGGER [dbo].[TBPMO_WORKFLOW_TASK_STATE_AFT_UPD] ON [dbo].[TBPMO_WORKFLOW_TASK_STATE]
FOR UPDATE
AS
BEGIN TRY
DECLARE
@STATE_DESC VARCHAR(50),
@LANGUAGE VARCHAR(5),
@CHANGED_WHO VARCHAR(50),
@GUID INTEGER,
@SCREEN_ID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@STATE_DESC = STATE_DESC,
@SCREEN_ID = 1,
@CHANGED_WHO = CHANGED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE USERNAME = @CHANGED_WHO
SET @PMO_OBJECT_NAME = 'WF_STATE_TITLE' + CONVERT(VARCHAR(5),@GUID)
UPDATE TBPMO_WORKFLOW_TASK_STATE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_WORKFLOW_TASK_STATE.GUID = INSERTED.GUID
If exists(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = @SCREEN_ID)
UPDATE TBPMO_LANGUAGE_OBJECT SET CAPTION = @STATE_DESC,CHANGED_WHO = @CHANGED_WHO WHERE
PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = @SCREEN_ID
ELSE
BEGIN TRY
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME,@STATE_DESC)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW 72'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW 84'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER TRIGGER [dbo].[TBPMO_WORKFLOW_TASK_STATE_AFT_INS] ON [dbo].[TBPMO_WORKFLOW_TASK_STATE]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@STATE_DESC VARCHAR(50),
@LANGUAGE VARCHAR(5),
@ADDED_WHO VARCHAR(50),
@GUID INTEGER,
@SCREEN_ID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@STATE_DESC = STATE_DESC,
@SCREEN_ID = 1,
@ADDED_WHO = ADDED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@ADDED_WHO)
SET @PMO_OBJECT_NAME = 'WF_STATE_TITLE' + CONVERT(VARCHAR(5),@GUID)
IF @LANGUAGE is not null
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION,ADDED_WHO) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME,@STATE_DESC,@ADDED_WHO)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
DECLARE @GUID INTEGER,
@SCREEN_ID INT,
@FORM_VIEW_ID INTEGER,
@FORM_TITLE VARCHAR(100),
@LANGUAGE VARCHAR(5),
@PMO_OBJECT_NAME VARCHAR(100),
@CAPTION VARCHAR(100)
DECLARE c_STATE CURSOR FOR
SELECT GUID,1,'en-US','WF_STATE_TITLE' + CONVERT(VARCHAR(5), GUID) as OBJ_NAME,STATE_DESC
from TBPMO_WORKFLOW_TASK_STATE
UNION
SELECT GUID,1,'de-DE','WF_STATE_TITLE' + CONVERT(VARCHAR(5), GUID) as OBJ_NAME,STATE_DESC
from TBPMO_WORKFLOW_TASK_STATE ORDER BY GUID
BEGIN
OPEN c_STATE
FETCH NEXT FROM c_STATE INTO @GUID, @SCREEN_ID,@LANGUAGE,@PMO_OBJECT_NAME,@CAPTION
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND LANGUAGE_TYPE = @LANGUAGE)
INSERT INTO TBPMO_LANGUAGE_OBJECT
(LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME, @CAPTION)
FETCH NEXT FROM c_STATE INTO @GUID, @SCREEN_ID,@LANGUAGE,@PMO_OBJECT_NAME,@CAPTION
END
CLOSE c_STATE
DEALLOCATE c_STATE
END
GO
--'#####################################################
ALTER TRIGGER [dbo].[TBPMO_WORKFLOW_AFT_UPD] ON [dbo].[TBPMO_WORKFLOW]
FOR UPDATE
AS
BEGIN TRY
DECLARE
@TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5),
@CHANGED_WHO VARCHAR(50),
@GUID INTEGER,
@SCREEN_ID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@TITLE = TITLE,
@SCREEN_ID = 1,
@CHANGED_WHO = CHANGED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE USERNAME = @CHANGED_WHO
SET @PMO_OBJECT_NAME = 'TASK_TITLE' + CONVERT(VARCHAR(5),@GUID)
UPDATE TBPMO_WORKFLOW SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_WORKFLOW.GUID = INSERTED.GUID
If exists(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = @SCREEN_ID)
UPDATE TBPMO_LANGUAGE_OBJECT SET CAPTION = @TITLE,CHANGED_WHO = @CHANGED_WHO WHERE
PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = @SCREEN_ID
ELSE
BEGIN TRY
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME,@TITLE)
END TRY
BEGIN CATCH
PRINT 'ERROR IN Trigger: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TRIGGER [dbo].[TBPMO_WORKFLOW_AFT_INS] ON [dbo].[TBPMO_WORKFLOW]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5),
@ADDED_WHO VARCHAR(50),
@GUID INTEGER,
@SCREEN_ID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@TITLE = TITLE,
@SCREEN_ID = 1,
@ADDED_WHO = ADDED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE USERNAME = @ADDED_WHO
SET @PMO_OBJECT_NAME = 'TASK_TITLE' + CONVERT(VARCHAR(5),@GUID)
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION,ADDED_WHO) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME,@TITLE,@ADDED_WHO)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
DECLARE @GUID INTEGER,
@SCREEN_ID INT,
@TITLE VARCHAR(100),
@LANGUAGE VARCHAR(5),
@PMO_OBJECT_NAME VARCHAR(100),
@CAPTION VARCHAR(100)
DECLARE c_STATE CURSOR FOR
SELECT GUID,1,'en-US','TASK_TITLE' + CONVERT(VARCHAR(5), GUID) as OBJ_NAME,TITLE
from TBPMO_WORKFLOW
UNION
SELECT GUID,1,'de-DE','TASK_TITLE' + CONVERT(VARCHAR(5), GUID) as OBJ_NAME,TITLE
from TBPMO_WORKFLOW ORDER BY GUID
BEGIN
OPEN c_STATE
FETCH NEXT FROM c_STATE INTO @GUID, @SCREEN_ID,@LANGUAGE,@PMO_OBJECT_NAME,@CAPTION
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND LANGUAGE_TYPE = @LANGUAGE)
INSERT INTO TBPMO_LANGUAGE_OBJECT
(LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME, @CAPTION)
FETCH NEXT FROM c_STATE INTO @GUID, @SCREEN_ID,@LANGUAGE,@PMO_OBJECT_NAME,@CAPTION
END
CLOSE c_STATE
DEALLOCATE c_STATE
END
GO
--##################################
ALTER TRIGGER [dbo].[TBPMO_RECORD_AFT_INS] ON [dbo].[TBPMO_RECORD]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@RECORD_ID INTEGER,
@MAX_ID INTEGER,
@FORM_ID INTEGER,
@WF_ID INTEGER,
@PARENT_ID INTEGER
SELECT
@FORM_ID = FORM_ID,
@RECORD_ID = GUID
FROM INSERTED
IF EXISTS(SELECT GUID FROM TBPMO_RECORD WHERE FORM_ID = @FORM_ID AND GUID <> @RECORD_ID)
SELECT @MAX_ID = MAX(RECORD_ENTITY_ID) + 1
FROM TBPMO_RECORD WHERE FORM_ID = @FORM_ID AND GUID <> @RECORD_ID
ELSE
SET @MAX_ID = 1
UPDATE TBPMO_RECORD SET RECORD_ENTITY_ID = @MAX_ID FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID
--<2D>berpr<70>fen ob f<>r die Entity_ID Workflows definiert sind?
IF EXISTS(
SELECT * FROM TBPMO_WORKFLOW_FORM where FORM_ID = @FORM_ID
)
BEGIN
EXECUTE dbo.PRPMO_CREATE_WF_TASKS @FORM_ID, @RECORD_ID
END
END TRY
BEGIN CATCH
PRINT 'FEHLER IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - FEHLER-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER VIEW [dbo].[VWPMO_WF_ACTIVE] AS
SELECT TOP 100 PERCENT
T.GUID AS WF_TASK_ID,
T.WF_ID ,
T1.TITLE,
T.RECORD_ID,
T.STATE_ID,
T2.STATE_DESC,
T2.COLOR,
T.COMMENT,
T.DUE_DATE,
T.TASK_DATE,
'' AS USERNAME,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBPMO_WORKFLOW_TASK AS T,
TBPMO_WORKFLOW AS T1,
TBPMO_WORKFLOW_TASK_STATE T2
WHERE
T.WF_ID = T1.GUID AND
T.STATE_ID = T2.GUID
ORDER BY T.GUID
GO
ALTER TRIGGER [dbo].[TBPMO_FORM_VIEW_AFT_UPD] ON [dbo].[TBPMO_FORM_VIEW]
FOR UPDATE
AS
BEGIN TRY
DECLARE
@FORM_TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5),
@CHANGED_WHO VARCHAR(50),
@GUID INTEGER,
@SCREEN_ID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@FORM_TITLE = FORM_TITLE,
@SCREEN_ID = SCREEN_ID,
@CHANGED_WHO = CHANGED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@CHANGED_WHO)
SET @PMO_OBJECT_NAME = 'FORMVIEW_TITLE' + CONVERT(VARCHAR(5),@GUID)
UPDATE TBPMO_FORM_VIEW SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_FORM_VIEW.GUID = INSERTED.GUID
IF @LANGUAGE is not null
If exists(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = @SCREEN_ID)
UPDATE TBPMO_LANGUAGE_OBJECT SET CAPTION = @FORM_TITLE,CHANGED_WHO = @CHANGED_WHO WHERE
PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = @SCREEN_ID
ELSE
BEGIN TRY
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME,@FORM_TITLE)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW 72'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW 84'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER TRIGGER [dbo].[TBPMO_FORM_VIEW_AFT_INS] ON [dbo].[TBPMO_FORM_VIEW]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@FORM_TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5),
@ADDED_WHO VARCHAR(50),
@GUID INTEGER,
@SCREEN_ID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@FORM_TITLE = FORM_TITLE,
@SCREEN_ID = SCREEN_ID,
@ADDED_WHO = ADDED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@ADDED_WHO)
SET @PMO_OBJECT_NAME = 'FORMVIEW_TITLE' + CONVERT(VARCHAR(5),@GUID)
IF @LANGUAGE is not null
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION,ADDED_WHO) VALUES
(@LANGUAGE,@SCREEN_ID,@PMO_OBJECT_NAME,@FORM_TITLE,@ADDED_WHO)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER TRIGGER [dbo].[TBPMO_FORM_CONSTRUCTOR_AFT_INS] ON [dbo].[TBPMO_FORM_CONSTRUCTOR]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@FORM_TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5),
@ADDED_WHO VARCHAR(50),
@GUID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@FORM_TITLE = FORM_TITLE,
@ADDED_WHO = ADDED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@ADDED_WHO)
SET @PMO_OBJECT_NAME = 'CONSTR_MENUE' + CONVERT(VARCHAR(5),@GUID)
IF @LANGUAGE is not null
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION,ADDED_WHO) VALUES
(@LANGUAGE,1,@PMO_OBJECT_NAME,@FORM_TITLE,@ADDED_WHO)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER TRIGGER [dbo].[TBPMO_FORM_CONSTRUCTOR_AFT_UPD] ON [dbo].[TBPMO_FORM_CONSTRUCTOR]
FOR UPDATE
AS
BEGIN
DECLARE @FORM_TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5), @CHANGED_WHO VARCHAR(50),
@GUID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@FORM_TITLE = FORM_TITLE,
@LANGUAGE = [LANGUAGE],
@CHANGED_WHO = CHANGED_WHO
FROM INSERTED
SELECT @LANGUAGE = [LANGUAGE] FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@CHANGED_WHO)
SET @PMO_OBJECT_NAME = 'CONSTR_MENUE' + CONVERT(VARCHAR(5),@GUID)
IF @LANGUAGE is not null
UPDATE TBPMO_FORM_CONSTRUCTOR SET CHANGED_WHEN = GETDATE()
FROM INSERTED WHERE TBPMO_FORM_CONSTRUCTOR.GUID = INSERTED.GUID
If exists(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = 1)
UPDATE TBPMO_LANGUAGE_OBJECT SET CAPTION = @FORM_TITLE,CHANGED_WHO = @CHANGED_WHO WHERE
PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = 1
ELSE
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,1,@PMO_OBJECT_NAME,@FORM_TITLE)
END
GO
ALTER TABLE TBPMO_CONSTRUCTOR_USER
ADD HOME_MENUE BIT NOT NULL DEFAULT 1
GO
ALTER TRIGGER [dbo].[TBPMO_FORM_CONSTRUCTOR_DETAIL_AFT_INS] ON [dbo].[TBPMO_FORM_CONSTRUCTOR_DETAIL]
FOR INSERT
AS
DECLARE @CONSTRUCT_ID INTEGER,
@PARENT_ID INTEGER,
@EXISTS as INTEGER
BEGIN
SELECT @CONSTRUCT_ID = CONSTRUCT_ID, @PARENT_ID = PARENT_ID FROM INSERTED
IF @PARENT_ID = 0
BEGIN
SELECT @EXISTS = COUNT(*) FROM TBPMO_FORM_CONSTRUCTOR_DETAIL WHERE CONSTRUCT_ID = @CONSTRUCT_ID AND PARENT_ID = @PARENT_ID
IF @EXISTS > 1
BEGIN
ROLLBACK TRANSACTION
RAISERROR('ONLY ONE FORM WITH PARENT_ID 0 IS ALLOWED WITHIN CONSTRUCT-ID',16,10)
END
END
END
GO