69 lines
1.8 KiB
Transact-SQL

ALTER TABLE TBPMO_RECORD
ADD RECORD_ENTITY_ID INTEGER NOT NULL DEFAULT 0
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
SELECT
@MAX_ID = MAX(RECORD_ENTITY_ID) + 1
FROM TBPMO_RECORD WHERE FORM_ID = @FORM_ID
UPDATE TBPMO_RECORD SET
RECORD_ENTITY_ID = @MAX_ID FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID
--Überprüfen ob dieser Rec
IF EXISTS(
SELECT * FROM TBPMO_WORKFLOW_FORM where FORM_ID = @FORM_ID
)
BEGIN
EXECUTE dbo.PRPMO_CREATE_WF_TASKS @FORM_ID, @RECORD_ID
END
--EXEC DBO.PRPMO_CREATE_RECORD_CONNECTIONS @FORM_ID,@RECORD_ID
--SELECT @PARENT_ID = PARENT_ID FROM TBPMO_FORM WHERE GUID = @FORM_ID
--IF @PARENT_ID > 0
-- INSERT INTO TBPMO_RECORD_CONNECT(RECORD1_ID,RECORD2_ID) VALUES (@PARENT_ID,@RECORD_ID)
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
DECLARE
@GUID INTEGER,
@FORM_ID INTEGER ,
@MAX_ID INTEGER
DECLARE c_RECORD CURSOR FOR
SELECT GUID,FORM_ID FROM TBPMO_RECORD ORDER BY GUID
OPEN c_RECORD
FETCH NEXT FROM c_RECORD INTO @GUID,@FORM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT
@MAX_ID = MAX(RECORD_ENTITY_ID) + 1
FROM TBPMO_RECORD WHERE FORM_ID = @FORM_ID
UPDATE TBPMO_RECORD SET RECORD_ENTITY_ID = @MAX_ID WHERE GUID = @GUID
FETCH NEXT FROM c_RECORD INTO @GUID,@FORM_ID
END
CLOSE c_RECORD
DEALLOCATE c_RECORD
GO