465 lines
19 KiB
Transact-SQL
465 lines
19 KiB
Transact-SQL
UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.4.8.1' where NAME = 'Record-Organizer'
|
||
GO
|
||
ALTER TABLE TBDD_MODULES ADD AUTO_LOGOUT_USER INT NOT NULL DEFAULT 0
|
||
GO
|
||
ALTER TABLE TBPMO_CONTROL_VALUE_HISTORY ADD GUID INTEGER IDENTITY(0,1)
|
||
GO
|
||
ALTER TABLE TBPMO_RECORD ADD IN_WORK_WHEN DATETIME
|
||
GO
|
||
ALTER TABLE TBPMO_LOG_ESSENTIALS ADD [ENTITY_ID] INT
|
||
GO
|
||
ALTER TABLE TBPMO_FORM_CONSTRUCTOR_DETAIL ADD ADD_RECORDS BIT NOT NULL DEFAULT 1
|
||
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
|
||
ALTER TRIGGER [dbo].[TBPMO_RECORD_AFT_UPD] ON [dbo].[TBPMO_RECORD]
|
||
FOR UPDATE
|
||
AS
|
||
BEGIN TRY
|
||
DECLARE
|
||
@CHANGES BIT,
|
||
@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,
|
||
@INWORK_OLD BIT,
|
||
@INWORK BIT,
|
||
@INWORK_WHO VARCHAR(50)
|
||
SELECT @DELETED_OLD = [deleted],@INWORK_OLD = IN_WORK FROM deleted
|
||
SELECT @RECORD_ID = GUID, @DELETED = [deleted],@RECORD_ENTITY_ID = RECORD_ENTITY_ID,@INWORK = IN_WORK , @INWORK_WHO = ISNULL(IN_WORK_WHO,'') FROM inserted
|
||
--PRINT '@RECORD_ENTITY_ID: ' + CONVERT(VARCHAR(100),@RECORD_ENTITY_ID)
|
||
SET @CHANGES = 0
|
||
IF UPDATE(IN_WORK)
|
||
BEGIN
|
||
IF @INWORK_OLD = 0 and @INWORK = 1
|
||
BEGIN
|
||
DECLARE @COMMENT VARCHAR(100)
|
||
SET @COMMENT = 'RECORD IN_WORK BY: ' + @INWORK_WHO
|
||
PRINT @COMMENT
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS(REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@RECORD_ID,'RECORD-ID','RECORD IN_WORK BY: ' + @INWORK_WHO, 'TRIGGER TBPMO_RECORD_AFT_UPD')
|
||
UPDATE TBPMO_RECORD SET IN_WORK_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID
|
||
END
|
||
ELSE IF @INWORK_OLD = 1 and @INWORK = 0
|
||
BEGIN
|
||
UPDATE TBPMO_RECORD SET IN_WORK_WHEN = NULL FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS(REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@RECORD_ID,'RECORD-ID','RECORD UNLOCKED', 'TRIGGER TBPMO_RECORD_AFT_UPD')
|
||
END
|
||
END
|
||
IF UPDATE(VERSION)
|
||
BEGIN
|
||
SET @CHANGES = 1
|
||
END
|
||
IF UPDATE(FORM_ID)
|
||
BEGIN
|
||
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
|
||
SET @CHANGES = 1
|
||
END
|
||
IF UPDATE (PARENT_RECORD)
|
||
BEGIN
|
||
SELECT
|
||
@RECORD_ID = GUID,
|
||
@PARENT_RECORD = PARENT_RECORD,
|
||
@ENTITY_ID = FORM_ID
|
||
FROM INSERTED
|
||
SET @CHANGES = 1
|
||
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
|
||
SET @CHANGES = 1
|
||
END
|
||
|
||
IF @CHANGES = 1
|
||
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
|
||
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
|
||
|
||
IF @FORM_ID = 32
|
||
BEGIN
|
||
ROLLBACK TRANSACTION
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@FORM_ID,'FORM-ID','INSERT IN ARCHIVE ENTITY NOT ALLOWED ' + CONVERT(VARCHAR(10),@FORM_ID),@ADDED_WHO)
|
||
RAISERROR ('ENTITY IS LOCKED - NO INSERT ALLOWED!',16,1)
|
||
END
|
||
|
||
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 PROCEDURE [dbo].[PRPMO_CREATE_CONTROL_VALUE](@pRESULT BIT OUTPUT,@pCONTROL_ID INT,@pRECORD_ID INT,@pVALUE VARCHAR(MAX),@pADDED_WHO VARCHAR(50) = NULL,@pPARAMETER_1 VARCHAR(100) = NULL,@pPARAMETER_2 VARCHAR(100) = NULL,@pPARAMETER_3 VARCHAR(250) = NULL,@pPARAMETER_4 VARCHAR(250) = NULL,@pPARAMETER_5 VARCHAR(500) = NULL)
|
||
--ALTER PROCEDURE PRPMO_CREATE_CONTROL_VALUE(@pRESULT BIT OUTPUT,@pCONTROL_ID INT,@pRECORD_ID INT,@pVALUE VARCHAR(MAX),@pADDED_WHO VARCHAR(50) = NULL,@pPARAMETER_1 VARCHAR(100) = NULL,@pPARAMETER_2 VARCHAR(100) = NULL,@pPARAMETER_3 VARCHAR(250) = NULL,@pPARAMETER_4 VARCHAR(250) = NULL,@pPARAMETER_5 VARCHAR(500) = NULL)
|
||
AS
|
||
DECLARE @FEHLER VARCHAR(4000),
|
||
@LINE VARCHAR(10)
|
||
|
||
BEGIN TRY
|
||
-- DatensatzExistenz <20>berpr<70>fen
|
||
IF NOT EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID AND CONTROL_ID = @pCONTROL_ID AND UPPER(LTRIM(RTRIM(VALUE))) = UPPER(LTRIM(RTRIM(@pVALUE))))
|
||
BEGIN
|
||
INSERT INTO TBPMO_CONTROL_VALUE(CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES(@pCONTROL_ID,@pRECORD_ID,LTRIM(RTRIM(@pVALUE)),LTRIM(RTRIM(@pADDED_WHO)))
|
||
SET @pRESULT = 1
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS(REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES(@pRECORD_ID,'RECORD-ID','UNIQUE VIOLATION - VALUE ' + LTRIM(RTRIM(@pVALUE)),LTRIM(RTRIM(@pADDED_WHO)))
|
||
SET @pRESULT = 0
|
||
DECLARE @CONTROL_CAPT VARCHAR(100), @ERROR_MSG VARCHAR(500)
|
||
SELECT @CONTROL_CAPT = [COL_NAME] FROM TBPMO_CONTROL WHERE GUID = @pCONTROL_ID
|
||
SET @ERROR_MSG = 'UNIQUE VIOLATION FOR CONTROL: ' + @CONTROL_CAPT + CHAR(13) + 'THE VALUE ALREADY EXISTS - MULTIPLE VALUES PER CONTROL NOT ALLOWED!'
|
||
RAISERROR(@ERROR_MSG,16,1)
|
||
END
|
||
RETURN
|
||
END TRY
|
||
BEGIN CATCH --Fehlerbehandlung
|
||
SET @LINE = CONVERT(VARCHAR(10),ERROR_LINE())
|
||
SET @FEHLER = CONVERT(VARCHAR(4000),ERROR_MESSAGE()) + CHAR(13) + CHAR(10) + 'ERROR-LINE: ' + @LINE
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS(REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES(@pRECORD_ID,'RECORD-ID',CONVERT(VARCHAR(4000),ERROR_MESSAGE()),LTRIM(RTRIM(@pADDED_WHO)))
|
||
RAISERROR(@FEHLER,16,1)
|
||
END CATCH
|
||
GO
|
||
--CREATE PROCEDURE PRPMO_CREATE_RECORD(@pRESULT INT OUTPUT,@pFORM_ID INT,@pADDED_WHO VARCHAR(50) = NULL,@pPARAMETER_1 VARCHAR(100) = NULL,@pPARAMETER_2 VARCHAR(100) = NULL,@pPARAMETER_3 VARCHAR(250) = NULL,@pPARAMETER_4 VARCHAR(250) = NULL,@pPARAMETER_5 VARCHAR(500) = NULL)
|
||
ALTER PROCEDURE [dbo].[PRPMO_CREATE_RECORD](@pRESULT INT OUTPUT,@pFORM_ID INT,@pADDED_WHO VARCHAR(50) = NULL,@pPARAMETER_1 VARCHAR(100) = NULL,@pPARAMETER_2 VARCHAR(100) = NULL,@pPARAMETER_3 VARCHAR(250) = NULL,@pPARAMETER_4 VARCHAR(250) = NULL,@pPARAMETER_5 VARCHAR(500) = NULL)
|
||
AS
|
||
DECLARE @RECORD_ENTITY_ID BIGINT,
|
||
@RECORD_ID INT,
|
||
@FEHLER VARCHAR(4000),
|
||
@LINE VARCHAR(10)
|
||
|
||
DECLARE @OUTPUTDATA TABLE(RECORD_ID INT)
|
||
|
||
BEGIN TRY
|
||
--RAISERROR ('ENTITY IS LOCKED - NO INSERT ALLOWED!',16,1)
|
||
IF @pFORM_ID = 32
|
||
BEGIN
|
||
SET @pRESULT = 0
|
||
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@pFORM_ID,'FORM-ID','INSERT IN ARCHIVE ENTITY NOT ALLOWED ' + CONVERT(VARCHAR(10),@pFORM_ID),LTRIM(RTRIM(@pADDED_WHO)))
|
||
RAISERROR ('ENTITY IS LOCKED - NO INSERT ALLOWED!',16,1)
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
SELECT @RECORD_ENTITY_ID = ISNULL(MAX(RECORD_ENTITY_ID),0) + 1 FROM TBPMO_RECORD WHERE FORM_ID = @pFORM_ID AND DELETED = 0
|
||
|
||
INSERT INTO TBPMO_RECORD(FORM_ID,RECORD_ENTITY_ID,ADDED_WHO,IN_WORK,IN_WORK_WHO)
|
||
OUTPUT INSERTED.GUID INTO @OUTPUTDATA
|
||
VALUES (@pFORM_ID,@RECORD_ENTITY_ID,LTRIM(RTRIM(@pADDED_WHO)),1,LTRIM(RTRIM(@pADDED_WHO)))
|
||
|
||
SELECT @pRESULT = RECORD_ID FROM @OUTPUTDATA
|
||
END
|
||
RETURN
|
||
END TRY
|
||
BEGIN CATCH --Fehlerbehandlung
|
||
SET @pRESULT = 0
|
||
|
||
SET @LINE = CONVERT(VARCHAR(10),ERROR_LINE())
|
||
SET @FEHLER = CONVERT(VARCHAR(4000),ERROR_MESSAGE()) + CHAR(13) + CHAR(10) + 'ERROR-LINE: ' + @LINE
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS(REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES(@pFORM_ID,'FORM-ID',CONVERT(VARCHAR(4000),ERROR_MESSAGE()),LTRIM(RTRIM(@pADDED_WHO)))
|
||
RAISERROR(@FEHLER,16,1)
|
||
|
||
RETURN
|
||
END CATCH
|
||
GO
|
||
ALTER PROCEDURE [dbo].[PRPMO_RECORD_CHECK_INTEGRITY] (@pRECORD_ID INT, @WHO VARCHAR(30),@ISINSERT BIT, @COMMENT VARCHAR(100) = '')
|
||
AS
|
||
DECLARE @COUNT_REQUIRED INT,@ENTITY_ID INT
|
||
DECLARE @reas As VARCHAR(250)
|
||
SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID
|
||
SET @reas = 'PRPMO_RECORD_CHECK_INTEGRITY'
|
||
IF @COMMENT <> ''
|
||
BEGIN
|
||
SET @reas = @reas + ' - ' + @COMMENT
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@pRECORD_ID,'RECORD-ID',@reas,@WHO)
|
||
END
|
||
|
||
|
||
SELECT @COUNT_REQUIRED = COUNT(GUID) FROM TBPMO_CONTROL WHERE REQUIRED = 1 AND FORM_ID = @ENTITY_ID
|
||
IF @COUNT_REQUIRED > (SELECT COUNT(*) FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID)
|
||
IF @ISINSERT = 1
|
||
EXEC PRPMO_DELETE_RECORD @pRECORD_ID,@WHO,'PRPMO_RECORD_CHECK_INTEGRITY-LESS REQUIRED VALUES'
|
||
ELSE
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@pRECORD_ID,'RECORD-ID','LESS REQUIRED CONTROLS',@WHO)
|
||
GO
|
||
ALTER PROCEDURE [dbo].[PRPMO_DELETE_RECORD](@pRECORD_ID INT, @WHO VARCHAR(30),@COMMENT VARCHAR(100) = '')
|
||
AS
|
||
DECLARE @DELETE_SQL NVARCHAR(MAX),
|
||
@ENTITY_ID INT, @COUNT_REQUIRED 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
|
||
DECLARE @reas As VARCHAR(250)
|
||
SET @reas = 'RECORD DELETED BY USER'
|
||
IF @COMMENT <> ''
|
||
BEGIN
|
||
SET @reas = @reas + ' - ' + @COMMENT
|
||
END
|
||
INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,[ENTITY_ID],COMMENT,ADDED_WHO) VALUES (@pRECORD_ID,'RECORD-ID',@ENTITY_ID, @reas, @WHO)
|
||
|
||
SELECT @COUNT_REQUIRED = COUNT(GUID) FROM TBPMO_CONTROL WHERE REQUIRED = 1 AND FORM_ID = @ENTITY_ID
|
||
IF @COUNT_REQUIRED > (SELECT COUNT(GUID) FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID)
|
||
BEGIN
|
||
PRINT 'EXEC PRPMO_DELETE_RECORD_FINALLY - PRE INSERT - LESS REQUIRED VALUES'
|
||
EXEC PRPMO_DELETE_RECORD_FINALLY @pRECORD_ID,'PRE INSERT - LESS REQUIRED VALUES'
|
||
END
|
||
GO
|
||
ALTER VIEW [dbo].[VWPMO_CONSTRUCTOR_FORMS] AS
|
||
SELECT TOP 100 PERCENT
|
||
T2.GUID,
|
||
T1.GUID FORM_VIEW_ID,
|
||
T1.SCREEN_ID,
|
||
T2.CONSTRUCT_ID,
|
||
T.PARENT_ID,
|
||
T2.SEQUENCE,
|
||
T2.LEVEL1_SELECT,
|
||
T.GUID AS FORM_ID,
|
||
T1.FORM_TITLE,
|
||
T2.SQL_SELECT_EBENE1,
|
||
T2.SQL_SELECT_EBENE2,
|
||
T2.SQL_QUICK_VIEW,
|
||
T2.COLUMN_NAME1,
|
||
T2.COLUMN_NAME2,
|
||
T2.ADD_RECORDS,
|
||
T.FORM_TYPE_ID,
|
||
T2.LOAD_DIRECT,
|
||
T2.CONTROL_DOCTYPE_MATCH,
|
||
T2.SQL_RIGHT_READ_AND_VIEW_ONLY,
|
||
T2.SQL_RIGHT_WINDREAM_VIEW,
|
||
T2.DOC_SEARCH_TAB1,
|
||
T2.[ACTIVATE_DOC_SEARCH_ON_EDIT],
|
||
T1.DOCUMENT_VIEW,
|
||
T.DATE_FORMAT,
|
||
T.LOCK_CONTROLS_BG_LOAD,
|
||
(SELECT COUNT(GUID) FROm TBPMO_CONTROL WHERE FORM_ID = T1.FORM_ID AND TREE_VIEW = 1) AS COUNT_TREEVIEW
|
||
FROM
|
||
tbpmo_form T,
|
||
TBPMO_FORM_VIEW T1,
|
||
TBPMO_FORM_CONSTRUCTOR_DETAIL T2
|
||
where
|
||
T2.FORM_ID = T.GUID AND
|
||
T.GUID = T1.FORM_ID
|
||
ORDER BY
|
||
T2.CONSTRUCT_ID,T.PARENT_ID,T2.SEQUENCE
|
||
|
||
GO
|
||
CREATE FUNCTION [dbo].[FNPMO_CUST_ALLOW_ENTITY_RELINK](@RECORD_ID INTEGER, @USER_ID INTEGER)
|
||
--PROXYRELEVANT COPY ON PROXY
|
||
RETURNS BIT
|
||
AS
|
||
BEGIN
|
||
DECLARE @RESULT BIT, @ENTITY_ID INTEGER
|
||
SET @RESULT = 1
|
||
DECLARE @STATUS VARCHAR(50)
|
||
--##### RENOLIT INDIVIDUELL
|
||
SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @RECORD_ID
|
||
IF @ENTITY_ID = 1
|
||
BEGIN
|
||
SELECT @STATUS = VALUE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = 745
|
||
IF @STATUS <> 'Vertrag beendet'
|
||
SET @RESULT = 0
|
||
ELSE
|
||
SET @RESULT = 1
|
||
END
|
||
--#### ENDE
|
||
|
||
RETURN @RESULT
|
||
END
|
||
GO
|
||
|