Compare commits

...

17 Commits

Author SHA1 Message Date
Developer01
6bba79458a Neue Skripte von marvin DD_ECm und taskFLOW Cockpit 2026-06-02 13:02:04 +02:00
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
49 changed files with 3726 additions and 361 deletions

View File

@@ -1454,26 +1454,40 @@ SET QUOTED_IDENTIFIER ON
GO GO
CREATE TABLE [dbo].[TBEDMI_ITEM_VALUE]( CREATE TABLE [dbo].[TBEDMI_ITEM_VALUE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL, [GUID] [bigint] IDENTITY(1,1) NOT NULL,
[REFERENCE_GUID] NVARCHAR(max) NOT NULL, [REFERENCE_GUID] NVARCHAR(250) NOT NULL,
[ITEM_DESCRIPTION] NVARCHAR(max) NOT NULL, [ITEM_DESCRIPTION] NVARCHAR(250) NOT NULL,
[ITEM_VALUE] NVARCHAR(max) NULL, [ITEM_VALUE] NVARCHAR(4000) NULL,
[CREATEDWHEN] DATETIME NOT NULL, [CREATEDWHEN] DATETIME NOT NULL,
[CREATEDWHO] NVARCHAR(max) NULL, [CREATEDWHO] NVARCHAR(100) NULL,
[CHANGEDWHEN] DATETIME NULL, [CHANGEDWHEN] DATETIME NULL,
[GROUP_COUNTER] [int] NULL, [GROUP_COUNTER] [int] NULL,
[SPEC_NAME] [varchar](250) NULL, [SPEC_NAME] NVARCHAR(100) NULL,
[IS_REQUIRED] BIT NOT NULL [IS_REQUIRED] BIT NOT NULL,
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] [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 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 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 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 --PROCEDURES
-- 20.09.2024 MS @MODULE_SHORT eingesetzt -- 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 CLOSE cursPRDD_USER_REFRESH_WM_ID
DEALLOCATE cursPRDD_USER_REFRESH_WM_ID DEALLOCATE cursPRDD_USER_REFRESH_WM_ID
GO GO
CREATE VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_GROUP] AS
SELECT AR.dwObjectID, CREATE OR ALTER VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_GROUP]
UG.dwUserOrGROUPID, AS
AR.dwAccessRight, SELECT [AR].[dwObjectID],
AR.dwObjectDBID [UG].[dwUserOrGROUPID],
FROM [windreamDB].dbo.AccessRight AR LEFT JOIN [windreamDB].dbo.UserGroup UG ON AR.dwUserOrGroupID = UG.dwGroupID [AR].[dwAccessRight],
INNER JOIN TBDD_USER TU ON UG.dwUserOrGroupID = TU.USERID_FK_INT_ECM [AR].[dwObjectDBID]
WHERE UG.dwUserOrGroupID IS NOT NULL 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 GO
CREATE VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_USER] AS USE [DD_ECM]
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
GO GO
CREATE VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS] AS SET ANSI_NULLS ON
SELECT ARU.dwObjectID, GO
ARU.dwUserOrGROUPID, SET QUOTED_IDENTIFIER ON
ARU.dwAccessRight, GO
ARU.dwObjectDBID
FROM VWDD_WM_ACCESS_RIGHTS_USER ARU UNION CREATE OR ALTER VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_USER]
SELECT ARG.dwObjectID, AS
ARG.dwUserOrGROUPID, SELECT [AR].[dwObjectID],
ARG.dwAccessRight, [AR].[dwUserOrGROUPID],
ARG.dwObjectDBID [AR].[dwAccessRight],
FROM VWDD_WM_ACCESS_RIGHTS_GROUP ARG [AR].[dwObjectDBID]
FROM [TBDD_USER] TU (NOLOCK)
LEFT JOIN [windreamDB].[dbo].[AccessRight] AR (NOLOCK) ON TU.[USERID_FK_INT_ECM] = AR.[dwUserOrGroupID];
GO GO

View File

@@ -1,5 +1,55 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.5'; UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.5';
GO 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 ******/ /****** Object: StoredProcedure [dbo].[PRDD_SEND_REJECTION_MAIL] Script Date: 15.05.2025 09:29:08 ******/
SET ANSI_NULLS ON SET ANSI_NULLS ON
GO GO
@@ -505,7 +555,7 @@ Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
GO GO
--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 --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 RETURNS TABLE
AS RETURN AS RETURN
( (

View File

@@ -25,7 +25,7 @@ Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 17, 0, 0), ('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 17, 0, 0),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 18, 0, 0), ('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 18, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 19, 0, 0), ('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 19, 0, 0),
('INVOICE_POSITION_ARTICLE_DESC', '', 'POSITION', 10, 20, 0, 0), ('INVOICE_POSITION_ARTICLE_DESCRIPTION', '', 'POSITION', 10, 20, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 21, 0, 0), ('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 21, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 22, 0, 0), ('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 22, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 23, 0, 1), ('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 23, 0, 1),
@@ -50,7 +50,7 @@ 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 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 WHERE REFERENCE_GUID = @pMSGID
AND A.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE','INVOICE_POSITION_NOTE', 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_DESC','INVOICE_TAXPOS_AMOUNT', 'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESCRIPTION','INVOICE_TAXPOS_AMOUNT',
'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE','INVOICE_POSITION_TAX_AMOUNT') 'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE','INVOICE_POSITION_TAX_AMOUNT')
UNION 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) 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)

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,131 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.5.0';
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [FNDD_GET_GROUP_FOR_USER]
-- =================================================================
-- Gets groups in which a given user is member of
--
-- 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: 13.01.2026 / MK
-- Version Date / Editor: 13.01.2026 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 13.01.2026 / MK - First Version
CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_GROUP_FOR_USER] (
@pUSER_GUID BIGINT, -- GUID from TBDD_USERS. GUID - or - USER_NAME is required!
@pUSER_NAME NVARCHAR(50), -- USERNAME FROM TBDD_USERS. GUID - or - USER_NAME is required!
@pIS_ACTIVE BIT, -- NULL = active or inactive groups, 0 = inactive groups, 1 = active groups
@pIS_INTERNAL BIT -- NULL = internal or custom groups, 0 = custom groups, 1 = internal groups
)
RETURNS @RESULT TABLE ( [GUID] [int] NOT NULL,
[NAME] [varchar](50) NULL,
[ECM_FK_ID] [int] NOT NULL,
[AD_SYNC] [bit] NOT NULL,
[INTERNAL] [bit] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[COMMENT] [varchar](200) NULL,
[ADDED_WHO] [varchar](50) NULL,
[ADDED_WHEN] [datetime] NULL,
[CHANGED_WHO] [varchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL)
AS
BEGIN
--=========================================-- Parameter copies (avoid sniffing) --========================================--
DECLARE @USER_GUID BIGINT = @pUSER_GUID,
@USER_NAME NVARCHAR(50) = LTRIM(RTRIM(@pUSER_NAME)),
@IS_ACTIVE BIT = @pIS_ACTIVE,
@IS_INTERNAL BIT = @pIS_INTERNAL;
----------------------------------------------------------------------------------------------------------------------------
--=============================================-- Get missing informations --=============================================--
IF ((@USER_GUID IS NULL) OR (@USER_GUID = 0)) BEGIN
SELECT @USER_GUID = [GUID]
FROM [dbo].[TBDD_USER] (NOLOCK)
WHERE [USERNAME] = @USER_NAME;
END;
----------------------------------------------------------------------------------------------------------------------------
--=============================================-- Get user allocated groups --============================================--
IF (@USER_GUID > 0) BEGIN
INSERT INTO @RESULT
([GUID],
[NAME],
[ECM_FK_ID],
[AD_SYNC],
[INTERNAL],
[ACTIVE],
[COMMENT],
[ADDED_WHO],
[ADDED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN])
SELECT TOP (100) PERCENT
[GUID],
[NAME],
[ECM_FK_ID],
[AD_SYNC],
[INTERNAL],
[ACTIVE],
[COMMENT],
[ADDED_WHO],
[ADDED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
FROM [dbo].[TBDD_GROUPS] (NOLOCK)
WHERE [GUID] IN (SELECT [GROUP_ID] FROM [dbo].[TBDD_GROUPS_USER] (NOLOCK) WHERE [USER_ID] = @USER_GUID)
AND ([ACTIVE] = CASE WHEN @IS_ACTIVE IS NULL THEN 0 ELSE @IS_ACTIVE END
OR [ACTIVE] = CASE WHEN @IS_ACTIVE IS NULL THEN 1 ELSE @IS_ACTIVE END)
AND ([INTERNAL] = CASE WHEN @IS_INTERNAL IS NULL THEN 0 ELSE @IS_INTERNAL END
OR [INTERNAL] = CASE WHEN @IS_INTERNAL IS NULL THEN 1 ELSE @IS_INTERNAL END);
END;
----------------------------------------------------------------------------------------------------------------------------
RETURN;
END;
-- Test mit
-- SELECT * FROM [FNDD_GET_GROUP_FOR_USER](1,NULL,NULL,NULL)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Changed 22.05.2026 MS Prüfen ob IDB existiert
ALTER PROCEDURE [dbo].[PRPM_REMOVE_NE_FILES]
AS
DECLARE
@DOC_ID INTEGER,
@DocRelativePath VARCHAR(500)
DECLARE c_PRPM_REMOVE_NE_FILES CURSOR FOR
select DOC_ID,FILE_PATH from TBPM_PROFILE_FILES
OPEN c_PRPM_REMOVE_NE_FILES
FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath
WHILE @@FETCH_STATUS = 0
BEGIN
IF OBJECT_ID('IDB.dbo.TBIDB_DOC_INFO', 'U') IS NOT NULL
BEGIN
IF NOT EXISTS(SELECT [dwDocID] FROM [sDD_VMP01_APS01_windream60].[dbo].[BaseAttributes] where dwDocID = @DOC_ID)
IF NOT EXISTS(SELECT IDB_OBJ_ID FROM IDB.dbo.TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @DOC_ID and UPPER(RELATIVE_PATH) = UPPER(@DocRelativePath))
DELETE FROM TBPM_PROFILE_FILES WHERE DOC_ID = @DOC_ID
END
FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath
END
CLOSE c_PRPM_REMOVE_NE_FILES
DEALLOCATE c_PRPM_REMOVE_NE_FILES

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'; UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.2' where NAME = 'Process-Manager';
GO 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

@@ -0,0 +1,222 @@
UPDATE TBDD_MODULES SET DB_VERSION = '3.2' where NAME = 'Process-Manager';
GO
ALTER TABLE dbo.TBPM_MONITOR_KONFIG
ADD COCKPIT_ID BIGINT NOT NULL DEFAULT ((0));
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: 02.06.2026 / MK
-- Version Number: 1.1.0.0
-- =================================================================
-- History:
-- 23.04.2026 / MK - First Version
-- 02.06.2026 / MK - Inaktive TF Profile werden gefiltert
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,
[MAP_SEQUENCE] [smallint] 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],
[MAP_SEQUENCE],
[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 TOP 100 PERCENT
[CCP].[PK_CFG_COCKPIT_DEFINITION_ID],
[CCP].[FK_CFG_COCKPIT_ID],
[CCP].[PARENT_ID],
[MC].[SEQUENCE],
[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]
LEFT JOIN [dbo].[TBTF_MAP_COCKPIT] as [MC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [MC].[FK_CFG_COCKPIT_ID]
AND [MC].[FK_CFG_USER_ID] = @USER_ID
LEFT JOIN [dbo].[TBPM_PROFILE] as [TFP] WITH (NOLOCK) ON [CCP].[FK_PROFILE_ID] = [TFP].[GUID]
WHERE (([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 0) -- Overview
OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 1 AND [TFP].[ACTIVE] = 1) -- Profile
OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 2) -- Monitor
OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 3)) -- Chart
AND [CCP].[FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT) -- Allow no duplicates
ORDER BY [MC].[SEQUENCE] ASC, [CCP].[PARENT_ID] ASC, [CCP].[TYPE_ID] ASC;
-----------------------------------------------------------------------------------------------------------------------------------
--===============================================-- get group allocated cockpits --==============================================--
INSERT INTO @RESULT([PK_CFG_COCKPIT_DEFINITION_ID],
[FK_CFG_COCKPIT_ID],
[PARENT_ID],
[MAP_SEQUENCE],
[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 TOP 100 PERCENT
[CCP].[PK_CFG_COCKPIT_DEFINITION_ID],
[CCP].[FK_CFG_COCKPIT_ID],
[CCP].[PARENT_ID],
[MC].[SEQUENCE],
[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
LEFT JOIN [dbo].[TBTF_MAP_COCKPIT] as [MC] WITH (NOLOCK) ON [CCP].[FK_CFG_COCKPIT_ID] = [MC].[FK_CFG_COCKPIT_ID]
AND [MC].[FK_CFG_GROUP_ID] IN (SELECT DISTINCT [GROUP_ID]
FROM [dbo].[TBDD_GROUPS_USER] WITH (NOLOCK)
WHERE [USER_ID] = @USER_ID)
LEFT JOIN [dbo].[TBPM_PROFILE] as [TFP] WITH (NOLOCK) ON [CCP].[FK_PROFILE_ID] = [TFP].[GUID]
WHERE (([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 0) -- Overview
OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 1 AND [TFP].[ACTIVE] = 1) -- Profile
OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 2) -- Monitor
OR ([CC].[ACTIVE] IN (0,1) AND [TYPE_ID] = 3)) -- Chart
AND [CCP].[FK_CFG_COCKPIT_ID] NOT IN (SELECT [FK_CFG_COCKPIT_ID] FROM @RESULT) -- Allow no duplicates
ORDER BY [MC].[SEQUENCE] ASC, [CCP].[PARENT_ID] ASC, [CCP].[TYPE_ID] ASC;
----------------------------------------------------------------------------------------------------------------------------
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 --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 --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; WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0;
END END
GO 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))%') 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!!!' 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 --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 --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: --und einen where-Teil:
--############################################################################################# --#############################################################################################
--(PFW.DocID IS NULL OR (PFW.InWork = 0 AND PFW.Worked = 0)) --(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 GO
IF EXISTS(SELECT * FROM sys.columns IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'SQL_PROFILE_MAIN_VIEW' WHERE Name = N'SQL_PROFILE_MAIN_VIEW'

View File

@@ -24,13 +24,14 @@ BEGIN
SELECT @CTRL_ID_VN = GUID FROM TBPMO_CONTROL WHERE FORM_ID = @ENTITY_ID AND NAME = 'txtVorname' SELECT @CTRL_ID_VN = GUID FROM TBPMO_CONTROL WHERE FORM_ID = @ENTITY_ID AND NAME = 'txtVorname'
DECLARE MYCURSOR CURSOR LOCAL FOR 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 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 from
TBPMO_STRUCTURE_NODES T, TBPMO_STRUCTURE_NODES T,
TBPMO_STRUCTURE_NODES_CONFIGURATION T1 TBPMO_STRUCTURE_NODES_CONFIGURATION T1
WHERE WHERE
T.NODE_CONFIG_ID = T1.GUID AND T1.CREATE_RECORD = 1 T.NODE_CONFIG_ID = T1.GUID AND T1.CREATE_RECORD = 1
AND T1.ENTITY_ID = 5 AND T1.NAME in ('Dateiablage','Hauptknoten Personal') AND T1.ENTITY_ID = 5 AND T1.NAME in ('Dateiablage','Hauptknoten Personal')
and T.GUID <> 3 and T.GUID <> 3 AND T.NODE_CAPTION = 'Meldungen'
--select * from TBPMO_STRUCTURE_NODES where NODE_CONFIG_ID = 19 --select * from TBPMO_STRUCTURE_NODES where NODE_CONFIG_ID = 19

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

@@ -65,26 +65,3 @@ BEGIN CATCH
+ CONVERT(VARCHAR(500),ERROR_MESSAGE()) + CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH END CATCH
GO 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 SET ANSI_NULLS ON
GO GO
SET QUOTED_IDENTIFIER ON SET QUOTED_IDENTIFIER ON
@@ -44,7 +41,7 @@ CREATE TABLE [dbo].[TBTC_FIH_PROFILE](
CONSTRAINT [PK_TBTC_FIH_PROFILE] PRIMARY KEY CLUSTERED CONSTRAINT [PK_TBTC_FIH_PROFILE] PRIMARY KEY CLUSTERED
( (
[GUID] ASC [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] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE] 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 CONSTRAINT [PK_TBTC_FIH_PROFILE_RIGHTS_RULE] PRIMARY KEY CLUSTERED
( (
[GUID] ASC [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] ) ON [PRIMARY]
GO GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_RIGHTS_RULE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE_RIGHTS_RULE] 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 CONSTRAINT [PK_TBTC_FIH_PROFILE_RIGHTS_TYPE] PRIMARY KEY CLUSTERED
( (
[GUID] ASC [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] ) ON [PRIMARY]
GO GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_RIGHTS_TYPE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE_RIGHTS_TYPE] 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 CONSTRAINT [PK_TBTC_FIH_PROFILE_RULE] PRIMARY KEY CLUSTERED
( (
[GUID] ASC [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] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO GO
CREATE TRIGGER [dbo].[TBTC_FIH_PROFILE_RULE_TYPE_AFT_UPD] ON [dbo].[TBTC_FIH_PROFILE_RULE] 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 CONSTRAINT [PK_TBTC_FIM_PROFILE] PRIMARY KEY CLUSTERED
( (
[GUID] ASC [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] ) ON [PRIMARY]
GO GO
CREATE TRIGGER [dbo].[TBTC_FIM_PROFILE_AFT_UPD] ON [dbo].[TBTC_FIM_PROFILE] 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 CONSTRAINT [PK_TBTC_FIM_PROFILE_RULE] PRIMARY KEY CLUSTERED
( (
[GUID] ASC [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] ) ON [PRIMARY]
GO GO
CREATE TRIGGER [dbo].[TBTC_FIM_PROFILE_RULE_UPD] ON [dbo].[TBTC_FIM_PROFILE_RULE] 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) 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') UPDATE TBDD_MODULES SET DB_VERSION = '1.1.0.0' where UPPER(NAME) = UPPER('ToolCollection')
GO GO
EXEC sp_rename 'TBTC_DI_REGEX_MATCH.PROFIL_NAME', 'PROFILE_NAME', 'COLUMN';
GO
CREATE FUNCTION [dbo].[FNCUST_GET_TC_WD_RIGHTS] ( CREATE FUNCTION [dbo].[FNCUST_GET_TC_WD_RIGHTS] (
@windreamDocID BIGINT @windreamDocID BIGINT
) )

View File

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

View File

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