UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.4.8.0' where NAME = 'Record-Organizer' GO ALTER TABLE TBPMO_RECORD ADD DELETED BIT NOT NULL DEFAULT 0 GO ALTER PROCEDURE [dbo].[PRPMO_ENTITY_TABLE_IMPORT_RECORDS](@pENTITY_ID INT) --ALTER PROCEDURE PRPMO_ENTITY_TABLE_IMPORT_RECORDS(@pENTITY_ID INT) AS DECLARE @REC_ID INT, @SQL_INSERT_REC NVARCHAR(MAX), @SQL_DELETE NVARCHAR(MAX), @SQL_UPDATE NVARCHAR(MAX), @CONTROL_ID INT, @INSERT_COMAMND NVARCHAR(MAX), @TYPEID INT, @TABINDEX INT, @DEFAULT VARCHAR(50), @COL_NAME VARCHAR(50), @ENTITY_TABLENAME VARCHAR(50) PRINT 'WORKING ON ENTITY ''' + CONVERT(VARCHAR(3),@pENTITY_ID) + '''' DECLARE cursor_Records CURSOR FOR SELECT GUID FROM TBPMO_RECORD WHERE FORM_ID = @pENTITY_ID and PARENT_RECORD = 0 AND DELETED = 0 BEGIN SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 SET @SQL_DELETE = 'DELETE FROM @TABLE@ENT' SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@TABLE',@ENTITY_TABLENAME) EXEC sp_executesql @SQL_DELETE OPEN cursor_Records FETCH NEXT FROM cursor_Records INTO @REC_ID WHILE @@FETCH_STATUS = 0 BEGIN SET @SQL_INSERT_REC = 'INSERT INTO @TABLE@ENT([Record-ID],ROW_COLOR, AddedWho, AddedWhen, ChangedWho, ChangedWhen) SELECT GUID,COLOR,ADDED_WHO,ADDED_WHEN,CHANGED_WHO,CHANGED_WHEN FROM TBPMO_RECORD WHERE GUID = @REC_ID' SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@TABLE',@ENTITY_TABLENAME) SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) --PRINT @SQL_INSERT_REC EXEC sp_executesql @SQL_INSERT_REC EXEC dbo.PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE @REC_ID DECLARE cursor_Columns CURSOR FOR SELECT T.GUID,'[' + T.COL_NAME + ']' AS 'COL_NAME',T2.GUID AS TYP_ID FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2 WHERE T.SHOW_COLUMN = 1 AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pENTITY_ID AND LEN(ISNULL(T.COL_NAME,'')) > 0 AND T.CONTROL_TYPE_ID NOT IN (1,5) ORDER BY TAB_INDEX BEGIN OPEN cursor_Columns FETCH NEXT FROM cursor_Columns INTO @CONTROL_ID,@COL_NAME,@TYPEID WHILE @@FETCH_STATUS = 0 BEGIN --PRINT 'CONTROL-ID: ' + CONVERT(VARCHAR(3),@CONTROL_ID) + ' - REC-ID: ' + CONVERT(VARCHAR(10),@REC_ID) SET @SQL_UPDATE = 'UPDATE @TABLE@ENT SET @COL_NAME = ''@VALUE'' WHERE [Record-ID] = @REC_ID' SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@COL_NAME',@COL_NAME) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@TABLE',@ENTITY_TABLENAME) -- IF @TYPEID = 6 --Picturebox BEGIN DECLARE @VALUE_VBM VARBINARY(MAX) IF EXISTS(SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID) BEGIN SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'''@VALUE''','(SELECT IMG FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID)') SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CONTROL_ID',CONVERT(VARCHAR(10),@CONTROL_ID)) EXEC sp_executesql @SQL_UPDATE END END ELSE BEGIN DECLARE @VALUE VARCHAR(MAX) IF EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID) BEGIN TRY IF @TYPEID IN(10,11) --CheckBox,RadioBox BEGIN SELECT @VALUE = VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE',@VALUE) END ELSE IF @TYPEID IN(7,12,14) BEGIN SELECT @VALUE = dbo.FNPMO_GET_CONTROL_VALUES(@CONTROL_ID, @REC_ID) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE',@VALUE) END ELSE SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'''@VALUE''','(SELECT DISTINCT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID)') SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CONTROL_ID',CONVERT(VARCHAR(10),@CONTROL_ID)) --PRINT @SQL_UPDATE EXEC sp_executesql @SQL_UPDATE END TRY BEGIN CATCH PRINT 'ERROR in HANDLING CONTROL-ID: ' + CONVERT(VARCHAR(30),@CONTROL_ID) + ' - RECORD-ID: ' + CONVERT(VARCHAR(10),@REC_ID) END CATCH END FETCH NEXT FROM cursor_Columns INTO @CONTROL_ID,@COL_NAME,@TYPEID END CLOSE cursor_Columns DEALLOCATE cursor_Columns END FETCH NEXT FROM cursor_Records INTO @REC_ID END CLOSE cursor_Records DEALLOCATE cursor_Records END GO ALTER PROCEDURE [dbo].[PRPMO_DELETE_RECORD](@pRECORD_ID INT, @WHO VARCHAR(30)) AS --DELETE FROM TBPMO_WORKFLOW_TASK_USER WHERE WF_TASK_ID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID) --DELETE FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = @pRECORD_ID OR RECORD2_ID = @pRECORD_ID --DELETE FROM TBPMO_WORKFLOW_TASK_HISTORY WHERE WF_TASK_ID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID) -- DELETE FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_WORKFLOW_REMINDER WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_FOLLUPEMAIL_RECORD WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_RECORD_VARIANT WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_RECORD_GEODATA WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_DOC_VALUES WHERE RECORD_ID = @pRECORD_ID --DELETE FROM TBPMO_RECORD_LOG WHERE RECORD_ID = @pRECORD_ID DECLARE @DELETE_SQL NVARCHAR(MAX),@ENTITY_ID INT SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID SET @DELETE_SQL = 'DELETE FROM TBPMO_ENTITY_TABLE@ENT_ID WHERE [Record-ID] = @RECORD_ID' SET @DELETE_SQL = REPLACE(@DELETE_SQL,'@ENT_ID',@ENTITY_ID) SET @DELETE_SQL = REPLACE(@DELETE_SQL,'@RECORD_ID',@pRECORD_ID) EXEC sp_executesql @DELETE_SQL --DELETE FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID UPDATE TBPMO_RECORD SET DELETED = 1 WHERE GUID = @pRECORD_ID INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@pRECORD_ID,'RECORD-ID','RECORD DELETED BY USER',@WHO) GO CREATE PROCEDURE [dbo].[PRPMO_DELETE_RECORD_FINALLY](@pRECORD_ID INT, @WHO VARCHAR(30)) AS DELETE FROM TBPMO_WORKFLOW_TASK_USER WHERE WF_TASK_ID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID) DELETE FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = @pRECORD_ID OR RECORD2_ID = @pRECORD_ID DELETE FROM TBPMO_WORKFLOW_TASK_HISTORY WHERE WF_TASK_ID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID) DELETE FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_WORKFLOW_REMINDER WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_FOLLUPEMAIL_RECORD WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_RECORD_VARIANT WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_RECORD_GEODATA WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_DOC_VALUES WHERE RECORD_ID = @pRECORD_ID DELETE FROM TBPMO_RECORD_LOG WHERE RECORD_ID = @pRECORD_ID DECLARE @DELETE_SQL NVARCHAR(MAX),@ENTITY_ID INT SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID SET @DELETE_SQL = 'DELETE FROM TBPMO_ENTITY_TABLE@ENT_ID WHERE [Record-ID] = @RECORD_ID' SET @DELETE_SQL = REPLACE(@DELETE_SQL,'@ENT_ID',@ENTITY_ID) SET @DELETE_SQL = REPLACE(@DELETE_SQL,'@RECORD_ID',@pRECORD_ID) EXEC sp_executesql @DELETE_SQL DELETE FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID --UPDATE TBPMO_RECORD SET DELETED = 1 WHERE GUID = @pRECORD_ID INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@pRECORD_ID,'RECORD-ID','RECORD FINALLY DELETED BY USER',@WHO) GO ALTER TABLE TBDD_MODULES ADD MIN_REQUIRED_VERSION VARCHAR(10) NOT NULL DEFAULT '1.0.0.0' GO ALTER PROCEDURE [dbo].[PRPMO_DOC_CREATE_NEW_DOC](@pDOC_ID INTEGER,@pREC_ID INTEGER,@WHO VARCHAR(50)) AS BEGIN TRY DECLARE @DISPLAY_NAME VARCHAR(250), @FULL_FILENAME VARCHAR(5000), @Filename VARCHAR(500), @Doctype VARCHAR(250), @Version SMALLINT, @Objecttype VARCHAR(250), @Creation_DateTime DATETIME, @Change_DateTime DATETIME SELECT @FULL_FILENAME = FULL_FILENAME ,@DISPLAY_NAME = [Filename] ,@Filename = [Filename] ,@Doctype = Doctype ,@Version = [Version] ,@Creation_DateTime = [Creation_DateTime] ,@Change_DateTime = [Change_DateTime] ,@Objecttype = OBJECTTYPE FROM VWPMO_DOC_SYNC WHERE DocID = @pDOC_ID IF NOT EXISTS(SELECT DocID FROM TBPMO_DOCRESULT_LIST WHERE DocID = @pDOC_ID) INSERT INTO TBPMO_DOCRESULT_LIST ( [DocID], [DISPLAY_NAME], [FULL_FILENAME], [Filename], [Doctype], [Version], [Objecttype], Creation_DateTime, Change_DateTime) VALUES ( @pDOC_ID, @Filename, @FULL_FILENAME, @Filename, @Doctype, @Version, @Objecttype, @Creation_DateTime, @Change_DateTime) ELSE UPDATE TBPMO_DOCRESULT_LIST SET [DISPLAY_NAME] = @Filename, [FULL_FILENAME] = @FULL_FILENAME, [Filename] = @Filename, [Doctype] = @Doctype, [Version] = @Version, [Objecttype] = @Objecttype, Creation_DateTime = @Creation_DateTime, Change_DateTime = @Change_DateTime WHERE [DocID] = @pDOC_ID IF NOT EXISTS(SELECT GUID FROM TBPMO_DOC_RECORD_LINK WHERE DOC_ID = @pDOC_ID AND RECORD_ID = @pREC_ID) INSERT INTO TBPMO_DOC_RECORD_LINK (DOC_ID, RECORD_ID,ADDED_WHO) VALUES (@pDOC_ID,@pREC_ID,@WHO) END TRY BEGIN CATCH PRINT 'FEHLER IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE()) + ' - FEHLER-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE()) END CATCH GO ALTER TABLE TBDD_VERSION_USER_UPDATE_PATH ADD TEMPPATH VARCHAR(1000) NOT NULL DEFAULT '' GO ALTER TABLE TBDD_VERSION_USER_UPDATE_PATH ADD INFO1 VARCHAR(500) NOT NULL DEFAULT '' GO ALTER TABLE TBDD_VERSION_USER_UPDATE_PATH ADD INFO2 VARCHAR(500) NOT NULL DEFAULT '' GO ALTER TABLE TBDD_VERSION_USER_UPDATE_PATH ADD INFO3 VARCHAR(500) NOT NULL DEFAULT '' GO ALTER TRIGGER [dbo].[TBPMO_RECORD_AFT_INS] ON [dbo].[TBPMO_RECORD] FOR INSERT AS BEGIN TRY DECLARE @RECORD_ID INTEGER, @MAX_ID INTEGER, @FORM_ID INTEGER, @WF_ID INTEGER, @PARENT_ID INTEGER, @ADDED_WHO VARCHAR(50), @INSERT_SQL NVARCHAR(MAX) SELECT @FORM_ID = FORM_ID, @RECORD_ID = GUID, @ADDED_WHO = ADDED_WHO FROM INSERTED SELECT @MAX_ID = ISNULL(MAX(RECORD_ENTITY_ID) + 1,0) FROM TBPMO_RECORD WHERE FORM_ID = @FORM_ID AND DELETED = 0 AND GUID <> @RECORD_ID SET @INSERT_SQL = 'INSERT INTO TBPMO_ENTITY_TABLE@ENT_ID ([Record-ID],AddedWho,AddedWhen) SELECT GUID,ADDED_WHO,ADDED_WHEN FROM TBPMO_RECORD WHERE GUID = @RECORD_ID' SET @INSERT_SQL = REPLACE(@INSERT_SQL,'@ENT_ID',CONVERT(VARCHAR(10),@FORM_ID)) SET @INSERT_SQL = REPLACE(@INSERT_SQL,'@RECORD_ID',@RECORD_ID) PRINT @INSERT_SQL EXEC sp_executesql @INSERT_SQL --RAISERROR(@INSERT_SQL, 16, 1); -- ROLLBACK; UPDATE TBPMO_RECORD SET RECORD_ENTITY_ID = @MAX_ID FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID DECLARE @CONTROL_ID INTEGER,@VALUE VARCHAR(MAX) DECLARE cursInsertDefaultValues CURSOR FOR select GUID, DEFAULT_VALUE FROM TBPMO_CONTROL WHERE FORM_ID = @FORM_ID AND DEFAULT_VALUE IS NOT NULL AND DEFAULT_VALUE <> '' OPEN cursInsertDefaultValues FETCH NEXT FROM cursInsertDefaultValues INTO @CONTROL_ID,@VALUE WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO TBPMO_CONTROL_VALUE (RECORD_ID,CONTROL_ID,VALUE,ADDED_WHO) VALUES (@RECORD_ID,@CONTROL_ID,@VALUE,@ADDED_WHO) FETCH NEXT FROM cursInsertDefaultValues INTO @CONTROL_ID,@VALUE END CLOSE cursInsertDefaultValues DEALLOCATE cursInsertDefaultValues ----Überprüfen ob für die Entity_ID Workflows definiert sind? IF EXISTS( SELECT DISTINCT T.[ENTITY_ID] FROM TBPMO_WORKFLOW_ENTITY_STATE T,TBPMO_WORKFLOW T1 where T.WF_ID = T1.GUID AND T1.MANUALLY = 0 AND T.[ENTITY_ID] = @FORM_ID AND T1.CREATE_ON_REC_CREATE = 1 ) 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 TRIGGER [dbo].[TBPMO_CONTROL_VALUE_AFT_UPD] ON [dbo].[TBPMO_CONTROL_VALUE] FOR UPDATE AS /*###### BE AWARE THAT CHANGES ALSO MUST BE MADE IN PROXY-SERVER TRIGGER ######*/ 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, @USER_ID_ECM INTEGER, @RIGHT INTEGER, @COUNTER_CONTROL_UPDATE_ID INTEGER, @UPDATE_SQL NVARCHAR(MAX), @ENTITY_ID INTEGER, @COL_NAME VARCHAR(50), @ENTITY_TABLENAME VARCHAR(50) IF UPDATE (VALUE) BEGIN SELECT @CONTROL_ID = DELETED.CONTROL_ID, @RECORD_ID = DELETED.RECORD_ID, @VALUE_OLD = DELETED.VALUE, @ENTITY_ID = T.FORM_ID, @COL_NAME = T1.COL_NAME FROM DELETED, TBPMO_RECORD T,TBPMO_CONTROL T1 WHERE DELETED.RECORD_ID = T.GUID AND DELETED.CONTROL_ID = T1.GUID IF @CONTROL_ID in (29,14,346) BEGIN PRINT 'CHANGE OF RIGHT RELEVANT CONTROL' SELECT @COUNTER_CONTROL_UPDATE_ID = COUNTER_CONTROL_UPDATE_ID + 1 FROM TBPMO_KONFIGURATION WHERE GUID = 1 UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 END --RAISERROR (@VALUE , 16, 1) SELECT @CHANGE_STEP = CHANGE_STEP, @CHANGED_WHO = CHANGED_WHO, @VALUE_NEW = VALUE, @REDO = REDO FROM INSERTED --PRINT 'OLD VALUE: ' + @VALUE_OLD --PRINT 'NEW VALUE: ' + @VALUE_NEW IF @CHANGED_WHO IS NULL BEGIN SELECT @CHANGED_WHO = IN_WORK_WHO FROM TBPMO_RECORD WHERE GUID = @RECORD_ID IF @CHANGED_WHO IS NULL SET @CHANGED_WHO = 'TRIGGER DEFAULT' END -- Änderung Vladi ------ --SET @VALUE_OLD = REPLACE(@VALUE_OLD,'''','''''') ---------------------- SELECT @CHANGE_ID = ISNULL(MAX(GUID),0) FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID AND VALUE = @VALUE_OLD IF @CHANGE_ID = 0 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 CHANGED_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) 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 ELSE PRINT 'VALUES NOT DIFFERENT' BEGIN SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 SET @ENTITY_TABLENAME = @ENTITY_TABLENAME + CONVERT(VARCHAR(3),@ENTITY_ID) IF EXISTS(SELECT * FROM sys.columns WHERE Name = @COL_NAME AND Object_ID = Object_ID(@ENTITY_TABLENAME)) EXEC PRPMO_ENTITY_TABLE_UPDATE_COLUMN @ENTITY_ID, @RECORD_ID,@CONTROL_ID, @COL_NAME,@CHANGED_WHO,@VALUE_NEW END /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ IF @CONTROL_ID = 29 --Vertragseigner Person BEGIN --### Zuerst müssen die Rechte der geänderten Person gelöscht werden select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_OLD) If @USER_ID IS NOT NULL AND @USER_ID <> 0 BEGIN SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID DECLARE cursDOC_V1 CURSOR FOR select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = @RECORD_ID OPEN cursDOC_V1 FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'DELETE RIGHT','ContractOwner',@CHANGED_WHO, @COUNTER_CONTROL_UPDATE_ID FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID END CLOSE cursDOC_V1 DEALLOCATE cursDOC_V1 END SET @COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID + 1 UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 --### Jetzt prüfen der neuen Rechte select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_NEW) If @USER_ID IS NOT NULL AND @USER_ID <> 0 BEGIN SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID DECLARE cursDOC_V1 CURSOR FOR select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = @RECORD_ID OPEN cursDOC_V1 FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'ADD RIGHT','VERTRAGSEIGNER USER',@CHANGED_WHO, @COUNTER_CONTROL_UPDATE_ID FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID END CLOSE cursDOC_V1 DEALLOCATE cursDOC_V1 END END -- ####### Vertragseigner Team ############### ELSE IF @CONTROL_ID = 14 BEGIN /*Die Rechte des des alten Vertragseigner-Teams löschen*/ DECLARE C_OLDUSER_CONTROWN CURSOR FOR SELECT T.[USER_ID], T1.USERID_FK_INT_ECM FROM TBDD_GROUPS_USER T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE UPPER(NAME) = UPPER(@VALUE_OLD)) OPEN C_OLDUSER_CONTROWN FETCH NEXT FROM C_OLDUSER_CONTROWN INTO @USER_ID,@USER_ID_ECM WHILE @@FETCH_STATUS = 0 BEGIN DECLARE cursDOC_V2 CURSOR FOR select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = @RECORD_ID OPEN cursDOC_V2 FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'DELETE RIGHT','CONTRACTOWNER',@CHANGED_WHO, @COUNTER_CONTROL_UPDATE_ID FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID END CLOSE cursDOC_V2 DEALLOCATE cursDOC_V2 FETCH NEXT FROM C_OLDUSER_CONTROWN INTO @USER_ID,@USER_ID_ECM END CLOSE C_OLDUSER_CONTROWN DEALLOCATE C_OLDUSER_CONTROWN SET @COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID + 1 UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 /*Die Rechte des Teams Vertragseigner hinzufügen*/ DECLARE c_USER CURSOR FOR SELECT T.[USER_ID], T1.USERID_FK_INT_ECM FROM TBDD_GROUPS_USER T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE UPPER(NAME) = UPPER(@VALUE_NEW)) OPEN c_USER FETCH NEXT FROM c_USER INTO @USER_ID,@USER_ID_ECM WHILE @@FETCH_STATUS = 0 BEGIN DECLARE cursDOC_V2 CURSOR FOR select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = @RECORD_ID OPEN cursDOC_V2 FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'ADD RIGHT','CONTRACTOWNER',@CHANGED_WHO,@COUNTER_CONTROL_UPDATE_ID FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID END CLOSE cursDOC_V2 DEALLOCATE cursDOC_V2 FETCH NEXT FROM c_USER INTO @USER_ID,@USER_ID_ECM END CLOSE c_USER DEALLOCATE c_USER END 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 TRIGGER [dbo].[TBPMO_CONTROL_VALUE_AFT_INS] ON [dbo].[TBPMO_CONTROL_VALUE] FOR INSERT AS /*###### BE AWARE THAT CHANGES ALSO MUST BE MADE IN PROXY-SERVER TRIGGER ######*/ DECLARE @COUNT_GUID INTEGER, @RECORD_ID INTEGER, @CONTROL_ID INTEGER, @ADDED_WHO VARCHAR(50), @VALUE_NEW VARCHAR(MAX), @DOC_ID INTEGER, @USER_ID INTEGER, @USER_ID_ECM INTEGER, @RIGHT INTEGER, @COUNTER_CONTROL_UPDATE_ID INTEGER, @ENTITY_ID INTEGER, @COL_NAME VARCHAR(50), @ENTITY_TABLENAME VARCHAR(50), @CONTROL_TYPE INTEGER SELECT @RECORD_ID = INSERTED.RECORD_ID, @CONTROL_ID = INSERTED.CONTROL_ID, @ADDED_WHO = INSERTED.ADDED_WHO, @VALUE_NEW = INSERTED.VALUE, @ENTITY_ID = T.FORM_ID, @COL_NAME = T1.COL_NAME, @CONTROL_TYPE = T1.CONTROL_TYPE_ID FROM INSERTED, TBPMO_RECORD T,TBPMO_CONTROL T1 WHERE INSERTED.RECORD_ID = T.GUID AND INSERTED.CONTROL_ID = T1.GUID SELECT @COUNT_GUID = COUNT(GUID) FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID AND VALUE = @VALUE_NEW IF @COUNT_GUID > 1 BEGIN INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@RECORD_ID,'RECORD-ID','UNIQUE VIOLATION - VALUE ' + @VALUE_NEW,@ADDED_WHO) RAISERROR ('UNIQUE VIOLATION: THE VALUE ALREADY EXISTS - MULTIPLE VALUES PER CONTROL NOT ALLOWED!',16,1) ROLLBACK TRANSACTION END IF @CONTROL_TYPE = 4 IF ISDATE(@VALUE_NEW) = 0 BEGIN declare @msg varchar(200) SET @msg = 'INVALID INPUT: ' + @VALUE_NEW + ' - A DATE VALUE IS REQUIRED' RAISERROR (@msg,16,1) INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@RECORD_ID,'RECORD-ID','INVALID DATE-VALUE: ' + @VALUE_NEW,@ADDED_WHO) ROLLBACK TRANSACTION END -- Änderung Vladi ------ --SET @VALUE_NEW = REPLACE(@VALUE_NEW,'''','''''') ------------------------ SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 SET @ENTITY_TABLENAME = @ENTITY_TABLENAME + CONVERT(VARCHAR(3),@ENTITY_ID) IF EXISTS(SELECT * FROM sys.columns WHERE Name = @COL_NAME AND Object_ID = Object_ID(@ENTITY_TABLENAME)) EXEC PRPMO_ENTITY_TABLE_UPDATE_COLUMN @ENTITY_ID, @RECORD_ID,@CONTROL_ID, @COL_NAME,@ADDED_WHO,@VALUE_NEW IF EXISTS(SELECT CONTROL_ID FROM TBPMO_APPOINTMENT_CONTROLS WHERE CONTROL_ID = @CONTROL_ID) BEGIN DECLARE @SUBJECT VARCHAR(100), @LOCATION VARCHAR(100), @DESCRIPTION VARCHAR(100) SELECT @SUBJECT = APPT_SUBJECT, @LOCATION = APPT_LOCATION,@DESCRIPTION = APPT_DESCRIPTION FROM TBPMO_APPOINTMENT_CONTROLS WHERE CONTROL_ID = @CONTROL_ID INSERT INTO TBPMO_APPOINTMENTS (Type,[StartDate],[EndDate],[AllDay],[Subject],[Location],[Description],Status,Label,[CustomField1],[CustomField2]) VALUES (0,CONVERT(DATE,@VALUE_NEW),CONVERT(DATE,@VALUE_NEW),1,@SUBJECT,@LOCATION,@DESCRIPTION,0,2,@RECORD_ID,@CONTROL_ID) END /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ IF @CONTROL_ID = 346 BEGIN SELECT @COUNTER_CONTROL_UPDATE_ID = COUNTER_CONTROL_UPDATE_ID + 1 FROM TBPMO_KONFIGURATION WHERE GUID = 1 UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 DECLARE cursor_DOCS CURSOR FOR select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = @RECORD_ID --SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW) OPEN cursor_DOCS FETCH NEXT FROM cursor_DOCS INTO @DOC_ID WHILE @@FETCH_STATUS = 0 BEGIN BEGIN DECLARE cursor_User CURSOR FOR SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW) --select DocID from VWPMO_DOC_SEARCH where RECORD_ID = @RECORD_ID OPEN cursor_User FETCH NEXT FROM cursor_User INTO @USER_ID WHILE @@FETCH_STATUS = 0 BEGIN SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,1,'ADD RIGHT','LESEBERECHTIGUNG TEAM','TBPMO_CONTROL_VALUE_AFT_INS_346', @COUNTER_CONTROL_UPDATE_ID FETCH NEXT FROM cursor_User INTO @USER_ID END CLOSE cursor_User DEALLOCATE cursor_User END FETCH NEXT FROM cursor_DOCS INTO @DOC_ID END CLOSE cursor_DOCS DEALLOCATE cursor_DOCS END /*###### KUNDEN-INDIVIDUELL - ENDE ####################################################################*/ GO ALTER TRIGGER [dbo].[TBPMO_RECORD_AFT_UPD] ON [dbo].[TBPMO_RECORD] FOR UPDATE AS BEGIN TRY DECLARE @RECORD_ID INTEGER, @OLD_ENTITY_ID INTEGER, @ENTITY_ID INTEGER, @PARENT_RECORD INTEGER, @ENTITY_TABLENAME VARCHAR(50), @SQL NVARCHAR(MAX), @DELETED_OLD BIT, @DELETED BIT, @RECORD_ENTITY_ID BIGINT SELECT @DELETED_OLD = [deleted] FROM deleted SELECT @DELETED = [deleted],@RECORD_ENTITY_ID = RECORD_ENTITY_ID FROM inserted PRINT '@RECORD_ENTITY_ID: ' + CONVERT(VARCHAR(100),@RECORD_ENTITY_ID) IF UPDATE(FORM_ID) BEGIN SELECT @RECORD_ID = GUID FROM INSERTED SELECT @OLD_ENTITY_ID = FORM_ID FROM deleted SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 SET @ENTITY_TABLENAME = @ENTITY_TABLENAME + CONVERT(VARCHAR(3),@OLD_ENTITY_ID) --ERST DEN RECORD IN DER AKTUELLEN ENTITÄT LÖSCHEN SET @SQL = 'DELETE FROM @TABLE WHERE [Record-ID] = @RECORD_ID' SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) SET @SQL = REPLACE(@SQL,'@RECORD_ID',@RECORD_ID) EXEC PRPMO_ENTITY_TABLE_RENEW_RECORD @ENTITY_ID,@RECORD_ID END IF UPDATE (PARENT_RECORD) BEGIN SELECT @RECORD_ID = GUID, @PARENT_RECORD = PARENT_RECORD, @ENTITY_ID = FORM_ID FROM INSERTED IF @PARENT_RECORD > 0 BEGIN SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 SET @ENTITY_TABLENAME = @ENTITY_TABLENAME + CONVERT(VARCHAR(3),@ENTITY_ID) SET @SQL = 'DELETE FROM @TABLE WHERE [Record-ID] = @RECORD_ID' SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) SET @SQL = REPLACE(@SQL,'@RECORD_ID',@RECORD_ID) --RAISERROR(@SQL, 16, 1) EXEC sp_executesql @SQL END END IF UPDATE([DELETED]) BEGIN IF @DELETED_OLD = 0 and @DELETED = 1 BEGIN Print '@DELETED_OLD = 0 and @DELETED = 1' SET @RECORD_ENTITY_ID = 9999000000 + @RECORD_ENTITY_ID Print '@RECORD_ENTITY_ID: '+ CONVERT(VARCHAR(100),@RECORD_ENTITY_ID) UPDATE TBPMO_RECORD SET RECORD_ENTITY_ID = @RECORD_ENTITY_ID FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID END END UPDATE TBPMO_RECORD SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID END TRY BEGIN CATCH PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE()) END CATCH GO CREATE PROCEDURE [dbo].[PRPMO_ENTITY_TABLE_RENEW_RECORD](@pENTITY_ID INT,@pRECORD_ID INT) AS DECLARE @REC_ID INT, @SQL_INSERT_REC NVARCHAR(MAX), @SQL_DELETE NVARCHAR(MAX), @SQL_UPDATE NVARCHAR(MAX), @CONTROL_ID INT, @INSERT_COMAMND NVARCHAR(MAX), @TYPEID INT, @TABINDEX INT, @DEFAULT VARCHAR(50), @COL_NAME VARCHAR(50), @ENTITY_TABLENAME VARCHAR(50) PRINT 'WORKING ON RECORD ''' + CONVERT(VARCHAR(10),@pRECORD_ID) + '''' DECLARE cursor_Records CURSOR FOR SELECT GUID FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID BEGIN SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 SET @SQL_DELETE = 'DELETE FROM @TABLE@ENT WHERE [Record-ID] = @RECORD_ID' SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@RECORD_ID',CONVERT(VARCHAR(10),@pRECORD_ID)) SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@TABLE',@ENTITY_TABLENAME) PRINT @SQL_DELETE EXEC sp_executesql @SQL_DELETE OPEN cursor_Records FETCH NEXT FROM cursor_Records INTO @REC_ID WHILE @@FETCH_STATUS = 0 BEGIN SET @SQL_INSERT_REC = 'INSERT INTO @TABLE@ENT([Record-ID],ROW_COLOR, AddedWho, AddedWhen, ChangedWho, ChangedWhen) SELECT GUID,COLOR,ADDED_WHO,ADDED_WHEN,CHANGED_WHO,CHANGED_WHEN FROM TBPMO_RECORD WHERE GUID = @REC_ID' SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@TABLE',@ENTITY_TABLENAME) SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) PRINT @SQL_INSERT_REC EXEC sp_executesql @SQL_INSERT_REC EXEC dbo.PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE @REC_ID DECLARE cursor_Columns CURSOR FOR SELECT T.GUID,'[' + T.COL_NAME + ']' AS 'COL_NAME',T2.GUID AS TYP_ID FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2 WHERE T.SHOW_COLUMN = 1 AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pENTITY_ID AND LEN(ISNULL(T.COL_NAME,'')) > 0 AND T.CONTROL_TYPE_ID NOT IN (1,5) ORDER BY TAB_INDEX BEGIN OPEN cursor_Columns FETCH NEXT FROM cursor_Columns INTO @CONTROL_ID,@COL_NAME,@TYPEID WHILE @@FETCH_STATUS = 0 BEGIN --PRINT 'CONTROL-ID: ' + CONVERT(VARCHAR(3),@CONTROL_ID) + ' - REC-ID: ' + CONVERT(VARCHAR(10),@REC_ID) SET @SQL_UPDATE = 'UPDATE @TABLE@ENT SET @COL_NAME = ''@VALUE'' WHERE [Record-ID] = @REC_ID' SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@COL_NAME',@COL_NAME) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@TABLE',@ENTITY_TABLENAME) -- IF @TYPEID = 6 --Picturebox BEGIN DECLARE @VALUE_VBM VARBINARY(MAX) IF EXISTS(SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID) BEGIN SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'''@VALUE''','(SELECT IMG FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID)') SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CONTROL_ID',CONVERT(VARCHAR(10),@CONTROL_ID)) EXEC sp_executesql @SQL_UPDATE END END ELSE BEGIN DECLARE @VALUE VARCHAR(MAX) IF EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID) BEGIN TRY IF @TYPEID IN(10,11) --CheckBox,RadioBox BEGIN SELECT @VALUE = VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE',@VALUE) END ELSE IF @TYPEID IN(7,12,14) BEGIN SELECT @VALUE = dbo.FNPMO_GET_CONTROL_VALUES(@CONTROL_ID, @REC_ID) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE',@VALUE) END ELSE SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'''@VALUE''','(SELECT DISTINCT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID)') SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CONTROL_ID',CONVERT(VARCHAR(10),@CONTROL_ID)) --PRINT @SQL_UPDATE EXEC sp_executesql @SQL_UPDATE END TRY BEGIN CATCH PRINT 'ERROR in HANDLING CONTROL-ID: ' + CONVERT(VARCHAR(30),@CONTROL_ID) + ' - RECORD-ID: ' + CONVERT(VARCHAR(10),@REC_ID) END CATCH END FETCH NEXT FROM cursor_Columns INTO @CONTROL_ID,@COL_NAME,@TYPEID END CLOSE cursor_Columns DEALLOCATE cursor_Columns END FETCH NEXT FROM cursor_Records INTO @REC_ID END CLOSE cursor_Records DEALLOCATE cursor_Records END GO