MS Integrate smartup in DD_ECM, Erstes ToolCollection Tabellenskript in ZA mit Marvin

This commit is contained in:
Developer01
2025-03-21 11:06:27 +01:00
parent 8b4f1d05d2
commit 3ff72eb165
24 changed files with 5531 additions and 2702 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,3 @@
/*##################################
1. Replace @WINDREAM_DB in code with name of WM-Database
####################################*/
UPDATE TBDD_MODULES SET DB_VERSION = '2.2.2.2' where NAME = 'Process-Manager'
GO
INSERT INTO TBDD_USER_MODULES (USER_ID,MODULE_ID,IS_ADMIN) SELECT GUID,(SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'PM'),1 FROM TBDD_USER where USERNAME IN (SELECT USR_NAME FROM TBIMPORT_USER);
@@ -107,6 +102,14 @@ SQL_PROFILE_MAIN_VIEW NVARCHAR(MAX) NOT NULL DEFAULT '',
SQL_GROUP_COLOR NVARCHAR(MAX) NOT NULL DEFAULT '',
SQL_GROUP_TEXT NVARCHAR(MAX) NOT NULL DEFAULT '',
SQL_BTN_FINISH NVARCHAR(MAX) NOT NULL DEFAULT '',
SQL_BTN_REJECT NVARCHAR(MAX) NOT NULL DEFAULT '',
BTN_REJECT_CAPTION NVARCHAR(100) NOT NULL DEFAULT '',
REJECT_SQL_REASONS NVARCHAR(3000) NOT NULL DEFAULT '',
REJECT_ACTIONS_ATTRIBUTE VARCHAR(100) NOT NULL DEFAULT '',
REJECT_COMMENT_ATTRIBUTE VARCHAR(100) NOT NULL DEFAULT '',
BTN_NOT_RESP_CAPTION NVARCHAR(100) NOT NULL DEFAULT '',
NOT_RESP_SQL VARCHAR(3000) NOT NULL DEFAULT '',
NOT_RESP_COMMENT_ATTRIBUTE VARCHAR(150) NOT NULL DEFAULT '',
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'Digital Data',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
@@ -291,6 +294,7 @@ CREATE TABLE TBPM_PROFILE_CONTROLS
VKT_PREVENT_MULTIPLE_VALUES BIT DEFAULT 0 NOT NULL,
IMAGE_CONTROL VARBINARY(MAX),
BACKGROUND_COLOR VARCHAR(50),
BACKCOLOR_IF VARCHAR(500) NOT NULL DEFAULT '',
SQL_UEBERPRUEFUNG NVARCHAR(MAX) DEFAULT '',
SQL2 NVARCHAR(MAX),
SQL_ENABLE NVARCHAR(MAX),
@@ -306,12 +310,12 @@ CREATE TABLE TBPM_PROFILE_CONTROLS
LOAD_IDX_VALUE BIT NOT NULL DEFAULT 1,
CONTROL_ACTIVE BIT NOT NULL DEFAULT 1,
FORMAT_STRING VARCHAR(200) NOT NULL DEFAULT '',
BACKCOLOR_IF VARCHAR(500) NOT NULL DEFAULT '',
FONT_STYLE smallint,
FONT_SIZE smallint,
FONT_FAMILY varchar(50),
FONT_COLOR bigint,
[TABLE_ORDER_COLUMN] VARCHAR(250) NOT NULL DEFAULT (''),
TABLE_ORDER_COLUMN VARCHAR(250) NOT NULL DEFAULT (''),
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'Digital Data',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
@@ -394,7 +398,7 @@ FORMATSTRING VARCHAR(10) NOT NULL DEFAULT '',
DEFAULT_VALUE VARCHAR (MAX) NOT NULL DEFAULT '',
ADVANCED_LOOKUP BIT NOT NULL DEFAULT 0,
[SUMMARY_FUNCTION] VARCHAR(20) NOT NULL DEFAULT ('NONE'),
[TYPE_COLUMN] VARCHAR(20) NOT NULL DEFAULT ('TEXT'),
TYPE_COLUMN VARCHAR(20) NOT NULL DEFAULT ('TEXT'),
LU_CAPTION VARCHAR(150) NOT NULL DEFAULT 'NONE',
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'Digital Data',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
@@ -943,26 +947,7 @@ BEGIN CATCH
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE PROCEDURE [dbo].[PRPM_REMOVE_NE_FILES]
AS
DECLARE
@DOC_ID INTEGER,
@DocRelativePath VARCHAR(500)
DECLARE c_PRPM_REMOVE_NE_FILES CURSOR FOR
select DOC_ID,FILE_PATH from TBPM_PROFILE_FILES
OPEN c_PRPM_REMOVE_NE_FILES
FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT [dwDocID] FROM @WINDREAM_DB.[dbo].[BaseAttributes] where dwDocID = @DOC_ID)
IF NOT EXISTS(SELECT IDB_OBJ_ID FROM IDB.dbo.TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @DOC_ID and UPPER(RELATIVE_PATH) = UPPER(@DocRelativePath))
DELETE FROM TBPM_PROFILE_FILES WHERE DOC_ID = @DOC_ID
FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath
END
CLOSE c_PRPM_REMOVE_NE_FILES
DEALLOCATE c_PRPM_REMOVE_NE_FILES
GO
-- =============================================
-- Author: Digital Data, MS
-- Create date: 05.07.2019
@@ -1077,23 +1062,7 @@ GO
--##############################
--##########FUNCTIONS###########
--##############################
CREATE FUNCTION [dbo].[FNIDB_OBJECT_DYNAMIC_CONFIG] (@pIDB_OBJ_ID as INTEGER, @pUSERID as INTEGER)
RETURNS
@Table TABLE
(CONF_TITLE VARCHAR(900),CONF_VALUE VARCHAR(900))
AS
BEGIN
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Admin');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Start');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Stop');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddMessage');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddUser');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('NEW_CONVERSATION_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from TBDD_USER');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ADD_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from TBDD_USER WHERE GUID NOT IN (SELECT USER_OR_GROUP_ID FROM
IDB_TEST.dbo.TBIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND IS_USER = 1)');
RETURN
END
GO
CREATE FUNCTION [dbo].[FNPM_IDB_LAST_EDITED_DOC](@pPROFIL_ID INTEGER,@pDOC_ID INTEGER)
RETURNS DATETIME
AS
@@ -1602,103 +1571,6 @@ WHERE
T1.ACTIVE = 1
GO
UPDATE TBPM_KONFIGURATION SET SQL_PROFILE_MAIN_VIEW = '
/*## Following Columns need to be part of sql ##
TL_STATE Returns the TrafficLight-State for each doc (1=Red;2=Orange;3=Green)
PROFILE_ID TITLE Profile-Title used for default-grouping
DOC_ID
FULL_FILE_PATH
LAST USE
LAST EDITED */
--DECLARE @USER_ID INTEGER
--SET @USER_ID = 1
SELECT
T.GUID,
DATEDIFF(DAY, [dbo].[FNPM_LAST_EDITED_DOC] (T.PROFIL_ID,T.DOC_ID),GETDATE()) AS [Days in],
Case DATEDIFF(DAY, [dbo].[FNPM_LAST_EDITED_DOC] (T.PROFIL_ID,T.DOC_ID),GETDATE()) WHEN 0 THEN 3 WHEN 1 THEN 2 WHEN 2 THEN 1 ELSE 3 END AS TL_STATE,
T.PROFIL_ID AS PROFILE_ID,
T.DOC_ID,
T.FILE_PATH AS FULL_FILE_PATH,
TWM_BA.szLongName as Dateiname,
TWM_BA.szText36 AS Dokumentart,
--TWM_BA.szText35 AS [weitergeleitet an],
--TWM_BA.lfFloat14 AS [Rechnungs Summe],
--ISNULLTWM_BA.szText14 AS Buchungskreis,
--TWM_BA.szText08 AS Kreditor,
T.DMS_ERSTELLT_DATE AS [Erhalten wann],
[dbo].[FNPM_LAST_WORKUSER_DOC] (T.PROFIL_ID,T.DOC_ID) AS ''Last User'',
[dbo].[FNPM_LAST_EDITED_DOC] (T.PROFIL_ID,T.DOC_ID) AS ''Last edited'',
[dbo].[FNPM_PROFILE_GROUP_COLOR] (T.PROFIL_ID) AS ''GROUP_COLOR'',
[dbo].[FNPM_PROFILE_GROUP_TEXT] (T.PROFIL_ID) AS ''GROUP_TEXT''
FROM TBPM_PROFILE_FILES T,
TBPM_PROFILE T1,
TBDD_USER T2,
@WINDREAM_DB.dbo.BaseAttributes TWM_BA WHERE T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1 AND T.PROFIL_ID = T1.GUID AND T1.GUID in (SELECT PROFIL_ID FROM [dbo].[FNPM_GET_ACTIVE_PROFILES_USER] ({#USER#USER_ID})) AND T1.ACTIVE = 1 And T2.GUID = {#USER#USER_ID}
AND T.DOC_ID = TWM_BA.dwDocID ORDER By T1.PRIORITY'
WHERE GUID = 1
GO
CREATE FUNCTION [dbo].[FNDD_GET_WINDREAM_FILE_PATH] (@pDOCID BIGINT)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE
@RESULT VARCHAR(MAX),
@DOCID BIGINT,
@a TINYINT = 1,
@i TINYINT = 0,
@PARENT_ID BIGINT,
@DATEINAME NVARCHAR(255),
@PARENTNAME NVARCHAR(255),
@FSFLAGS INT,
@WM_PREFIX VARCHAR(50)
SELECT @WM_PREFIX = WM_REL_PATH from tbpm_KONFIGURATION WHERE GUID = 1
SELECT @FSFLAGS = dwFSFlags FROM @WINDREAM_DB.dbo.BaseAttributes WHERE dwDocID = @pDOCID
IF @FSFLAGS = 16
BEGIN
SET @RESULT = 'THIS IS NOT A FILE!'
END
ELSE
BEGIN
SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM @WINDREAM_DB.dbo.BaseAttributes WHERE dwDocID = @pDOCID
WHILE @a > 0
BEGIN
IF @i = 0
BEGIN
IF @PARENT_ID = 1
BEGIN
SET @RESULT = '\'
BREAK
END
ELSE
BEGIN
SET @DOCID = @PARENT_ID
SET @RESULT = '\'
END
END
ELSE
BEGIN
IF @PARENT_ID = 1
BEGIN
SET @RESULT = '\' + @PARENTNAME + @RESULT
BREAK
END
ELSE
BEGIN
SET @DOCID = @PARENT_ID
SET @RESULT = '\' + @PARENTNAME + @RESULT
END
END
SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM @WINDREAM_DB.dbo.BaseAttributes WHERE dwDocID = @DOCID
SET @i = @i + 1
END
END
SET @RESULT = @WM_PREFIX + @RESULT + @DATEINAME
RETURN @RESULT
END
GO
CREATE view [dbo].[VWPM_CHART_TOP5] as
SELECT 'Kreditor1' as KRED_NAME
@@ -1907,11 +1779,19 @@ END
GO
CREATE PROCEDURE [dbo].[PRPM_DELETE_PROFILE](@pPID INT)
AS
delete from TBPM_CONTROL_TABLE where CONTROL_ID in (SELECT GUID FROM TBPM_PROFILE_CONTROLS where PROFIL_ID = 5);
delete from TBPM_CONTROL_TABLE where CONTROL_ID in (SELECT GUID FROM TBPM_PROFILE_CONTROLS where PROFIL_ID = @pPID);
IF OBJECT_ID (N'TBPM_ADHOC_WF_SERIEL_PARTIES', N'U') IS NOT NULL
Delete from TBPM_ADHOC_WF_SERIEL_PARTIES WHERE AH_WF_ID In (SELECT GUID
FROM [DD_ECM].[dbo].[TBPM_ADHOC_WF_OBJECT] where PROFIL_ID = @pPID);
IF OBJECT_ID (N'TBPM_ADHOC_WF_OBJECT', N'U') IS NOT NULL
DELETE FROM [DD_ECM].[dbo].[TBPM_ADHOC_WF_OBJECT] where PROFIL_ID = @pPID;
IF OBJECT_ID (N'TBPM_ERROR_LOG', N'U') IS NOT NULL
DELETE FROM TBPM_ERROR_LOG WHERE PROFIL_ID = @pPID;
DELETE FROM TBPM_PROFILE_FILES WHERE PROFIL_ID = @pPID;
DELETE FROM TBPM_PROFILE_FINAL_INDEXING WHERE PROFIL_ID = @pPID;
DELETE FROM TBPM_PROFILE_SEARCH WHERE PROFILE_ID = @pPID;
IF OBJECT_ID (N'TBPM_ADHOC_WF_OBJECT', N'U') IS NOT NULL
DELETE FROm TBPM_ADHOC_WF_OBJECT WHERE PROFIL_ID = @pPID;
DELETE FROM TBPM_PROFILE_FINAL_INDEXING WHERE PROFIL_ID = @pPID;
delete from TBPM_CONTROL_TABLE where CONTROL_ID in (select GUID FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = @pPID);
DELETE FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = @pPID;
DELETE FROM TBPM_PROFILE_USER WHERE PROFIL_ID = @pPID;
@@ -2524,4 +2404,299 @@ QuitWithRollback:
EndSave:
GO
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.MSG1','de-DE','Information','Sie wollen diesen Beleg ablehnen?','');
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.MSG1','en-US','Information','You want to reject this receipt?','');
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.MSG2','de-DE','Information','Wenn ja, dann geben Sie bitte einen Grund für die Ablehnung ein!','')
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.MSG2','en-US','Information','If yes, please enter a reason for your refusal!','')
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.Caption','de-DE','Information','Ablehnung - Bestätigung','');
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.Caption','en-US','Information','Rejection - Confirmation','');
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.MissingInput','de-DE','Message','Bitte wählen Sie einen Grund und geben eine Begründung ein!','');
INSERT INTO [dbo].[TBDD_GUI_LANGUAGE_PHRASE]
(OBJ_NAME,[MODULE],[TITLE],[LANGUAGE],[CAPT_TYPE],[STRING1],STRING2)
VALUES('frmRejectionCommit','PM','frmRejectionCommit.MissingInput','en-US','Message','Please select a reason and enter a justification!','');
ALTER TABLE TBPM_PROFILE ADD CURRENCY_ATTRIBUTE VARCHAR(100) NOT NULL DEFAULT ''
GO
CREATE TABLE [dbo].[TBTF_VALIDATOR_MESSAGE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[DocID] [bigint] NOT NULL,
[GUI_LANG_TITLE] [nvarchar](100) NOT NULL,
[ImageIndex] [tinyint] NOT NULL,
[Active] [bit] NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[ADDED_WHO] [varchar](100) NOT NULL,
[CHANGED_WHEN] [datetime] NULL,
[CHANGED_WHO] [varchar](100) NULL,
CONSTRAINT [PK_TBTFVALIDATOR_MESSAGE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBTF_VALIDATOR_MESSAGE] ADD CONSTRAINT [DF_TBTFVALIDATOR_MESSAGE_ACTIVE] DEFAULT ((1)) FOR [Active]
GO
ALTER TABLE [dbo].[TBTF_VALIDATOR_MESSAGE] ADD CONSTRAINT [DF_TBTFVALIDATOR_MESSAGE_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
USE [DD_ECM]
GO
CREATE TRIGGER [dbo].[TBTF_VALIDATOR_MESSAGE_AFT_UPD] ON [dbo].[TBTF_VALIDATOR_MESSAGE]
FOR UPDATE
AS
UPDATE TBTF_VALIDATOR_MESSAGE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBTF_VALIDATOR_MESSAGE.GUID = INSERTED.GUID
GO
ALTER TABLE [dbo].[TBTF_VALIDATOR_MESSAGE] ENABLE TRIGGER [TBTF_VALIDATOR_MESSAGE_AFT_UPD]
GO
INSERT INTO [dbo].[TBDD_SQL_COMMANDS]
(TITLE,SQL_COMMAND)
VALUES('TF_WORKFLOW_MESSAGE','SELECT
CONVERT(VARCHAR(30), A.ADDED_WHEN,20) + '' - '' + B.STRING1 as MSG,A.ImageIndex
FROM
TBTF_VALIDATOR_MESSAGE A INNER JOIN
(SELECt * FROM TBDD_GUI_LANGUAGE_PHRASE
WHERE MODULE = ''PM'' AND OBJ_NAME = ''frmValidator'' AND CAPT_TYPE = ''WF_MESSAGE'') B ON A.GUI_LANG_TITLE = B.TITLE
WHERE
A.Active = 1 and (A.DocID = @DocID or A.DocID = 1) AND B.LANGUAGE = ''@LANGUAGE'' ORDER BY A.ADDED_WHEN DESC');
GO
-- =================================================================
-- Die Procedure fügt einen Datensatz in die Tabelle TBTF_VALIDATOR_MESSAGE ein.
--
-- =================================================================
-- Copyright (c) 2024 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 29.08.2024 / MP
-- =================================================================
-- History:
-- 29.08.2024 / MP - Prozedur erstellt
CREATE PROCEDURE [dbo].[PRTF_NEW_VALIDATOR_MESSAGE]
@DOC_ID BIGINT -- DocID oder IDB_OBJ_ID / 1 für alle Belege
, @MESSAGE_TITLE VARCHAR(100) -- Title aus GUI_LANGUAGE_PHRASE
, @ADDED_WHO VARCHAR(100) -- Wo/Von wem wurde die Prozedur aufgerufen
, @IMAGE_INDEX INTEGER = 0 -- ICON: 0 = Info / 1 = Fehlende Eingabe / 2 = Fehler
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS (SELECT 1 FROM TBDD_GUI_LANGUAGE_PHRASE
WHERE TITLE = @MESSAGE_TITLE AND MODULE = 'PM' AND CAPT_TYPE = 'WF_MESSAGE' AND OBJ_NAME = 'frmValidator')
BEGIN
-- Wenn es die Meldung nicht gibt, oder nicht korrekt konfiguriert ist, brechen wir hier ab
RETURN;
END
IF @IMAGE_INDEX > 2
BEGIN
SET @IMAGE_INDEX = 0;
END
INSERT INTO TBTF_VALIDATOR_MESSAGE
(
DocID
, GUI_LANG_TITLE
, ImageIndex
, Active
, ADDED_WHO
) VALUES (
@DOC_ID
, @MESSAGE_TITLE
, @IMAGE_INDEX
, 1 -- wir fügen nur aktive Sätze ein
, @ADDED_WHO
);
END
GO
-- =================================================================
-- Die Procedure setzt einen Datensatz der Tabelle TBTF_VALIDATOR_MESSAGE
-- auf ACTIVE = 0
--
-- =================================================================
-- Copyright (c) 2024 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 30.08.2024 / MP
-- =================================================================
-- History:
-- 30.08.2024 / MP - Prozedur erstellt
CREATE PROCEDURE [dbo].[PRTF_DEACTIVATE_VALIDATOR_MESSAGE]
@DOC_ID BIGINT -- DocID oder IDB_OBJ_ID / 1 für alle Belege
, @MESSAGE_TITLE VARCHAR(100) -- Title aus GUI_LANGUAGE_PHRASE
, @CHANGED_WHO VARCHAR(100) -- Wo/Von wem wurde die Prozedur aufgerufen
, @ACTIVE_FLAG INTEGER = 0 -- optionales ACTIVE-Flag - Default = 0
AS
BEGIN
SET NOCOUNT ON;
UPDATE TBTF_VALIDATOR_MESSAGE SET
Active = @ACTIVE_FLAG,
CHANGED_WHO = @CHANGED_WHO
WHERE DocID = @DOC_ID
AND GUI_LANG_TITLE = @MESSAGE_TITLE;
END
GO
DECLARE @SQL NVARCHAR(max)
IF EXISTS (SELECT name FROM master.sys.databases WHERE name = N'IDB')
BEGIN
SET @SQL = '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,
COALESCE((SELECT TYP_ID FROM IDB.dbo.TBIDB_ATTRIBUTE WHERE TITLE = COALESCE(T1.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,
TBPM_PROFILE_CONTROLS T1
WHERE
T.GUID = T1.PROFIL_ID
AND T1.CONTROL_ACTIVE = 1
ORDER BY
T.GUID,
T1.X_LOC,
T1.Y_LOC'
END
ELSE
BEGIN
SET @SQL = '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,
'' 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,
TBPM_PROFILE_CONTROLS T1
WHERE
T.GUID = T1.PROFIL_ID
AND T1.CONTROL_ACTIVE = 1
ORDER BY
T.GUID,
T1.X_LOC,
T1.Y_LOC'
END
EXEC (@SQL);
GO
CREATE TABLE TBTF_PROFILE_FILES_WORK
(
GUID BIGINT NOT NULL IDENTITY(1,1),
ProfileID INTEGER NOT NULL,
DocID BIGINT NOT NULL,
InWork BIT NOT NULL DEFAULT 0,
Worked BIT NOT NULL DEFAULT 0,
Action_When DATETIME,
Action_UserID INTEGER,
ChangedWho_ID INTEGER,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBTF_PROFILE_FILES_WORK PRIMARY KEY (GUID),
CONSTRAINT UQ_TBTF_PROFILE_FILES_WORK UNIQUE(ProfileID,DocID)
)
GO
CREATE PROCEDURE PRTF_PROFILE_FILES_WORK @pDocID BIGINT,@pProfilID INTEGER,@pUserID INTEGER, @pMode VARCHAR(100)
AS
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBTF_PROFILE_FILES_WORK WHERE ProfileID = @pProfilID AND DocID = @pDocID)
BEGIN
INSERT INTO TBTF_PROFILE_FILES_WORK (ProfileID,DocID,Action_UserID,Action_When) VALUES (@pProfilID,@pDocID,@pUserID,GETDATE());
END
IF @pMode = 'FreeFile'
BEGIN
PRINT 'FreeFile ...'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0, Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 1;
END
ELSE IF @pMode = 'InWork'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 1, Action_When = GETDATE(), Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 0;
ELSE IF @pMode = 'Worked'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0,Worked = 1, Action_When = GETDATE(), Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0;
END
GO