Compare commits

..

18 Commits

Author SHA1 Message Date
Developer01
811be40da8 ControlIndexView 2026-05-13 14:41:08 +02:00
Developer01
d7ee5d3e83 MS task und orgFLOW. Vor allem COckpit in taskFLOW 2026-05-13 14:30:46 +02:00
Developer01
7d85665368 Push vom 27.03 IDB und orgFLOW 2026-03-27 14:24:15 +01:00
Developer01
f59f8a22d3 orgFLOW Rechte NodesAnlegen
taskFlow Formula_SQL
2026-03-24 17:23:02 +01:00
Developer01
01e0c726e5 DD_ECM und taskOrgFLOW 2026-03-10 12:43:37 +01:00
Developer01
1febe4956b Push 2.3 nach nicht Übernahme Anpassungen 2026-02-12 16:58:34 +01:00
Developer01
8c673e3f2e Nochmal push für 2.8 2026-02-12 14:14:48 +01:00
Developer01
32abe759cb Zeilenberechnungen taskFLOW, spalten TBPM_RPOFILE_FILES 2026-02-12 10:22:54 +01:00
Developer01
3917c9c675 TransportScripts und taskFLOW 2026-02-02 11:01:08 +01:00
Developer01
670f58e1fa commit 11.12 2025-12-11 14:39:42 +01:00
Developer01
b6a6495f52 Orgflow und DD_ECM 2025-10-30 18:37:25 +01:00
Developer01
bf790156bc signFLOW und Sichtbeleg 2025-09-05 13:40:09 +02:00
Developer01
6827da195c MWF CreateDBObjects 2025-07-18 15:48:45 +02:00
Developer01
b8b9891602 MWF 2025-07-18 15:46:23 +02:00
Developer01
1069216108 xRechnugn Sichtbeleg, taskFlow GuiLanguagePhrase,orgFLOW namedLicensing
signFLOW parentChildReceiver
2025-07-14 08:52:57 +02:00
Developer01
a7d27cec30 DD_ECM ColumnGrid Tabelle. orgFLOW personalakte 2025-06-26 16:18:07 +02:00
Developer01
d4ffba093f Merge branch 'master' of http://dd-vmp07-com04:3000/AppStd/SqlScripts
Neue Tabelle Mirko
2025-06-12 09:10:02 +02:00
Developer01
ba27b6989c OrgFLOW Update, dadurch auch DD_ECM 2025-06-12 09:09:36 +02:00
62 changed files with 4488 additions and 1555 deletions

View File

@@ -1454,26 +1454,40 @@ SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBEDMI_ITEM_VALUE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[REFERENCE_GUID] NVARCHAR(max) NOT NULL,
[ITEM_DESCRIPTION] NVARCHAR(max) NOT NULL,
[ITEM_VALUE] NVARCHAR(max) NULL,
[REFERENCE_GUID] NVARCHAR(250) NOT NULL,
[ITEM_DESCRIPTION] NVARCHAR(250) NOT NULL,
[ITEM_VALUE] NVARCHAR(4000) NULL,
[CREATEDWHEN] DATETIME NOT NULL,
[CREATEDWHO] NVARCHAR(max) NULL,
[CREATEDWHO] NVARCHAR(100) NULL,
[CHANGEDWHEN] DATETIME NULL,
[GROUP_COUNTER] [int] NULL,
[SPEC_NAME] [varchar](250) NULL,
[IS_REQUIRED] BIT NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
[SPEC_NAME] NVARCHAR(100) NULL,
[IS_REQUIRED] BIT NOT NULL,
[COMMENT] [nvarchar](100) NULL,
[CHANGEDWHO] [nvarchar](100) NULL,
CONSTRAINT [PK_TBEDMI_ITEM_VALUE_GUID] 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].[TBEDMI_ITEM_VALUE] ADD DEFAULT (getdate()) FOR [CREATEDWHEN]
ALTER TABLE [dbo].[TBEDMI_ITEM_VALUE] ADD CONSTRAINT [DEF_TBEDMI_ITEM_VALUE_CREATEDWHEN] DEFAULT (getdate()) FOR [CREATEDWHEN]
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_VALUE] ADD DEFAULT ((0)) FOR [IS_REQUIRED]
ALTER TABLE [dbo].[TBEDMI_ITEM_VALUE] ADD CONSTRAINT [DEF_TBEDMI_ITEM_VALUE_ISREQUIRED] DEFAULT ((0)) FOR [IS_REQUIRED]
GO
CREATE NONCLUSTERED INDEX IDX_TBEDMI_ITEM_VALUE_SPECNAME_REFGUID
ON TBEDMI_ITEM_VALUE (SPEC_NAME, REFERENCE_GUID) include (ITEM_VALUE, GROUP_COUNTER, ITEM_DESCRIPTION, IS_REQUIRED, CREATEDWHEN, CHANGEDWHEN, CHANGEDWHO) ;
CREATE NONCLUSTERED INDEX IDX_TBEDMI_ITEM_VALUE_REFGUID
ON TBEDMI_ITEM_VALUE (REFERENCE_GUID) include (ITEM_VALUE, SPEC_NAME, GROUP_COUNTER, ITEM_DESCRIPTION, IS_REQUIRED, CREATEDWHEN, CHANGEDWHEN, CHANGEDWHO) ;
GO
--PROCEDURES
-- 20.09.2024 MS @MODULE_SHORT eingesetzt

View File

@@ -97,36 +97,33 @@ DECLARE cursPRDD_USER_REFRESH_WM_ID CURSOR FOR
CLOSE cursPRDD_USER_REFRESH_WM_ID
DEALLOCATE cursPRDD_USER_REFRESH_WM_ID
GO
CREATE VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_GROUP] AS
SELECT AR.dwObjectID,
UG.dwUserOrGROUPID,
AR.dwAccessRight,
AR.dwObjectDBID
FROM [windreamDB].dbo.AccessRight AR LEFT JOIN [windreamDB].dbo.UserGroup UG ON AR.dwUserOrGroupID = UG.dwGroupID
INNER JOIN TBDD_USER TU ON UG.dwUserOrGroupID = TU.USERID_FK_INT_ECM
WHERE UG.dwUserOrGroupID IS NOT NULL
CREATE OR ALTER VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_GROUP]
AS
SELECT [AR].[dwObjectID],
[UG].[dwUserOrGROUPID],
[AR].[dwAccessRight],
[AR].[dwObjectDBID]
FROM [TBDD_USER] TU (NOLOCK)
INNER JOIN [windreamDB].[dbo].[UserGroup] UG (NOLOCK) ON TU.[USERID_FK_INT_ECM] = UG.[dwUserOrGroupID]
INNER JOIN [windreamDB].[dbo].[AccessRight] AR (NOLOCK) ON UG.[dwGroupID] = AR.[dwUserOrGroupID];
GO
CREATE VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_USER] AS
SELECT AR.dwObjectID,
AR.dwUserOrGROUPID,
AR.dwAccessRight,
AR.dwObjectDBID
FROM [windreamDB].dbo.AccessRight AR LEFT JOIN [windreamDB].dbo.UserGroup UG ON AR.dwUserOrGroupID = UG.dwGroupID
INNER JOIN TBDD_USER TU ON AR.dwUserOrGroupID = TU.USERID_FK_INT_ECM
WHERE UG.dwUserOrGroupID IS NULL
USE [DD_ECM]
GO
CREATE VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS] AS
SELECT ARU.dwObjectID,
ARU.dwUserOrGROUPID,
ARU.dwAccessRight,
ARU.dwObjectDBID
FROM VWDD_WM_ACCESS_RIGHTS_USER ARU UNION
SELECT ARG.dwObjectID,
ARG.dwUserOrGROUPID,
ARG.dwAccessRight,
ARG.dwObjectDBID
FROM VWDD_WM_ACCESS_RIGHTS_GROUP ARG
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE OR ALTER VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_USER]
AS
SELECT [AR].[dwObjectID],
[AR].[dwUserOrGROUPID],
[AR].[dwAccessRight],
[AR].[dwObjectDBID]
FROM [TBDD_USER] TU (NOLOCK)
LEFT JOIN [windreamDB].[dbo].[AccessRight] AR (NOLOCK) ON TU.[USERID_FK_INT_ECM] = AR.[dwUserOrGroupID];
GO

View File

@@ -1,5 +1,519 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.5';
GO
CREATE TABLE [dbo].[TBEDMI_ITEM_VALUE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[REFERENCE_GUID] NVARCHAR(250) NOT NULL,
[ITEM_DESCRIPTION] NVARCHAR(250) NOT NULL,
[ITEM_VALUE] NVARCHAR(4000) NULL,
[CREATEDWHEN] DATETIME NOT NULL,
[CREATEDWHO] NVARCHAR(100) NULL,
[CHANGEDWHEN] DATETIME NULL,
[GROUP_COUNTER] [int] NULL,
[SPEC_NAME] NVARCHAR(100) NULL,
[IS_REQUIRED] BIT NOT NULL,
[COMMENT] [nvarchar](100) NULL,
[CHANGEDWHO] [nvarchar](100) NULL,
CONSTRAINT [PK_TBEDMI_ITEM_VALUE_GUID] 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].[TBEDMI_ITEM_VALUE] ADD CONSTRAINT [DEF_TBEDMI_ITEM_VALUE_CREATEDWHEN] DEFAULT (getdate()) FOR [CREATEDWHEN]
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_VALUE] ADD CONSTRAINT [DEF_TBEDMI_ITEM_VALUE_ISREQUIRED] DEFAULT ((0)) FOR [IS_REQUIRED]
GO
CREATE NONCLUSTERED INDEX IDX_TBEDMI_ITEM_VALUE_SPECNAME_REFGUID
ON TBEDMI_ITEM_VALUE (SPEC_NAME, REFERENCE_GUID) include (ITEM_VALUE, GROUP_COUNTER, ITEM_DESCRIPTION, IS_REQUIRED, CREATEDWHEN, CHANGEDWHEN, CHANGEDWHO) ;
CREATE NONCLUSTERED INDEX IDX_TBEDMI_ITEM_VALUE_REFGUID
ON TBEDMI_ITEM_VALUE (REFERENCE_GUID) include (ITEM_VALUE, SPEC_NAME, GROUP_COUNTER, ITEM_DESCRIPTION, IS_REQUIRED, CREATEDWHEN, CHANGEDWHEN, CHANGEDWHO) ;
GO
CREATE VIEW VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS AS
SELECT
A.SPEC_NAME,
A.ITEM_VALUE,
B.Area,
B.Row_Caption,
B.xPosition,
B.Y_eq_lastrow,
B.SequenceItem,
B.Display,
A.REFERENCE_GUID
FROM
(SELECT * FROM TBEDMI_ITEM_VALUE ) A INNER JOIN
(SELECT * FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Active = 1) B ON A.SPEC_NAME = B.SPECNAME
GO
/****** Object: StoredProcedure [dbo].[PRDD_SEND_REJECTION_MAIL] Script Date: 15.05.2025 09:29:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- PRDD_SEND_REJECTION_MAIL
-- =================================================================
-- Die Procedure verschickt die Ablehnungsmails für
-- - ZUGFeRD-Service
-- - E-Mail Profiler
--
-- Dabei werden die codierten Ablehnungsgründe mit dem
-- E-Mail-Template verknüpft.
-- =================================================================
-- 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: 13.03.2024 / MP
-- =================================================================
-- History:
-- 13.03.2024 / MP - Prozedur erstellt
-- 10.04.2024 / MP - RECEIPT_EMAIL_PHRASE ergänzt
-- 17.04.2024 / MP - ZUGFeRD Integration fertiggestellt
-- 18.04.2024 / MP - DEPLOYMENT_ENVIRONMENT (PROD/TEST) auswerten, um 2. Mail zu verhindern.
-- 22.04.2024 / MP - Verwende FNCUST_SPLIT_STRING_WITH_GUID, um Ablehnungsgründe zu splitten
-- 24.04.2024 / MP - REMINDER_TYPE_ID muss ungleich 1 sein
CREATE PROCEDURE [dbo].[PRDD_SEND_REJECTION_MAIL]
@REF_MSGID VARCHAR(250) -- E-Mail MessageID
, @IDB_OBJ_ID BIGINT = 0 -- IDB_OBJ_ID
, @SENDING_PROFILE INTEGER = 0 -- Absenderprofil
, @REJ_SOURCE VARCHAR(50) -- Welcher Prozess lehnt ab?
, @MAIL_TEMPLATE INTEGER -- Welches Template soll verwendet werden?
, @REJ_REASONS VARCHAR(250) -- Liste mit IDs von Ablehnungsgründen, getrennt durch '|'
, @REPLACE_PARAM1 VARCHAR(MAX) -- Zusätzlicher Text-Parameter, ersetzt Platzhalter @REPLACE_PARAM1
, @REPLACE_PARAM2 VARCHAR(MAX) -- Zusätzlicher Text-Parameter, ersetzt Platzhalter @REPLACE_PARAM2
, @WF_ID INTEGER = 0 -- WorkflowID
AS
BEGIN
SET NOCOUNT ON;
DECLARE @EMAIL_ADRESS VARCHAR(250), @EMAIL_SUBJECT VARCHAR(250), @EMAIL_BODY VARCHAR(MAX), @COMMENT VARCHAR(500), @EMAIL_PATH VARCHAR(512),
@EMAIL_BODY1 VARCHAR(MAX), @EMAIL_BODY2 VARCHAR(MAX), @LANGUAGE VARCHAR(5), @CONNECTED_TEMPLATE_ID INTEGER,
@EMAIL_BODY1_CON VARCHAR(MAX), @EMAIL_BODY2_CON VARCHAR(MAX), @LANGUAGE_CON VARCHAR(5),
@REASON_ID VARCHAR(100), @REJ_REASON VARCHAR(900), @ORG_EMAIL_SUBJECT VARCHAR(250), @ORG_EMAIL_DATE VARCHAR(25),
@FILENAME VARCHAR(512), @REL_PATH VARCHAR(250), @PROCEDURE_NAME VARCHAR(30), @ALREADY_SENT_TODAY BIT,
@EMAIL_ADRESS_2 VARCHAR(250), @DEPLOYMENT_ENVIRONMENT VARCHAR(10);
DECLARE @REJ_REASON_TEMP_TABLE TABLE (REJ_ID VARCHAR(100), REJ_REASON VARCHAR(900), LANGUAGE VARCHAR(5));
SET @PROCEDURE_NAME = 'PRDD_SEND_REJECTION_MAIL'
-- ====================================================================================================================================
-- Prüfe Parameter
-- ====================================================================================================================================
IF @REF_MSGID IS NULL OR LEN(@REF_MSGID) <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### Parameter @REF_MSGID is NULL or Empty! ###'
RETURN;
END
IF @REJ_SOURCE IS NULL OR LEN(@REJ_SOURCE) <= 0
BEGIN
SET @REJ_SOURCE = 'Unkown Source (PRDD_SEND_REJECTION_MAIL)'
END
IF @MAIL_TEMPLATE <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### Parameter @MAIL_TEMPLATE is invalid! ###'
RETURN;
END
-- ====================================================================================================================================
-- Lade Daten des E-Mail-Eingangs
-- ====================================================================================================================================
DECLARE @TEMP_DATE DATETIME
SELECT
@EMAIL_ADRESS = EMAIL_FROM,
@ORG_EMAIL_SUBJECT = EMAIL_SUBJECT,
@TEMP_DATE = EMAIL_DATE
FROM [DD_ECM].[dbo].[TBEMLP_HISTORY]
WHERE EMAIL_MSGID = @REF_MSGID;
IF @EMAIL_ADRESS IS NULL OR LEN(@EMAIL_ADRESS) <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### EMAIL_ADRESS IS NULL or Empty! ###'
SET @EMAIL_ADRESS = 'm.schreiber@digitaldata.works'
SET @ORG_EMAIL_SUBJECT = 'Default Subject!'
SET @TEMP_DATE = '2024-01-01'
END
SET @ALREADY_SENT_TODAY = 0
IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999
BEGIN
IF EXISTS(SELECT 1
FROM TBEMLP_EMAIL_OUT
WHERE REFERENCE_ID = @IDB_OBJ_ID AND EMAIL_ADRESS = @EMAIL_ADRESS AND ADDED_WHO = @REJ_SOURCE AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE()))
BEGIN
SET @ALREADY_SENT_TODAY = 1
END
END
ELSE
BEGIN
IF EXISTS(SELECT 1
FROM TBEMLP_EMAIL_OUT
WHERE REFERENCE_STRING = @REF_MSGID AND EMAIL_ADRESS = @EMAIL_ADRESS AND ADDED_WHO = @REJ_SOURCE AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE()))
BEGIN
SET @ALREADY_SENT_TODAY = 1
END
END
IF @ALREADY_SENT_TODAY = 1
BEGIN
PRINT @PROCEDURE_NAME + ' - ### EMAIL with same reference already send today! ###'
--RETURN;
END
SET @ORG_EMAIL_DATE = CONVERT(VARCHAR(25), @TEMP_DATE, 120) -- yyyy-mm-dd hh:mm:ss
SELECT
@EMAIL_ADRESS_2 = ITEM_VALUE
FROM DD_ECM.dbo.TBEDMI_ITEM_VALUE
WHERE REFERENCE_GUID = @REF_MSGID
AND SPEC_NAME = 'INVOICE_SELLER_EMAIL';
-- ====================================================================================================================================
-- E-Mail-Absender
-- ====================================================================================================================================
IF @SENDING_PROFILE <= 0
BEGIN
SELECT @SENDING_PROFILE = CONVERT(INTEGER, CAT_STRING)
FROM IDB.dbo.TBIDB_CATALOG
WHERE CAT_TITLE = 'REJECTION_EMAIL_PROFILE'
END
IF @SENDING_PROFILE <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### No SENDING PROFILE found! ###'
RETURN;
END
-- ====================================================================================================================================
-- Lade Konfiguration aus TBIDB_CATALOG
-- ====================================================================================================================================
SELECT @DEPLOYMENT_ENVIRONMENT = CAT_STRING
FROM IDB.dbo.TBIDB_CATALOG
WHERE CAT_TITLE = 'DEPLOYMENT_ENVIRONMENT';
-- ====================================================================================================================================
-- Lade E-Mail-Template(s)
-- ====================================================================================================================================
IF NOT EXISTS (SELECT 1 FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE] WHERE GUID = @MAIL_TEMPLATE)
BEGIN
PRINT @PROCEDURE_NAME + ' - ### No EMAIL TEMPLATE found! ###'
RETURN;
END
SELECT
@EMAIL_SUBJECT = EMAIL_SUBJECT,
@EMAIL_BODY1 = EMAIL_BODY1,
@EMAIL_BODY2 = EMAIL_BODY2,
@LANGUAGE = [LANGUAGE],
@CONNECTED_TEMPLATE_ID = CONNECTED_TEMPLATE
FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE]
WHERE GUID = @MAIL_TEMPLATE;
IF @CONNECTED_TEMPLATE_ID > 0
BEGIN
SELECT
@EMAIL_BODY1_CON = EMAIL_BODY1,
@EMAIL_BODY2_CON = EMAIL_BODY2,
@LANGUAGE_CON = [LANGUAGE]
FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE]
WHERE GUID = @CONNECTED_TEMPLATE_ID;
END
ELSE
BEGIN
SET @LANGUAGE_CON = @LANGUAGE
END
-- ====================================================================================================================================
-- Lade Ablehnungsgründe in temporäre Tabelle
-- ====================================================================================================================================
IF @REJ_REASONS IS NULL OR LEN(@REJ_REASONS) <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### NO Rejection Reasons! ###'
RETURN;
END
IF @REJ_REASONS LIKE '%|%'
BEGIN
-- Es gibt mehrere Gründe
DECLARE cursorGetRejReasons CURSOR LOCAL FAST_FORWARD FOR
SELECT Item FROM DD_ECM.[dbo].[FNCUST_SPLIT_STRING_WITH_GUID] (@REJ_REASONS, '|')
OPEN cursorGetRejReasons
FETCH NEXT FROM cursorGetRejReasons INTO @REASON_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @REJ_REASON_TEMP_TABLE (REJ_ID, REJ_REASON, [LANGUAGE])
SELECT TITLE AS REJ_ID, STRING1 AS REJ_REASON, [LANGUAGE]
FROM [DD_ECM].[dbo].[TBDD_GUI_LANGUAGE_PHRASE]
WHERE [TITLE] = 'RejectReason' + @REASON_ID AND [LANGUAGE] IN (@LANGUAGE, @LANGUAGE_CON);
FETCH NEXT FROM cursorGetRejReasons INTO @REASON_ID
END
CLOSE cursorGetRejReasons
DEALLOCATE cursorGetRejReasons
END
ELSE
BEGIN
INSERT INTO @REJ_REASON_TEMP_TABLE (REJ_ID, REJ_REASON, [LANGUAGE])
SELECT TITLE AS REJ_ID, STRING1 AS REJ_REASON, [LANGUAGE]
FROM [DD_ECM].[dbo].[TBDD_GUI_LANGUAGE_PHRASE]
WHERE [TITLE] = @REJ_REASONS AND [LANGUAGE] IN (@LANGUAGE, @LANGUAGE_CON);
END
-- ====================================================================================================================================
-- Stelle E-Mail Body zusammen
-- ====================================================================================================================================
DECLARE @REASON_COUNTER INTEGER
SET @REASON_COUNTER = 1
SET @EMAIL_BODY = '<html><body style=''font-family:""Arial"";font-size:10.0pt''>'
SET @EMAIL_BODY += @EMAIL_BODY1
DECLARE cursorSelectRejReasons CURSOR LOCAL FAST_FORWARD FOR
SELECT REJ_ID, REJ_REASON
FROM @REJ_REASON_TEMP_TABLE
WHERE [LANGUAGE] = @LANGUAGE;
OPEN cursorSelectRejReasons
FETCH NEXT FROM cursorSelectRejReasons INTO @REASON_ID, @REJ_REASON
WHILE @@FETCH_STATUS = 0
BEGIN
IF @REASON_COUNTER > 1
BEGIN
SET @EMAIL_BODY += '<br/>' + @REJ_REASON;
END
ELSE
BEGIN
-- 1. Zeile
SET @EMAIL_BODY += @REJ_REASON
END
SET @REASON_COUNTER += 1;
FETCH NEXT FROM cursorSelectRejReasons INTO @REASON_ID, @REJ_REASON
END
CLOSE cursorSelectRejReasons
DEALLOCATE cursorSelectRejReasons
SET @EMAIL_BODY += @EMAIL_BODY2
IF @CONNECTED_TEMPLATE_ID > 0
BEGIN
SET @REASON_COUNTER = 1
SET @EMAIL_BODY += '<p>====================================================================================================================================<p/>'
SET @EMAIL_BODY += @EMAIL_BODY1_CON
DECLARE cursorSelectRejReasonsCon CURSOR LOCAL FAST_FORWARD FOR
SELECT REJ_ID, REJ_REASON
FROM @REJ_REASON_TEMP_TABLE
WHERE [LANGUAGE] = @LANGUAGE_CON;
OPEN cursorSelectRejReasonsCon
FETCH NEXT FROM cursorSelectRejReasonsCon INTO @REASON_ID, @REJ_REASON
WHILE @@FETCH_STATUS = 0
BEGIN
IF @REASON_COUNTER > 1
BEGIN
SET @EMAIL_BODY += '<br/>' + @REJ_REASON;
END
ELSE
BEGIN
-- 1. Zeile
SET @EMAIL_BODY += @REJ_REASON
END
SET @REASON_COUNTER += 1;
FETCH NEXT FROM cursorSelectRejReasonsCon INTO @REASON_ID, @REJ_REASON
END
CLOSE cursorSelectRejReasonsCon
DEALLOCATE cursorSelectRejReasonsCon
SET @EMAIL_BODY += @EMAIL_BODY2_CON
END
SET @EMAIL_BODY += '<p>(' + @REJ_REASONS + ')</p>'
SET @EMAIL_BODY += '</body></html>'
-- ====================================================================================================================================
-- Ersetze Platzhalter in SUBJECT und BODY
-- ====================================================================================================================================
DECLARE @LAST_USER VARCHAR(100), @LAST_USER_EMAIL VARCHAR(100), @ORG_INVOICE_NR VARCHAR(50), @INVOICE_NR_VALUE VARCHAR(50)
SET @ORG_INVOICE_NR = '[KEINE BELEGNR GEFUNDEN/GELIEFERT]'
SET @INVOICE_NR_VALUE = ''
SET @LAST_USER = 'No User so far'
SET @LAST_USER_EMAIL = ''
SET @ORG_EMAIL_SUBJECT = REPLACE(@ORG_EMAIL_SUBJECT,'[EXTERNAL] ', '')
IF EXISTS(SELECT ITEM_VALUE FROM [DD_ECM].[dbo].TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @REF_MSGID and SPEC_NAME = 'INVOICE_NUMBER')
BEGIN
SELECT @INVOICE_NR_VALUE = ITEM_VALUE
FROM [DD_ECM].[dbo].TBEDMI_ITEM_VALUE
WHERE REFERENCE_GUID = @REF_MSGID and SPEC_NAME = 'INVOICE_NUMBER';
SET @ORG_INVOICE_NR = @INVOICE_NR_VALUE;
END
IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999
BEGIN
SELECT
@LAST_USER = PRENAME + ' ' + COALESCE([NAME],''),
@LAST_USER_EMAIL = EMAIL
FROM [DD_ECM].[dbo].TBDD_USER
--WHERE USERNAME = [DD_ECM].[dbo].[FNPM_LAST_WORKUSER_DOC] (@IDB_OBJ_ID)
END
--PRINT '@REPLACE_PARAM1:' + @REPLACE_PARAM1
SET @EMAIL_SUBJECT = REPLACE(@EMAIL_SUBJECT, '@ORG_INVOICE_NR', @ORG_INVOICE_NR)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_MSGID', @REF_MSGID)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_INVOICE_NR', @ORG_INVOICE_NR)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_SUBJECT', @ORG_EMAIL_SUBJECT)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_DATE', @ORG_EMAIL_DATE)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@LAST_USER', @LAST_USER)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@LAST_USER_EMAIL', @LAST_USER_EMAIL)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@REPLACE_PARAM1', @REPLACE_PARAM1)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@REPLACE_PARAM2', @REPLACE_PARAM2)
--Print @EMAIL_BODY
-- ====================================================================================================================================
-- Ersetze Platzhalter @RECEIPT_EMAIL_PHRASE / @RECEIPT_EMAIL_PHRASE_EN im BODY
-- ====================================================================================================================================
DECLARE @RECEIPT_EMAIL_DE_PHRASE VARCHAR(100), @RECEIPT_EMAIL_EN_PHRASE VARCHAR(100)
SET @RECEIPT_EMAIL_DE_PHRASE = 'Email'
SET @RECEIPT_EMAIL_EN_PHRASE = 'Email'
-- Wenn Belegnummer vorliegt, dann konkreter Text
IF LEN(@INVOICE_NR_VALUE) > 1
BEGIN
SET @RECEIPT_EMAIL_DE_PHRASE = 'Rechnung ' + @INVOICE_NR_VALUE
SET @RECEIPT_EMAIL_EN_PHRASE = 'Invoice ' + @INVOICE_NR_VALUE
END
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@RECEIPT_EMAIL_DE_PHRASE', @RECEIPT_EMAIL_DE_PHRASE)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@RECEIPT_EMAIL_EN_PHRASE', @RECEIPT_EMAIL_EN_PHRASE)
-- ====================================================================================================================================
-- Evtl. vorhandener Dateianhang
-- ====================================================================================================================================
SET @EMAIL_PATH = ''
IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999
BEGIN
SELECT @REL_PATH = [CAT_STRING] FROM [IDB].[dbo].[TBIDB_CATALOG] WHERE [CAT_TITLE] = 'FILESTORE_PRAEFIX';
SELECT @FILENAME = RELATIVE_PATH FROM [IDB].[dbo].[TBIDB_DOC_INFO] WHERE IDB_OBJ_ID = @IDB_OBJ_ID;
IF LEN(@FILENAME) > 0
BEGIN
BEGIN
IF @FILENAME NOT LIKE @REL_PATH + '%'
BEGIN
SET @FILENAME = @REL_PATH + @FILENAME
END
END
SET @EMAIL_PATH = @FILENAME
END
ELSE
SET @EMAIL_PATH = 'F:\DocumentProcessing\Output\File\DocumentKindAssigned\ZUGFeRD\Success\archive\'
END
-- ====================================================================================================================================
-- Füge E-Mail-Daten in Tabelle ein
-- ====================================================================================================================================
INSERT INTO [DD_ECM].[dbo].[TBEMLP_EMAIL_OUT]
(
[SENDING_PROFILE] -- REQUIRED
, [REFERENCE_ID] -- REQUIRED
, [REFERENCE_STRING]
, [WF_ID] -- REQUIRED
, [EMAIL_ADRESS] -- REQUIRED
, [EMAIL_SUBJ] -- REQUIRED
, [EMAIL_BODY] -- REQUIRED
, [COMMENT]
, [ADDED_WHO] -- REQUIRED
, [EMAIL_ATTMT1]
, [REMINDER_TYPE_ID]
) VALUES (
@SENDING_PROFILE
, @IDB_OBJ_ID
, @REF_MSGID
, @WF_ID
, @EMAIL_ADRESS
, @EMAIL_SUBJECT
, @EMAIL_BODY
, @COMMENT
, @REJ_SOURCE
, @EMAIL_PATH
, 77
);
-- ====================================================================================================================================
-- Füge E-Mail-Daten in Tabelle ein, falls 2. E-Mail-Adresse vorliegt, und
-- diese sich von der 1. E-Mail-Adresse unterscheidet!
-- ====================================================================================================================================
IF @DEPLOYMENT_ENVIRONMENT = 'PROD' AND
LEN(@EMAIL_ADRESS_2) > 0 AND @EMAIL_ADRESS <> @EMAIL_ADRESS_2
BEGIN
INSERT INTO [DD_ECM].[dbo].[TBEMLP_EMAIL_OUT]
(
[SENDING_PROFILE] -- REQUIRED
, [REFERENCE_ID] -- REQUIRED
, [REFERENCE_STRING]
, [WF_ID] -- REQUIRED
, [EMAIL_ADRESS] -- REQUIRED
, [EMAIL_SUBJ] -- REQUIRED
, [EMAIL_BODY] -- REQUIRED
, [COMMENT]
, [ADDED_WHO] -- REQUIRED
, [EMAIL_ATTMT1]
, [REMINDER_TYPE_ID]
) VALUES (
@SENDING_PROFILE
, @IDB_OBJ_ID
, @REF_MSGID
, @WF_ID
, @EMAIL_ADRESS_2 -- EMAIL_ADRESS_2
, @EMAIL_SUBJECT
, @EMAIL_BODY
, @COMMENT
, @REJ_SOURCE
, @EMAIL_PATH
, 77
);
END
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
@@ -41,7 +555,7 @@ Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
GO
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
RETURNS TABLE
AS RETURN
(

View File

@@ -0,0 +1,109 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.6';
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values
('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0),
('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0),
('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1),
('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1),
('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1),
('INVOICE_SELLER_NAME', '', 'SELLER', 10, 6, 0, 1),
('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 7, 0, 1),
('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 8, 0, 1),
('INVOICE_SELLER_CITY', '', 'SELLER', 35, 9, 1, 1),
('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 10, 0, 1),
('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 11, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 12, 0, 1),
('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 13, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 14, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 15, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 16, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 17, 0, 0),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 18, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 19, 0, 0),
('INVOICE_POSITION_ARTICLE_DESCRIPTION', '', 'POSITION', 10, 20, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 21, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 22, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 23, 0, 1),
('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 400, 0, 1),
('INVOICE_TOTAL_TAX', 'Steuerbetrag/Tax amount:', 'AMOUNT', 10, 401, 0, 1),
('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 402, 0, 1),
('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 403, 1, 0),
('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 404, 0, 0),
('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 405, 1, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON', '', 'EXEMPTION', 10, 406, 0, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON_CODE', '', 'EXEMPTION', 10, 407, 0, 1),
('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 500, 0, 1),
('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 501, 0, 1),
('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 502, 0, 1);
GO
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
RETURNS TABLE
AS RETURN
(
SELECt A.SPEC_NAME,A.ITEM_VALUE,A.Area,A.Row_Caption,A.xPosition,A.Y_eq_lastrow,A.SequenceItem ORDER_SEQ,A.Display FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A
WHERE REFERENCE_GUID = @pMSGID
AND A.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE','INVOICE_POSITION_NOTE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESCRIPTION','INVOICE_TAXPOS_AMOUNT',
'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE','INVOICE_POSITION_TAX_AMOUNT')
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID)
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID)
UNION
SELECT SPECNAME SPEC_NAME,Row_Caption,Area,Row_Caption Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'INTERNAL'
)
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CHANGED 02.06.2025 Nur Items mit INhalt
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 15
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_NOTE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESCRIPTION','INVOICE_POSITION_TAX_AMOUNT') AND GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display) VALUES
(@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO

View File

@@ -0,0 +1,35 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.7';
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBEDMI_ITEM_FILES](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[REFERENCE_GUID] [varchar](250) NOT NULL,
[ITEM_VALUE] [varbinary](max) NOT NULL,
[ORG_FILENAME] [varchar](256) NOT NULL,
[MIME_TYPE] [varchar](256) NOT NULL,
[GROUP_INDEX] [int] NOT NULL,
[CREATED_WHEN] [datetime] NOT NULL,
[CREATED_WHO] [varchar](100) NULL,
[CHANGED_WHEN] [datetime] NULL,
[CHANGED_WHO] [varchar](100) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_FILES] ADD CONSTRAINT [DF_TBEDMI_ITEM_FILES_GROUP_INDEX] DEFAULT ((0)) FOR [GROUP_INDEX]
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_FILES] ADD CONSTRAINT [DF_TBEDMI_ITEM_FILES_CREATED_WHEN] DEFAULT (getdate()) FOR [CREATED_WHEN]
GO
CREATE TRIGGER [dbo].[TBEDMI_ITEM_FILES_AFT_UPD] ON [dbo].[TBEDMI_ITEM_FILES]
FOR UPDATE
AS
BEGIN
UPDATE TBEDMI_ITEM_FILES SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBEDMI_ITEM_FILES.GUID = INSERTED.GUID
END
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_FILES] ENABLE TRIGGER [TBEDMI_ITEM_FILES_AFT_UPD]
GO
ALTER TABLE dbo.TBDD_ZUGFERD_XML_ITEMS ADD
EN16931_ID nvarchar(50) NULL
GO

View File

@@ -0,0 +1,18 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.7';
GO
ALTER TABLE TBEDMI_ITEM_VALUE ALTER COLUMN REFERENCE_GUID NVARCHAR(250);
GO
ALTER TABLE TBEDMI_ITEM_VALUE ALTER COLUMN ITEM_DESCRIPTION NVARCHAR(250);
GO
ALTER TABLE TBEDMI_ITEM_VALUE ALTER COLUMN ITEM_VALUE NVARCHAR(4000);
GO
ALTER TABLE TBEDMI_ITEM_VALUE ALTER COLUMN CREATEDWHO NVARCHAR(100);
GO
ALTER TABLE TBEDMI_ITEM_VALUE ALTER COLUMN SPEC_NAME NVARCHAR(100);
GO
IF EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'TBEDMI_ITEM_VALUE' AND Column_Name = 'CHANGED_WHO')
EXEC sp_rename 'dbo.TBEDMI_ITEM_VALUE.CHANGED_WHO', 'CHANGEDWHO', 'COLUMN';
ALTER TABLE TBEDMI_ITEM_VALUE ALTER COLUMN CREATEDWHO NVARCHAR(100);
GO

View File

@@ -0,0 +1,343 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.0.0';
GO
IF NOT EXISTS (
SELECT 1
FROM sys.objects
WHERE object_id = OBJECT_ID(N'dbo.PRPM_COPY_PROFILE')
AND type = 'P' -- 'P' steht für Stored Procedure
)
BEGIN
PRINT 'Procedure existiert nicht.'
Declare @SQL nvarchar(max)
SET @SQL = '
CREATE PROCEDURE [dbo].[PRPM_COPY_PROFILE] (@pProfileID as Integer,@pAddedWho Varchar(100))
AS
DECLARE @NEWPROFILE_ID INTEGER
INSERT INTO [dbo].[TBPM_PROFILE]
([NAME]
,[TITLE]
,[WD_OBJECTTYPE]
,[PRIORITY]
,[DESCRIPTION]
,[TYPE]
,[LOG_INDEX]
,[IN_WORK]
,[ACTIVE]
,[WD_SEARCH]
,[PM_VEKTOR_INDEX]
,[NO_OF_DOCUMENTS]
,[FINAL_PROFILE]
,[FINAL_TEXT]
,[MOVE2FOLDER]
,[SORT_BY_LATEST]
,[WORK_HISTORY_ENTRY]
,[ANNOTATE_ALL_WORK_HISTORY_ENTRIES]
,[ANNOTATE_WORK_HISTORY_ENTRY]
,[SQL_VIEW]
,[ADDED_WHO]
,[DISPLAY_MODE]
,[SQL_BTN_FINISH])
SELECT [NAME] + '' - COPY''
,[TITLE] + '' - COPY''
,[WD_OBJECTTYPE]
,[PRIORITY]
,[DESCRIPTION]
,[TYPE]
,[LOG_INDEX]
,[IN_WORK]
,0
,[WD_SEARCH]
,[PM_VEKTOR_INDEX]
,[NO_OF_DOCUMENTS]
,[FINAL_PROFILE]
,[FINAL_TEXT]
,[MOVE2FOLDER]
,[SORT_BY_LATEST]
,[WORK_HISTORY_ENTRY]
,[ANNOTATE_ALL_WORK_HISTORY_ENTRIES]
,[ANNOTATE_WORK_HISTORY_ENTRY]
,[SQL_VIEW]
,@pAddedWho
,[DISPLAY_MODE]
,[SQL_BTN_FINISH] FROM TBPM_PROFILE WHERE GUID = @pProfileID;
SELECT @NEWPROFILE_ID = MAX(GUID) FROM TBPM_PROFILE WHERE ADDED_WHO = @pAddedWho;
INSERT INTO [dbo].[TBPM_PROFILE_FINAL_INDEXING]
([PROFIL_ID]
,[CONNECTION_ID]
,[SQL_COMMAND]
,[INDEXNAME]
,[VALUE]
,[ACTIVE]
,[DESCRIPTION]
,[ADDED_WHO]
,[PREVENT_DUPLICATES]
,[ALLOW_NEW_VALUES]
,[IF_VEKTOR_BEHAVIOUR]
,[SEQUENCE])
SELECT
@NEWPROFILE_ID
,[CONNECTION_ID]
,[SQL_COMMAND]
,[INDEXNAME]
,[VALUE]
,[ACTIVE]
,[DESCRIPTION]
,[ADDED_WHO]
,[PREVENT_DUPLICATES]
,[ALLOW_NEW_VALUES]
,[IF_VEKTOR_BEHAVIOUR]
,[SEQUENCE]
FROM [TBPM_PROFILE_FINAL_INDEXING] WHERE PROFIL_ID = @pProfileID
INSERT INTO [dbo].[TBPM_PROFILE_CONTROLS]
([PROFIL_ID]
,[NAME]
,[CTRL_TYPE]
,[CTRL_TEXT]
,[X_LOC]
,[Y_LOC]
,[HEIGHT]
,[WIDTH]
,[INDEX_NAME]
,[TYP]
,[VALIDATION]
,[CHOICE_LIST]
,[CONNECTION_ID]
,[DEFAULT_VALUE]
,[SQL_UEBERPRUEFUNG]
,[READ_ONLY]
,[LOAD_IDX_VALUE]
,[FONT_STYLE]
,[FONT_SIZE]
,[FONT_FAMILY]
,[FONT_COLOR]
,[ADDED_WHO]
,[MULTISELECT]
,[VKT_ADD_ITEM]
,[VKT_PREVENT_MULTIPLE_VALUES]
,[REGEX_MATCH]
,[REGEX_MESSAGE_DE]
,[REGEX_MESSAGE_EN]
,[IMAGE_CONTROL]
,[SQL2]
,[SQL_ENABLE]
,[BACKGROUND_COLOR]
,[OVERWRITE_DATA]
,[SET_CONTROL_DATA])
SELECT @NEWPROFILE_ID
,[NAME]
,[CTRL_TYPE]
,[CTRL_TEXT]
,[X_LOC]
,[Y_LOC]
,[HEIGHT]
,[WIDTH]
,[INDEX_NAME]
,[TYP]
,[VALIDATION]
,[CHOICE_LIST]
,[CONNECTION_ID]
,[DEFAULT_VALUE]
,[SQL_UEBERPRUEFUNG]
,[READ_ONLY]
,[LOAD_IDX_VALUE]
,[FONT_STYLE]
,[FONT_SIZE]
,[FONT_FAMILY]
,[FONT_COLOR]
,@pAddedWho
,[MULTISELECT]
,[VKT_ADD_ITEM]
,[VKT_PREVENT_MULTIPLE_VALUES]
,[REGEX_MATCH]
,[REGEX_MESSAGE_DE]
,[REGEX_MESSAGE_EN]
,[IMAGE_CONTROL]
,[SQL2]
,[SQL_ENABLE]
,[BACKGROUND_COLOR]
,[OVERWRITE_DATA]
,[SET_CONTROL_DATA] FROM [TBPM_PROFILE_CONTROLS] WHERE PROFIL_ID = @pProfileID;
DECLARE
@OLD_ID INTEGER,
@NEW_ID INTEGER
DECLARE cursor1 CURSOR FOR
select T.GUID, T1.GUID from TBPM_PROFILE_CONTROLS T,TBPM_PROFILE_CONTROLS T1 WHERE
T.CTRL_TYPE = ''TABLE'' and T1.CTRL_TYPE = ''TABLE'' AND T.PROFIL_ID = @pProfileID AND T1.PROFIL_ID = @NEWPROFILE_ID AND T.NAME = T1.NAME
OPEN cursor1
FETCH NEXT FROM cursor1 INTO @OLD_ID,@NEW_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [dbo].[TBPM_CONTROL_TABLE]
([CONTROL_ID]
,[SPALTENNAME]
,[SPALTEN_HEADER]
,[SPALTENBREITE]
,[VALIDATION]
,[CHOICE_LIST]
,[CONNECTION_ID]
,[SQL_COMMAND]
,[READ_ONLY]
,[LOAD_IDX_VALUE]
,[ADDED_WHO]
,[REGEX_MESSAGE_DE]
,[REGEX_MESSAGE_EN]
,[REGEX_MATCH]
,[LOAD_AFT_LOAD_CONTROL]
,[SEQUENCE])
SELECT @NEW_ID
,[SPALTENNAME]
,[SPALTEN_HEADER]
,[SPALTENBREITE]
,[VALIDATION]
,[CHOICE_LIST]
,[CONNECTION_ID]
,[SQL_COMMAND]
,[READ_ONLY]
,[LOAD_IDX_VALUE]
,@pAddedWho
,[REGEX_MESSAGE_DE]
,[REGEX_MESSAGE_EN]
,[REGEX_MATCH]
,[LOAD_AFT_LOAD_CONTROL]
,[SEQUENCE] FROM [TBPM_CONTROL_TABLE] WHERE CONTROL_ID = @OLD_ID ORDER BY SEQUENCE
FETCH NEXT FROM cursor1 INTO @OLD_ID,@NEW_ID
END
CLOSE cursor1
DEALLOCATE cursor1'
EXEC sp_executesql @sql
END
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values
('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0),
('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0),
('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1),
('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1),
('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1),
('INVOICE_COST_CENTER','Kostenstelle/CostCenter:', 'HEAD', 10, 6, 0, 1),
('INVOICE_REFERENCE','Best.Ref/OrderReference:', 'HEAD', 10, 7, 0, 1),
('INVOICE_SELLER_NAME', '', 'SELLER', 10, 8, 0, 1),
('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 9, 0, 1),
('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 10, 0, 1),
('INVOICE_SELLER_CITY', '', 'SELLER', 35, 11, 1, 1),
('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 12, 0, 1),
('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 13, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 14, 0, 1),
('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 15, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 16, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 17, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 18, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 200, 0, 0),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 201, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 202, 0, 0),
('INVOICE_POSITION_ARTICLE_DESCRIPTION', '', 'POSITION', 10, 203, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 205, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 206, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 207, 0, 1),
('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 400, 0, 1),
('INVOICE_TOTAL_TAX', 'Steuerbetrag/Tax amount:', 'AMOUNT', 10, 401, 0, 1),
('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 402, 0, 1),
('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 403, 1, 0),
('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 404, 0, 0),
('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 405, 1, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON', '', 'EXEMPTION', 10, 406, 0, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON_CODE', '', 'EXEMPTION', 10, 407, 0, 1),
('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 500, 0, 1),
('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 501, 0, 1),
('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 502, 0, 1);
GO
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
RETURNS TABLE
AS RETURN
(
SELECt A.SPEC_NAME,A.ITEM_VALUE,A.Area,A.Row_Caption,A.xPosition,A.Y_eq_lastrow,A.SequenceItem ORDER_SEQ,A.Display FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A
WHERE REFERENCE_GUID = @pMSGID
AND A.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE','INVOICE_POSITION_NOTE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESCRIPTION','INVOICE_TAXPOS_AMOUNT',
'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE','INVOICE_POSITION_TAX_AMOUNT')
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID)
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID)
UNION
SELECT SPECNAME SPEC_NAME,Row_Caption,Area,Row_Caption Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'INTERNAL'
)
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CHANGED 11.07.2025 Index dynamisch
--CHANGED 02.06.2025 Nur Items mit INhalt
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT
SELECT @INDEX = MAX(SequenceItem) FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'BUYER';
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE','INVOICE_POSITION_NOTE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESCRIPTION','INVOICE_TAXPOS_AMOUNT',
'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE','INVOICE_POSITION_TAX_AMOUNT') AND A.GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display) VALUES
(@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
ALTER TABLE TBDD_USER
ALTER COLUMN DELETED_WHO VARCHAR(50)
GO

View File

@@ -0,0 +1,143 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.1';
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values
('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0),
('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0),
('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1),
('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1),
('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1),
('INVOICE_SELLER_NAME', '', 'SELLER', 10, 6, 0, 1),
('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 7, 0, 1),
('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 8, 0, 1),
('INVOICE_SELLER_CITY', '', 'SELLER', 35, 9, 1, 1),
('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 10, 0, 1),
('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 11, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 12, 0, 1),
('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 13, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 14, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 15, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 16, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 20, 0, 0),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 21, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 22, 0, 0),
('INVOICE_POSITION_ARTICLE_DESCRIPTION', '', 'POSITION', 10, 23, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 24, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 25, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 26, 0, 1),
('POSITION_ALLOWANCE_ACTUAL_AMOUNT', '', 'ALLOWANCE',10, 100, 0, 1),
('POSITION_ALLOWANCE_REASON', '', 'ALLOWANCE',10, 101, 0, 1),
('POSITION_ALLOWANCE_REASON_CODE', '', 'ALLOWANCE',10, 102, 0, 1),
('POSITION_ALLOWANCE_CALCULATION_PERCENT', '', 'ALLOWANCE',10, 103, 0, 1),
('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 400, 0, 1),
('INVOICE_TOTAL_TAX', 'Steuerbetrag/Tax amount:', 'AMOUNT', 10, 401, 0, 1),
('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 402, 0, 1),
('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 403, 1, 0),
('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 404, 0, 0),
('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 405, 1, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON', '', 'EXEMPTION', 10, 406, 0, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON_CODE', '', 'EXEMPTION', 10, 407, 0, 1),
('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 500, 0, 1),
('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 501, 0, 1),
('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 502, 0, 1);
GO
--CHANGED
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_ALLOWANCE_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT
SELECT @INDEX = MIN(SequenceItem) FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'ALLOWANCE';
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'POSITION_ALLOWANCE_ACTUAL_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN (SELECT SPECNAME FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'ALLOWANCE') AND A.GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display) VALUES
(@SPEC_NAME,@ITEM_VALUE,'ALLOWANCE',@INDEX,@Display)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--CHANGED 16.09.2025 Nur auf die Area gehen
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
RETURNS TABLE
AS RETURN
(
SELECt A.SPEC_NAME,A.ITEM_VALUE,A.Area,A.Row_Caption,A.xPosition,A.Y_eq_lastrow,A.SequenceItem ORDER_SEQ,A.Display FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A
WHERE REFERENCE_GUID = @pMSGID
AND A.Area NOT IN ('ALLOWANCE','POSITION')
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID)
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_ALLOWANCE_POSITIONS] (@pMSGID)
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID)
UNION
SELECT SPECNAME SPEC_NAME,Row_Caption,Area,Row_Caption Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'INTERNAL'
)
GO
--CHANGED 06.10.2025 Über Area
--CHANGED 02.06.2025 Nur Items mit INhalt
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 20
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And B.Area = 'POSITION' AND GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display) VALUES
(@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO

View File

@@ -0,0 +1,183 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.2';
GO
IF NOT EXISTS (
SELECT 1
FROM sys.objects
WHERE object_id = OBJECT_ID(N'dbo.TBFILE_EXTENSION_OVERRIDE')
)
CREATE TABLE dbo.TBFILE_EXTENSION_OVERRIDE(
GUID INT IDENTITY(1,1) NOT NULL,
FILE_EXTENSION NVARCHAR(10) NOT NULL,
PROCESS NVARCHAR(100) NOT NULL,
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50) NULL,
CHANGED_WHEN DATETIME NULL,
CONSTRAINT PK_TBFILE_EXTENSION_OVERRIDE PRIMARY KEY (FILE_EXTENSION)
)
GO
CREATE OR ALTER TRIGGER [dbo].[TBFILE_EXTENSION_OVERRIDE_AFT_UPD] ON [dbo].TBFILE_EXTENSION_OVERRIDE
FOR UPDATE
AS
BEGIN
UPDATE TBFILE_EXTENSION_OVERRIDE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBFILE_EXTENSION_OVERRIDE.GUID = INSERTED.GUID
END
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values
('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0),
('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0),
('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1),
('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1),
('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1),
('INVOICE_COST_CENTER','Kostenstelle/CostCenter:', 'HEAD', 10, 6, 0, 1),
('INVOICE_REFERENCE','Best.Ref/OrderReference:', 'HEAD', 10, 7, 0, 1),
('INVOICE_SELLER_NAME', '', 'SELLER', 10, 8, 0, 1),
('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 9, 0, 1),
('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 10, 0, 1),
('INVOICE_SELLER_CITY', '', 'SELLER', 35, 11, 1, 1),
('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 12, 0, 1),
('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 13, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 14, 0, 1),
('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 15, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 16, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 17, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 18, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 20, 0, 1),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 21, 1, 1),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 22, 1, 1),
('INVOICE_POSITION_ARTICLE_DESCRIPTION', '', 'POSITION', 10, 23, 1, 1),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 24, 1, 1),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 25, 1, 1),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 26, 1, 1),
('POSITION_ALLOWANCE_ACTUAL_AMOUNT', '', 'ALLOWANCE',10, 100, 0, 1),
('POSITION_ALLOWANCE_REASON', '', 'ALLOWANCE',10, 101, 1, 1),
('POSITION_ALLOWANCE_REASON_CODE', '', 'ALLOWANCE',10, 102, 1, 1),
('POSITION_ALLOWANCE_CALCULATION_PERCENT', '', 'ALLOWANCE',10, 103, 0, 1),
('RECEIPT_ALLOWANCE_CHARGE_INDICATOR', '', 'ALLOWANCE',10, 110, 0, 0),
('RECEIPT_ALLOWANCE_ACTUAL_AMOUNT', '', 'ALLOWANCE',10, 111, 0, 1),
('RECEIPT_ALLOWANCE_REASON', '', 'ALLOWANCE',10, 112, 1, 1),
('RECEIPT_ALLOWANCE_REASON_CODE', '', 'ALLOWANCE',10, 113, 1, 1),
('RECEIPT_ALLOWANCE_CALCULATION_PERCENT', '', 'ALLOWANCE',10, 114, 0, 1),
('RECEIPT_ALLOWANCE_VAT_RATE', '', 'ALLOWANCE',10, 115, 0, 1),
('RECEIPT_ALLOWANCE_VAT_CODE', '', 'ALLOWANCE',10, 116, 1, 1),
('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 400, 0, 1),
('INVOICE_TOTAL_TAX', 'Steuerbetrag/Tax amount:', 'AMOUNT', 10, 401, 0, 1),
('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 402, 0, 1),
('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 403, 1, 0),
('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 404, 0, 0),
('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 405, 1, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON', '', 'EXEMPTION',10, 406, 0, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON_CODE', '', 'EXEMPTION',10, 407, 0, 1),
('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 500, 0, 1),
('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 501, 0, 1),
('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 502, 0, 1);
GO
--Changed 13.11.2025 Y_eq_lastrow
--CHANGED 27.10.2025 Beide Allowance Varianten
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_ALLOWANCE_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT
SELECT @INDEX = MIN(SequenceItem) FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'ALLOWANCE';
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID
And SPEC_NAME IN ('POSITION_ALLOWANCE_ACTUAL_AMOUNT','RECEIPT_ALLOWANCE_ACTUAL_AMOUNT')
AND LEN(ITEM_VALUE) > 0 ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT,@Y_eq_lastrow BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display,Y_eq_lastrow from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME
WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN (SELECT SPECNAME FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'ALLOWANCE')
AND A.GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,'ALLOWANCE',@INDEX,@Display,@Y_eq_lastrow)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--CHANGED 13.11.2025
--CHANGED 06.10.2025 Über Area
--CHANGED 02.06.2025 Nur Items mit INhalt
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 20
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT,@Y_eq_lastrow BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display,B.Y_eq_lastrow from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME
WHERE REFERENCE_GUID = @pMSGID And B.Area = 'POSITION' AND GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display,@Y_eq_lastrow);
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--CHANGED 13.11.2025 Y_eq_lastRow
--CHANGED 16.09.2025 Nur auf die Area gehen
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
RETURNS TABLE
AS RETURN
(
SELECt A.SPEC_NAME,A.ITEM_VALUE,A.Area,A.Row_Caption,A.xPosition,A.Y_eq_lastrow,A.SequenceItem ORDER_SEQ,A.Display FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A
WHERE REFERENCE_GUID = @pMSGID
AND A.Area NOT IN ('ALLOWANCE','POSITION')
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID)
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, Y_eq_lastrow ,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_ALLOWANCE_POSITIONS] (@pMSGID)
UNION
SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID)
UNION
SELECT SPECNAME SPEC_NAME,Row_Caption,Area,Row_Caption Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'INTERNAL'
)
GO

View File

@@ -0,0 +1,137 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.3.0';
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'TBDD_USER_KEY_VALUE_PAIR')
BEGIN
DROP TABLE [TBDD_USER_KEY_VALUE_PAIR];
END
GO
CREATE TABLE [dbo].[TBDD_USER_KEY_VALUE_PAIR](
[PK_USER_KEY_VALUE_PAIR_ID] [bigint] IDENTITY(1,1) NOT NULL,
[FK_USER_ID] [int] NOT NULL,
[FK_MODULE_ID] [int] NOT NULL,
[KEY_NAME] [nvarchar](50) NOT NULL,
[VALUE_TEXT1] [nvarchar](900) NULL,
[VALUE_MAX] [nvarchar](MAX) NULL,
[COMMENT] [nvarchar](50) NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDD_USER_KEY_VALUE_PAIR] PRIMARY KEY CLUSTERED
(
[PK_USER_KEY_VALUE_PAIR_ID] 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
-- Unique-Index auf (MODULE, KEY_NAME)
CREATE UNIQUE INDEX UX_TBDD_USER_KEY_VALUE_PAIR_Module_Key
ON dbo.TBDD_USER_KEY_VALUE_PAIR ([FK_MODULE_ID], [KEY_NAME]);
GO
ALTER TABLE [dbo].[TBDD_USER_KEY_VALUE_PAIR] ADD CONSTRAINT [DF_TBDD_USER_KEY_VALUE_PAIR_ADDED_WHEN] DEFAULT (sysdatetime()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDD_USER_KEY_VALUE_PAIR] WITH CHECK ADD CONSTRAINT [FK_TBDD_USER_KEY_VALUE_PAIR_TBDD_USER] FOREIGN KEY([FK_USER_ID])
REFERENCES [dbo].[TBDD_USER] ([GUID])
GO
ALTER TABLE [dbo].[TBDD_USER_KEY_VALUE_PAIR] WITH CHECK ADD CONSTRAINT [FK_TBDD_USER_KEY_VALUE_PAIR_TBDD_MODULES] FOREIGN KEY([FK_MODULE_ID])
REFERENCES [dbo].[TBDD_MODULES] ([GUID])
GO
ALTER TABLE [dbo].[TBDD_USER_KEY_VALUE_PAIR] CHECK CONSTRAINT [FK_TBDD_USER_KEY_VALUE_PAIR_TBDD_USER]
GO
---------------------------------------------------------------------------------------------------------------------
CREATE OR ALTER TRIGGER [dbo].[TBDD_USER_KEY_VALUE_PAIR_KEY_VALUE_PAIR_AFT_UPD] ON [dbo].[TBDD_USER_KEY_VALUE_PAIR]
FOR UPDATE
AS
BEGIN
UPDATE [TBDD_USER_KEY_VALUE_PAIR]
SET [CHANGED_WHEN] = GETDATE()
FROM [INSERTED]
WHERE [TBDD_USER_KEY_VALUE_PAIR].[PK_USER_KEY_VALUE_PAIR_ID] = [INSERTED].[PK_USER_KEY_VALUE_PAIR_ID]
END
GO
ALTER TABLE [dbo].[TBDD_USER_KEY_VALUE_PAIR] ENABLE TRIGGER [TBDD_USER_KEY_VALUE_PAIR_KEY_VALUE_PAIR_AFT_UPD]
GO
CREATE OR ALTER PROCEDURE [dbo].[PRDD_TBDD_USER_KEY_VALUE_PAIR_Upsert]
@FK_USER_ID INT,
@KEY_NAME NVARCHAR(50),
@ValueText1 NVARCHAR(900),
@ModuleID INT,
@Out_PK_ID BIGINT OUTPUT -- gibt die betroffene PK zurück
AS
BEGIN
SET NOCOUNT ON;
DECLARE @now DATETIME = GETDATE(); -- statt SYSDATETIME() für Kompatibilität
BEGIN TRY
BEGIN TRAN;
DECLARE @ExistingPK BIGINT;
SELECT @ExistingPK = PK_USER_KEY_VALUE_PAIR_ID
FROM dbo.TBDD_USER_KEY_VALUE_PAIR WITH (UPDLOCK, HOLDLOCK)
WHERE FK_USER_ID = @FK_USER_ID
AND KEY_NAME = @KEY_NAME and [FK_MODULE_ID] = @ModuleID;
IF @ExistingPK IS NOT NULL
BEGIN
-- UPDATE
UPDATE dbo.TBDD_USER_KEY_VALUE_PAIR
SET VALUE_TEXT1 = @ValueText1,
CHANGED_WHEN = @now
WHERE PK_USER_KEY_VALUE_PAIR_ID = @ExistingPK;
SET @Out_PK_ID = @ExistingPK;
END
ELSE
BEGIN
-- INSERT
INSERT INTO dbo.TBDD_USER_KEY_VALUE_PAIR
(
FK_USER_ID,
KEY_NAME,
[FK_MODULE_ID],
VALUE_TEXT1)
VALUES
(
@FK_USER_ID,
@KEY_NAME,
@ModuleID,
@ValueText1
);
SET @Out_PK_ID = CONVERT(BIGINT, SCOPE_IDENTITY());
END
COMMIT TRAN;
END TRY
BEGIN CATCH
IF XACT_STATE() <> 0 ROLLBACK TRAN;
DECLARE
@ErrorNumber INT = ERROR_NUMBER(),
@ErrorSeverity INT = ERROR_SEVERITY(),
@ErrorState INT = ERROR_STATE(),
@ErrorLine INT = ERROR_LINE(),
@ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(),
@FullMessage NVARCHAR(4000);
-- klassische Verkettung statt CONCAT
SET @FullMessage = N'[PRDD_TBDD_USER_KEY_VALUE_PAIR_Upsert] failed at line '
+ CONVERT(NVARCHAR(10), @ErrorLine)
+ N': '
+ ISNULL(@ErrorMessage, N'');
-- Für ältere SQL Server-Versionen statt THROW:
RAISERROR (@FullMessage, @ErrorSeverity, @ErrorState);
RETURN;
END CATCH
END
GO

View File

@@ -0,0 +1,19 @@
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

View File

@@ -0,0 +1,267 @@
CREATE TABLE TBIDB_TERM_VALUE_NVARCHAR
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE NVARCHAR(900) NOT NULL,
TERM_VALUE_REVERSE VARCHAR(900),
ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN NVARCHAR NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO NVARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_VALUE_NVARCHAR PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_NVARCHAR UNIQUE (TERM_VALUE),
CONSTRAINT UQ_TBIDB_TERM_VALUE_NVARCHAR_REV UNIQUE (TERM_VALUE_REVERSE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_NVARCHAR_AFT_UPD ON TBIDB_TERM_VALUE_NVARCHAR
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_NVARCHAR SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_NVARCHAR.GUID = INSERTED.GUID
GO
CREATE TRIGGER [dbo].[TBIDB_TERM_VALUE_NVARCHAR_AFT_INS] ON [dbo].[TBIDB_TERM_VALUE_NVARCHAR]
FOR INSERT
AS
UPDATE TBIDB_TERM_VALUE_NVARCHAR SET TBIDB_TERM_VALUE_NVARCHAR.TERM_VALUE_REVERSE = REVERSE(INSERTED.TERM_VALUE)
FROM INSERTED
WHERE TBIDB_TERM_VALUE_NVARCHAR.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_TERM_VALUE_INTEGER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE BIGINT NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_VALUE_INTEGER PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_INTEGER UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_INTEGER_AFT_UPD ON TBIDB_TERM_VALUE_INTEGER
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_INTEGER SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_INTEGER.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE) VALUES (0);
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE) VALUES (1);
CREATE TABLE TBIDB_TERM_VALUE_FLOAT
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE FLOAT NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_VALUE_FLOAT PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_FLOAT UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_FLOAT_AFT_UPD ON TBIDB_TERM_VALUE_FLOAT
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_FLOAT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_FLOAT.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_TERM_VALUE_DECIMAL
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE DECIMAL(19, 0) NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_VALUE_DECIMAL PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_DECIMAL UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_DECIMAL_AFT_UPD ON TBIDB_TERM_VALUE_DECIMAL
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_DECIMAL SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_DECIMAL.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_TERM_VALUE_DATE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE DATE NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_VALUE_DATE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_DATE UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_DATE_AFT_UPD ON TBIDB_TERM_VALUE_DATE
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_DATE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_DATE.GUID = INSERTED.GUID
GO
--DELETE FROM TBIDB_OBJECT_METADATA
--DELETE FROM TBIDB_LANGUAGE_TERM_METADATA
--DELETE FROM TBIDB_FILE_OBJECT
--DELETE FROM TBIDB_OBJECT_BE
--DELETE FROM TBIDB_OBJECT_METADATA_CHANGE
--DELETE FROM TBIDB_OBJECT
--DROP TABLE TBIDB_TERM_VALUE_DATETIME
CREATE TABLE TBIDB_TERM_VALUE_DATETIME
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE DATETIME NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_VALUE_DATETIME PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_DATETIME UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_DATETIME_UPD ON TBIDB_TERM_VALUE_DATETIME
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_DATETIME SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_DATETIME.GUID = INSERTED.GUID
GO
--DROP TABLE TBIDB_ATTRIBUTE_TYPE
CREATE TABLE TBIDB_ATTRIBUTE_TYPE
(
GUID TINYINT NOT NULL IDENTITY (1, 1),
NAME_TYPE VARCHAR(100) NOT NULL,
COMMENT VARCHAR(500),
BIT1 BIT NOT NULL DEFAULT 0,
BIT2 BIT NOT NULL DEFAULT 0,
BIT3 BIT NOT NULL DEFAULT 0,
BIT4 BIT NOT NULL DEFAULT 0,
DELETED BIT NOT NULL DEFAULT 0,
DELETED_WHO VARCHAR(100),
DELETED_WHEN DATETIME,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_ATTRIBUTE_TYPE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_ATTRIBUTE_TYPE UNIQUE (NAME_TYPE)
)
GO
CREATE TRIGGER TBIDB_ATTRIBUTE_TYPE_AFT_UPD ON TBIDB_ATTRIBUTE_TYPE
FOR UPDATE
AS
UPDATE TBIDB_ATTRIBUTE_TYPE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_ATTRIBUTE_TYPE.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('NVARCHAR'); --1
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('BIG INTEGER');--2
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('FLOAT');--3
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DECIMAL');--4
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DATE');--5
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DATETIME');--6
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('BIT');--7
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VECTOR STRING');--8
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VECTOR INTEGER');--9
-- =============================================
-- Author: DD MS
-- Changed: 25.11.2021 @TERM_TYPE_ID = 6
-- Changed: 25.08.2020 @TERM_TYPE_ID = 7 AND UPPER(@TERM)
-- =============================================
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_TERM] @MD_TYPE VARCHAR(100),@TERM VARCHAR(MAX), @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT
AS
BEGIN
DECLARE @TERM_TYPE_ID TINYINT
PRINT 'PRIDB_NEW_TERM ...'
SELECT @TERM_TYPE_ID = GUID FROM TBIDB_ATTRIBUTE_TYPE WHERE NAME_TYPE = @MD_TYPE
IF @TERM_TYPE_ID = 7 AND @TERM = 'TRUE'
SET @TERM = 1
ELSE IF @TERM_TYPE_ID = 7 AND @TERM = 'FALSE'
SET @TERM = 0
PRINT 'PRIDB_NEW_TERM: TERM_TYPE_ID IS: ' + CONVERT(VARCHAR(2),@TERM_TYPE_ID) + ' # TERM: ' + @TERM
IF @TERM_TYPE_ID IN (1,8) --VARCHAR
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_NVARCHAR WHERE TERM_VALUE = @TERM)
BEGIN
PRINT 'PRIDB_NEW_TERM: TERM NOT EXISTING ...INSERT'
INSERT INTO TBIDB_TERM_VALUE_NVARCHAR (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_NVARCHAR
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_NVARCHAR WHERE TERM_VALUE = @TERM
ELSE IF @TERM_TYPE_ID IN (2,7,9) --BIGINT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(BIGINT,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_INTEGER
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM)
ELSE IF @TERM_TYPE_ID = 3 --FLOAT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(FLOAT,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_FLOAT
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM)
ELSE IF @TERM_TYPE_ID = 4 --DECIMAL
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DECIMAL (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DECIMAL(19,0),@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DECIMAL
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM)
ELSE IF @TERM_TYPE_ID = 5 --DATE
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DATE (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATE,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATE
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
ELSE IF @TERM_TYPE_ID = 6 --DATETIME
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATETIME WHERE TERM_VALUE = CONVERT(DATETIME,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DATETIME (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATETIME,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATETIME
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
PRINT '### PRIDB_NEW_TERM: TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) + '###'
END
GO
--BEI DER WISAG zusätzlich
ALTER PROCEDURE [dbo].[PRIDB_NEW_TERM_FLOAT] @MD_TYPE VARCHAR(100),@TERM FLOAT, @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT
AS
BEGIN
PRINT '#### PRIDB_NEW_TERM_FLOAT ####'
DECLARE @TERM_TYPE_ID TINYINT
SELECT @TERM_TYPE_ID = GUID FROM TBIDB_ATTRIBUTE_TYPE WHERE UPPER(NAME_TYPE) = UPPER(@MD_TYPE)
IF @TERM_TYPE_ID = 3 --FLOAT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = @TERM)
BEGIN
INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_FLOAT
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = @TERM;
PRINT CHAR(9) + '>> RETURNING TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID)
PRINT '#### END PRIDB_NEW_TERM_FLOAT ####'
END

File diff suppressed because it is too large Load Diff

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,324 @@
-- Übergeordnete Projekte / Themenkomplexe
CREATE TABLE TBDDTransportProjects (
ProjectID INT IDENTITY(1,1) PRIMARY KEY,
ProjectName NVARCHAR(255) NOT NULL, -- z.B. 'Release_2024_Q1' oder 'Modul_E-Rechnung'
ProjectDescription NVARCHAR(MAX),
ADDED_WHEN DATETIME DEFAULT GETDATE(),
ADDED_WHO NVARCHAR(128) DEFAULT SUSER_SNAME()
);
CREATE TABLE TBDDTransportLog (
TransportID INT IDENTITY(1,1),
ProjectID INT NOT NULL,
TransportBatch NVARCHAR(128),
TopicGroup NVARCHAR(255),
SourceDatabase NVARCHAR(128), -- 'DD_ECM' oder 'IDB'
ObjectName NVARCHAR(128),
ObjectType VARCHAR(20),
SequenceOrder INT DEFAULT 100,
SqlScript NVARCHAR(MAX),
ArchiveScript NVARCHAR(MAX),
Status_Transport VARCHAR(20) DEFAULT 'Pending',
LogMessage NVARCHAR(MAX),
ADDED_WHEN DATETIME DEFAULT GETDATE(),
Deployed_when DATETIME,
CONSTRAINT PK_TBPM_PROFILE_GUID PRIMARY KEY (TransportID),
CONSTRAINT FK_TBDDTransportLog_ProjectID FOREIGN KEY (ProjectID) REFERENCES TBDDTransportProjects(ProjectID),
);
GO
CREATE OR ALTER PROCEDURE PRDD_Transport_PackObject
@SourceDB SYSNAME, -- 'DD_ECM' oder 'IDB'
@ObjectName SYSNAME,
@ProjectID INT, -- Neu: Pflichtbezug zum Projekt
@TransportBatch NVARCHAR(128) = NULL,
@ManualOrder INT = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Definition NVARCHAR(MAX);
DECLARE @Type VARCHAR(20);
DECLARE @Order INT;
DECLARE @ParmDefinition NVARCHAR(500) = N'@DefOut NVARCHAR(MAX) OUTPUT, @TypeOut VARCHAR(20) OUTPUT';
-- Dynamische Abfrage der Quelldatenbank
DECLARE @SQL NVARCHAR(MAX) = N'
SELECT @DefOut = m.definition, @TypeOut = o.type_desc
FROM ' + QUOTENAME(@SourceDB) + '.sys.sql_modules m
JOIN ' + QUOTENAME(@SourceDB) + '.sys.objects o ON m.object_id = o.object_id
WHERE o.object_id = OBJECT_ID(''' + @SourceDB + '..' + @ObjectName + ''')';
EXEC sp_executesql @SQL, @ParmDefinition, @DefOut = @Definition OUTPUT, @TypeOut = @Type OUTPUT;
IF @Definition IS NULL
BEGIN
RAISERROR('Objekt %s in Datenbank %s nicht gefunden.', 16, 1, @ObjectName, @SourceDB);
RETURN;
END
-- Sequenzierung festlegen
SET @Order = ISNULL(@ManualOrder,
CASE
WHEN @Type LIKE '%TABLE%' THEN 10
WHEN @Type LIKE '%FUNCTION%' THEN 20
WHEN @Type = 'VIEW' THEN 30
WHEN @Type = 'SQL_STORED_PROCEDURE' THEN 40
ELSE 100 END);
-- CREATE zu CREATE OR ALTER umwandeln
IF LEFT(LTRIM(@Definition), 6) = 'CREATE'
SET @Definition = 'CREATE OR ALTER' + SUBSTRING(LTRIM(@Definition), 7, LEN(@Definition));
INSERT INTO TBDDTransportLog (
TransportBatch,
ProjectID,
SourceDatabase,
ObjectName,
ObjectType,
SequenceOrder,
SqlScript)
VALUES (
ISNULL(@TransportBatch,
NEWID()),
@ProjectID,
@SourceDB,
@ObjectName,
@Type,
@Order,
@Definition);
PRINT 'Objekt ' + @ObjectName + ' aus ' + @SourceDB + ' verpackt.';
END;
GO
CREATE OR ALTER PROCEDURE PRDD_DeployProject
@ProjectID INT,
@TargetLinkedServer NVARCHAR(128)
AS
BEGIN
SET NOCOUNT ON;
-- Prüfung, ob Projekt existiert
IF NOT EXISTS (SELECT 1 FROM TBDDTransportProjects WHERE ProjectID = @ProjectID)
BEGIN
RAISERROR('Projekt mit ID %d wurde nicht gefunden.', 16, 1, @ProjectID);
RETURN;
END
DECLARE @ID INT,
@DB NVARCHAR(128),
@ObjName NVARCHAR(128),
@Script NVARCHAR(MAX),
@RemoteSQL NVARCHAR(MAX),
@ArchiveSQL NVARCHAR(MAX);
-- Cursor über ALLE Batches dieses Projekts, strikt nach SequenceOrder
-- So werden z.B. erst alle Tabellen (10) beider DBs erstellt, bevor Views (30) kommen.
DECLARE ProjectCursor CURSOR FOR
SELECT TransportID, SourceDatabase, ObjectName, SqlScript
FROM TBDDTransportLog
WHERE ProjectID = @ProjectID
AND Status_Transport IN ('Pending', 'Error') -- Ermöglicht Wiederholung nach Fehlern
ORDER BY SequenceOrder ASC, ADDED_WHEN ASC;
OPEN ProjectCursor;
FETCH NEXT FROM ProjectCursor INTO @ID, @DB, @ObjName, @Script;
PRINT 'Starte Deployment für Projekt-ID: ' + CAST(@ProjectID AS NVARCHAR(10));
PRINT 'Ziel-Server: ' + @TargetLinkedServer;
PRINT '---------------------------------------------------------';
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
-- 1. Archivierung des Ist-Zustands auf dem Zielserver
-- Wir versuchen die Definition des Objekts zu lesen
DECLARE @OldDefinition NVARCHAR(MAX) = NULL;
-- Dynamischer Befehl um OBJECT_DEFINITION remote auszuführen
-- Hinweis: Benötigt RPC Out auf dem Linked Server
SET @ArchiveSQL = N'SELECT @out = OBJECT_DEFINITION(OBJECT_ID(N''' + @DB + '..' + @ObjName + '''))';
BEGIN TRY
EXEC (@ArchiveSQL, @out = @OldDefinition OUTPUT) AT [TEST_SERVER]; -- Hier @TargetLinkedServer nutzen
END TRY
BEGIN CATCH
SET @OldDefinition = '-- Objekt existierte vor Deployment nicht';
END CATCH
-- 2. Update der Log-Tabelle mit Archiv-Script
UPDATE TBDDTransportLog
SET ArchiveScript = @OldDefinition,
Status_Transport = 'Deploying'
WHERE TransportID = @ID;
-- 3. Ausführung des neuen Scripts
-- Wir wechseln den Kontext auf die Ziel-DB
SET @RemoteSQL = N'USE ' + QUOTENAME(@DB) + N'; EXEC(N''' + REPLACE(@Script, '''', '''''') + N''');';
EXEC (@RemoteSQL) AT [TEST_SERVER];
-- 4. Erfolg loggen
UPDATE TBDDTransportLog
SET Status_Transport = 'Deployed',
LogMessage = 'Erfolgreich am ' + CONVERT(NVARCHAR(30), GETDATE(), 120)
WHERE TransportID = @ID;
PRINT 'SUCCESS: ' + @DB + '.' + @ObjName;
END TRY
BEGIN CATCH
-- Fehler loggen
UPDATE TBDDTransportLog
SET Status_Transport = 'Error',
LogMessage = ERROR_MESSAGE()
WHERE TransportID = @ID;
PRINT 'ERROR: ' + @DB + '.' + @ObjName + ' - ' + ERROR_MESSAGE();
-- Strategie-Entscheidung: Abbrechen bei Fehler?
-- CLOSE ProjectCursor; DEALLOCATE ProjectCursor; RETURN;
END CATCH
FETCH NEXT FROM ProjectCursor INTO @ID, @DB, @ObjName, @Script;
END
CLOSE ProjectCursor;
DEALLOCATE ProjectCursor;
PRINT '---------------------------------------------------------';
PRINT 'Deployment abgeschlossen.';
END;
GO
CREATE OR ALTER PROCEDURE PRDD_DeployTransportBatch
@TargetLinkedServer NVARCHAR(128),
@TransportBatch NVARCHAR(128)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID INT,
@DB NVARCHAR(128),
@ObjName NVARCHAR(128),
@Script NVARCHAR(MAX),
@OldScript NVARCHAR(MAX),
@RemoteSQL NVARCHAR(MAX);
DECLARE DeployCursor CURSOR FOR
SELECT TransportID, SourceDatabase, ObjectName, SqlScript
FROM TBDDTransportLog
WHERE TransportBatch = @TransportBatch AND Status_Transport = 'Pending'
ORDER BY SequenceOrder ASC;
OPEN DeployCursor;
FETCH NEXT FROM DeployCursor INTO @ID, @DB, @ObjName, @Script;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
-- 1. Archivierung: Aktuellen Stand vom Ziel-Server holen
-- Wir nutzen OPENQUERY oder EXEC AT, um den Stand remote zu prüfen
SET @OldScript = NULL;
DECLARE @GetArchiveSQL NVARCHAR(MAX) =
N'SELECT @out = OBJECT_DEFINITION(OBJECT_ID(N''' + @DB + N'..' + @ObjName + N'''))';
-- Remote-Abfrage des aktuellen Standes
EXEC (@GetArchiveSQL, @out = @OldScript OUTPUT) AT [TEST_SERVER];
-- Alten Stand in DD_SYS sichern
UPDATE TBDDTransportLog
SET ArchiveScript = @OldScript
WHERE TransportID = @ID;
-- 2. Deployment: Datenbankkontext setzen und Skript ausführen
SET @RemoteSQL = N'USE ' + QUOTENAME(@DB) + N'; EXEC(N''' + REPLACE(@Script, '''', '''''') + N''');';
EXEC (@RemoteSQL) AT [TEST_SERVER];
UPDATE TBDDTransportLog SET Status_Transport = 'Deployed', LogMessage = 'Erfolgreich',Deployed_when = GETDATE() WHERE TransportID = @ID;
END TRY
BEGIN CATCH
UPDATE TBDDTransportLog
SET Status_Transport = 'Error',
LogMessage = N'Fehler in ' + @DB + N'.' + @ObjName + N': ' + ERROR_MESSAGE()
WHERE TransportID = @ID;
-- Optional: Hier BREAK einfügen, wenn der ganze Batch bei Fehler stoppen soll
END CATCH
FETCH NEXT FROM DeployCursor INTO @ID, @DB, @ObjName, @Script;
END
CLOSE DeployCursor;
DEALLOCATE DeployCursor;
END;
GO
CREATE OR ALTER PROCEDURE PRDD_Transport_AddManualScript
@SourceDB NVARCHAR(128),
@ObjectName NVARCHAR(128),
@SqlScript NVARCHAR(MAX),
@TransportBatch NVARCHAR(128),
@SequenceOrder INT = 10, -- Standardmäßig 10 (vor Code-Objekten)
@ObjectType NVARCHAR(20) = N'TABLE_ALTER'
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO TBDDTransportLog (
TransportBatch,
SourceDatabase,
ObjectName,
ObjectType,
SequenceOrder,
SqlScript,
Status_Transport
)
VALUES (
@TransportBatch,
@SourceDB,
@ObjectName,
@ObjectType,
@SequenceOrder,
@SqlScript,
N'Pending'
);
PRINT 'Manuelles Skript für ' + @ObjectName + ' zum Batch hinzugefügt.';
END;
GO
CREATE OR ALTER PROCEDURE PRDD_TransportBatch_Rollback
@TargetLinkedServer NVARCHAR(128),
@BatchID UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID INT, @DB NVARCHAR(128), @Script NVARCHAR(MAX), @RemoteSQL NVARCHAR(MAX);
-- Cursor rückwärts (DESC), um die letzte Änderung zuerst rückgängig zu machen
DECLARE RollbackCursor CURSOR FOR
SELECT TransportID,SourceDatabase, ArchiveScript
FROM TBDDTransportLog
WHERE TransportBatch = @BatchID AND Status_Transport = 'Deployed' AND ArchiveScript IS NOT NULL
ORDER BY SequenceOrder DESC;
OPEN RollbackCursor;
FETCH NEXT FROM RollbackCursor INTO @ID, @DB, @Script;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
SET @RemoteSQL = N'USE ' + QUOTENAME(@DB) + N'; ' + @Script;
EXEC (@RemoteSQL) AT [MEIN_TEST_SERVER]; -- Dynamischer Servername hier einsetzen
PRINT 'Rollback erfolgreich für Objekt in ' + @DB;
UPDATE TBDDTransportLog SET Status_Transport = 'ROLLBACK', Deployed_when = NULL WHERE TransportID = @ID;
END TRY
BEGIN CATCH
PRINT 'Fehler beim Rollback in ' + @DB + ': ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM RollbackCursor INTO @ID, @DB, @Script;
END
CLOSE RollbackCursor;
DEALLOCATE RollbackCursor;
END;

View File

@@ -1,3 +1,22 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.2' where NAME = 'Process-Manager';
GO
--Changed 10.07.2025 MS Dynamisch LangPhrase erstellen wenn nicht vorhanden
ALTER PROCEDURE [dbo].[PRPM_CHANGE_CONTROL_CAPTION] (@pCTRL_ID INT,@NEW_CAPTION VARCHAR(100), @WHO VARCHAR(100),@LANG_CODE VARCHAR(5))
AS
DECLARE @RESULT VARCHAR(250), @CTRL_CONFIG_TITLE VARCHAR(100)
SELECT @CTRL_CONFIG_TITLE = CTRL_TYPE + '.' + NAME FROM TBPM_PROFILE_CONTROLS WHERE GUID = @pCTRL_ID;
PRINT '@CTRL_CONFIG_TITLE: ' + @CTRL_CONFIG_TITLE
IF NOT EXISTS(SELECT GUID FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE = 'PM' AND TITLE = @CTRL_CONFIG_TITLE AND [LANGUAGE] = @LANG_CODE)
BEGIN
PRINT 'CONFIGURATION FOR CONTROL NOT EXISTING IN TBDD_GUI_LANGUAGE_PHRASE'
INSERT INTO [TBDD_GUI_LANGUAGE_PHRASE] (
[MODULE], [TITLE], [LANGUAGE], CAPT_TYPE, STRING1, STRING2 , OBJ_NAME) VALUES (
'PM', @CTRL_CONFIG_TITLE, @LANG_CODE, 'Caption Validator Control', @NEW_CAPTION, '', 'frmValidator' );
END
ELSE
UPDATE TBDD_GUI_LANGUAGE_PHRASE SET STRING1 = @NEW_CAPTION, CHANGED_WHO = @WHO
WHERE OBJ_NAME = 'frmValidator' AND MODULE = 'PM' AND TITLE = @CTRL_CONFIG_TITLE AND [LANGUAGE] = @LANG_CODE;

View File

@@ -0,0 +1,8 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.5' where NAME = 'Process-Manager';
GO
ALTER TABLE dbo.TBPM_PROFILE
ADD NOT_RESP_COMMENT BIT NOT NULL DEFAULT 1 ;

View File

@@ -0,0 +1,8 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.6' where NAME = 'Process-Manager';
GO
ALTER TABLE dbo.TBPM_PROFILE_CONTROLS
ADD TEXT_ALIGNMENT NVARCHAR(20) NOT NULL DEFAULT 'Near';

View File

@@ -0,0 +1,2 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.7' where NAME = 'Process-Manager';
GO

View File

@@ -0,0 +1,26 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.8' where NAME = 'Process-Manager';
GO
--GIT PUSH FÜR HENNING
ALTER TABLE TBPM_PROFILE_FILES
ADD
WF_STATUS VARCHAR(20) NULL,
WF_TRY_COUNT INT NOT NULL DEFAULT 0,
WF_ERROR_MSG NVARCHAR(4000),
WF_STARTED_AT DATETIME2,
WF_FINISHED_AT DATETIME2;
GO
ALTER TABLE TBPM_PROFILE_FILES
ADD CONSTRAINT DF_TBPM_WF_STATUS
DEFAULT 'OPEN' FOR WF_STATUS;
GO
CREATE INDEX IX_PF_WF_QUEUE
ON TBPM_PROFILE_FILES (WF_STATUS, GUID)
INCLUDE (DOC_ID, PROFIL_ID);
GO
UPDATE TBPM_PROFILE_FILES
SET WF_STATUS = 'DONE'
WHERE WF_STATUS IS NULL;
GO
ALTER TABLE dbo.TBPM_CONTROL_TABLE
ADD FORMULA_EXPRESSION NVARCHAR(1000) NOT NULL DEFAULT '';
GO

View File

@@ -0,0 +1,282 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.9' where NAME = 'Process-Manager';
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,
COALESCE(
CASE
WHEN DB_ID('IDB') IS NOT NULL
AND EXISTS (SELECT 1 FROM IDB.sys.tables WHERE name = 'TBIDB_ATTRIBUTE')
THEN (SELECT TYP_ID FROM IDB.dbo.TBIDB_ATTRIBUTE WHERE TITLE = COALESCE(T1.INDEX_NAME,''))
ELSE NULL
END,
'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

@@ -0,0 +1,6 @@
UPDATE TBDD_MODULES SET DB_VERSION = '3.0' where NAME = 'Process-Manager';
GO
ALTER TABLE dbo.TBPM_CONTROL_TABLE
ADD FORMULA_SQL NVARCHAR(3000) NOT NULL DEFAULT '';
GO

View File

@@ -0,0 +1,454 @@
UPDATE TBDD_MODULES SET DB_VERSION = '3.1' where NAME = 'Process-Manager';
GO
ALTER TABLE dbo.TBPM_CHART
ADD COCKPIT_CHART_ID INT NOT NULL DEFAULT 0;
GO
ALTER VIEW [dbo].[VWPM_CHART_INVOICE_MONITOR_SERIES]
AS
select 'Alle Rechnungen' as Title
,15 Anzahl
,500000 NettoSumme
,1 SEQ
,1 COCKPIT_CHART_ID
--,convert(varchar,format(SUM(500000),'###,###,###.00','de-de')) NettoSumme
UNION
SELECT 'Posteingang' as Title
,10 Anzahl
,12000 NettoSumme
,2 SEQ
,1 COCKPIT_CHART_ID
--,convert(varchar,format(SUM(12000),'###,###,###.00','de-de')) NettoSumme
UNION
SELECT 'Fachliche Freigabe' as Title
,5 Anzahl
,13658.5 NettoSumme
,3 SEQ
,1 COCKPIT_CHART_ID
--,convert(varchar,format(13658.5,'###,###,###.00','de-de')) NettoSumme
UNION
SELECT 'Finale Freigabe' as Title
,53 Anzahl
,658555.65 NettoSumme
,4 SEQ
,1 COCKPIT_CHART_ID
--,convert(varchar,format(658555.65,'###,###,###.00','de-de')) NettoSumme
UNION
SELECT 'Zeitkritisch' as Title
,0 Anzahl
,'0.000' NettoSumme
,5 SEQ
,1 COCKPIT_CHART_ID
--ORDER BY SEQ
GO
ALTER view [dbo].[VWPM_CHART_TOP5] as
SELECT 'Kreditor1' as KRED_NAME
,56 as ANZ_BELEG
,convert(decimal(19,2),125565478.8) as Netto
,convert(decimal(19,2),10000) as Skonto
,1 COCKPIT_CHART_ID
UNION
SELECT 'Kreditor2' as KRED_NAME
,49 as ANZ_BELEG
,convert(decimal(19,2),8575222.48) as Netto
,convert(decimal(19,2),8555.4) as Skonto
,1 COCKPIT_CHART_ID
UNION
SELECT 'Kreditor3' as KRED_NAME
,43 as ANZ_BELEG
,convert(decimal(19,2),2582222.8) as Netto
,convert(decimal(19,2),5647.2) as Skonto
,1 COCKPIT_CHART_ID
UNION
SELECT 'Kreditor4' as KRED_NAME
,3 as ANZ_BELEG
,convert(decimal(19,2),68589.89) as Netto
,convert(decimal(19,2),48.96) as Skonto
,1 COCKPIT_CHART_ID
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBTF_CFG_COCKPIT](
[PK_CFG_COCKPIT_ID] [bigint] IDENTITY(1,1) NOT NULL,
[ACTIVE] [bit] NOT NULL,
[NAME] [nvarchar](150) NOT NULL,
[COMMENT] [nvarchar](500) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBTF_CFG_COCKPIT_ID] PRIMARY KEY CLUSTERED
(
[PK_CFG_COCKPIT_ID] 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_CFG_COCKPIT] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_ACTIVE] DEFAULT ((1)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_ADDED_WHO] DEFAULT (N'DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'PK_CFG_COCKPIT_ID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'On / Off Switch' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'ACTIVE'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'NAME'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT', @level2type=N'COLUMN',@level2name=N'COMMENT'
GO
USE [DD_ECM]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBTF_MAP_COCKPIT](
[PK_MAP_COCKPIT_ID] [bigint] IDENTITY(1,1) NOT NULL,
[FK_CFG_COCKPIT_ID] [bigint] NOT NULL,
[FK_CFG_USER_ID] [int] NULL,
[FK_CFG_GROUP_ID] [int] NULL,
[SEQUENCE] [smallint] NOT NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBTF_MAP_COCKPIT_ID] PRIMARY KEY CLUSTERED
(
[PK_MAP_COCKPIT_ID] 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_MAP_COCKPIT] ADD CONSTRAINT [DF_TBTF_MAP_COCKPIT_SEQUENCE] DEFAULT ((0)) FOR [SEQUENCE]
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] ADD CONSTRAINT [DF_TBTF_MAP_COCKPIT_ADDED_WHO] DEFAULT (N'DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] ADD CONSTRAINT [DF_TBTF_MAP_COCKPIT_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] WITH CHECK ADD CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_GROUPS] FOREIGN KEY([FK_CFG_GROUP_ID])
REFERENCES [dbo].[TBDD_GROUPS] ([GUID])
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] CHECK CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_GROUPS]
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] WITH CHECK ADD CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_USER] FOREIGN KEY([FK_CFG_USER_ID])
REFERENCES [dbo].[TBDD_USER] ([GUID])
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] CHECK CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBDD_USER]
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] WITH CHECK ADD CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBTF_CFG_COCKPIT] FOREIGN KEY([FK_CFG_COCKPIT_ID])
REFERENCES [dbo].[TBTF_CFG_COCKPIT] ([PK_CFG_COCKPIT_ID])
GO
ALTER TABLE [dbo].[TBTF_MAP_COCKPIT] CHECK CONSTRAINT [FK_TBTF_MAP_COCKPIT_TBTF_CFG_COCKPIT]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_MAP_COCKPIT', @level2type=N'COLUMN',@level2name=N'PK_MAP_COCKPIT_ID'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION](
[PK_CFG_COCKPIT_DEFINITION_ID] [bigint] IDENTITY(1,1) NOT NULL,
[FK_CFG_COCKPIT_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[PARENT_ID] [int] NOT NULL,
[TYPE_ID] [tinyint] NOT NULL,
[ICON_ID] [smallint] NOT NULL,
[NAME] [nvarchar](150) NULL,
[FK_PROFILE_ID] [int] NULL,
[FK_CHART_ID] [int] NULL,
[FK_MONITOR_ID] [int] NULL,
[SQL_QUERY] [nvarchar](max) NOT NULL,
[SQL_QUERY_COUNT] [nvarchar](max) NULL,
[COMMENT] [nvarchar](500) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBTF_CFG_COCKPIT_DEFINITION_PK_COCKPIT_ID] PRIMARY KEY CLUSTERED
(
[PK_CFG_COCKPIT_DEFINITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ACTIVE] DEFAULT ((1)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_PARENT_ID] DEFAULT ((0)) FOR [PARENT_ID]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_TYPE] DEFAULT ((0)) FOR [TYPE_ID]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ICON] DEFAULT ((0)) FOR [ICON_ID]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ADDED_WHO] DEFAULT (N'DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] ADD CONSTRAINT [DF_TBTF_CFG_COCKPIT_DEFINITION_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] WITH NOCHECK ADD CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBPM_PROFILE] FOREIGN KEY([FK_PROFILE_ID])
REFERENCES [dbo].[TBPM_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] NOCHECK CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBPM_PROFILE]
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] WITH CHECK ADD CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBTF_CFG_COCKPIT] FOREIGN KEY([FK_CFG_COCKPIT_ID])
REFERENCES [dbo].[TBTF_CFG_COCKPIT] ([PK_CFG_COCKPIT_ID])
GO
ALTER TABLE [dbo].[TBTF_CFG_COCKPIT_DEFINITION] CHECK CONSTRAINT [FK_TBTF_CFG_COCKPIT_DEFINITION_TBTF_CFG_COCKPIT]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'PK_CFG_COCKPIT_DEFINITION_ID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'On / Off Switch' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'ACTIVE'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 = Overview, 1 = Profile, 2 = Monitoring, 3 = Chart' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'TYPE_ID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Zahlenwerte für Symbole' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'ICON_ID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'NAME'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Optional description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBTF_CFG_COCKPIT_DEFINITION', @level2type=N'COLUMN',@level2name=N'COMMENT'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [FNTF_GET_COCKPIT_DEFINITION]
-- =================================================================
-- Returns a table with user allocated cockpits
--
-- Returns: TABLE
-- =================================================================
-- Copyright (c) 2026 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: 23.04.2026 / MK
-- Version Date / Editor: 23.04.2026 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 23.04.2026 / MK - First Version
CREATE OR ALTER FUNCTION [dbo].[FNTF_GET_COCKPIT_DEFINITION](
@pUSER_ID BIGINT, -- GUID from [TBDD_USER]
@pLANGUAGE NVARCHAR(10) = NULL -- OPTIONAL: Set Language if you want to Override setting in Profile table. Failsafe is getting data from [TBDD_USERS]
)
RETURNS @RESULT TABLE ( [PK_RESULT_ID] [bigint] Identity(1,1) NOT NULL,
[PK_CFG_COCKPIT_DEFINITION_ID] [bigint] NOT NULL,
[FK_CFG_COCKPIT_ID] [bigint] NOT NULL,
[PARENT_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[TYPE_ID] [tinyint] NOT NULL,
[ICON_INDEX] [smallint] NOT NULL,
[NAME] [nvarchar](150) NULL,
[FK_PROFILE_ID] [bigint] NULL,
[FK_CHART_ID] [bigint] NULL,
[FK_MONITOR_ID] [bigint] NULL,
[SQL_QUERY] [nvarchar](max) NOT NULL,
[SQL_QUERY_COUNT] [nvarchar](max) NULL,
[COMMENT] [nvarchar](500) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL)
AS
BEGIN
--=========================================-- Parameter copies (avoid sniffing) --========================================--
DECLARE @USER_ID BIGINT = @pUSER_ID,
@LANGUAGE NVARCHAR(10) = @pLANGUAGE;
----------------------------------------------------------------------------------------------------------------------------
--===============================================-- declare runtime vars --===============================================--
DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @MODULE_SHORT_NAME NVARCHAR(10) = 'PM';
----------------------------------------------------------------------------------------------------------------------------
--===================================================-- Failsafe settings --====================================================--
SET @LANGUAGE =
CASE
WHEN ((LEN(@LANGUAGE) = 0) AND (SELECT count([LANGUAGE]) FROM [TBDD_USER] WITH (NOLOCK) WHERE [GUID] = @USER_ID) = 1)
THEN (SELECT [LANGUAGE] FROM [TBDD_USER] WITH (NOLOCK) WHERE [GUID] = @USER_ID)
ELSE @LANGUAGE
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===============================================-- get user allocated cockpits --===============================================--
INSERT INTO @RESULT([PK_CFG_COCKPIT_DEFINITION_ID],
[FK_CFG_COCKPIT_ID],
[PARENT_ID],
[ACTIVE],
[TYPE_ID],
[ICON_INDEX],
[NAME],
[FK_PROFILE_ID],
[FK_CHART_ID],
[FK_MONITOR_ID],
[SQL_QUERY],
[SQL_QUERY_COUNT],
[COMMENT],
[ADDED_WHO],
[ADDED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN])
SELECT DISTINCT
[CCP].[PK_CFG_COCKPIT_DEFINITION_ID],
[CCP].[FK_CFG_COCKPIT_ID],
[CCP].[PARENT_ID],
[CCP].[ACTIVE],
[CCP].[TYPE_ID],
[CCP].[ICON_ID] ,
CASE
WHEN ((SELECT COUNT(1) FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME]) = 1)
THEN (SELECT [STRING1] FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME])
ELSE [CCP].[NAME]
END as [NAME],
[CCP].[FK_PROFILE_ID],
[CCP].[FK_CHART_ID],
[CCP].[FK_MONITOR_ID],
[CCP].[SQL_QUERY],
[CCP].[SQL_QUERY_COUNT],
[CCP].[COMMENT],
[CCP].[ADDED_WHO],
[CCP].[ADDED_WHEN],
[CCP].[CHANGED_WHO],
[CCP].[CHANGED_WHEN]
FROM [dbo].[TBTF_CFG_COCKPIT_DEFINITION] as [CCP] WITH (NOLOCK)
INNER JOIN [dbo].[TBTF_CFG_COCKPIT] as [CC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [CC].[PK_CFG_COCKPIT_ID]
WHERE [CC].[ACTIVE] in (0,1)
AND [CCP].[ACTIVE] in (0,1)
AND [CCP].[FK_CFG_COCKPIT_ID] IN
(SELECT TOP 100 PERCENT [FK_CFG_COCKPIT_ID]
FROM [dbo].[TBTF_MAP_COCKPIT] WITH (NOLOCK)
WHERE [FK_CFG_USER_ID] = @USER_ID
ORDER BY [SEQUENCE] ASC);
-----------------------------------------------------------------------------------------------------------------------------------
--===============================================-- get group allocated cockpits --==============================================--
INSERT INTO @RESULT([PK_CFG_COCKPIT_DEFINITION_ID],
[FK_CFG_COCKPIT_ID],
[PARENT_ID],
[ACTIVE],
[TYPE_ID],
[ICON_INDEX],
[NAME],
[FK_PROFILE_ID],
[FK_CHART_ID],
[FK_MONITOR_ID],
[SQL_QUERY],
[SQL_QUERY_COUNT],
[COMMENT],
[ADDED_WHO],
[ADDED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN])
SELECT DISTINCT
[CCP].[PK_CFG_COCKPIT_DEFINITION_ID],
[CCP].[FK_CFG_COCKPIT_ID],
[CCP].[PARENT_ID],
[CCP].[ACTIVE],
[CCP].[TYPE_ID],
[CCP].[ICON_ID] ,
CASE
WHEN ((SELECT COUNT(1) FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME]) = 1)
THEN (SELECT [STRING1] FROM [dbo].[TBDD_GUI_LANGUAGE_PHRASE] WITH (NOLOCK) WHERE [MODULE] IN (@MODULE_SHORT_NAME) AND [LANGUAGE] = @LANGUAGE AND [TITLE] = [CCP].[NAME])
ELSE [CCP].[NAME]
END as [NAME],
[CCP].[FK_PROFILE_ID],
[CCP].[FK_CHART_ID],
[CCP].[FK_MONITOR_ID],
[CCP].[SQL_QUERY],
[CCP].[SQL_QUERY_COUNT],
[CCP].[COMMENT],
[CCP].[ADDED_WHO],
[CCP].[ADDED_WHEN],
[CCP].[CHANGED_WHO],
[CCP].[CHANGED_WHEN]
FROM [dbo].[TBTF_CFG_COCKPIT_DEFINITION] as [CCP] WITH (NOLOCK)
INNER JOIN [dbo].[TBTF_CFG_COCKPIT] as [CC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [CC].PK_CFG_COCKPIT_ID
WHERE [CC].[ACTIVE] in (0,1)
AND [CCP].[ACTIVE] in (0,1)
AND [CCP].[FK_CFG_COCKPIT_ID] IN
(SELECT TOP 100 PERCENT [FK_CFG_COCKPIT_ID]
FROM [dbo].[TBTF_MAP_COCKPIT] WITH (NOLOCK)
WHERE [FK_CFG_GROUP_ID] IN
(SELECT DISTINCT [GROUP_ID]
FROM [dbo].[TBDD_GROUPS_USER] WITH (NOLOCK)
WHERE [USER_ID] = @USER_ID)
ORDER BY [SEQUENCE] ASC)
AND [FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT); -- Allow no duplicates
----------------------------------------------------------------------------------------------------------------------------
RETURN;
END;
/***
-- TEST:
SELECT * FROM [FNTF_GET_COCKPIT_DEFINITION](1,NULL)
SELECT * FROM [FNTF_GET_COCKPIT_DEFINITION](2,'en-us')
SELECT * FROM [FNTF_GET_COCKPIT_DEFINITION](5,'en-us')
***/
GO

View File

@@ -1,3 +1,4 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.0' where NAME = 'Process-Manager';
--Das Overview-SQL muss um folgenden LEFT JOIN erweitert werden
--#############################################################################################
--LEFT JOIN TBTF_PROFILE_FILES_WORK PFW ON T.DOC_ID = PFW.DocID AND T.PROFIL_ID = PFW.ProfileID
@@ -43,7 +44,6 @@ BEGIN
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0;
END
GO
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.0' where NAME = 'Process-Manager';
--#############################################################################################
IF NOT EXISTS(SELECT GUID FROM [DD_ECM].[dbo].[TBPM_KONFIGURATION] where [SQL_PROFILE_MAIN_VIEW] like '%(PFW.DocID IS NULL OR (PFW.InWork = 0 AND PFW.Worked = 0))%')
PRINT 'ACHTUNG: Bitte erste Anweisung in Skript beachten: Es fehlt eine Erweiterung im Overview SQL!!!'

View File

@@ -1,3 +1,4 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.1' where NAME = 'Process-Manager';
--Das Overview-SQL zur Workflowdarstellung muss um folgenden LEFT JOIN erweitert werden
--#############################################################################################
--LEFT JOIN TBTF_PROFILE_FILES_WORK PFW ON T.DOC_ID = PFW.DocID AND T.PROFIL_ID = PFW.ProfileID
@@ -5,7 +6,6 @@
--und einen where-Teil:
--#############################################################################################
--(PFW.DocID IS NULL OR (PFW.InWork = 0 AND PFW.Worked = 0))
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.1' where NAME = 'Process-Manager';
GO
IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'SQL_PROFILE_MAIN_VIEW'

View File

@@ -11,8 +11,15 @@
####################################*/
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.8.4' where NAME = 'Record-Organizer'
GO
INSERT INTO TBDD_USER_MODULES (USER_ID,MODULE_ID,IS_ADMIN)
IF EXISTS(select GUID from TBDD_USER_MODULES where USER_ID = (SELECT GUID AS USRID FROM TBDD_USER where USERNAME = '@INSTALL_ADMIN_USER')
AND MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI'))
BEGIN
PRINT 'USER-MODULE ZO GIBT ES SCHON!'
UPDATE TBDD_USER_MODULES SET IS_ADMIN = 1 WHERE GUID = (select GUID from TBDD_USER_MODULES where USER_ID = (SELECT GUID AS USRID FROM TBDD_USER where USERNAME = '@INSTALL_ADMIN_USER')
AND MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI'))
END
ELSE
INSERT INTO TBDD_USER_MODULES (USER_ID,MODULE_ID,IS_ADMIN)
SELECT GUID,(SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI'),1 FROM TBDD_USER where USERNAME = '@INSTALL_ADMIN_USER';
GO

View File

@@ -0,0 +1,93 @@
DECLARE @REMOTE_CONF_ID INT,@LOCAL_ENT_ID INT = 15,@PARID INT
DECLARE cursControls CURSOR FOR
SELECT GUID,PARENT_NODE
FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE ENTITY_ID = 15 ORDER BY PARENT_NODE
OPEN cursControls
FETCH NEXT FROM cursControls INTO @REMOTE_CONF_ID,@PARID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @LOCAL_CTRL_ID INT, @LOCAL_CTRL_SCR_ID INT
INSERT INTO [dbo].[TBPMO_STRUCTURE_NODES_CONFIGURATION]
([PARENT_NODE]
,[CONTROL_ID]
,[NAME]
,[ENTITY_ID]
,[TYPE_NODE]
,[NODE_IMAGE]
,[CREATE_RECORD]
,[COMMENT]
,[EXPAND]
,[FONT_FAMILY]
,[FONT_COLOR]
,[FONT_SIZE]
,[FONT_STYLE]
,[BACK_COLOR]
)
SELECT
[PARENT_NODE]
,[CONTROL_ID]
,[NAME]
,15
,[TYPE_NODE]
,[NODE_IMAGE]
,[CREATE_RECORD]
,[COMMENT]
,[EXPAND]
,[FONT_FAMILY]
,[FONT_COLOR]
,[FONT_SIZE]
,[FONT_STYLE]
,[BACK_COLOR]
FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_STRUCTURE_NODES_CONFIGURATION] WHERE GUID = 1
SELECT @LOCAL_CTRL_ID = MAX(GUID) FROM TBPMO_CONTROL;
--CONTROL-SCREEN INSERTEN
INSERT INTO [dbo].[TBPMO_CONTROL_SCREEN]
([CONTROL_ID]
,[SCREEN_ID]
,[CONTROL_TEXT]
,[X_LOC]
,[Y_LOC]
,[HEIGHT]
,[WIDTH]
,[FONT_FAMILY]
,[FONT_COLOR]
,[FONT_SIZE]
,[FONT_STYLE]
,[BACK_COLOR]
,[TAB_INDEX]
,[TAB_STOP] )
SELECT
@LOCAL_CTRL_ID
,[SCREEN_ID]
,[CONTROL_TEXT]
,[X_LOC]
,[Y_LOC]
,[HEIGHT]
,[WIDTH]
,[FONT_FAMILY]
,[FONT_COLOR]
,[FONT_SIZE]
,[FONT_STYLE]
,[BACK_COLOR]
,[TAB_INDEX]
,[TAB_STOP]
FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CONF_ID;
SELECT @LOCAL_CTRL_SCR_ID = MAX(GUID) FROM [TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @LOCAL_CTRL_ID;
INSERT INTO [dbo].[TBPMO_CONTROL_LANGUAGE]
([LANGUAGE_TYPE]
,[CONTROL_SCREEN_ID]
,[CAPTION]
,[HINT])
SELECT [LANGUAGE_TYPE]
,@LOCAL_CTRL_SCR_ID
,[CAPTION]
,[HINT] FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_LANGUAGE] WHERE CONTROL_SCREEN_ID = (
SELECT GUID FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CONF_ID)
FETCH NEXT FROM cursControls INTO @REMOTE_CONF_ID,@PARID
END
CLOSE cursControls
DEALLOCATE cursControls

View File

@@ -0,0 +1,78 @@
DECLARE @NC_PERSONAL INT,@NC_SF INT,@SN_MAIN_GUID INTEGER,@NODE_PERSONAL INTEGER,@ID1 VARCHAR(100)
SELECT @NC_PERSONAL = GUID FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE NAME = 'Hauptknoten Personal'
SELECT @NC_SF = GUID FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE NAME = 'Dateiablage'
SELECT @SN_MAIN_GUID = [CAT_STRING] FROM TBDD_CATALOG where CAT_TITLE = 'PA_NODE_GUID_STAMM';
DECLARE cursMA CURSOR FOR
SELECT A.Personal FROM
(select 'Fuchs, Nadine' as Personal union
select 'König, Klaus' as Personal union
select 'Müller, Gabriele' as Personal union
select 'Schröder, Anke' as Personal union
select 'Li, Kim' as Personal union
select 'Zimmer, Klaus' as Personal union
select 'Faber, Sandra' as Personal union
select 'Hofamnn, Thomas' as Personal) A -- WHERE NOT EXISTS(SELECT GUID FROM TBPMO_STRUCTURE_NODES WHERE ID1 = A.Personal)
OPEN cursMA
FETCH NEXT FROM cursMA INTO @ID1
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT GUID FROM [TBPMO_STRUCTURE_NODES] WHERE ID1 = @ID1 and NODE_CONFIG_ID = @NC_PERSONAL AND PARENT_GUID = @SN_MAIN_GUID)
INSERT INTO [dbo].[TBPMO_STRUCTURE_NODES]
([NODE_CONFIG_ID]
,[NODE_CAPTION]
,[ID1]
,[PARENT_GUID])
VALUES
(@NC_PERSONAL,
@ID1,
@ID1,
@SN_MAIN_GUID);
ELSE
PRINT 'MITARBEITER-KNOTEN GIBT ES SChon'
SELECT @NODE_PERSONAL = GUID FROM TBPMO_STRUCTURE_NODES WHERE ID1 = @ID1 AND NODE_CONFIG_ID = @NC_PERSONAL;
DECLARE @Folder Varchar(100)
DECLARE CursDokFolder CURSOR FOR
select 'Urlaub' as DOK_FOLDER UNION
select 'Vertragsunterlagen' as DOK_FOLDER UNION
select 'Einstellungsunterlagen' as DOK_FOLDER UNION
select 'Urlaub' as DOK_FOLDER UNION
select 'Weiterbildung' as DOK_FOLDER UNION
select 'Meldungen' as DOK_FOLDER UNION
select 'Lohn und Gehalt' as DOK_FOLDER
OPEN CursDokFolder
FETCH NEXT FROM CursDokFolder INTO @Folder
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT GUID FROM [TBPMO_STRUCTURE_NODES] WHERE ID1 = @ID1 + '-' + @Folder AND PARENT_GUID = @NODE_PERSONAL)
--Dokumentenordner anlegen
INSERT INTO [dbo].[TBPMO_STRUCTURE_NODES]
([NODE_CONFIG_ID]
,[NODE_CAPTION]
,[ID1]
,[PARENT_GUID])
VALUES
(@NC_SF,
@Folder,
@ID1 + '-' + @Folder,
@NODE_PERSONAL);
ELSE
PRINT 'Knoten ' + @ID1 + '-' + @Folder + ' gibt es schon!'
FETCH NEXT FROM CursDokFolder INTO @Folder
END
CLOSE CursDokFolder
DEALLOCATE CursDokFolder
FETCH NEXT FROM cursMA INTO @ID1
END
CLOSE cursMA
DEALLOCATE cursMA

View File

@@ -0,0 +1,86 @@
-- =============================================
-- Author: <Digital Data - Schreiber, Marlon>
-- Description: <Diese Prozedur erstellt die Records und Cotnrols für die Mitarbeiter
BEGIN
DECLARE
@NODE_GUID INTEGER,
@NODE_CONFIG_ID INTEGER,
@ENTITY_ID INTEGER,
@CAPTION VARCHAR(100),
@ID1 VARCHAR(100),
@TYPE_NODE SMALLINT,
@PARENT_GUID INTEGER,
@NODES_CREATED INTEGER,
@NC_PERSON_BASE INTEGER,
@CTRL_ID_NN INTEGER,
@CTRL_ID_VN INTEGER
SELECt @NC_PERSON_BASE = GUID FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE NAME = 'Hauptknoten Personal';
SELECT @ENTITY_ID = GUID FROM TBPMO_FORM WHERE NAME = 'Personalakte';
SELECT @CTRL_ID_NN = GUID FROM TBPMO_CONTROL WHERE FORM_ID = @ENTITY_ID AND NAME = 'txtNachname'
SELECT @CTRL_ID_VN = GUID FROM TBPMO_CONTROL WHERE FORM_ID = @ENTITY_ID AND NAME = 'txtVorname'
DECLARE MYCURSOR CURSOR LOCAL FOR
select T.GUID, T1.GUID as NODE_CONFIG_ID, T1.[ENTITY_ID],T.NODE_CAPTION,T.ID1,T1.TYPE_NODE,T.PARENT_GUID
, T.RECORD_ID
from
TBPMO_STRUCTURE_NODES T,
TBPMO_STRUCTURE_NODES_CONFIGURATION T1
WHERE
T.NODE_CONFIG_ID = T1.GUID AND T1.CREATE_RECORD = 1
AND T1.ENTITY_ID = 5 AND T1.NAME in ('Dateiablage','Hauptknoten Personal')
and T.GUID <> 3 AND T.NODE_CAPTION = 'Meldungen'
--select * from TBPMO_STRUCTURE_NODES where NODE_CONFIG_ID = 19
OPEN MYCURSOR
FETCH NEXT FROM MYCURSOR INTO @NODE_GUID,@NODE_CONFIG_ID,@ENTITY_ID,@CAPTION,@ID1,@TYPE_NODE,@PARENT_GUID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @RECORD_ID INTEGER
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBPMO_RECORD WHERE NODE_GUID = @NODE_GUID)
BEGIN
EXEC PRPMO_CREATE_RECORD @RECORD_ID Output,@ENTITY_ID,'DDPA_CREATE'
IF @RECORD_ID > 0
BEGIN
UPDATE TBPMO_RECORD SET NODE_GUID = @NODE_GUID WHERE GUID = @RECORD_ID
SET @NODES_CREATED += 1
END
END
ELSE
BEGIN
SELECT @RECORD_ID = GUID FROM TBPMO_RECORD WHERE NODE_GUID = @NODE_GUID
END
IF NOT EXISTS(SELECT GUID FROM TBPMO_STRUCTURE_NODES WHERE GUID = @NODE_GUID AND RECORD_ID = @RECORD_ID)
BEGIN
UPDATE TBPMO_STRUCTURE_NODES SET RECORD_ID = @RECORD_ID WHERE GUID = @NODE_GUID
END
IF @NODE_CONFIG_ID = @NC_PERSON_BASE
BEGIN
DECLARE @NACHNAME VARCHAR(50),@VORNAME VARCHAR(50),@NEW_CONTR_VAL_ID INTEGER
SELECT @NACHNAME = Data FROM dbo.FNDD_SPLIT_STRING(@ID1,',') where SequentialOrder = 1;
SELECT @VORNAME = Data FROM dbo.FNDD_SPLIT_STRING(@ID1,',') where SequentialOrder = 2;
EXEC PRPMO_CREATE_CONTROL_VALUE @NEW_CONTR_VAL_ID Output,@CTRL_ID_NN,@RECORD_ID,@NACHNAME,'Digital Data'
EXEC PRPMO_CREATE_CONTROL_VALUE @NEW_CONTR_VAL_ID Output,@CTRL_ID_VN,@RECORD_ID,@VORNAME,'Digital Data'
END
END
--########
FETCH NEXT FROM MYCURSOR INTO @NODE_GUID,@NODE_CONFIG_ID,@ENTITY_ID,@CAPTION,@ID1,@TYPE_NODE,@PARENT_GUID
END
CLOSE MYCURSOR
DEALLOCATE MYCURSOR
PRINT 'RECORDS CREATED: ' + CONVERT(VARCHAR(20),@NODES_CREATED)
END

View File

@@ -0,0 +1,107 @@
DECLARE @REMOTE_CTRL_ID INT,@LOCAL_ENT_ID INT = 15
DECLARE cursControls CURSOR FOR
SELECT GUID
FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL] WHERE FORM_ID = 5 and guid <> 1
OPEN cursControls
FETCH NEXT FROM cursControls INTO @REMOTE_CTRL_ID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @LOCAL_CTRL_ID INT, @LOCAL_CTRL_SCR_ID INT
INSERT INTO [dbo].[TBPMO_CONTROL]
(FORM_ID
,[CONTROL_TYPE_ID]
,[NAME]
,[FORMAT_TYPE]
,[SHOW_COLUMN]
,[COL_NAME]
,[REQUIRED]
,[PARENT_CONTROL_ID]
,[MASTER_DATA_ID]
,[MULTILINE]
,[STATIC_LIST]
,[DEFAULT_VALUE]
,[SQL_COMMAND_1]
,[SQL_COMMAND_2]
,[CONNECTION_ID_1]
,[CONNECTION_ID_2]
,[READ_ONLY]
,[VALIDATION]
,[VISIBLE]
,[TREE_VIEW]
,[SELECT_ONLY]
,[AUTO_SUGGEST])
SELECT
@LOCAL_ENT_ID
,[CONTROL_TYPE_ID]
,[NAME]
,[FORMAT_TYPE]
,[SHOW_COLUMN]
,[COL_NAME]
,[REQUIRED]
,[PARENT_CONTROL_ID]
,[MASTER_DATA_ID]
,[MULTILINE]
,[STATIC_LIST]
,[DEFAULT_VALUE]
,[SQL_COMMAND_1]
,[SQL_COMMAND_2]
,[CONNECTION_ID_1]
,[CONNECTION_ID_2]
,[READ_ONLY]
,[VALIDATION]
,[VISIBLE]
,[TREE_VIEW]
,[SELECT_ONLY]
,[AUTO_SUGGEST]
FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL] WHERE GUID = @REMOTE_CTRL_ID
SELECT @LOCAL_CTRL_ID = MAX(GUID) FROM TBPMO_CONTROL;
--CONTROL-SCREEN INSERTEN
INSERT INTO [dbo].[TBPMO_CONTROL_SCREEN]
([CONTROL_ID]
,[SCREEN_ID]
,[CONTROL_TEXT]
,[X_LOC]
,[Y_LOC]
,[HEIGHT]
,[WIDTH]
,[FONT_FAMILY]
,[FONT_COLOR]
,[FONT_SIZE]
,[FONT_STYLE]
,[BACK_COLOR]
,[TAB_INDEX]
,[TAB_STOP] )
SELECT
@LOCAL_CTRL_ID
,[SCREEN_ID]
,[CONTROL_TEXT]
,[X_LOC]
,[Y_LOC]
,[HEIGHT]
,[WIDTH]
,[FONT_FAMILY]
,[FONT_COLOR]
,[FONT_SIZE]
,[FONT_STYLE]
,[BACK_COLOR]
,[TAB_INDEX]
,[TAB_STOP]
FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CTRL_ID;
SELECT @LOCAL_CTRL_SCR_ID = MAX(GUID) FROM [TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @LOCAL_CTRL_ID;
INSERT INTO [dbo].[TBPMO_CONTROL_LANGUAGE]
([LANGUAGE_TYPE]
,[CONTROL_SCREEN_ID]
,[CAPTION]
,[HINT])
SELECT [LANGUAGE_TYPE]
,@LOCAL_CTRL_SCR_ID
,[CAPTION]
,[HINT] FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_LANGUAGE] WHERE CONTROL_SCREEN_ID = (
SELECT GUID FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CTRL_ID)
FETCH NEXT FROM cursControls INTO @REMOTE_CTRL_ID
END
CLOSE cursControls
DEALLOCATE cursControls

View File

@@ -103,7 +103,7 @@ SELECT TOP 100 PERCENT
MAX(T.dwDocID) as DocID
,T.dwParentID
,dbo.FNPMO_GET_WINDREAM_FILE_PATH (MAX(T.dwDocID)) AS FULL_FILENAME
,(SELECT szLongName from DD_VMP01_APS01_windream60.dbo.BaseAttributes WHERE dwDocID = MAX(T.dwDocID)) AS [Filename]
,(SELECT szLongName from windream60.dbo.BaseAttributes WHERE dwDocID = MAX(T.dwDocID)) AS [Filename]
,ISNULL(T.wmVar09,'NO DOCTYPE') AS Doctype
,(SELECT MAX(ISNULL(T.dwVersionNumber,'1')) from DD_VMP01_APS01_windream60.dbo.BaseAttributes WHERE dwDocID = MAX(T.dwDocID)) AS [Version]
@@ -112,14 +112,14 @@ SELECT TOP 100 PERCENT
,T1.szDocTypeName AS OBJECTTYPE
,T.dwObjectTypeID
FROM
DD_VMP01_APS01_windream60.dbo.BaseAttributes T
,DD_VMP01_APS01_windream60.dbo.ObjectType T1
windream60.dbo.BaseAttributes T
,windream60.dbo.ObjectType T1
WHERE
--T.dwParentID = 1896955 AND
T.dwCatalogID = 1
AND T.dwObjectTypeID = 10005
AND T.dwObjectTypeID = T1.dwObjectTypeID
AND T.szText30 = 'ADDI-RELATION'
AND T.szText38 = 'ADDI-RELATION'
GROUP BY
T.dwVersionID
,T.dwParentID

View File

@@ -21,14 +21,14 @@ BEGIN
-- SELECT @WM_LAUFWERKBUCHSTABE = WM_LAUFWERKBUCHSTABE FROM TBPMO_KONFIGURATION WHERE GUID = 1
--SELECT @SHAREPATH = WMPATH_PREFIX FROM TBPMO_KONFIGURATION WHERE GUID = 1;
SELECT @FSFLAGS = dwFSFlags FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID
SELECT @FSFLAGS = dwFSFlags FROM [windream60].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 [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID
SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID
WHILE @a > 0
BEGIN
IF @i = 0
@@ -58,7 +58,7 @@ BEGIN
END
END
SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @DOCID
SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @DOCID
SET @i = @i + 1
END
END

View File

@@ -37,6 +37,8 @@ SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Changed 12.05.2025 MS Status 3004 when Messages sent
--Changed 09.05.2025 MS Withdrawn nur als Status in History
--Changed 23.04.2025 MS Neuer Dokumenten und Withdrawn-Status
--CHANGED 06.06.2024 MS Status 2007, emailMeldungen integriert
--CHANGED 11.06.2024 MS Status 2007, Cursor für andere REceiver
@@ -56,13 +58,19 @@ BEGIN TRY
@STATUS = STATUS,
@USER_REFERENCE = USER_REFERENCE
FROM INSERTED
PRINT '@USER_REFERENCE: ' + @USER_REFERENCE
PRINT 'STATUS IS: ' + CONVERT(VARCHAR(10),@STATUS)
--PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2
IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 1
BEGIN
PRINT 'REGULÄRER 1erStatus.. '
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009) /*ENVELOPE QUEUED*/
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009)
BEGIN
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID;
--IF @STATUS In (1009,10009) AND @USER_REFERENCE <> 'API'
-- INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,STATUS,ADDED_WHEN,ACTION_DATE) VALUES (@ENVELOPE_ID,3006,GETDATE(),GETDATE()); --MessageWithdrawn/Deleted Sent
END
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 2
BEGIN
@@ -88,7 +96,6 @@ BEGIN TRY
SELECT @COMMENT = COMMENT,@REC_EMAIL = USER_REFERENCE FROM INSERTED
SELECT @NAME_PORTAL = [EXTERNAL_PROGRAM_NAME],@SENDING_PROFILE = SENDING_PROFILE FROM [DD_ECM].[dbo].[TBSIG_CONFIG];
SELECT @EML_BODY_ADM = BODY,@EML_SUBJ_ADM = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM'
SELECT BODY,SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM'
SELECT @EML_BODY_REC = BODY,@EML_SUBJ_REC = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC'
SELECT @EML_BODY_REC2 = BODY,@EML_SUBJ_REC2 = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC_2'
@@ -117,9 +124,10 @@ BEGIN TRY
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_SUBJ_REC = REPLACE(@EML_SUBJ_REC,'[DOCUMENT_TITLE]',@TITLE)
PRINT 'EMAIL2...'
PRINT '@REC_EMAIL: ' + COALESCE(@REC_EMAIL,'IS NULL')
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@REC_EMAIL, @EML_SUBJ_REC, @EML_BODY_REC, 'SIG RECEIVER REJECTED2', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
PRINT 'EMAIL2 inserted...'
/*Andere Receiver über die Ablehnung informieren*/
SET @EML_SUBJ_REC2 = REPLACE(@EML_SUBJ_REC2,'[DOCUMENT_TITLE]',@TITLE)
DECLARE @BODY_RECEIVER NVARCHAR(MAX),@EML_RECEIVER2 VARCHAR(250)
@@ -145,7 +153,8 @@ BEGIN TRY
END
CLOSE cursReceiver_TBSIG_ENVELOPE_HISTORY
DEALLOCATE cursReceiver_TBSIG_ENVELOPE_HISTORY
UPDATE TBSIG_ENVELOPE SET STATUS = 10007 WHERE GUID = @ENVELOPE_ID /*Umschlag abgelehnt*/
UPDATE TBSIG_ENVELOPE SET STATUS = 10007 WHERE GUID = @ENVELOPE_ID /*Umschlag abgelehnt*/;
INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,STATUS,USER_REFERENCE, ADDED_WHEN,ACTION_DATE) VALUES (@ENVELOPE_ID,3004,@USER_REFERENCE,GETDATE(),GETDATE()); --MessageDeletion Sent
END
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 3
@@ -167,6 +176,8 @@ BEGIN CATCH
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
INSERT INTO TBDD_SQL_COMMANDS(TITLE,SQL_COMMAND) VALUES ('REPORT ENV ALL_USER_THIS_MONTH','EXEC PRSIG_ADMIN_GET_ALL_ENV_INV_REPORT 0')
GO

View File

@@ -0,0 +1,150 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.5.4.4' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Changed 22.05.2025 MS Ablehnung über insert mit Envelope-Creator als User
--Changed 23.04.2025 MS Neuer Dokumenten und Withdrawn-Status
--CHANGED 06.06.2024 MS Status 2007, emailMeldungen integriert
--CHANGED 11.06.2024 MS Status 2007, Cursor für andere REceiver
ALTER TRIGGER [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] ON [dbo].[TBSIG_ENVELOPE_HISTORY]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@GUID BIGINT,
@ENVELOPE_ID INTEGER,
@STATUS INTEGER,
@USER_REFERENCE VARCHAR(100)
SELECT
@GUID = GUID,
@ENVELOPE_ID = ENVELOPE_ID,
@STATUS = STATUS,
@USER_REFERENCE = USER_REFERENCE
FROM INSERTED
PRINT 'STATUS IS: ' + CONVERT(VARCHAR(10),@STATUS)
--PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2
IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 1
BEGIN
PRINT 'REGULÄRER 1erStatus.. '
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009) /*ENVELOPE QUEUED*/
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 2
BEGIN
IF @STATUS = 2005 /*DOKUMENT SIGINIERT*/
BEGIN
DECLARE @COUNT_SIGNED INT, @COUNT_SIGNERS INT
SELECT @COUNT_SIGNED = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 2005
SELECT @COUNT_SIGNERS = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID
IF @COUNT_SIGNED = @COUNT_SIGNERS
BEGIN
UPDATE TBSIG_ENVELOPE SET STATUS = 1006 WHERE GUID = @ENVELOPE_ID /*FULLY SIGNED*/
INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID, USER_REFERENCE, STATUS, ACTION_DATE) VALUES (@ENVELOPE_ID, 'System', 1006, DATEADD(second, 5, GETDATE()))
END
ELSE
UPDATE TBSIG_ENVELOPE SET STATUS = 1005 WHERE GUID = @ENVELOPE_ID /*PARTLY SIGNED*/
END
ELSE IF @STATUS = 2007 /*VORGANG DURCH USER ABGELEHNT*/
BEGIN
DECLARE @COMMENT VARCHAR(500),@REC_EMAIL VARCHAR(200),@EML_BODY_ADM VARCHAR(3000),@EML_SUBJ_ADM VARCHAR(3000),@EML_BODY_REC VARCHAR(3000),@EML_SUBJ_REC VARCHAR(3000),
@EML_BODY_REC2 VARCHAR(3000),@EML_SUBJ_REC2 VARCHAR(3000)
,@ADM_MAIL VARCHAR(250),@ADM_NAME VARCHAR(200),@TITLE VARCHAR(200),@NAME_PORTAL VARCHAR(100),@NAME_RECEIVER VARCHAR(150),@SENDING_PROFILE INT,@ENV_UUID VARCHAR(200)
SELECT @COMMENT = COMMENT,@REC_EMAIL = USER_REFERENCE FROM INSERTED
SELECT @NAME_PORTAL = [EXTERNAL_PROGRAM_NAME],@SENDING_PROFILE = SENDING_PROFILE FROM [DD_ECM].[dbo].[TBSIG_CONFIG];
SELECT @EML_BODY_ADM = BODY,@EML_SUBJ_ADM = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM'
SELECT BODY,SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM'
SELECT @EML_BODY_REC = BODY,@EML_SUBJ_REC = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC'
SELECT @EML_BODY_REC2 = BODY,@EML_SUBJ_REC2 = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC_2'
SELECT @ADM_MAIL = USER_EMAIL,@ADM_NAME = USER_PRE_NAME, @TITLE = TITLE,@ENV_UUID = [ENVELOPE_UUID] FROM VWSIG_ENVELOPE_DATA WHERE ENVELOPE_ID = @ENVELOPE_ID
SELECT @NAME_RECEIVER = [NAME] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL = @REC_EMAIL
IF @NAME_RECEIVER IS NULL
BEGIN
SET @NAME_RECEIVER = 'signFLOW - SYSTEM'
END
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_SENDER]',@ADM_NAME)
--PRINT '#1' + @EML_BODY_ADM
--PRINT '#2' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[DOCUMENT_TITLE]',@TITLE)
--PRINT '#3' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[REASON]',@COMMENT)
--PRINT '#4' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_PORTAL]',@NAME_PORTAL)
PRINT '@EML_BODY_ADM: '
PRINT @EML_BODY_ADM
SET @EML_SUBJ_ADM = REPLACE(@EML_SUBJ_ADM,'[DOCUMENT_TITLE]',@TITLE)
PRINT '@EML_SUBJ_ADM: '
PRINT @EML_SUBJ_ADM
PRINT 'EMAIL1...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@ADM_MAIL, @EML_SUBJ_ADM, @EML_BODY_ADM, 'SIG RECEIVER REJECTED1', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_SENDER]',@ADM_NAME)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[REASON]',@COMMENT)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_PORTAL]',@NAME_PORTAL)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_SUBJ_REC = REPLACE(@EML_SUBJ_REC,'[DOCUMENT_TITLE]',@TITLE)
IF @REC_EMAIL <> @ADM_MAIL
BEGIN
PRINT 'EMAIL2...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@REC_EMAIL, @EML_SUBJ_REC, @EML_BODY_REC, 'SIG RECEIVER REJECTED2', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
END
/*Andere Receiver über die Ablehnung informieren*/
SET @EML_SUBJ_REC2 = REPLACE(@EML_SUBJ_REC2,'[DOCUMENT_TITLE]',@TITLE)
DECLARE @BODY_RECEIVER NVARCHAR(MAX),@EML_RECEIVER2 VARCHAR(250)
DECLARE cursReceiver_TBSIG_ENVELOPE_HISTORY CURSOR FOR
SELECT [NAME], [REC_EMAIL] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL <> @REC_EMAIL
OPEN cursReceiver_TBSIG_ENVELOPE_HISTORY
FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '@EML_BODY_REC2: ' + @EML_BODY_REC2
SET @BODY_RECEIVER = @EML_BODY_REC2
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_SENDER]',@ADM_NAME)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[REASON]',@COMMENT)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_PORTAL]',@NAME_PORTAL)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
PRINT 'EMAIL3...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@EML_RECEIVER2, @EML_SUBJ_REC2, @BODY_RECEIVER, 'SIG RECEIVER REJECTED3', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2
END
CLOSE cursReceiver_TBSIG_ENVELOPE_HISTORY
DEALLOCATE cursReceiver_TBSIG_ENVELOPE_HISTORY
UPDATE TBSIG_ENVELOPE SET STATUS = 10007 WHERE GUID = @ENVELOPE_ID /*Umschlag abgelehnt*/
END
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 3
IF @STATUS = 3001 /*EMAIL OUT SIGNATUREINLADUNG*/
BEGIN
DECLARE @COUNT_MSG_OUT INT, @COUNT_USERS2_SIGN INT
SELECT @COUNT_MSG_OUT = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 3001
PRINT '@COUNT_MSG_OUT:' + CONVERT(VARCHAR(3),@COUNT_MSG_OUT)
SELECT @COUNT_USERS2_SIGN = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID
PRINT '@@COUNT_USERS2_SIGN:' + CONVERT(VARCHAR(3),@COUNT_USERS2_SIGN)
IF @COUNT_MSG_OUT = @COUNT_USERS2_SIGN
UPDATE TBSIG_ENVELOPE SET STATUS = 1004 WHERE GUID = @ENVELOPE_ID /*ALL INVITATIONS SENT*/
-- INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,USER_REFERENCE,STATUS,ACTION_DATE) VALUES (@ENVELOPE_ID,'Digital Data Email-Service',1004,GETDATE())
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO

View File

@@ -0,0 +1,12 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.5.5' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
IF NOT EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TBSIG_ENVELOPE_RECEIVER'
AND COLUMN_NAME = 'PARENT_ENVELOPE_RECEIVER_ID ')
BEGIN
PRINT 'SPALTE PARENT_ENVELOPE_RECEIVER_ID EXISTIERT NICHT IN TBSIG_ENVELOPE_RECEIVER'
ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER ADD PARENT_ENVELOPE_RECEIVER_ID INTEGER NOT NULL DEFAULT 0;
END
GO

View File

@@ -0,0 +1,165 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.5.6' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CHANGED 02.07.2025 TBSIG_DOCUMENT_RECEIVER_ELEMENT INTEGRIERT
ALTER PROCEDURE [dbo].[PRSIG_DELETE_ENVELOPE_FINALLY_ID] @ENV_GUID INT
AS
DELETE FROM TBSIG_ENVELOPE_CERTIFICATE where ENVELOPE_ID = @ENV_GUID;
DELETE FROM TBSIG_DOCUMENT_RECEIVER_ELEMENT] where DOCUMENT_ID IN (SELECT GUID FROM TBSIG_ENVELOPE_DOCUMENT where ENVELOPE_ID = @ENV_GUID);
DELETE FROM TBSIG_ENVELOPE_DOCUMENT where ENVELOPE_ID = @ENV_GUID;
DELETE FROM TBSIG_ENVELOPE_HISTORY where ENVELOPE_ID = @ENV_GUID;
DELETE FROM TBSIG_ENVELOPE_RECEIVER where ENVELOPE_ID = @ENV_GUID;
DELETE FROM TBSIG_ENVELOPE where GUID = @ENV_GUID;
GO
ALTER TABLE TBSIG_DOCUMENT_RECEIVER_ELEMENT
ADD CONSTRAINT UQTBSIG_DOCUMENT_RECEIVER_ELEMENT_DocID_PosX_PosY UNIQUE (DOCUMENT_ID, POSITION_X, POSITION_Y);
GO
--Changed 14.07.2025 MS Termination of commands, Fehler Rückgabe von select
--Changed 22.05.2025 MS Ablehnung über insert mit Envelope-Creator als User
--Changed 23.04.2025 MS Neuer Dokumenten und Withdrawn-Status
--CHANGED 06.06.2024 MS Status 2007, emailMeldungen integriert
--CHANGED 11.06.2024 MS Status 2007, Cursor für andere REceiver
ALTER TRIGGER [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] ON [dbo].[TBSIG_ENVELOPE_HISTORY]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@GUID BIGINT,
@ENVELOPE_ID INTEGER,
@STATUS INTEGER,
@USER_REFERENCE VARCHAR(100)
SELECT
@GUID = GUID,
@ENVELOPE_ID = ENVELOPE_ID,
@STATUS = STATUS,
@USER_REFERENCE = USER_REFERENCE
FROM INSERTED
PRINT 'STATUS IS: ' + CONVERT(VARCHAR(10),@STATUS)
--PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2
IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 1
BEGIN
PRINT 'REGULÄRER 1erStatus.. '
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009) /*ENVELOPE QUEUED*/
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID;
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 2
BEGIN
IF @STATUS = 2005 /*DOKUMENT SIGINIERT*/
BEGIN
DECLARE @COUNT_SIGNED INT, @COUNT_SIGNERS INT
SELECT @COUNT_SIGNED = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 2005
SELECT @COUNT_SIGNERS = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID
IF @COUNT_SIGNED = @COUNT_SIGNERS
BEGIN
UPDATE TBSIG_ENVELOPE SET STATUS = 1006 WHERE GUID = @ENVELOPE_ID; /*FULLY SIGNED*/
INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID, USER_REFERENCE, STATUS, ACTION_DATE) VALUES (@ENVELOPE_ID, 'System', 1006, DATEADD(second, 5, GETDATE()));
END
ELSE
UPDATE TBSIG_ENVELOPE SET STATUS = 1005 WHERE GUID = @ENVELOPE_ID; /*PARTLY SIGNED*/
END
ELSE IF @STATUS = 2007 /*VORGANG DURCH USER ABGELEHNT*/
BEGIN
DECLARE @COMMENT VARCHAR(500),@REC_EMAIL VARCHAR(200),@EML_BODY_ADM VARCHAR(3000),@EML_SUBJ_ADM VARCHAR(3000),@EML_BODY_REC VARCHAR(3000),@EML_SUBJ_REC VARCHAR(3000),
@EML_BODY_REC2 VARCHAR(3000),@EML_SUBJ_REC2 VARCHAR(3000)
,@ADM_MAIL VARCHAR(250),@ADM_NAME VARCHAR(200),@TITLE VARCHAR(200),@NAME_PORTAL VARCHAR(100),@NAME_RECEIVER VARCHAR(150),@SENDING_PROFILE INT,@ENV_UUID VARCHAR(200)
SELECT @COMMENT = COMMENT,@REC_EMAIL = USER_REFERENCE FROM INSERTED;
SELECT @NAME_PORTAL = [EXTERNAL_PROGRAM_NAME],@SENDING_PROFILE = SENDING_PROFILE FROM [DD_ECM].[dbo].[TBSIG_CONFIG];
SELECT @EML_BODY_ADM = BODY,@EML_SUBJ_ADM = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM';
SELECT @EML_BODY_REC = BODY,@EML_SUBJ_REC = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC';
SELECT @EML_BODY_REC2 = BODY,@EML_SUBJ_REC2 = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC_2';
SELECT @ADM_MAIL = USER_EMAIL,@ADM_NAME = USER_PRE_NAME, @TITLE = TITLE,@ENV_UUID = [ENVELOPE_UUID] FROM VWSIG_ENVELOPE_DATA WHERE ENVELOPE_ID = @ENVELOPE_ID;
SELECT @NAME_RECEIVER = [NAME] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL = @REC_EMAIL;
IF @NAME_RECEIVER IS NULL
BEGIN
SET @NAME_RECEIVER = 'signFLOW - SYSTEM'
END
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_SENDER]',@ADM_NAME)
--PRINT '#1' + @EML_BODY_ADM
--PRINT '#2' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[DOCUMENT_TITLE]',@TITLE)
--PRINT '#3' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[REASON]',@COMMENT)
--PRINT '#4' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_PORTAL]',@NAME_PORTAL)
PRINT '@EML_BODY_ADM: '
PRINT @EML_BODY_ADM
SET @EML_SUBJ_ADM = REPLACE(@EML_SUBJ_ADM,'[DOCUMENT_TITLE]',@TITLE)
PRINT '@EML_SUBJ_ADM: '
PRINT @EML_SUBJ_ADM
PRINT 'EMAIL1...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@ADM_MAIL, @EML_SUBJ_ADM, @EML_BODY_ADM, 'SIG RECEIVER REJECTED1', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_SENDER]',@ADM_NAME)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[REASON]',@COMMENT)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_PORTAL]',@NAME_PORTAL)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_SUBJ_REC = REPLACE(@EML_SUBJ_REC,'[DOCUMENT_TITLE]',@TITLE)
IF @REC_EMAIL <> @ADM_MAIL
BEGIN
PRINT 'EMAIL2...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@REC_EMAIL, @EML_SUBJ_REC, @EML_BODY_REC, 'SIG RECEIVER REJECTED2', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
END
/*Andere Receiver über die Ablehnung informieren*/
SET @EML_SUBJ_REC2 = REPLACE(@EML_SUBJ_REC2,'[DOCUMENT_TITLE]',@TITLE)
DECLARE @BODY_RECEIVER NVARCHAR(MAX),@EML_RECEIVER2 VARCHAR(250)
DECLARE cursReceiver_TBSIG_ENVELOPE_HISTORY CURSOR FOR
SELECT [NAME], [REC_EMAIL] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL <> @REC_EMAIL
OPEN cursReceiver_TBSIG_ENVELOPE_HISTORY
FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '@EML_BODY_REC2: ' + @EML_BODY_REC2
SET @BODY_RECEIVER = @EML_BODY_REC2
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_SENDER]',@ADM_NAME)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[REASON]',@COMMENT)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_PORTAL]',@NAME_PORTAL)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
PRINT 'EMAIL3...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@EML_RECEIVER2, @EML_SUBJ_REC2, @BODY_RECEIVER, 'SIG RECEIVER REJECTED3', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2
END
CLOSE cursReceiver_TBSIG_ENVELOPE_HISTORY
DEALLOCATE cursReceiver_TBSIG_ENVELOPE_HISTORY
UPDATE TBSIG_ENVELOPE SET STATUS = 10007,COMMENT = @COMMENT WHERE GUID = @ENVELOPE_ID; /*Umschlag abgelehnt*/
END
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 3
IF @STATUS = 3001 /*EMAIL OUT SIGNATUREINLADUNG*/
BEGIN
DECLARE @COUNT_MSG_OUT INT, @COUNT_USERS2_SIGN INT
SELECT @COUNT_MSG_OUT = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 3001 ;
PRINT '@COUNT_MSG_OUT:' + CONVERT(VARCHAR(3),@COUNT_MSG_OUT)
SELECT @COUNT_USERS2_SIGN = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID;
PRINT '@@COUNT_USERS2_SIGN:' + CONVERT(VARCHAR(3),@COUNT_USERS2_SIGN)
IF @COUNT_MSG_OUT = @COUNT_USERS2_SIGN
UPDATE TBSIG_ENVELOPE SET STATUS = 1004 WHERE GUID = @ENVELOPE_ID; /*ALL INVITATIONS SENT*/
-- INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,USER_REFERENCE,STATUS,ACTION_DATE) VALUES (@ENVELOPE_ID,'Digital Data Email-Service',1004,GETDATE())
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO

View File

@@ -0,0 +1,232 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.5.7' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
--Changed 04.09.2025 MS Status 103 - Korrektur Y Werte mit Offset
--Changed 14.07.2025 MS Termination of commands, Fehler Rückgabe von select
--Changed 22.05.2025 MS Ablehnung über insert mit Envelope-Creator als User
--Changed 23.04.2025 MS Neuer Dokumenten und Withdrawn-Status
--CHANGED 06.06.2024 MS Status 2007, emailMeldungen integriert
--CHANGED 11.06.2024 MS Status 2007, Cursor für andere REceiver
ALTER TRIGGER [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] ON [dbo].[TBSIG_ENVELOPE_HISTORY]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@GUID BIGINT,
@ENVELOPE_ID INTEGER,
@STATUS INTEGER,
@USER_REFERENCE VARCHAR(100)
SELECT
@GUID = GUID,
@ENVELOPE_ID = ENVELOPE_ID,
@STATUS = STATUS,
@USER_REFERENCE = USER_REFERENCE
FROM INSERTED
PRINT 'STATUS IS: ' + CONVERT(VARCHAR(10),@STATUS)
--PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2
IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 1
BEGIN
PRINT 'REGULÄRER 1erStatus.. '
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009)
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID;
IF @STATUS = 1003 /*ENVELOPE QUEUED*/
BEGIN
DECLARE @RECEL_GUID BIGINT,@POS_Y FLOAT, @OFFSET FLOAT = '0.3'
DECLARE cursChangeYPos CURSOR FOR
SELECT GUID, POSITION_Y FROM TBSIG_DOCUMENT_RECEIVER_ELEMENT where DOCUMENT_ID IN (SELECT GUID FROM TBSIG_ENVELOPE_DOCUMENT where ENVELOPE_ID = @ENVELOPE_ID) ORDER BY ADDED_WHEN
OPEN cursChangeYPos
FETCH NEXT FROM cursChangeYPos INTO @RECEL_GUID,@POS_Y
WHILE @@FETCH_STATUS = 0
BEGIN
--SET @POS_Y = @POS_Y - @OFFSET
UPDATE TBSIG_DOCUMENT_RECEIVER_ELEMENT SET POSITION_Y = @POS_Y - @OFFSET, CHANGED_WHO = 'OFFSET_Y_POS' WHERE GUID = @RECEL_GUID;
FETCH NEXT FROM cursChangeYPos INTO @RECEL_GUID,@POS_Y
END
CLOSE cursChangeYPos
DEALLOCATE cursChangeYPos
END
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 2
BEGIN
IF @STATUS = 2005 /*DOKUMENT SIGINIERT*/
BEGIN
DECLARE @COUNT_SIGNED INT, @COUNT_SIGNERS INT
SELECT @COUNT_SIGNED = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 2005
SELECT @COUNT_SIGNERS = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID
IF @COUNT_SIGNED = @COUNT_SIGNERS
BEGIN
UPDATE TBSIG_ENVELOPE SET STATUS = 1006 WHERE GUID = @ENVELOPE_ID; /*FULLY SIGNED*/
INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID, USER_REFERENCE, STATUS, ACTION_DATE) VALUES (@ENVELOPE_ID, 'System', 1006, DATEADD(second, 5, GETDATE()));
END
ELSE
UPDATE TBSIG_ENVELOPE SET STATUS = 1005 WHERE GUID = @ENVELOPE_ID; /*PARTLY SIGNED*/
END
ELSE IF @STATUS = 2007 /*VORGANG DURCH USER ABGELEHNT*/
BEGIN
DECLARE @COMMENT VARCHAR(500),@REC_EMAIL VARCHAR(200),@EML_BODY_ADM VARCHAR(3000),@EML_SUBJ_ADM VARCHAR(3000),@EML_BODY_REC VARCHAR(3000),@EML_SUBJ_REC VARCHAR(3000),
@EML_BODY_REC2 VARCHAR(3000),@EML_SUBJ_REC2 VARCHAR(3000)
,@ADM_MAIL VARCHAR(250),@ADM_NAME VARCHAR(200),@TITLE VARCHAR(200),@NAME_PORTAL VARCHAR(100),@NAME_RECEIVER VARCHAR(150),@SENDING_PROFILE INT,@ENV_UUID VARCHAR(200)
SELECT @COMMENT = COMMENT,@REC_EMAIL = USER_REFERENCE FROM INSERTED;
SELECT @NAME_PORTAL = [EXTERNAL_PROGRAM_NAME],@SENDING_PROFILE = SENDING_PROFILE FROM [DD_ECM].[dbo].[TBSIG_CONFIG];
SELECT @EML_BODY_ADM = BODY,@EML_SUBJ_ADM = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM';
SELECT @EML_BODY_REC = BODY,@EML_SUBJ_REC = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC';
SELECT @EML_BODY_REC2 = BODY,@EML_SUBJ_REC2 = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC_2';
SELECT @ADM_MAIL = USER_EMAIL,@ADM_NAME = USER_PRE_NAME, @TITLE = TITLE,@ENV_UUID = [ENVELOPE_UUID] FROM VWSIG_ENVELOPE_DATA WHERE ENVELOPE_ID = @ENVELOPE_ID;
SELECT @NAME_RECEIVER = [NAME] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL = @REC_EMAIL;
IF @NAME_RECEIVER IS NULL
BEGIN
SET @NAME_RECEIVER = 'signFLOW - SYSTEM'
END
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_SENDER]',@ADM_NAME)
--PRINT '#1' + @EML_BODY_ADM
--PRINT '#2' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[DOCUMENT_TITLE]',@TITLE)
--PRINT '#3' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[REASON]',@COMMENT)
--PRINT '#4' + @EML_BODY_ADM
SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_PORTAL]',@NAME_PORTAL)
PRINT '@EML_BODY_ADM: '
PRINT @EML_BODY_ADM
SET @EML_SUBJ_ADM = REPLACE(@EML_SUBJ_ADM,'[DOCUMENT_TITLE]',@TITLE)
PRINT '@EML_SUBJ_ADM: '
PRINT @EML_SUBJ_ADM
PRINT 'EMAIL1...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@ADM_MAIL, @EML_SUBJ_ADM, @EML_BODY_ADM, 'SIG RECEIVER REJECTED1', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_SENDER]',@ADM_NAME)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[REASON]',@COMMENT)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_PORTAL]',@NAME_PORTAL)
SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE)
SET @EML_SUBJ_REC = REPLACE(@EML_SUBJ_REC,'[DOCUMENT_TITLE]',@TITLE)
IF @REC_EMAIL <> @ADM_MAIL
BEGIN
PRINT 'EMAIL2...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@REC_EMAIL, @EML_SUBJ_REC, @EML_BODY_REC, 'SIG RECEIVER REJECTED2', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
END
/*Andere Receiver über die Ablehnung informieren*/
SET @EML_SUBJ_REC2 = REPLACE(@EML_SUBJ_REC2,'[DOCUMENT_TITLE]',@TITLE)
DECLARE @BODY_RECEIVER NVARCHAR(MAX),@EML_RECEIVER2 VARCHAR(250)
DECLARE cursReceiver_TBSIG_ENVELOPE_HISTORY CURSOR FOR
SELECT [NAME], [REC_EMAIL] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL <> @REC_EMAIL
OPEN cursReceiver_TBSIG_ENVELOPE_HISTORY
FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '@EML_BODY_REC2: ' + @EML_BODY_REC2
SET @BODY_RECEIVER = @EML_BODY_REC2
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_SENDER]',@ADM_NAME)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_RECEIVER]',@NAME_RECEIVER)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[REASON]',@COMMENT)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_PORTAL]',@NAME_PORTAL)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE)
PRINT 'EMAIL3...'
INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID)
VALUES (@EML_RECEIVER2, @EML_SUBJ_REC2, @BODY_RECEIVER, 'SIG RECEIVER REJECTED3', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS);
FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2
END
CLOSE cursReceiver_TBSIG_ENVELOPE_HISTORY
DEALLOCATE cursReceiver_TBSIG_ENVELOPE_HISTORY
UPDATE TBSIG_ENVELOPE SET STATUS = 10007,COMMENT = @COMMENT WHERE GUID = @ENVELOPE_ID; /*Umschlag abgelehnt*/
END
END
ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 3
IF @STATUS = 3001 /*EMAIL OUT SIGNATUREINLADUNG*/
BEGIN
DECLARE @COUNT_MSG_OUT INT, @COUNT_USERS2_SIGN INT
SELECT @COUNT_MSG_OUT = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 3001 ;
PRINT '@COUNT_MSG_OUT:' + CONVERT(VARCHAR(3),@COUNT_MSG_OUT)
SELECT @COUNT_USERS2_SIGN = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID;
PRINT '@@COUNT_USERS2_SIGN:' + CONVERT(VARCHAR(3),@COUNT_USERS2_SIGN)
IF @COUNT_MSG_OUT = @COUNT_USERS2_SIGN
UPDATE TBSIG_ENVELOPE SET STATUS = 1004 WHERE GUID = @ENVELOPE_ID; /*ALL INVITATIONS SENT*/
-- INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,USER_REFERENCE,STATUS,ACTION_DATE) VALUES (@ENVELOPE_ID,'Digital Data Email-Service',1004,GETDATE())
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER TABLE TBSIG_DOCUMENT_RECEIVER_ELEMENT
ADD CHANGED_WHO NVARCHAR(100);
GO
CREATE TRIGGER [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT_AFT_INS] ON [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@POS_X FLOAT,
@POS_Y FLOAT
SELECT
@POS_X = POSITION_X,
@POS_Y = POSITION_Y
FROM INSERTED
SELECT @POS_X = ROUND(@POS_X, 1);
SELECT @POS_Y = ROUND(@POS_Y, 1);
UPDATE TBSIG_DOCUMENT_RECEIVER_ELEMENT SET
POSITION_X = @POS_X,
POSITION_Y = @POS_Y,
CHANGED_WHO = 'TBSIG_DOC_REC_EL_AFT_INS'
FROM INSERTED
WHERE TBSIG_DOCUMENT_RECEIVER_ELEMENT.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN Trigger [TBSIG_DOCUMENT_RECEIVER_ELEMENT_AFT_INS]:'
+ ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TRIGGER [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT_AFT_UPD] ON [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT]
WITH EXECUTE AS CALLER
FOR UPDATE
AS
BEGIN TRY
DECLARE
@POS_X FLOAT,
@POS_Y FLOAT,
@CHANGEDWHO NVARCHAR(100)
SELECT
@POS_X = POSITION_X,
@POS_Y = POSITION_Y,
@CHANGEDWHO = CHANGED_WHO
FROM INSERTED
IF @CHANGEDWHO <> 'OFFSET_Y_POS'
BEGIN
SELECT @POS_X = ROUND(@POS_X, 1);
SELECT @POS_Y = ROUND(@POS_Y, 1);
UPDATE TBSIG_DOCUMENT_RECEIVER_ELEMENT SET
POSITION_X = @POS_X,
POSITION_Y = @POS_Y,
CHANGED_WHO = 'TBSIG_DOC_REC_EL_AFT_UPD'
FROM INSERTED
WHERE TBSIG_DOCUMENT_RECEIVER_ELEMENT.GUID = INSERTED.GUID
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN Trigger [TBSIG_DOCUMENT_RECEIVER_ELEMENT_AFT_UPD]:'
+ ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO

View File

@@ -64,27 +64,4 @@ BEGIN CATCH
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE FUNCTION [dbo].[FNCUST_GET_TC_WD_RIGHTS] (
@windreamDocID BIGINT
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT concat([wdGI].[szNTDomain],'\',[wdGI].[szGroupName]) as 'RightGroups'
FROM [@WINDREAM_DB].[dbo].[BaseAttributes] as [wdBA] (NOLOCK)
INNER JOIN [@WINDREAM_DB].[dbo].[UserInfo] as [wdUI] (NOLOCK) ON UPPER([wdBA].[szText22]) = UPPER([wdUI].[szUserName]) -- Username for UserID
INNER JOIN [@WINDREAM_DB].[dbo].[UserGroup] as [wdU2G] (NOLOCK) ON [wdUI].[dwUserID] = [wdU2G].[dwUserOrGroupID] -- UserID for GroupsID
INNER JOIN [@WINDREAM_DB].[dbo].[GroupInfo] as [wdGI] (NOLOCK) ON [wdU2G].[dwGroupID] = [wdGI].[dwGroupID] -- GroupIDs for Groupnames
INNER JOIN [DD_ECM].[dbo].[TBDD_USER] as [ddUI] (NOLOCK) ON [wdUI].[dwUserID] = [ddUI].[USERID_FK_INT_ECM] -- windream UserID to DD UserID
INNER JOIN [DD_ECM].[dbo].[TBDD_GROUPS_USER] as [ddU2G] (NOLOCK) ON [ddUI].[GUID] = [ddU2G].[USER_ID] -- UserID for GroupsID
INNER JOIN [DD_ECM].[dbo].[TBDD_GROUPS] as [ddGI] (NOLOCK) ON [ddU2G].[GROUP_ID] = [ddGI].[GUID] -- GroupIDs for Groupnames
WHERE UPPER([wdGI].[szGroupName]) = UPPER([ddGI].[NAME])
AND [wdBA].[dwDocID] = @windreamDocID
GO

View File

@@ -1,6 +1,3 @@
USE [DD_ECM]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
@@ -44,7 +41,7 @@ CREATE TABLE [dbo].[TBTC_FIH_PROFILE](
CONSTRAINT [PK_TBTC_FIH_PROFILE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE]
@@ -76,7 +73,7 @@ CREATE TABLE [dbo].[TBTC_FIH_PROFILE_RIGHTS_RULE](
CONSTRAINT [PK_TBTC_FIH_PROFILE_RIGHTS_RULE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_RIGHTS_RULE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE_RIGHTS_RULE]
@@ -107,7 +104,7 @@ CREATE TABLE [dbo].[TBTC_FIH_PROFILE_RIGHTS_TYPE](
CONSTRAINT [PK_TBTC_FIH_PROFILE_RIGHTS_TYPE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_RIGHTS_TYPE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE_RIGHTS_TYPE]
@@ -147,7 +144,7 @@ CREATE TABLE [dbo].[TBTC_FIH_PROFILE_RULE](
CONSTRAINT [PK_TBTC_FIH_PROFILE_RULE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_RULE_TYPE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE_RULE]
@@ -190,7 +187,7 @@ CREATE TABLE [dbo].[TBTC_FIM_PROFILE](
CONSTRAINT [PK_TBTC_FIM_PROFILE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TRIGGER [dbo].[TBTC_FIM_PROFILE_AFT_UPD] ON [dbo].[TBTC_FIM_PROFILE]
@@ -230,7 +227,7 @@ CREATE TABLE [dbo].[TBTC_FIM_PROFILE_RULE](
CONSTRAINT [PK_TBTC_FIM_PROFILE_RULE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TRIGGER [dbo].[TBTC_FIM_PROFILE_RULE_UPD] ON [dbo].[TBTC_FIM_PROFILE_RULE]

View File

@@ -2,6 +2,8 @@ IF not EXISTS(SELECT GUID FROM TBDD_MODULES WHERE NAME = 'ToolCollection' )
INSERT INTO TBDD_MODULES (NAME, SHORT_NAME, LICENSE,ACTIVE) VALUES ('ToolCollection','TC','kc6j9HSv/UJVAzFjMZv2A3wHZFy+2nNLKP9Qs8g9EVY=',1)
UPDATE TBDD_MODULES SET DB_VERSION = '1.1.0.0' where UPPER(NAME) = UPPER('ToolCollection')
GO
EXEC sp_rename 'TBTC_DI_REGEX_MATCH.PROFIL_NAME', 'PROFILE_NAME', 'COLUMN';
GO
CREATE FUNCTION [dbo].[FNCUST_GET_TC_WD_RIGHTS] (
@windreamDocID BIGINT
)

View File

@@ -1,6 +1,14 @@
INSERT INTO TBDD_MODULES(GUID,NAME,SHORT_NAME,LICENSE,STRING1,ACTIVE) VALUES
(9,'Mobile Workflow','MWF','kc6j9HSv/UJVAzFjMZv2A3wHZFy+2nNLKP9Qs8g9EVY=','',1)
GO
--DROP TABLE TBMWF_CONFIG;
--DROP TABLE TBMWF_PROF_BUTTONS;
--DROP TABLE TBMWF_PROF_CONTROLS_TF;
--DROP TABLE TBMWF_TF_FILES;
--DROP TABLE TBMWF_PROFILE_OBJ_STATE;
--DROP TABLE TBMWF_WF_STATE;
--DROP TABLE TBMWF_PROFILE_USER;
--DROP TABLE TBMWF_PROFILE
INSERT INTO [dbo].[TBDD_GROUPS] ([NAME] ,[INTERNAL] ,[ACTIVE] ,[COMMENT])
VALUES
('MWF_USERS'
@@ -19,11 +27,11 @@ GO
CREATE TABLE TBMWF_CONFIG
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
CONF_TITLE VARCHAR(100) NOT NULL,
CONF_STRING VARCHAR(900) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
CONF_TITLE NVARCHAR(100) NOT NULL,
CONF_STRING NVARCHAR(900) NOT NULL,
ADDED_WHO NVARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHO NVARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_CONFIG PRIMARY KEY (GUID),
CONSTRAINT UQ_TBMWF_CONFIG_TITLE UNIQUE (CONF_TITLE)
@@ -42,18 +50,19 @@ INSERT INTO TBMWF_CONFIG (CONF_TITLE,CONF_STRING) VALUES
------------------------------------------------------------------------------
--DROP TABLE TBMWF_PROFILE
CREATE TABLE TBMWF_PROFILE
(
GUID INTEGER IDENTITY(1,1),
INTL_NAME VARCHAR(200) NOT NULL DEFAULT 0,
INTL_NAME NVARCHAR(200) NOT NULL DEFAULT 0,
PM_PROFILE_ID INTEGER NOT NULL,
[TYPE_ID] TINYINT NOT NULL DEFAULT 1, --1 TaskFlow,2 AblageFlow, 3 SignFlow
ACTIVE BIT NOT NULL DEFAULT 0,
FORE_COLOR VARCHAR(100),
BACK_COLOR VARCHAR(100),
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
FORE_COLOR NVARCHAR(100),
BACK_COLOR NVARCHAR(100),
ADDED_WHO NVARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHO NVARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_PROFILE_GUID PRIMARY KEY(GUID),
CONSTRAINT UQ_TBMWF_PROFILE UNIQUE (INTL_NAME,PM_PROFILE_ID)
@@ -75,9 +84,9 @@ CREATE TABLE TBMWF_PROFILE_CONTROLS_UPDATE
MWF_PROFILE_ID INTEGER NOT NULL,
USR_ID INTEGER NOT NULL,
OBJ_ID BIGINT NOT NULL,
ATTR_NAME VARCHAR(100) NOT NULL,
ATTR_NAME NVARCHAR(100) NOT NULL,
ATTR_VALUE NVARCHAR(3000) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYS',
ADDED_WHO NVARCHAR(30) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_PROFILE_CONTROLS_UPDATE PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_CONTROLS_UPDATE_PROFILE FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
@@ -88,8 +97,8 @@ GO
CREATE TABLE TBMWF_WF_STATE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
INTL_STATE VARCHAR(100) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYS',
INTL_STATE NVARCHAR(100) NOT NULL,
ADDED_WHO NVARCHAR(30) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_WF_STATE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBMWF_WF_STATE UNIQUE(INTL_STATE)
@@ -108,9 +117,9 @@ CREATE TABLE TBMWF_PROFILE_OBJ_STATE
STATE2 NVARCHAR(100),
STATE3 NVARCHAR(100),
STATE4 NVARCHAR(100),
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHO NVARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_PROFILE_OBJ_STATE PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_STID FOREIGN KEY (STATE_ID) REFERENCES TBMWF_WF_STATE (GUID),
@@ -118,7 +127,7 @@ CREATE TABLE TBMWF_PROFILE_OBJ_STATE
)
GO
--DROP TABLE TBMWF_PROFILE_OBJ_STATE_HISTORY
CREATE TABLE TBMWF_PROFILE_OBJ_STATE_HISTORY
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
@@ -129,43 +138,41 @@ CREATE TABLE TBMWF_PROFILE_OBJ_STATE_HISTORY
STATE2 NVARCHAR(100),
STATE3 NVARCHAR(100),
STATE4 NVARCHAR(100),
CHANGED_WHO VARCHAR(100),
CHANGED_WHO NVARCHAR(100),
CHANGED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_PROFILE_OBJ_STATE_HISTORY PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_HISTORY_STID FOREIGN KEY (STATE_ID) REFERENCES TBMWF_WF_STATE (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_HISTORY_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID)
)
GO
USE [DD_ECM]
GO
ALTER TRIGGER [dbo].[TBMWF_PROFILE_OBJ_STATE_AFT_UPD] ON [dbo].[TBMWF_PROFILE_OBJ_STATE]
CREATE TRIGGER [dbo].[TBMWF_PROFILE_OBJ_STATE_AFT_UPD] ON [dbo].[TBMWF_PROFILE_OBJ_STATE]
FOR UPDATE
AS
DECLARE @CHANGED_WHO VARCHAR(100)
DECLARE @CHANGED_WHO NVARCHAR(100)
SELECT @CHANGED_WHO = CHANGED_WHO FROM inserted
INSERT INTO TBMWF_PROFILE_OBJ_STATE_HISTORY (MWF_PROFILE_ID,USR_ID,OBJ_ID,STATE_ID,STATE2,STATE3,STATE4,CHANGED_WHO)
SELECT MWF_PROFILE_ID,USR_ID,OBJ_ID,STATE_ID,STATE2,STATE3,STATE4,CHANGED_WHO FROM inserted
UPDATE TBMWF_PROFILE_OBJ_STATE SET CHANGED_WHEN = GETDATE(),CHANGED_WHO = @CHANGED_WHO
FROM INSERTED
WHERE TBMWF_PROFILE_OBJ_STATE.GUID = INSERTED.GUID
GO
------------------------------------------------------------------------------
--DROP TABLE TBMWF_PROF_CONTROLS_TF
CREATE TABLE TBMWF_PROF_CONTROLS_TF
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
OBJ_STATE_ID BIGINT NOT NULL,
DIALOG_NO TINYINT NOT NULL DEFAULT 1,
ATTR_NAME VARCHAR(100) NOT NULL,
CTRL_TYPE VARCHAR(10) NOT NULL, --TXT,CMB,DTP
CAPTION VARCHAR(100) NOT NULL,
[TEXT] VARCHAR(500) NOT NULL,
ICON VARCHAR(100) ,
ATTR_NAME NVARCHAR(100) NOT NULL,
CTRL_TYPE NVARCHAR(10) NOT NULL, --TXT,CMB,DTP
CAPTION NVARCHAR(100) NOT NULL,
[TEXT] NVARCHAR(500) NOT NULL,
ICON NVARCHAR(100) ,
MANDATORY BIT NOT NULL DEFAULT 0,
CHOICE_LIST NVARCHAR(MAX),
[READ_ONLY] BIT NOT NULL DEFAULT 0,
SEQU TINYINT DEFAULT 0,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_PROF_CONTROLS PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROF_CONTROLS_TF_OSID FOREIGN KEY (OBJ_STATE_ID) REFERENCES TBMWF_PROFILE_OBJ_STATE (GUID),
@@ -178,11 +185,11 @@ CREATE TABLE TBMWF_TF_FILES
GUID BIGINT NOT NULL IDENTITY (1, 1),
OBJ_STATE_ID BIGINT NOT NULL,
F_FAPTH NVARCHAR(512) NOT NULL,
HEADLINE VARCHAR(100) NOT NULL,
SUBLINE VARCHAR(100),
COMMENT VARCHAR(250),
ICON VARCHAR(100),
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
HEADLINE NVARCHAR(100) NOT NULL,
SUBLINE NVARCHAR(100),
COMMENT NVARCHAR(250),
ICON NVARCHAR(100),
ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_TF_FILES PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_TF_FILES_OSID FOREIGN KEY (OBJ_STATE_ID) REFERENCES TBMWF_PROFILE_OBJ_STATE (GUID)
@@ -194,17 +201,17 @@ CREATE TABLE TBMWF_PROF_BUTTONS
GUID INT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INT NOT NULL,
DIALOG_NO TINYINT NOT NULL DEFAULT 1,
BTN_TYPE VARCHAR(20) NOT NULL, --BUTTON_MAIN, BUTTON_1,BUTTON_2
[TEXT] VARCHAR(500) NOT NULL,
ICON VARCHAR(100) ,
FORE_COLOR VARCHAR(100) NOT NULL DEFAULT 'Black',
BACK_COLOR VARCHAR(100) NOT NULL DEFAULT '',
BTN_TYPE NVARCHAR(20) NOT NULL, --BUTTON_MAIN, BUTTON_1,BUTTON_2
[TEXT] NVARCHAR(500) NOT NULL,
ICON NVARCHAR(100) ,
FORE_COLOR NVARCHAR(100) NOT NULL DEFAULT 'Black',
BACK_COLOR NVARCHAR(100) NOT NULL DEFAULT '',
COMMAND NVARCHAR(MAX) NOT NULL DEFAULT '',
DIALOG_COMMAND NVARCHAR(MAX) NOT NULL DEFAULT '',
CONFIRMATION_TEXT NVARCHAR(250) NOT NULL DEFAULT '',
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHO NVARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_PROF_BUTTONS PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROF_BUTTONS_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
@@ -219,18 +226,18 @@ AS
WHERE TBMWF_PROF_BUTTONS.GUID = INSERTED.GUID
GO
CREATE TABLE TBMFI_PROFILE_USER
CREATE TABLE TBMWF_PROFILE_USER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INTEGER NOT NULL,
USR_ID INTEGER NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHO NVARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMFI_PROFILE_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBMFI_PROFILE_USER_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
CONSTRAINT UQ_TBMFI_PROFILE_USER UNIQUE(MWF_PROFILE_ID,USR_ID)
CONSTRAINT PK_TBMWF_PROFILE_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_USER_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
CONSTRAINT UQ_TBMWF_PROFILE_USER UNIQUE(MWF_PROFILE_ID,USR_ID)
)
GO
@@ -245,20 +252,23 @@ INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
VALUES
( 'MFI', 1, '9', 'Title 9', 'de-DE','Title', 'Fotodokumentation','subtitle Fotodoku')
GO
CREATE FUNCTION [dbo].[FNMWF_GET_PROFILES] (@pUSR_ID INTEGER)
RETURNS @TABLE_RETURN TABLE (PID INTEGER,[TYPE_ID] TINYINT, CAPTION VARCHAR(100),SUBTITLE VARCHAR(150), COUNTOBJ INT, FORE_COLOR VARCHAR(100) , BACK_COLOR VARCHAR(100))
CREATE OR ALTER FUNCTION [dbo].[FNMWF_GET_PROFILES] (@pUSR_ID INTEGER)
RETURNS @TABLE_RETURN TABLE (PROFILE_ID INTEGER,[TYPE_ID] TINYINT, CAPTION NVARCHAR(100),SUBTITLE NVARCHAR(150), COUNTOBJ INT, FORE_COLOR NVARCHAR(100) , BACK_COLOR NVARCHAR(100))
AS
BEGIN
INSERT INTO @TABLE_RETURN (PID,[TYPE_ID],CAPTION,SUBTITLE,COUNTOBJ, FORE_COLOR,BACK_COLOR)
SELECT A.MWF_PROFILE_ID,1,C.STRING1,C.String2,COUNT(A.GUID), B.FORE_COLOR,B.BACK_COLOR FROM TBMWF_PROFILE_OBJ_STATE A INNER JOIN TBMWF_PROFILE B ON A.MWF_PROFILE_ID = B.GUID
INNER JOIN (SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE = 'MWF') C ON A.MWF_PROFILE_ID = C.OBJ_NAME
IF @pUSR_ID = 97 SET @pUSR_ID = 1
INSERT INTO @TABLE_RETURN (PROFILE_ID,[TYPE_ID],CAPTION,SUBTITLE,COUNTOBJ, FORE_COLOR,BACK_COLOR)
SELECT A.MWF_PROFILE_ID,1,C.STRING1,C.String2,COUNT(A.GUID),B.FORE_COLOR,B.BACK_COLOR FROM TBMWF_PROFILE_OBJ_STATE A INNER JOIN TBMWF_PROFILE B ON A.MWF_PROFILE_ID = B.GUID
INNER JOIN (SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE = 'MWF' AND ISNUMERIC(OBJ_NAME) = 1) C ON A.MWF_PROFILE_ID = C.OBJ_NAME
INNER JOIN TBDD_USER D ON A.USR_ID = D.GUID
WHERE D.GUID = @pUSR_ID AND D.LANGUAGE = C.LANGUAGE AND A.STATE_ID = 1
WHERE D.GUID = 1 AND D.LANGUAGE = C.LANGUAGE AND A.STATE_ID = @pUSR_ID
GROUP BY A.MWF_PROFILE_ID,C.STRING1,C.String2,B.FORE_COLOR,B.BACK_COLOR
INSERT INTO @TABLE_RETURN (PID,[TYPE_ID],CAPTION,SUBTITLE,COUNTOBJ, FORE_COLOR,BACK_COLOR)
SELECT A.MWF_PROFILE_ID,2,C.STRING1,C.String2,0, B.FORE_COLOR,B.BACK_COLOR FROM TBMFI_PROFILE_USER A INNER JOIN TBMWF_PROFILE B ON A.MWF_PROFILE_ID = B.GUID
INSERT INTO @TABLE_RETURN (PROFILE_ID,[TYPE_ID],CAPTION,SUBTITLE,COUNTOBJ, FORE_COLOR,BACK_COLOR)
SELECT A.MWF_PROFILE_ID,2,C.STRING1,C.String2,0, B.FORE_COLOR,B.BACK_COLOR
FROM TBMWF_PROFILE_USER A INNER JOIN TBMWF_PROFILE B ON A.MWF_PROFILE_ID = B.GUID
INNER JOIN (SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE = 'MFI') C ON A.MWF_PROFILE_ID = C.OBJ_NAME
INNER JOIN TBDD_USER D ON A.USR_ID = D.GUID
WHERE D.GUID = @pUSR_ID AND C.LANGUAGE = D.LANGUAGE
@@ -267,14 +277,15 @@ BEGIN
RETURN
END
GO
CREATE FUNCTION [dbo].[FNMWF_GET_ITEMS] (@pUSR_ID INTEGER,@pMWF_PID INTEGER)
RETURNS @TABLE_RETURN TABLE (ObjStateID BIGINT,ObjectID BIGINT,Headline1 VARCHAR(100),Headline2 VARCHAR(150),Subline1 VARCHAR(100),Subline2 VARCHAR(100),CMD_CheckIn NVARCHAR(MAX))
CREATE OR ALTER FUNCTION [dbo].[FNMWF_GET_PROFILE_OBJECTS] (@pUSR_ID INTEGER,@pMWF_PID INTEGER)
RETURNS @TABLE_RETURN TABLE (ObjStateID BIGINT,ObjectID BIGINT,Headline1 NVARCHAR(100),Headline2 NVARCHAR(150),Subline1 NVARCHAR(100),Subline2 NVARCHAR(100),CMD_CheckIn NVARCHAR(MAX))
AS
BEGIN
IF @pUSR_ID = 97 SET @pUSR_ID = 1
INSERT INTO @TABLE_RETURN (ObjStateID,ObjectID,Headline1,Headline2,Subline1,Subline2,CMD_CheckIn)
SELECT
VA.GUID,
OBJ.IDB_OBJ_ID
VA.OBJ_ID
,OW.[Mandant Name]
,OW.[KreditorName]
, OW.[Zahlungsziel]
@@ -283,11 +294,11 @@ BEGIN
FROM
TBMWF_PROFILE_OBJ_STATE VA INNER JOIN
TBPM_CUST_WORKFLOW_OVERVIEW OW ON VA.OBJ_ID = OW.DOC_ID
INNER JOIN [IDB].[dbo].TBIDB_OBJECT OBJ ON OW.DOC_ID = OBJ.IDB_OBJ_ID
--INNER JOIN [IDB].[dbo].TBIDB_OBJECT OBJ ON OW.DOC_ID = OBJ.IDB_OBJ_ID
WHERE
VA.USR_ID = @pUSR_ID AND
OW.PROFILE_ID = 6 AND
OBJ.DELETED = 0 AND OBJ.ACTIVE = 1 AND
--OBJ.DELETED = 0 AND OBJ.ACTIVE = 1 AND
VA.MWF_PROFILE_ID = @pMWF_PID AND
VA.STATE_ID = 1 ;
RETURN

View File

@@ -1,24 +1,61 @@
INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
MODULE, INTERNAL, OBJ_NAME, TITLE, LANGUAGE,CAPT_TYPE, STRING1,String2)
VALUES
( 'MWF', 1, '1', 'Title 1', 'de-DE','Title', 'VA Freigabe','Freigabe in Rolle Verantwortlich')
--INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
-- MODULE, INTERNAL, OBJ_NAME, TITLE, LANGUAGE,CAPT_TYPE, STRING1,String2)
-- VALUES
-- ( 'MWF', 1, '1', 'Title 1', 'de-DE','Title', 'VA Freigabe','Freigabe in Rolle Verantwortlich')
--GO
--INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
-- MODULE, INTERNAL, OBJ_NAME, TITLE, LANGUAGE,CAPT_TYPE, STRING1,String2)
-- VALUES
-- ( 'MWF', 1, '3', 'Title 93', 'de-DE','Title', 'Finale Freigabe','Freigabe in Rolle Finaler Freigeber')
--GO
select * from TBMWF_PROFILE
INSERT INTO [dbo].[TBMWF_PROFILE]
([INTL_NAME]
,[PM_PROFILE_ID]
,[TYPE_ID]
,[ACTIVE]
,[FORE_COLOR]
,[BACK_COLOR] )
VALUES
('TEST PROFIL MobileWorkflow - '
,6
,1
,1
,'Yellow'
,'Black')
GO
INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
MODULE, INTERNAL, OBJ_NAME, TITLE, LANGUAGE,CAPT_TYPE, STRING1,String2)
VALUES
( 'MWF', 1, '3', 'Title 93', 'de-DE','Title', 'Finale Freigabe','Freigabe in Rolle Finaler Freigeber')
INSERT INTO [dbo].[TBMWF_PROFILE]
([INTL_NAME]
,[PM_PROFILE_ID]
,[TYPE_ID]
,[ACTIVE]
,[FORE_COLOR]
,[BACK_COLOR] )
VALUES
('TEST PROFIL MobileWorkflow - Finale Freigabe'
,9
,1
,1
,'Green'
,'Black')
GO
select * from TBMWF_PROFILE_OBJ_STATE
INSERT INTO TBMWF_PROFILE_OBJ_STATE (MWF_PROFILE_ID,USR_ID,OBJ_ID,STATE_ID) VALUES
(1,1,12968,1);
DECLARE @GUID BIGINT
SELECT @GUID = MAX(GUID) FROM TBMWF_PROFILE_OBJ_STATE;
INSERT INTO TBMWF_PROF_CONTROLS_TF (
OBJ_STATE_ID,ATTR_NAME, CTRL_TYPE, CAPTION, TEXT, ICON, MANDATORY, CHOICE_LIST, READ_ONLY, SEQU)
VALUES (1, 'INV_NO', 'TXT', 'Rechnungs-Nummer', 'RE-4711', 'bookmark', 0, '', 1, 0),
(1, 'CREDITOR', 'TXT', 'Kreditor-Name', 'Europcar GmbH', 'credit-card', 0, '', 1, 1),
(1, 'Combobox1','CMB', 'Ein Combo-Feld:', '', 'check2-circle',1, 'Eintrag1;Eintrag2', 0, 2),
(1, 'Comment','TXT', 'Bemerkung', '', 'chat-square-text', 0, '', 0, 3);
VALUES (@GUID, 'INV_NO', 'TXT', 'Rechnungs-Nummer', 'RE-4711', 'bookmark', 0, '', 1, 0),
(@GUID, 'CREDITOR', 'TXT', 'Kreditor-Name', 'Europcar GmbH', 'credit-card', 0, '', 1, 1),
(@GUID, 'Combobox1','CMB', 'Ein Combo-Feld:', '', 'check2-circle',1, 'Eintrag1;Eintrag2', 0, 2),
(@GUID, 'Comment','TXT', 'Bemerkung', '', 'chat-square-text', 0, '', 0, 3);
INSERT INTO TBMFI_PROFILE_USER (MWF_PROFILE_ID,USR_ID) VALUES (6,1),(9,1);
INSERT INTO TBMWF_PROFILE_USER (MWF_PROFILE_ID,USR_ID) VALUES (1,1),(2,1);
INSERT INTO [dbo].[TBMWF_PROF_BUTTONS]
([MWF_PROFILE_ID]
,[BTN_TYPE]
@@ -30,7 +67,7 @@ INSERT INTO [dbo].[TBMWF_PROF_BUTTONS]
,ADDED_WHO
)
VALUES
(3
(1
,1
,'Genehmigen'
,'check-square-fill'
@@ -50,7 +87,7 @@ INSERT INTO [dbo].[TBMWF_PROF_BUTTONS]
,ADDED_WHO
)
VALUES
(3
(1
,2
,'Ablehnen'
,'sign-stop-fill'

51
12_MWF/Update/1.1.sql Normal file
View File

@@ -0,0 +1,51 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.1' where SHORT_NAME = 'MWF';
GO
ALTER TABLE TBMWF_PROFILE ADD [PRIORITY] INTEGER NOT NULL DEFAULT 0
GO
ALTER TABLE TBMWF_TF_FILES ADD [ProcessID] INTEGER NOT NULL DEFAULT 0
GO
ALTER TABLE TBMWF_PROF_BUTTONS ADD [NextDialogID] TINYINT NOT NULL DEFAULT 0
GO
ALTER TABLE TBMWF_PROF_CONTROLS_TF ADD [NextDialogID] TINYINT NOT NULL DEFAULT 0
GO
ALTER TABLE TBMWF_PROF_CONTROLS_TF ADD [TYPE] NVARCHAR(50) NOT NULL DEFAULT 'TEXT'
GO
ALTER TABLE TBMWF_PROF_CONTROLS_TF ADD [VALUES] NVARCHAR(900)
GO
ALTER TABLE TBMWF_PROF_CONTROLS_TF ADD [PROCESSID] INTEGER NOT NULL DEFAULT 0
EXEC sp_RENAME 'TBMWF_PROF_CONTROLS_TF.SEQU' , 'SEQUENCE', 'COLUMN'
GO
CREATE VIEW VWMWF_F19_PROFILE AS
SELECT
GUID AS ID,
[INTL_NAME] As Title,
PRIORITY
FROM
TBMWF_PROFILE
GO
CREATE VIEW VWMWF_F19_FIELD AS
SELECT
GUID AS ID,
PROCESSID,
DIALOG_NO AS DIALOGID,
ATTR_NAME AS [NAME],
CAPTION AS TITLE,
[TYPE],
[VALUES],
[READ_ONLY] as [READONLY],
SEQUENCE as ORDER_KEY
FROM
TBMWF_PROF_CONTROLS_TF FIELD
GO
CREATE VIEW VWMWF_F19_BUTTON AS
SELECT
GUID AS ID,
MWF_PROFILE_ID as ProfileID,
DIALOG_NO AS DIALOGID,
NextDialogID AS NextDialogID,
TEXT AS title,
FORE_COLOR as forecolor,
BACK_COLOR as backcolor
FROM
TBMWF_PROF_BUTTONS FIELD

View File

@@ -28,7 +28,7 @@ End
SELECT type, *
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%PRPMO_CUST_CHECK_CONTROLS_HAAA%'
WHERE OBJECT_DEFINITION(object_id) LIKE '%TBTF_PROFILE_FILES_WORK%'
--AND type IN ('V')
ORDER BY name
@@ -46,3 +46,22 @@ DECLARE cursStrasse CURSOR FOR
END
CLOSE cursStrasse
DEALLOCATE cursStrasse
-- In Jobs suchen
USE msdb;
GO
SELECT
j.job_id,
j.name AS JobName,
s.step_id,
s.step_name,
s.command
FROM
dbo.sysjobs j
INNER JOIN dbo.sysjobsteps s
ON j.job_id = s.job_id
WHERE
s.command LIKE '%MOTBIDB_DOC_INFO%'
ORDER BY
j.name, s.step_id;