DD_ECM und taskOrgFLOW

This commit is contained in:
Developer01
2026-03-10 12:43:37 +01:00
parent 1febe4956b
commit 01e0c726e5
6 changed files with 431 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ GO
SET QUOTED_IDENTIFIER ON SET QUOTED_IDENTIFIER ON
GO GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'MeinTabellenName') WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'TBDD_USER_KEY_VALUE_PAIR')
BEGIN BEGIN
DROP TABLE [TBDD_USER_KEY_VALUE_PAIR]; DROP TABLE [TBDD_USER_KEY_VALUE_PAIR];
END END

View File

@@ -1,2 +1,19 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.4.0'; UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.4.0';
GO
-- Changed 20.02.2026 Nolock
ALTER VIEW [dbo].[VWDD_USER_CLIENT]
AS
SELECT
T1.GUID AS CLIENT_ID
,T1.CLIENT_NAME
,T.USER_ID
,T2.USERNAME
FROM
TBDD_CLIENT_USER T WITH (NOLOCK)
,TBDD_CLIENT T1 WITH (NOLOCK)
,TBDD_USER T2 WITH (NOLOCK)
WHERE
T1.ACTIVE = 1
AND T.CLIENT_ID = T1.GUID
AND T.USER_ID = T2.GUID
GO GO

View File

@@ -0,0 +1,130 @@
UPDATE TBIDB_BASE SET CONFIG_VALUE = '1.2' where CONFIG_NAME = 'DB_VERSION'
GO
-- Changed 20.02.2026 MS Nolock
-- Changed 20.10.2023 LANG_ID
ALTER VIEW [dbo].[VWIDB_VALUE_TEXT] AS
select
T.GUID AS MetadataID,
T1.GUID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
T3.TERM_VALUE,
T3.GUID TERM_GUID,
T4.LANG_CODE,
T4.GUID as LANG_ID,
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO [Geändert wer],
T.CHANGED_WHEN [Geändert wann],
T2.GUID TBIDB_TERM_LANGUAGE_GUID
from
TBIDB_OBJECT_METADATA T WITH (NOLOCK)
INNER JOIN TBIDB_ATTRIBUTE T1 WITH (NOLOCK) ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_TERM_LANGUAGE T2 WITH (NOLOCK) ON T.TEXT_TERM_LANG_ID = T2.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 WITH (NOLOCK) ON T2.TEXT_TERM_ID = T3.GUID
INNER JOIN TBIDB_LANGUAGE T4 WITH (NOLOCK) ON T2.LANGUAGE_ID = T4.GUID
GO
-- Changed 20.02.2026 MS Nolock
ALTER VIEW [dbo].[VWIDB_BE_ATTRIBUTE] AS
SELECT
[BE_ID]
,T2.TITLE AS BE
,[ATTR_ID]
,T1.TITLE AS ATTR_TITLE
,T1.TYP_ID
,T1.TYP_ID as [TYPE_ID]
,T3.NAME_TYPE AS [TYPE_NAME]
, T1.SYS_ATTRIBUTE
,'de-DE' LANG_CODE
FROM
TBIDB_BE_ATTRIBUTE T WITH (NOLOCK) INNER JOIN
TBIDB_ATTRIBUTE T1 WITH (NOLOCK) ON T.ATTR_ID = T1.GUID INNER JOIN
TBIDB_BUSINESS_ENTITY T2 WITH (NOLOCK) ON T.BE_ID = T2.GUID INNER JOIN
TBIDB_ATTRIBUTE_TYPE T3 WITH (NOLOCK) ON T1.TYP_ID = T3.GUID
WHERE
T1.DELETED = 0
GO
CREATE NONCLUSTERED INDEX [IDX_TBIDB_DOC_INFO_ADDEDWHEN]
ON [dbo].[TBIDB_DOC_INFO] ([ADDED_WHEN])
INCLUDE ([IDB_OBJ_ID],[OBJ_ST_ID],[FILENAME_ONLY],[FILENAME_EXT],[EXTENSION],[RELATIVE_PATH],[ADDED_WHO])
GO
USE [IDB]
GO
/****** Object: UserDefinedFunction [dbo].[FNIDB_PM_GET_VARIABLE_VALUE_DT] Script Date: 20.02.2026 12:43:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Changed 20.02.2026 MS NoLock
-- Changed 30.12.2022 MS UNIQUE LANGID INTEGRATED
ALTER FUNCTION [dbo].[FNIDB_PM_GET_VARIABLE_VALUE_DT] (@DocID BIGINT, @ATTRIBUTE VARCHAR(100),@LANG_CODE VARCHAR(10), @DocID_ISFOREIGN as BIT = False)
RETURNS @Output TABLE (MDGUID BIGINT,TERM_VALUE VARCHAR(900),ADDED_WHEN DATETIME,ADDED_WHO VARCHAR(200))
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@LANG_ID INT,
@TERM_RESULT VARCHAR(900)
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE,@LANG_ID = T.[UNIFIED_LANG_ID]
FROM TBIDB_ATTRIBUTE T WITH (NOLOCK) , TBIDB_ATTRIBUTE_TYPE T1 WITH (NOLOCK)
WHERE T.TYP_ID = T1.GUID AND TITLE = @ATTRIBUTE
BEGIN
IF @LANG_ID = 0
BEGIN
IF @LANG_CODE = 'de-DE'
SET @LANG_ID = 1
ELSE
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WITH (NOLOCK) WHERE LANG_CODE = @LANG_CODE
END
END
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
DECLARE @TL_ID BIGINT
INSERT INTO @Output (MDGUID,TERM_VALUE,ADDED_WHEN,ADDED_WHO)
SELECT MD.GUID, TERM.TERM_VALUE,MD.ADDED_WHEN,MD.ADDED_WHO FROM
TBIDB_TERM_VALUE_VARCHAR TERM WITH (NOLOCK) INNER JOIN TBIDB_TERM_LANGUAGE TLANG WITH (NOLOCK) ON TERM.GUID = TLANG.TEXT_TERM_ID
INNER JOIN TBIDB_OBJECT_METADATA MD WITH (NOLOCK) ON TLANG.GUID = MD.TEXT_TERM_LANG_ID
WHERE MD.ATTR_ID = @ATTR_ID
AND TLANG.LANGUAGE_ID = @LANG_ID
AND MD.IDB_OBJ_ID = @DocID --ORDER BY MD.GUID
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
INSERT INTO @Output (MDGUID,TERM_VALUE,ADDED_WHEN,ADDED_WHO)
SELECT MD.GUID, TERM.TERM_VALUE,MD.ADDED_WHEN,MD.ADDED_WHO FROM TBIDB_TERM_VALUE_INTEGER TERM WITH (NOLOCK) , TBIDB_OBJECT_METADATA MD WITH (NOLOCK) WHERE MD.INT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID-- ORDER BY MD.GUID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
INSERT INTO @Output (MDGUID,TERM_VALUE,ADDED_WHEN,ADDED_WHO)
SELECT MD.GUID, TERM.TERM_VALUE,MD.ADDED_WHEN,MD.ADDED_WHO FROM TBIDB_TERM_VALUE_FLOAT TERM WITH (NOLOCK), TBIDB_OBJECT_METADATA MD WITH (NOLOCK) WHERE MD.FLOAT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID-- ORDER BY MD.GUID
END
ELSE IF @TYP_ID = 4
BEGIN
INSERT INTO @Output (MDGUID,TERM_VALUE,ADDED_WHEN,ADDED_WHO)
SELECT MD.GUID, TERM.TERM_VALUE,MD.ADDED_WHEN,MD.ADDED_WHO FROM TBIDB_TERM_VALUE_DECIMAL TERM WITH (NOLOCK), TBIDB_OBJECT_METADATA MD WITH (NOLOCK) WHERE MD.DEC_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID-- ORDER BY MD.GUID
END
ELSE IF @TYP_ID = 5
BEGIN
INSERT INTO @Output (MDGUID,TERM_VALUE,ADDED_WHEN,ADDED_WHO)
SELECT MD.GUID, TERM.TERM_VALUE,MD.ADDED_WHEN,MD.ADDED_WHO FROM TBIDB_TERM_VALUE_DATE TERM WITH (NOLOCK), TBIDB_OBJECT_METADATA MD WITH (NOLOCK) WHERE MD.DATE_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID-- ORDER BY MD.GUID
END
RETURN
END
GO

View File

@@ -0,0 +1,282 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.9' where NAME = 'Process-Manager';
GO
USE [DD_ECM]
GO
/****** Object: View [dbo].[VWPM_CONTROL_INDEX] Script Date: 20.02.2026 10:00:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Changed 20.02.2026 Nolock
ALTER VIEW [dbo].[VWPM_CONTROL_INDEX] AS
SELECT TOP 100 PERCENT
T1.GUID,
T.GUID PROFIL_ID,
T.NAME PROFIL_NAME,
T.LOG_INDEX,
T1.NAME CTRL_NAME,
T1.CTRL_TYPE,
T1.CTRL_TEXT,
T1.X_LOC,
T1.Y_LOC,
T1.FONT_COLOR,
T1.FONT_FAMILY,
T1.FONT_SIZE,
T1.FONT_STYLE,
T1.WIDTH,
T1.HEIGHT,
COALESCE(T1.INDEX_NAME,'') INDEX_NAME,
0 AS IDB_TYP,
T1.VALIDATION,
T1.CHOICE_LIST,
T1.TYP,
T1.CONNECTION_ID,
CASE WHEN T1.[SQL_UEBERPRUEFUNG] IS NULL THEN '' ELSE T1.[SQL_UEBERPRUEFUNG] END AS [SQL_UEBERPRUEFUNG],
T1.[READ_ONLY],
T1.LOAD_IDX_VALUE,
T1.DEFAULT_VALUE,
T1.REGEX_MATCH,
T1.REGEX_MESSAGE_DE,
T1.REGEX_MESSAGE_EN,
T1.OVERWRITE_DATA,
T1.SET_CONTROL_DATA,
T1.SAVE_CHANGE_ON_ENABLED,
T1.FORMAT_STRING CTRL_FORMAT_STRING,
T1.BACKCOLOR_IF CTRL_BACKCOLOR_IF,
T1.VKT_ADD_ITEM
FROM
TBPM_PROFILE T WITH (NOLOCK),
TBPM_PROFILE_CONTROLS T1 WITH (NOLOCK)
WHERE
T.GUID = T1.PROFIL_ID
AND T1.CONTROL_ACTIVE = 1
ORDER BY
T.GUID,
T1.X_LOC,
T1.Y_LOC
GO
USE [DD_ECM]
GO
-- Changed 20.02.2026 MS Nolock
-- Changed: 30.11.2022 MS SHOW_DOC
ALTER VIEW [dbo].[VWPM_PROFILE_ACTIVE] AS
SELECT
T1.[GUID]
,T1.[NAME]
,T1.[TITLE]
,T1.[WD_OBJECTTYPE]
,T1.[PRIORITY]
,T1.[DESCRIPTION]
,T1.[TYPE]
,T1.[LOG_INDEX]
,T1.[IN_WORK]
,T1.[ACTIVE]
,T1.[WD_SEARCH]
,T1.[PM_VEKTOR_INDEX]
,T1.[NO_OF_DOCUMENTS]
,T1.[FINAL_PROFILE]
,T1.[FINAL_TEXT]
,T1.[MOVE2FOLDER]
,T1.[SORT_BY_LATEST]
,T1.[WORK_HISTORY_ENTRY]
,T1.[ANNOTATE_ALL_WORK_HISTORY_ENTRIES]
,T1.[ANNOTATE_WORK_HISTORY_ENTRY]
,T1.[SQL_VIEW]
,T1.[ADDED_WHO]
,T1.[ADDED_WHEN]
,T1.[CHANGED_WHO]
,T1.[CHANGED_WHEN]
,T1.[DISPLAY_MODE]
,T1.SHOW_DOCUMENT
,(SELECT COUNT(GUID) FROM TBPM_PROFILE_FILES WITH (READPAST) WHERE PROFIL_ID = T1.GUID) AS FILE_COUNT,
[dbo].[FNPM_PROFILE_GROUP_COLOR] (T1.GUID) AS 'GROUP_COLOR',
dbo.FNPM_PROFILE_GROUP_FONT_COLOR (T1.GUID) AS 'GROUP_FONT_COLOR',
[dbo].[FNPM_PROFILE_GROUP_TEXT] (T1.GUID) AS 'GROUP_TEXT'
FROM
TBPM_PROFILE T1 WITH (NOLOCK)
WHERE
T1.ACTIVE = 1
GO
--DROP TABLE TBPM_PROFILE_QUEUE;
CREATE TABLE dbo.TBPM_PROFILE_QUEUE
(
QUEUE_ID BIGINT IDENTITY(1,1) NOT NULL,
FILE_GUID BIGINT NOT NULL,
DOC_ID BIGINT NOT NULL,
PROFIL_ID INT NOT NULL,
STATUS TINYINT NOT NULL DEFAULT 0, -- 0=READY, 1=WORKING, 2=DONE, 3=ERROR
TRY_COUNT SMALLINT NOT NULL DEFAULT 0,
CREATED_WHEN DATETIME2(3) NOT NULL DEFAULT SYSDATETIME(),
STARTED_WHEN DATETIME2(3) NULL,
FINISHED_WHEN DATETIME2(3) NULL,
ERROR_MSG NVARCHAR(2000) NULL,
CONSTRAINT PK_TBPM_PROFILE_QUEUE
PRIMARY KEY CLUSTERED (QUEUE_ID)
);
GO
CREATE NONCLUSTERED INDEX IX_QUEUE_READY
ON dbo.TBPM_PROFILE_QUEUE (PROFIL_ID, QUEUE_ID)
INCLUDE (FILE_GUID, DOC_ID)
WHERE STATUS = 0
WITH (FILLFACTOR = 90);
GO
CREATE UNIQUE INDEX UX_QUEUE_ACTIVE
ON dbo.TBPM_PROFILE_QUEUE (FILE_GUID, PROFIL_ID)
WHERE STATUS IN (0,1);
GO
CREATE NONCLUSTERED INDEX IX_QUEUE_WORKING_TIMEOUT
ON dbo.TBPM_PROFILE_QUEUE (STATUS, STARTED_WHEN)
WHERE STATUS = 1;
GO
CREATE OR ALTER PROCEDURE dbo.PRTF_CUST_WORKFLOW_WORKER
@ProfilFilter NVARCHAR(200) = NULL, @BatchSize INT = 20
AS
BEGIN
IF @BatchSize IS NULL OR @BatchSize < 1
SET @BatchSize = 1;
IF @BatchSize > 100
SET @BatchSize = 100; -- harte Obergrenze
SET NOCOUNT ON;
SET XACT_ABORT ON;
CREATE TABLE #Batch
(
QUEUE_ID BIGINT,
FILE_GUID BIGINT,
DOC_ID BIGINT,
PROFIL_ID INT
);
WHILE 1 = 1
BEGIN
DELETE FROM #Batch;
BEGIN TRAN;
;WITH cte AS
(
SELECT TOP (@BatchSize) QUEUE_ID
FROM dbo.TBPM_PROFILE_QUEUE WITH (ROWLOCK, READPAST, UPDLOCK)
WHERE STATUS = 0
AND (
@ProfilFilter IS NULL
OR PROFIL_ID IN (
SELECT TRY_CAST(value AS INT)
FROM STRING_SPLIT(@ProfilFilter, ',')
)
)
ORDER BY QUEUE_ID
)
UPDATE q
SET STATUS = 1,
STARTED_WHEN = SYSDATETIME()
OUTPUT INSERTED.QUEUE_ID, INSERTED.FILE_GUID, INSERTED.DOC_ID ,INSERTED.PROFIL_ID
INTO #Batch
FROM dbo.TBPM_PROFILE_QUEUE q
INNER JOIN cte ON q.QUEUE_ID = cte.QUEUE_ID;
IF @@ROWCOUNT = 0
BEGIN
COMMIT;
BREAK;
END
COMMIT;
------------------------------------------------
-- Verarbeitung außerhalb der Transaktion
------------------------------------------------
DECLARE
@QueueId BIGINT,
@FileGuid BIGINT,
@DocID BIGINT,
@ProfilId INT;
DECLARE cur CURSOR LOCAL FAST_FORWARD FOR
SELECT QUEUE_ID, FILE_GUID, DOC_ID, PROFIL_ID FROM #Batch;
OPEN cur;
FETCH NEXT FROM cur INTO @QueueId, @FileGuid, @DocID, @ProfilId;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
DECLARE @MSG NVARCHAR(250) = 'WORKING ON @DocID: ' + CONVERT(NVARCHAR(100),@DocID)
RAISERROR (@MSG, 0, 1) WITH NOWAIT;
------------------------------------------------
-- HIER DEINE BUSINESS LOGIK EINSETZEN
-- z.B. PRCUST_ADD_OBJECT_JOB
------------------------------------------------
IF @ProfilId = 64
BEGIN
PRINT 'PROFIL 64';
END
ELSE
BEGIN
IF @ProfilId IN (6,10,11,12,13)
BEGIN
SET @MSG = 'CREATE_WF_OVERVIEW_RECORD_MB...'
RAISERROR (@MSG, 0, 1) WITH NOWAIT;
EXEC PRCUST_ADD_OBJECT_JOB
@DocId,
'CREATE_WF_OVERVIEW_RECORD_MB',
'PRTF_CUST_WORKFLOW_WORKER_OPT',
@ProfilId,
@FileGuid;
END
IF @ProfilId = 12
BEGIN
EXEC PRCUST_ADD_OBJECT_JOB
@DocId,
'CREATE_WF41_RECORD',
'PRTF_CUST_WORKFLOW_WORKER_OPT';
END
IF @ProfilId <> 12
BEGIN
SET @MSG = 'CREATE_WF_OVERVIEW_RECORD...'
RAISERROR (@MSG, 0, 1) WITH NOWAIT;
EXEC PRCUST_ADD_OBJECT_JOB
@DocId,
'CREATE_WF_OVERVIEW_RECORD',
'PRTF_CUST_WORKFLOW_WORKER_OPT',
@ProfilId,
@FileGuid;
END
END
UPDATE dbo.TBPM_PROFILE_QUEUE
SET STATUS = 2,
FINISHED_WHEN = SYSDATETIME()
WHERE QUEUE_ID = @QueueId;
END TRY
BEGIN CATCH
UPDATE dbo.TBPM_PROFILE_QUEUE
SET STATUS = 3,
TRY_COUNT = TRY_COUNT + 1,
ERROR_MSG = ERROR_MESSAGE()
WHERE QUEUE_ID = @QueueId;
END CATCH
FETCH NEXT FROM cur INTO @QueueId, @FileGuid, @DocID, @ProfilId;
END
CLOSE cur;
DEALLOCATE cur;
END
END;
GO

View File

@@ -28,7 +28,7 @@ End
SELECT type, * SELECT type, *
FROM sys.objects FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%TBCUST_WM_FOLDERS%' WHERE OBJECT_DEFINITION(object_id) LIKE '%TBTF_PROFILE_FILES_WORK%'
--AND type IN ('V') --AND type IN ('V')
ORDER BY name ORDER BY name