775 lines
33 KiB
Transact-SQL
775 lines
33 KiB
Transact-SQL
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
|
||
|
||
----<2D>berpr<70>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
|
||
-- <20>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<74>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<67>nderten Person gel<65>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<70>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<75>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-<2D>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
|
||
|
||
-- <20>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<49>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 |