UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.4.4.9' where NAME = 'Record-Organizer' GO CREATE TABLE TBPMO_SAP_FUBA ( GUID INTEGER NOT NULL IDENTITY(1,1), NAME VARCHAR(100) NOT NULL, COMMENT VARCHAR(500), Method VARCHAR(50) NOT NULL DEFAULT 'TABLE', TableName VARCHAR(100) NOT NULL, Host VARCHAR(100) NOT NULL, SystemNumber VARCHAR(30) NOT NULL, UserName VARCHAR(50) NOT NULL, [Password] VARCHAR(100) NOT NULL, Client VARCHAR(100) NOT NULL, [Language] VARCHAR(20) NOT NULL, TempTableName VARCHAR(100) NOT NULL, FuBa_SplitCharacter VARCHAR(1) NOT NULL DEFAULT ';', WHERE_CLAUSE VARCHAR(500), 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_SAP_FUBA PRIMARY KEY (GUID) ) GO CREATE TRIGGER TBPMO_SAP_FUBA_AFT_UPD ON TBPMO_SAP_FUBA FOR UPDATE AS UPDATE TBPMO_SAP_FUBA SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_SAP_FUBA.GUID = INSERTED.GUID GO INSERT INTO TBPMO_CONTROL_TYPE (TYPE_NAME) VALUES ('DatagridviewCheckable') GO CREATE TRIGGER TBPMO_SAP_FUBA_AFT_UPD ON TBPMO_SAP_FUBA FOR UPDATE AS UPDATE TBPMO_SAP_FUBA SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_SAP_FUBA.GUID = INSERTED.GUID GO ALTER VIEW VWPMO_CONTROL_HINT AS SELECT T2.FORM_ID, T1.CONTROL_ID, T.HINT FROM TBPMO_CONTROL_LANGUAGE T, TBPMO_CONTROL_SCREEN T1, TBPMO_CONTROL T2 WHERE T.CONTROL_SCREEN_ID = T1.GUID AND T1.CONTROL_ID = T2.GUID AND T1.SCREEN_ID = 1 AND (HINT IS NOT NULL AND HINT <> '') GO ALTER TABLE TBDD_USER ADD WAN_ENVIRONMENT BIT NOT NULL DEFAULT 0 GO UPDATE TBDD_USER SET WAN_ENVIRONMENT = 1 GO --RENAME TBDD_EMAIL_ACCOUNT in OLD CREATE TABLE TBDD_EMAIL_ACCOUNT ( GUID INTEGER IDENTITY(0,1), NAME VARCHAR(50), EMAIL_FROM VARCHAR(100) NOT NULL, EMAIL_SMTP VARCHAR(100) NOT NULL, EMAIL_USER VARCHAR(100) NOT NULL, EMAIL_PW VARCHAR(100) NOT NULL DEFAULT '', PORT INTEGER NOT NULL DEFAULT '25', ACTIVE BIT NOT NULL DEFAULT 1, ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT' NOT NULL, ADDED_WHEN DATETIME DEFAULT GETDATE(), CHANGED_WHO VARCHAR(50), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBDD_EMAIL_ACCOUNT PRIMARY KEY (GUID) ) GO DROP TRIGGER TBDD_EMAIL_ACCOUNT_AFT_UPD GO CREATE TRIGGER TBDD_EMAIL_ACCOUNT_AFT_UPD ON TBDD_EMAIL_ACCOUNT FOR UPDATE AS BEGIN UPDATE TBDD_EMAIL_ACCOUNT SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBDD_EMAIL_ACCOUNT.GUID = INSERTED.GUID END GO INSERT INTO TBDD_EMAIL_ACCOUNT (NAME, EMAIL_FROM, EMAIL_SMTP , EMAIL_USER, EMAIL_PW, ACTIVE) SELECT NAME, EMAIL_FROM, EMAIL_SMTP , EMAIL_USER, EMAIL_PW, ACTIVE FROM TBDD_EMAIL_ACCOUNT_OLD ALTER TABLE TBPMO_FOLLOW_UP_EMAIL ADD CTRL_USER_DIRECT INTEGER NOT NULL DEFAULT 0 GO ALTER TABLE TBPMO_FOLLOW_UP_EMAIL ADD CTRL_GROUP_DIRECT INTEGER NOT NULL DEFAULT 0 GO ALTER VIEW VWPMO_FOLLOW_UP_EMAIL AS SELECT T1.GUID FOLLOW_UP_ID, T1.NAME, T1.FOLLOW_UP_SEQUENCE, T1.FOLLOW_UP_DAYS, T1.FOLLOW_UP_TIME_SPAN, CONVERT(CHAR(5),GETDATE(),108) NOW_TIME, T.RECORD_ID, CONVERT(DATE,T.VALUE) VALUE, T1.EMAIL_SUBJECT, T1.EMAIL_BODY, T1.PROCESS_SELECT1, T1.PROCESS_SELECT2, T1.PROCESS_SELECT3, T1.PROCESS_SELECT4, T1.PROCESS_SELECT5, T1.PROCESS_SELECT6, T1.PROCESS_SELECT7, T1.PROCESS_SELECT8, T1.PROCESS_SELECT9, T1.PROCESS_SELECT10, T1.TIME_UNITY, T1.TIME_DIST, CASE T1.TIME_UNITY WHEN 'Month' THEN DATEDIFF(month, getdate(),convert(Date,T.value)) WHEN 'Week' THEN DATEDIFF(week, getdate(),convert(Date,T.value)) END TIME_SPAN, T1.DEPENDENT_DATE_CTRL_ID, T1.DEPENDENT_DONE_CTRL_ID, (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = T1.DEPENDENT_DONE_CTRL_ID AND RECORD_ID = T.RECORD_ID) DONE_VALUE, T2.GUID AS CONSTRUCTOR_ID, T2.FORM_TITLE AS CONSTRUCTOR_TITLE, T1.CTRL_USER_DIRECT, T1.CTRL_GROUP_DIRECT FROM VWPMO_VALUES T, TBPMO_FOLLOW_UP_EMAIL T1, TBPMO_FORM_CONSTRUCTOR T2 WHERE T1.ACTIVE = 1 AND (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = T1.DEPENDENT_DONE_CTRL_ID AND RECORD_ID = T.RECORD_ID) = 'False' And T.CONTROL_ID = T1.DEPENDENT_DATE_CTRL_ID AND T1.CONSTRUCTOR_ID = T2.GUID AND T1.TIME_SPAN = CASE T1.TIME_UNITY WHEN 'Month' THEN DATEDIFF(month, getdate(),convert(Date,T.value)) WHEN 'Week' THEN DATEDIFF(week, getdate(),convert(Date,T.value)) END GO ALTER TABLE TBPMO_CONTROL_VALUE ADD CHANGE_STEP INTEGER NOT NULL DEFAULT 0 GO ALTER TABLE TBPMO_CONTROL_VALUE ADD REDO BIT NOT NULL DEFAULT 0 GO CREATE TABLE TBPMO_CONTROL_VALUE_CHANGE_HISTORY ( GUID INTEGER NOT NULL IDENTITY(1,1), RECORD_ID INTEGER, CONTROL_ID INTEGER, VALUE VARCHAR(MAX), CHANGE_STEP INTEGER, ADDED_WHO VARCHAR(50) NOT NULL, ADDED_WHEN DATETIME DEFAULT GETDATE(), CHANGED_WHO VARCHAR(50), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBPMO_CONTROL_VALUE_CHANGE_HISTORY_CHANGE_HISTORY PRIMARY KEY (GUID) ) GO CREATE TRIGGER TBPMO_CONTROL_VALUE_CHANGE_HISTORY_CHANGE_HISTORY_UPD ON TBPMO_CONTROL_VALUE_CHANGE_HISTORY FOR UPDATE AS UPDATE TBPMO_CONTROL_VALUE_CHANGE_HISTORY SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_CONTROL_VALUE_CHANGE_HISTORY.GUID = INSERTED.GUID 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 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 @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 --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 CREATE PROCEDURE [dbo].[PRPMO_REDO_RECORD_CHANGES] (@RECORD_ID INTEGER) AS BEGIN DECLARE @CHANGE_STEP INTEGER, @CONTROL_ID INTEGER, @GUID INTEGER, @VALUE VARCHAR(MAX) DECLARE c_REDO CURSOR FOR SELECT MAX(GUID),CONTROL_ID, CHANGE_STEP FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE RECORD_ID = @RECORD_ID GROUP BY CONTROL_ID, CHANGE_STEP, RECORD_ID OPEN c_REDO FETCH NEXT FROM c_REDO INTO @GUID,@CONTROL_ID,@CHANGE_STEP WHILE @@FETCH_STATUS = 0 BEGIN SELECT @VALUE = VALUE FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE GUID = @GUID UPDATE TBPMO_CONTROL_VALUE SET VALUE = @VALUE, REDO = 1 WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID DELETE FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE GUID = @GUID UPDATE TBPMO_CONTROL_VALUE SET REDO = 0 WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID FETCH NEXT FROM c_REDO INTO @GUID,@CONTROL_ID,@CHANGE_STEP END CLOSE c_REDO DEALLOCATE c_REDO END GO ALTER TABLE TBPMO_RECORD ADD COLOR VARCHAR(50) NOT NULL DEFAULT '' GO ALTER PROCEDURE [dbo].[PRPMO_CREATE_SQL](@pFORM_ID INT) AS DECLARE @COL_NAME VARCHAR(50), @SQL_BEGIN VARCHAR(1000), @SQL_END VARCHAR(2000), @SQL VARCHAR(5000), @CONTROL_ID INT, @RESULT VARCHAR(8000), @TYPEID INT, @TABINDEX INT, @SQL_LBL VARCHAR(2000) DECLARE c_SPALTENNAMEN CURSOR FOR SELECT T.GUID,'['+T.COL_NAME+']' AS 'COL_NAME', T2.GUID,T1.TAB_INDEX FROM TBPMO_CONTROL T, TBPMO_CONTROL_SCREEN T1, TBPMO_CONTROL_TYPE T2 WHERE T.SHOW_COLUMN = 1 AND T.[COL_NAME] <> '' AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pFORM_ID AND LEN(ISNULL(T.COL_NAME,'')) > 0 and t.CONTROL_TYPE_ID not in (1,5) UNION SELECT T.GUID,'['+T.NAME+']' AS 'COL_NAME', T2.GUID,T1.TAB_INDEX FROM TBPMO_CONTROL T, TBPMO_CONTROL_SCREEN T1, TBPMO_CONTROL_TYPE T2 WHERE T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pFORM_ID and t.CONTROL_TYPE_ID = 1 AND LEN(ISNULL(t.SQL_COMMAND_1,'')) > 0 ORDER BY TAB_INDEX BEGIN SET @SQL_BEGIN = 'SELECT T.GUID AS [Record-ID],T.COLOR AS ROW_COLOR, T.FORM_ID AS [Form-ID],' SET @SQL_END = ',T.ADDED_WHO as AddedWho,T.ADDED_WHEN as AddedWhen, T.CHANGED_WHO As ChangedWho, T.CHANGED_WHEN As ChangedWhen FROM TBPMO_RECORD T, TBPMO_FORM T1 WHERE T.FORM_ID = T1.GUID AND T.FORM_ID = @FORM_ID' SET @SQL_END = REPLACE(@SQL_END,'@FORM_ID',@pFORM_ID) OPEN c_SPALTENNAMEN FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID,@TABINDEX WHILE @@FETCH_STATUS = 0 BEGIN SET @COL_NAME = REPLACE(@COL_NAME,'lbl','') IF LEN(ISNULL(@SQL,'')) = 0 BEGIN IF @TYPEID = 10 OR @TYPEID = 11 SET @SQL = 'ISNULL((SELECT CASE WHEN UPPER(RTRIM(LTRIM(T5.VALUE))) = ''TRUE'' THEN 1 ELSE 0 END FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + '),0) AS ' + @COL_NAME ELSE IF @TYPEID = 6 SET @SQL = '(SELECT T6.IMG FROM TBPMO_CONTROL_IMAGE T6 WHERE T6.RECORD_ID = T.GUID AND T6.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME ELSE IF @TYPEID = 1 BEGIN SELECT @SQL_LBL = SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = @CONTROL_ID SET @SQL_LBL = REPLACE(UPPER(@SQL_LBL),'@RECORD_ID','T.GUID') SET @SQL = '(' + @SQL_LBL + ') AS ' + @COL_NAME END ELSE IF @TYPEID = 12 OR @TYPEID = 7 OR @TYPEID = 14 SET @SQL = '(SELECT [dbo].[FNPMO_GET_CONTROL_VALUES](' + CONVERT(VARCHAR(20),@CONTROL_ID) + ', T.GUID)) AS ' + @COL_NAME ELSE SET @SQL = '(SELECT T5.VALUE FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME END ELSE BEGIN IF (@TYPEID = 10) OR (@TYPEID = 11) SET @SQL = @SQL + ',ISNULL((SELECT CASE WHEN UPPER(RTRIM(LTRIM(T5.VALUE))) = ''TRUE'' THEN 1 ELSE 0 END FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + '),0) AS ' + @COL_NAME ELSE IF @TYPEID = 6 SET @SQL = @SQL + ',(SELECT T6.IMG FROM TBPMO_CONTROL_IMAGE T6 WHERE T6.RECORD_ID = T.GUID AND T6.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME ELSE IF @TYPEID = 1 BEGIN SELECT @SQL_LBL = SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = @CONTROL_ID SET @SQL_LBL = REPLACE(UPPER(@SQL_LBL),'@RECORD_ID','T.GUID') SET @SQL = @SQL + ',(' + @SQL_LBL + ') AS ' + @COL_NAME END ELSE IF @TYPEID = 12 OR @TYPEID = 7 OR @TYPEID = 14 SET @SQL = @SQL + ',(SELECT [dbo].[FNPMO_GET_CONTROL_VALUES](' + CONVERT(VARCHAR(20),@CONTROL_ID) + ', T.GUID)) AS ' + @COL_NAME ELSE SET @SQL = @SQL + ',(SELECT T5.VALUE FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME END FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID,@TABINDEX END CLOSE c_SPALTENNAMEN DEALLOCATE c_SPALTENNAMEN SET @RESULT = @SQL_BEGIN + @SQL + @SQL_END IF EXISTS (SELECT FORM_ID FROM TBPMO_FORM_SQL WHERE FORM_ID = @pFORM_ID) UPDATE TBPMO_FORM_SQL SET SQL_COMMAND = @RESULT WHERE FORM_ID = @pFORM_ID ELSE INSERT INTO TBPMO_FORM_SQL(FORM_ID,SQL_COMMAND) VALUES(@pFORM_ID,@RESULT) END GO /*UPDATE DER SQLS*/ BEGIN DECLARE @ENTITY_ID INTEGER DECLARE c_REDO CURSOR FOR SELECT GUID FROM TBPMO_FORM OPEN c_REDO FETCH NEXT FROM c_REDO INTO @ENTITY_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC DBO.PRPMO_CREATE_SQL @ENTITY_ID FETCH NEXT FROM c_REDO INTO @ENTITY_ID END CLOSE c_REDO DEALLOCATE c_REDO END GO EXEC PRPMO_CREATE_TEMP_VIEWS GO