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 --Überprü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