UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.4.5.9' where NAME = 'Record-Organizer' GO ALTER TABLE TBDD_USER ADD GENERAL_VIEWER VARCHAR(30) NOT NULL DEFAULT 'NONE' GO UPDATE TBPMO_DOCSEARCH_RESULTLIST_CONFIG SET TYPE_ID = 2 WHERE COLUMN_VIEW = 'IN_WORK' and TYPE_ID = 1 GO CREATE TABLE TBPMO_SELECTION_DATA ( GUID INTEGER NOT NULL IDENTITY(1,1) ,VALUE VARCHAR(250) NOT NULL ,COMMENT VARCHAR(250) ,ID_TYPE INTEGER NOT NULL ,SEQUENCE TINYINT 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_SELECTION_DATA PRIMARY KEY (GUID) ) GO CREATE TRIGGER TBPMO_SELECTION_DATA_AFT_UPD ON TBPMO_SELECTION_DATA FOR UPDATE AS UPDATE TBPMO_SELECTION_DATA SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_SELECTION_DATA.GUID = INSERTED.GUID GO INSERT INTO TBPMO_SELECTION_DATA (VALUE,COMMENT,ID_TYPE,SEQUENCE) VALUES ('NONE', 'GENERAL-VIEWER',1,0) GO INSERT INTO TBPMO_SELECTION_DATA (VALUE,COMMENT,ID_TYPE,SEQUENCE) VALUES ('DOC-VIEW', 'GENERAL-VIEWER',1,1) GO CREATE FUNCTION [dbo].[FNPMO_DOC_GET_IDX](@pDOCID INTEGER, @pENTITY INTEGER, @DOCIDX VARCHAR(20)) RETURNS VARCHAR(250) AS BEGIN DECLARE @HEADER_CAPTION VARCHAR(30), @VALUE VARCHAR(250), @RESULT VARCHAR(250) SELECT @HEADER_CAPTION = HEADER_CAPTION FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = @pENTITY AND COLUMN_VIEW = @DOCIDX IF @HEADER_CAPTION IS NULL SET @RESULT = 'NO CONFIGURATION' ELSE BEGIN SELECT @VALUE = VALUE FROM VWPMO_DOC_INDICES WHERE DocID = @pDOCID AND COLUMN_CAPTION = @HEADER_CAPTION IF @VALUE IS NOT NULL SET @RESULT = @VALUE ELSE SET @RESULT = 'NO RESULT' END RETURN @RESULT END GO DROP TABLE TBPMO_DOCRESULT_DROPDOWN_ITEMS CREATE TABLE TBPMO_DOCRESULT_DROPDOWN_ITEMS ( GUID INTEGER NOT NULL IDENTITY(1,1) ,CONFIG_ID INTEGER NOT NULL ,VALUE VARCHAR(100) NOT NULL ,SEQUENCE TINYINT NOT NULL DEFAULT 0 ,[DEFAULT] 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_DOCRESULT_DROPDOWN_ITEMS PRIMARY KEY (GUID), CONSTRAINT FK_TBPMO_DOCRESULT_DROPDOWN_ITEMSCONFIG_ID FOREIGN KEY (CONFIG_ID) REFERENCES TBPMO_DOCSEARCH_RESULTLIST_CONFIG (GUID), ) GO CREATE TRIGGER TBPMO_DOCRESULT_DROPDOWN_ITEMS_AFT_UPD ON TBPMO_DOCRESULT_DROPDOWN_ITEMS FOR UPDATE AS UPDATE TBPMO_DOCRESULT_DROPDOWN_ITEMS SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_DOCRESULT_DROPDOWN_ITEMS.GUID = INSERTED.GUID GO ALTER TABLE TBDD_CLIENT ADD LICENSE_PMO VARCHAR(5000) NOT NULL DEFAULT '' GO ALTER TABLE TBDD_USER_MODULE_LOG_IN ADD CLIENT_ID INTEGER NOT NULL DEFAULT 99 GO CREATE TABLE TBPMO_DOC_VALUES ( GUID INTEGER NOT NULL IDENTITY(1,1), [DocID] INTEGER NOT NULL, [CONFIG_ID] INTEGER NOT NULL, [VALUE] VARCHAR(MAX) NOT NULL, ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT', ADDED_WHEN DATETIME DEFAULT GETDATE(), CHANGED_WHO VARCHAR(50), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBPMO_DOC_VALUES PRIMARY KEY (GUID) ) GO CREATE TRIGGER TBPMO_DOC_VALUES_AFT_UPD ON TBPMO_DOC_VALUES FOR UPDATE AS UPDATE TBPMO_DOC_VALUES SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_DOC_VALUES.[DocID] = INSERTED.[DocID] GO CREATE TRIGGER [dbo].[TBPMO_DOC_RECORD_LINK_AFT_INS] ON [dbo].[TBPMO_DOC_RECORD_LINK] WITH EXECUTE AS CALLER FOR INSERT AS BEGIN TRY DECLARE @RECORD_ID INTEGER, @DOC_ID INTEGER, @ADDED_WHO VARCHAR(50), @ENTITY_ID INTEGER SELECT @RECORD_ID = RECORD_ID, @DOC_ID = DOC_ID, @ADDED_WHO = ADDED_WHO FROM INSERTED SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @RECORD_ID IF (SELECT COUNT(GUID) FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = @ENTITY_ID AND TYPE_ID = 4) >= 1 BEGIN INSERT INTO TBPMO_DOC_VALUES (DocID,CONFIG_ID,VALUE,ADDED_WHO) SELECT @DOC_ID,T.GUID,T1.VALUE,@ADDED_WHO FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG T, TBPMO_DOCRESULT_DROPDOWN_ITEMS T1 WHERE T.GUID = T1.CONFIG_ID AND T1.[DEFAULT] = 1 AND T.ENTITY_ID = @ENTITY_ID AND T.TYPE_ID = 4 END END TRY BEGIN CATCH PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW: ' + CONVERT(VARCHAR(10),ERROR_LINE()) + ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE()) END CATCH GO CREATE PROCEDURE [dbo].[PRPMO_DELETE_RESULTFILE](@pDOCID INT) AS BEGIN TRY DELETE FROM TBPMO_DOC_INDICES WHERE DocID = @pDOCID DELETE FROM TBPMO_DOC_RECORD_LINK WHERE Doc_ID = @pDOCID DELETE FROM TBPMO_DOCRESULT_LIST WHERE DocID = @pDOCID END TRY BEGIN CATCH PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW: ' + CONVERT(VARCHAR(10),ERROR_LINE()) + ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE()) END CATCH GO ALTER TRIGGER [dbo].[TBPMO_CONTROL_VALUE_AFT_UPD] ON [dbo].[TBPMO_CONTROL_VALUE] FOR UPDATE AS BEGIN TRY DECLARE @CONTROL_ID INTEGER, @RECORD_ID INTEGER, @VALUE_NEW VARCHAR(MAX), @VALUE_OLD VARCHAR(MAX), @CHANGED_WHO VARCHAR(50), @CHANGE_STEP INTEGER, @REDO BIT, @CHANGE_ID INTEGER, @DOC_ID INTEGER, @USER_ID INTEGER, @RIGHT INTEGER IF UPDATE (VALUE) BEGIN SELECT @CONTROL_ID = DELETED.CONTROL_ID, @RECORD_ID = DELETED.RECORD_ID, @VALUE_OLD = DELETED.VALUE FROM DELETED --RAISERROR (@VALUE , 16, 1) SELECT @CHANGE_STEP = CHANGE_STEP, @CHANGED_WHO = CHANGED_WHO, @VALUE_NEW = VALUE, @REDO = REDO FROM INSERTED IF NOT EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID AND VALUE = @VALUE_OLD) INSERT INTO TBPMO_CONTROL_VALUE_CHANGE_HISTORY (RECORD_ID,CONTROL_ID,VALUE,CHANGE_STEP,ADDED_WHO) VALUES (@RECORD_ID,@CONTROL_ID,@VALUE_OLD,@CHANGE_STEP,@CHANGED_WHO) ELSE UPDATE TBPMO_CONTROL_VALUE_CHANGE_HISTORY SET ADDED_WHO = @CHANGED_WHO WHERE GUID = @CHANGE_ID --IF @REDO = 0 -- IF @VALUE_OLD <> @VALUE_NEW AND NOT EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID AND VALUE = @VALUE_OLD AND CHANGE_STEP = @CHANGE_STEP) -- INSERT INTO TBPMO_CONTROL_VALUE_CHANGE_HISTORY (RECORD_ID,CONTROL_ID,VALUE,CHANGE_STEP,ADDED_WHO) VALUES -- (@RECORD_ID,@CONTROL_ID,@VALUE_OLD,@CHANGE_STEP,@CHANGED_WHO) --Update des Logs für loggen von Datensatzänderungen IF EXISTS(SELECT LOG_UPDATE FROM TBPMO_RECORD_LOG_CONFIG WHERE CONTROL_ID = @CONTROL_ID AND LOG_UPDATE = 1) BEGIN If @VALUE_OLD <> @VALUE_NEW BEGIN DECLARE @LOG VARCHAR(1000) SET @LOG = 'Update of Value - OLD-VALUE: ' + @VALUE_OLD + ' / NEW VALUE: ' + @VALUE_NEW INSERT INTO TBPMO_RECORD_LOG (RECORD_ID,CONTROL_ID,LOG_DESCRIPTION,ADDED_WHO) VALUES (@RECORD_ID,@CONTROL_ID,@LOG,@CHANGED_WHO) END END END /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ IF @CONTROL_ID = 29 --Vertragseigner Person BEGIN /*Das Recht des alten Vertragseigners löschen*/ IF @VALUE_OLD <> '' BEGIN select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_OLD) If @USER_ID IS NOT NULL AND @USER_ID <> 0 BEGIN DECLARE cursDOC_V1 CURSOR FOR select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID OPEN cursDOC_V1 FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN --DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0) BEGIN DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0 INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD') END ELSE INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD') FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID END CLOSE cursDOC_V1 DEALLOCATE cursDOC_V1 END END /*Das neue UserRecht hinzufügen*/ BEGIN select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_NEW) If @USER_ID IS NOT NULL AND @USER_ID <> 0 BEGIN DECLARE cursDOC_V1 CURSOR FOR select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID OPEN cursDOC_V1 FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0 AND RIGHT_MODIFY = 'ADD RIGHT') BEGIN DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0 INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD') END ELSE INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD') FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID END CLOSE cursDOC_V1 DEALLOCATE cursDOC_V1 END END END -- ####### Vertragseigner Team ############### ELSE IF @CONTROL_ID = 14 /*Die Rechte des Teams Vertragseigner löschen*/ IF @VALUE_OLD <> '' BEGIN DECLARE c_RIGHT2Delete CURSOR FOR SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_OLD) OPEN c_RIGHT2Delete FETCH NEXT FROM c_RIGHT2Delete INTO @USER_ID WHILE @@FETCH_STATUS = 0 BEGIN IF @USER_ID <> 0 BEGIN DECLARE cursDOC_V3 CURSOR FOR select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID OPEN cursDOC_V3 FETCH NEXT FROM cursDOC_V3 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0) BEGIN DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0 INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD') END ELSE INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD') FETCH NEXT FROM cursDOC_V3 INTO @DOC_ID END CLOSE cursDOC_V3 DEALLOCATE cursDOC_V3 END FETCH NEXT FROM c_RIGHT2Delete INTO @USER_ID END CLOSE c_RIGHT2Delete DEALLOCATE c_RIGHT2Delete END /*Die Rechte des Teams Vertragseigner hinzufügen*/ BEGIN DECLARE c_USER CURSOR FOR SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW) OPEN c_USER FETCH NEXT FROM c_USER INTO @USER_ID WHILE @@FETCH_STATUS = 0 BEGIN IF @USER_ID <> 0 BEGIN DECLARE cursDOC_V2 CURSOR FOR select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID OPEN cursDOC_V2 FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0 AND RIGHT_MODIFY = 'ADD RIGHT') BEGIN DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0AND RIGHT_MODIFY = 'ADD RIGHT' INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD') END ELSE INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES (@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD') FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID END CLOSE cursDOC_V2 DEALLOCATE cursDOC_V2 END FETCH NEXT FROM c_USER INTO @USER_ID END CLOSE c_USER DEALLOCATE c_USER END -- ####### RecordSupervisor ############### --ELSE IF @CONTROL_ID = 227 --RecordSupervisor -- BEGIN -- END --ELSE IF @CONTROL_ID = 346 --Leseberechtigung CheckableListbox -- BEGIN -- END /*###### KUNDEN-INDIVIDUELL - END ####################################################################*/ --Generelle Updates (Datum und Recor-Änderungen) UPDATE TBPMO_CONTROL_VALUE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_CONTROL_VALUE.GUID = INSERTED.GUID UPDATE TBPMO_RECORD SET CHANGED_WHO = @CHANGED_WHO WHERE TBPMO_RECORD.GUID = @RECORD_ID END TRY BEGIN CATCH PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE()) END CATCH GO ALTER VIEW [dbo].[VWPMO_WD_DOC_SEARCH] AS SELECT T.DocID ,T2.[FORM_ID] AS [ENTITY_ID] ,T1.[RECORD_ID] ,(SELECT ISNULL(RECORD1_ID,0) FROM TBPMO_RECORD_CONNECT WHERE RECORD2_ID = T1.[RECORD_ID]) AS PARENT_ID ,dbo.FNPMO_GET_WINDREAM_FILE_PATH (T.DocID) + T3.szLongName AS FULL_FILENAME--T.FULL_FILENAME ,T3.szLongName AS [Filename]--,T.[Filename] ,T.Doctype ,T.[Version] ,T.Creation_DateTime ,T.Change_DateTime ,T.OBJECTTYPE ,T.DISPLAY_NAME ,T.IN_WORK ,T.IN_WORK_USER ,T.IN_WORK_COMMENT FROM TBPMO_DOCRESULT_LIST T ,TBPMO_DOC_RECORD_LINK T1 ,TBPMO_RECORD T2 ,windream.dbo.BaseAttributes T3 WHERE T.DocID = T1.DOC_ID AND T1.RECORD_ID = T2.GUID AND T.DocID = T3.dwDocID GO