Compare commits

..

38 Commits

Author SHA1 Message Date
Developer01
811be40da8 ControlIndexView 2026-05-13 14:41:08 +02:00
Developer01
d7ee5d3e83 MS task und orgFLOW. Vor allem COckpit in taskFLOW 2026-05-13 14:30:46 +02:00
Developer01
7d85665368 Push vom 27.03 IDB und orgFLOW 2026-03-27 14:24:15 +01:00
Developer01
f59f8a22d3 orgFLOW Rechte NodesAnlegen
taskFlow Formula_SQL
2026-03-24 17:23:02 +01:00
Developer01
01e0c726e5 DD_ECM und taskOrgFLOW 2026-03-10 12:43:37 +01:00
Developer01
1febe4956b Push 2.3 nach nicht Übernahme Anpassungen 2026-02-12 16:58:34 +01:00
Developer01
8c673e3f2e Nochmal push für 2.8 2026-02-12 14:14:48 +01:00
Developer01
32abe759cb Zeilenberechnungen taskFLOW, spalten TBPM_RPOFILE_FILES 2026-02-12 10:22:54 +01:00
Developer01
3917c9c675 TransportScripts und taskFLOW 2026-02-02 11:01:08 +01:00
Developer01
670f58e1fa commit 11.12 2025-12-11 14:39:42 +01:00
Developer01
b6a6495f52 Orgflow und DD_ECM 2025-10-30 18:37:25 +01:00
Developer01
bf790156bc signFLOW und Sichtbeleg 2025-09-05 13:40:09 +02:00
Developer01
6827da195c MWF CreateDBObjects 2025-07-18 15:48:45 +02:00
Developer01
b8b9891602 MWF 2025-07-18 15:46:23 +02:00
Developer01
1069216108 xRechnugn Sichtbeleg, taskFlow GuiLanguagePhrase,orgFLOW namedLicensing
signFLOW parentChildReceiver
2025-07-14 08:52:57 +02:00
Developer01
a7d27cec30 DD_ECM ColumnGrid Tabelle. orgFLOW personalakte 2025-06-26 16:18:07 +02:00
Developer01
d4ffba093f Merge branch 'master' of http://dd-vmp07-com04:3000/AppStd/SqlScripts
Neue Tabelle Mirko
2025-06-12 09:10:02 +02:00
Developer01
ba27b6989c OrgFLOW Update, dadurch auch DD_ECM 2025-06-12 09:09:36 +02:00
01426c749d Neue Spalte "EN16931_ID" 2025-06-11 14:39:24 +02:00
Developer01
25eeb6d310 signFlow aktualisieren Erstellung 2025-05-14 08:43:08 +02:00
Developer01
d46e67d4b6 DD_ECM, Addedscripts DDECM
orgFLOW, signFLOW
2025-05-07 13:20:18 +02:00
Developer01
93802e4995 MS SQL Join Anpassung AllIn Skripte 2025-04-23 12:55:32 +02:00
Developer01
69dfe197b8 EnvelopeCreator API 2025-04-10 18:00:16 +02:00
Developer01
a60d5a6f9d Ms Zusammenführung smartup DD_ECM 2025-03-28 15:28:32 +01:00
Developer01
beb7850a92 MS DD_ECM_Allin Skript 2025-03-21 14:16:25 +01:00
Developer01
3ff72eb165 MS Integrate smartup in DD_ECM, Erstes ToolCollection Tabellenskript in ZA mit Marvin 2025-03-21 11:06:27 +01:00
Developer01
8b4f1d05d2 MS Zusammenführung 2025-03-19 15:35:57 +01:00
Developer01
b07e52f8ab MS easyFLOW und fileFLOW added to mainskript 2025-03-18 16:19:37 +01:00
Developer01
4fc15940a2 MS DD_ECM windream related skripte separat, UM integriert 2025-03-18 15:14:15 +01:00
Developer01
19a5418dcb MS DD_ECM Windream related sripts ausgelagert 2025-03-18 14:48:52 +01:00
Developer01
8c7c66b0c4 MS DD_ECM UpdateScripts in Main integriert 2025-03-18 14:07:05 +01:00
Developer01
4e3b6bf8e9 MS DD_ECM 2025-03-18 12:53:48 +01:00
Developer01
5faee00ae9 Nochmaliger Push taskFLOW 2025-02-26 14:48:19 +01:00
Developer01
6c0a6ee05b MS signFLOW und taskFLOW 2025-02-25 17:34:45 +01:00
Developer01
47668cf14c MS EnvelopeCreator, orgFLOW und Taskflow 2025-02-18 17:43:35 +01:00
Developer01
294bb8bfd0 easy/signFLOW Updates 2025-02-11 16:48:09 +01:00
Developer01
f1409427f7 2.4.1.0 2025-01-29 11:02:58 +01:00
Developer01
9cbb9e4859 MS TaskFlow nach SWE Auffälligkeiten 2025-01-29 08:27:50 +01:00
122 changed files with 14917 additions and 4921 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,680 @@
--############## ATTENTION BEFORE RUNNING THIS SCRIPT ######################
--1. Replace [windreamDB] in code with name of WM-Database
--2. Replace @WMSQLSERVER_NAME in Code mit Name und Instanz der WM-Datenenbank Beispiel: sDD_VMP01_APS01_windreamDB
--##########################################################################
INSERT INTO TBDD_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('WM_DB_SERVER','@WMSQLSERVER_NAME')
GO
CREATE TRIGGER TBDD_GROUPS_AFT_UPD_WMGROUP ON TBDD_GROUPS
FOR UPDATE
AS
BEGIN
DECLARE @GRPNAME VARCHAR(50)
SELECT @GRPNAME = NAME FROM inserted
IF UPDATE (NAME)
BEGIN
DECLARE @ECM_GRP_ID INTEGER
SELECT @ECM_GRP_ID = [dwGroupID]
FROM [windreamDB].[dbo].[GroupInfo] where UPPER(szGroupName) = UPPER(@GRPNAME) AND szNTDomain = '@DIGITALDATA.LOCAL'
IF @ECM_GRP_ID IS NULL
SET @ECM_GRP_ID = 0
UPDATE TBDD_GROUPS SET ECM_FK_ID = @ECM_GRP_ID
FROM INSERTED
WHERE TBDD_GROUPS.GUID = INSERTED.GUID
END
END
GO
CREATE OR ALTER TRIGGER [dbo].[TBDD_USER_AFT_INS_WMUSER] ON [dbo].[TBDD_USER]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@USER_ID INTEGER,
@CLIENT_ID INTEGER,
@ADDED_WHO VARCHAR(50),
@CLIENT_COUNT INTEGER,
@ECM_USR_ID INTEGER,
@USRNAME VARCHAR(50),
@UPDATE_PATH VARCHAR(500)
SELECT
@USER_ID = GUID,
@ADDED_WHO = ADDED_WHO,
@USRNAME = USERNAME
FROM INSERTED
SELECT @ECM_USR_ID = [dwUserID]
FROM [windreamDB].[dbo].[UserInfo] where UPPER(szUserName) = UPPER(@USRNAME)
IF @ECM_USR_ID IS NOT NULL
UPDATE TBDD_USER SET USERID_FK_INT_ECM = @ECM_USR_ID
FROM INSERTED
WHERE TBDD_USER.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN TBDD_USER_AFT_INS'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TRIGGER TBDD_USER_AFT_UPD_WMUSER ON TBDD_USER
FOR UPDATE
AS
BEGIN
DECLARE @USRNAME VARCHAR(50)
SELECT @USRNAME = USERNAME FROM inserted
IF UPDATE (USERNAME)
BEGIN
DECLARE @ECM_USR_ID INTEGER
SELECT @ECM_USR_ID = [dwUserID]
FROM [windreamDB].[dbo].[UserInfo] where UPPER(szUserName) = UPPER(@USRNAME)
IF @ECM_USR_ID IS NOT NULL
UPDATE TBDD_USER SET USERID_FK_INT_ECM = @ECM_USR_ID
FROM INSERTED
WHERE TBDD_USER.GUID = INSERTED.GUID
END
END
GO
CREATE PROCEDURE [dbo].[PRDD_USER_REFRESH_WM_ID]
AS
DECLARE
@GUID INTEGER,
@USERNAME VARCHAR(500)
DECLARE cursPRDD_USER_REFRESH_WM_ID CURSOR FOR
select GUID,USERNAME from TBDD_USER
OPEN cursPRDD_USER_REFRESH_WM_ID
FETCH NEXT FROM cursPRDD_USER_REFRESH_WM_ID INTO @GUID,@USERNAME
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @ECM_USR_ID INTEGER
SELECT @ECM_USR_ID = [dwUserID] FROM [windreamDB].[dbo].[UserInfo] where UPPER(szUserName) = UPPER(@USERNAME)
IF @ECM_USR_ID IS NOT NULL
UPDATE TBDD_USER SET USERID_FK_INT_ECM = @ECM_USR_ID WHERE GUID = @GUID
FETCH NEXT FROM cursPRDD_USER_REFRESH_WM_ID INTO @GUID,@USERNAME
END
CLOSE cursPRDD_USER_REFRESH_WM_ID
DEALLOCATE cursPRDD_USER_REFRESH_WM_ID
GO
CREATE OR ALTER VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_GROUP]
AS
SELECT [AR].[dwObjectID],
[UG].[dwUserOrGROUPID],
[AR].[dwAccessRight],
[AR].[dwObjectDBID]
FROM [TBDD_USER] TU (NOLOCK)
INNER JOIN [windreamDB].[dbo].[UserGroup] UG (NOLOCK) ON TU.[USERID_FK_INT_ECM] = UG.[dwUserOrGroupID]
INNER JOIN [windreamDB].[dbo].[AccessRight] AR (NOLOCK) ON UG.[dwGroupID] = AR.[dwUserOrGroupID];
GO
USE [DD_ECM]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE OR ALTER VIEW [dbo].[VWDD_WM_ACCESS_RIGHTS_USER]
AS
SELECT [AR].[dwObjectID],
[AR].[dwUserOrGROUPID],
[AR].[dwAccessRight],
[AR].[dwObjectDBID]
FROM [TBDD_USER] TU (NOLOCK)
LEFT JOIN [windreamDB].[dbo].[AccessRight] AR (NOLOCK) ON TU.[USERID_FK_INT_ECM] = AR.[dwUserOrGroupID];
GO
-- [FNDD_GET_WINDREAM_CHOICELIST_ITEMS]
-- =================================================================
-- Reads the windream database choice list and gives the
-- choice list items
--
-- Returns: Table (1 column)
-- =================================================================
-- Copyright (c) 2024 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 13.12.2024 / MK
-- Version Date / Editor: 13.12.2024 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 13.12.2024 / MK - First Version
CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_WINDREAM_CHOICELIST_ITEMS] (
@szListName NVARCHAR(255)
)
RETURNS TABLE
AS
RETURN
SELECT TOP (100) PERCENT [szValue] as 'Auswahlliste'
FROM [windreamDB].[dbo].[ChoiceListItem]
WHERE [dwChoiceListID] = (SELECT [dwChoiceListID] FROM [windreamDB].[dbo].[ChoiceList] WHERE [szListName] = @szListName)
AND LEN([szValue]) > 0
ORDER BY [Auswahlliste] ASC
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [FNDD_GET_WINDREAM_INDEX_VALUES]
-- =================================================================
-- Reads the windream database attributes to gives the index value
-- of a regular index or a vector index
--
-- Returns: Table (7 columns)
-- =================================================================
-- Copyright (c) 2024 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 13.12.2024 / MK
-- Version Date / Editor: 13.12.2024 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 13.12.2024 / MK - First Version
CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES] (
@pdwDocID BIGINT, -- Give windream DocID, eg. 4711
@pszAttrName NVARCHAR(255) -- Give name of the windream Index, eg 'String 37'
)
RETURNS @Table TABLE ([COUNTER] BIGINT IDENTITY(1, 1), [COUNT] BIGINT, [VALUE] NVARCHAR(max), [SOURCE_TYPE] NVARCHAR(50), [SOURCE_TABLE] NVARCHAR(50), [SOURCE_COLUMN] NVARCHAR(50), [SOURCE_COLUMN_SIZE] INT)
AS
BEGIN
DECLARE @dwDocID BIGINT = @pdwDocID,
@szAttrName NVARCHAR(255) = @pszAttrName;
DECLARE @VectorCount INT = 0,
@dwAttrSize INT = 0,
@dwAttrID BIGINT = 0,
@dwAttrType BIGINT = 0,
@szTableName NVARCHAR(255) = NULL,
@szColumnName NVARCHAR(255) = NULL;
DECLARE @Attribute TABLE ([dwAttrID] BIGINT, [dwAttrType] BIGINT, [szTableName] NVARCHAR(255), [szColumnName] NVARCHAR(255), [dwAttrSize] INT);
------------------------------------------------------------------------------------------------------------
INSERT INTO @Attribute ([dwAttrID], [dwAttrType], [szTableName], [szColumnName], [dwAttrSize])
SELECT TOP 1 [dwAttrID], [dwAttrType], [szTableName], [szColumnName], [dwAttrSize]
FROM [windreamDB].[dbo].[Attribute] (NOLOCK) WHERE [szAttrName] = @szAttrName;
------------------------------------------------------------------------------------------------------------
IF ((SELECT COUNT(*) FROM @Attribute) > 0) BEGIN
SELECT @dwAttrID = [dwAttrID],
@dwAttrType = [dwAttrType],
@szTableName = [szTableName],
@szColumnName = [szColumnName],
@dwAttrSize = [dwAttrSize]
FROM @Attribute;
------------------------------------------------------------------------------------------------------------
IF ((@dwAttrID > 0) and (@dwAttrType > 0) and (LEN(@szTableName) > 0) and (LEN(@szColumnName) > 0)) BEGIN
IF (@szTableName = 'BaseAttributes') BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT
COUNT(*),
CASE
WHEN @szColumnName = 'dwDocID' THEN (SELECT CONVERT(NVARCHAR,[dwDocID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDocDBID' THEN (SELECT CONVERT(NVARCHAR,[dwDocDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwParentID' THEN (SELECT CONVERT(NVARCHAR,[dwParentID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwParentDBID' THEN (SELECT CONVERT(NVARCHAR,[dwParentDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwObjectTypeID' THEN (SELECT CONVERT(NVARCHAR,[dwObjectTypeID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwObjectTypeDBID' THEN (SELECT CONVERT(NVARCHAR,[dwObjectTypeDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwCatalogID' THEN (SELECT CONVERT(NVARCHAR,[dwCatalogID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwCreatorID' THEN (SELECT CONVERT(NVARCHAR,[dwCreatorID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szCreatorName' THEN (SELECT CONVERT(NVARCHAR,[szCreatorName]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwVersionNumber' THEN (SELECT CONVERT(NVARCHAR,[dwVersionNumber]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwVersionID' THEN (SELECT CONVERT(NVARCHAR,[dwVersionID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szLongName' THEN (SELECT CONVERT(NVARCHAR,[szLongName]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szUpperLongName' THEN (SELECT CONVERT(NVARCHAR,[szUpperLongName]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szShortName' THEN (SELECT CONVERT(NVARCHAR,[szShortName]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szUpperShortName' THEN (SELECT CONVERT(NVARCHAR,[szUpperShortName]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwSize' THEN (SELECT CONVERT(NVARCHAR,[dwSize]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'decCreationTime' THEN (SELECT CONVERT(NVARCHAR,[decCreationTime]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'decAccessTime' THEN (SELECT CONVERT(NVARCHAR,[decAccessTime]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'decChangedTime' THEN (SELECT CONVERT(NVARCHAR,[decChangedTime]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwChangeCount' THEN (SELECT CONVERT(NVARCHAR,[dwChangeCount]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwFSFlags' THEN (SELECT CONVERT(NVARCHAR,[dwFSFlags]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwFlags' THEN (SELECT CONVERT(NVARCHAR,[dwFlags]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwOwnerID' THEN (SELECT CONVERT(NVARCHAR,[dwOwnerID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwOwnerDBID' THEN (SELECT CONVERT(NVARCHAR,[dwOwnerDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwWorkLockUserID' THEN (SELECT CONVERT(NVARCHAR,[dwWorkLockUserID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwWorkLockUserDBID' THEN (SELECT CONVERT(NVARCHAR,[dwWorkLockUserDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwFlags2' THEN (SELECT CONVERT(NVARCHAR,[dwFlags2]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwUserFlags' THEN (SELECT CONVERT(NVARCHAR,[dwUserFlags]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwEditDate' THEN (SELECT CONVERT(NVARCHAR,[dwEditDate]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwArchiveDate' THEN (SELECT CONVERT(NVARCHAR,[dwArchiveDate]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwEditPeriod' THEN (SELECT CONVERT(NVARCHAR,[dwEditPeriod]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwArchivePeriod' THEN (SELECT CONVERT(NVARCHAR,[dwArchivePeriod]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szReference' THEN (SELECT CONVERT(NVARCHAR,[szReference]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwCreationDate' THEN (SELECT CONVERT(NVARCHAR,[dwCreationDate]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwChangeDate' THEN (SELECT CONVERT(NVARCHAR,[dwChangeDate]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwTypeAssignDate' THEN (SELECT CONVERT(NVARCHAR,[dwTypeAssignDate]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwCreation_Time' THEN (SELECT CONVERT(NVARCHAR,[dwCreation_Time]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwChange_Time' THEN (SELECT CONVERT(NVARCHAR,[dwChange_Time]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwTypeAssign_Time' THEN (SELECT CONVERT(NVARCHAR,[dwTypeAssign_Time]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szDisplay_Name' THEN (SELECT CONVERT(NVARCHAR,[szDisplay_Name]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwAccessListID' THEN (SELECT CONVERT(NVARCHAR,[dwAccessListID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwAccessListDBID' THEN (SELECT CONVERT(NVARCHAR,[dwAccessListDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szFile_Ext' THEN (SELECT CONVERT(NVARCHAR,[szFile_Ext]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szWM_Store' THEN (SELECT CONVERT(NVARCHAR,[szWM_Store]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText00' THEN (SELECT CONVERT(NVARCHAR,[szText00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText01' THEN (SELECT CONVERT(NVARCHAR,[szText01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText02' THEN (SELECT CONVERT(NVARCHAR,[szText02]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText03' THEN (SELECT CONVERT(NVARCHAR,[szText03]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText04' THEN (SELECT CONVERT(NVARCHAR,[szText04]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText05' THEN (SELECT CONVERT(NVARCHAR,[szText05]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText06' THEN (SELECT CONVERT(NVARCHAR,[szText06]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText07' THEN (SELECT CONVERT(NVARCHAR,[szText07]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText08' THEN (SELECT CONVERT(NVARCHAR,[szText08]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText09' THEN (SELECT CONVERT(NVARCHAR,[szText09]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText10' THEN (SELECT CONVERT(NVARCHAR,[szText10]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText11' THEN (SELECT CONVERT(NVARCHAR,[szText11]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText12' THEN (SELECT CONVERT(NVARCHAR,[szText12]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText13' THEN (SELECT CONVERT(NVARCHAR,[szText13]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText14' THEN (SELECT CONVERT(NVARCHAR,[szText14]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText15' THEN (SELECT CONVERT(NVARCHAR,[szText15]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText16' THEN (SELECT CONVERT(NVARCHAR,[szText16]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText17' THEN (SELECT CONVERT(NVARCHAR,[szText17]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText18' THEN (SELECT CONVERT(NVARCHAR,[szText18]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText19' THEN (SELECT CONVERT(NVARCHAR,[szText19]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText20' THEN (SELECT CONVERT(NVARCHAR,[szText20]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText21' THEN (SELECT CONVERT(NVARCHAR,[szText21]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText22' THEN (SELECT CONVERT(NVARCHAR,[szText22]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText23' THEN (SELECT CONVERT(NVARCHAR,[szText23]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText24' THEN (SELECT CONVERT(NVARCHAR,[szText24]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText25' THEN (SELECT CONVERT(NVARCHAR,[szText25]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText26' THEN (SELECT CONVERT(NVARCHAR,[szText26]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText27' THEN (SELECT CONVERT(NVARCHAR,[szText27]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText28' THEN (SELECT CONVERT(NVARCHAR,[szText28]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText29' THEN (SELECT CONVERT(NVARCHAR,[szText29]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText30' THEN (SELECT CONVERT(NVARCHAR,[szText30]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText31' THEN (SELECT CONVERT(NVARCHAR,[szText31]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText32' THEN (SELECT CONVERT(NVARCHAR,[szText32]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText33' THEN (SELECT CONVERT(NVARCHAR,[szText33]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText34' THEN (SELECT CONVERT(NVARCHAR,[szText34]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText35' THEN (SELECT CONVERT(NVARCHAR,[szText35]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText36' THEN (SELECT CONVERT(NVARCHAR,[szText36]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText37' THEN (SELECT CONVERT(NVARCHAR,[szText37]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText38' THEN (SELECT CONVERT(NVARCHAR,[szText38]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'szText39' THEN (SELECT CONVERT(NVARCHAR,[szText39]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger00' THEN (SELECT CONVERT(NVARCHAR,[dwInteger00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger01' THEN (SELECT CONVERT(NVARCHAR,[dwInteger01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger02' THEN (SELECT CONVERT(NVARCHAR,[dwInteger02]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger03' THEN (SELECT CONVERT(NVARCHAR,[dwInteger03]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger04' THEN (SELECT CONVERT(NVARCHAR,[dwInteger04]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger05' THEN (SELECT CONVERT(NVARCHAR,[dwInteger05]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger06' THEN (SELECT CONVERT(NVARCHAR,[dwInteger06]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger07' THEN (SELECT CONVERT(NVARCHAR,[dwInteger07]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger08' THEN (SELECT CONVERT(NVARCHAR,[dwInteger08]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger09' THEN (SELECT CONVERT(NVARCHAR,[dwInteger09]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger10' THEN (SELECT CONVERT(NVARCHAR,[dwInteger10]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger11' THEN (SELECT CONVERT(NVARCHAR,[dwInteger11]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger12' THEN (SELECT CONVERT(NVARCHAR,[dwInteger12]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger13' THEN (SELECT CONVERT(NVARCHAR,[dwInteger13]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger14' THEN (SELECT CONVERT(NVARCHAR,[dwInteger14]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger15' THEN (SELECT CONVERT(NVARCHAR,[dwInteger15]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger16' THEN (SELECT CONVERT(NVARCHAR,[dwInteger16]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger17' THEN (SELECT CONVERT(NVARCHAR,[dwInteger17]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger18' THEN (SELECT CONVERT(NVARCHAR,[dwInteger18]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger19' THEN (SELECT CONVERT(NVARCHAR,[dwInteger19]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger20' THEN (SELECT CONVERT(NVARCHAR,[dwInteger20]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger21' THEN (SELECT CONVERT(NVARCHAR,[dwInteger21]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger22' THEN (SELECT CONVERT(NVARCHAR,[dwInteger22]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger23' THEN (SELECT CONVERT(NVARCHAR,[dwInteger23]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwInteger24' THEN (SELECT CONVERT(NVARCHAR,[dwInteger24]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate00' THEN (SELECT CONVERT(NVARCHAR,[dwDate00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate01' THEN (SELECT CONVERT(NVARCHAR,[dwDate01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate02' THEN (SELECT CONVERT(NVARCHAR,[dwDate02]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate03' THEN (SELECT CONVERT(NVARCHAR,[dwDate03]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate04' THEN (SELECT CONVERT(NVARCHAR,[dwDate04]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate05' THEN (SELECT CONVERT(NVARCHAR,[dwDate05]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate06' THEN (SELECT CONVERT(NVARCHAR,[dwDate06]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate07' THEN (SELECT CONVERT(NVARCHAR,[dwDate07]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate08' THEN (SELECT CONVERT(NVARCHAR,[dwDate08]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwDate09' THEN (SELECT CONVERT(NVARCHAR,[dwDate09]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat00' THEN (SELECT CONVERT(NVARCHAR,[lfFloat00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat01' THEN (SELECT CONVERT(NVARCHAR,[lfFloat01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat02' THEN (SELECT CONVERT(NVARCHAR,[lfFloat02]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat03' THEN (SELECT CONVERT(NVARCHAR,[lfFloat03]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat04' THEN (SELECT CONVERT(NVARCHAR,[lfFloat04]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat05' THEN (SELECT CONVERT(NVARCHAR,[lfFloat05]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat06' THEN (SELECT CONVERT(NVARCHAR,[lfFloat06]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat07' THEN (SELECT CONVERT(NVARCHAR,[lfFloat07]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat08' THEN (SELECT CONVERT(NVARCHAR,[lfFloat08]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat09' THEN (SELECT CONVERT(NVARCHAR,[lfFloat09]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat10' THEN (SELECT CONVERT(NVARCHAR,[lfFloat10]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat11' THEN (SELECT CONVERT(NVARCHAR,[lfFloat11]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat12' THEN (SELECT CONVERT(NVARCHAR,[lfFloat12]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat13' THEN (SELECT CONVERT(NVARCHAR,[lfFloat13]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'lfFloat14' THEN (SELECT CONVERT(NVARCHAR,[lfFloat14]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'blBool00' THEN (SELECT CONVERT(NVARCHAR,[blBool00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'blBool01' THEN (SELECT CONVERT(NVARCHAR,[blBool01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'blBool02' THEN (SELECT CONVERT(NVARCHAR,[blBool02]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'blBool03' THEN (SELECT CONVERT(NVARCHAR,[blBool03]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'blBool04' THEN (SELECT CONVERT(NVARCHAR,[blBool04]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'decTimeStamp00' THEN (SELECT CONVERT(NVARCHAR,[decTimeStamp00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'decTimeStamp01' THEN (SELECT CONVERT(NVARCHAR,[decTimeStamp01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'decCurrency00' THEN (SELECT CONVERT(NVARCHAR,[decCurrency00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar00' THEN (SELECT CONVERT(NVARCHAR,[wmVar00]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar01' THEN (SELECT CONVERT(NVARCHAR,[wmVar01]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar02' THEN (SELECT CONVERT(NVARCHAR,[wmVar02]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar03' THEN (SELECT CONVERT(NVARCHAR,[wmVar03]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar04' THEN (SELECT CONVERT(NVARCHAR,[wmVar04]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar05' THEN (SELECT CONVERT(NVARCHAR,[wmVar05]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar06' THEN (SELECT CONVERT(NVARCHAR,[wmVar06]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar07' THEN (SELECT CONVERT(NVARCHAR,[wmVar07]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar08' THEN (SELECT CONVERT(NVARCHAR,[wmVar08]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar09' THEN (SELECT CONVERT(NVARCHAR,[wmVar09]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar10' THEN (SELECT CONVERT(NVARCHAR,[wmVar10]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar11' THEN (SELECT CONVERT(NVARCHAR,[wmVar11]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar12' THEN (SELECT CONVERT(NVARCHAR,[wmVar12]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar13' THEN (SELECT CONVERT(NVARCHAR,[wmVar13]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar14' THEN (SELECT CONVERT(NVARCHAR,[wmVar14]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar15' THEN (SELECT CONVERT(NVARCHAR,[wmVar15]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar16' THEN (SELECT CONVERT(NVARCHAR,[wmVar16]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar17' THEN (SELECT CONVERT(NVARCHAR,[wmVar17]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar18' THEN (SELECT CONVERT(NVARCHAR,[wmVar18]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar19' THEN (SELECT CONVERT(NVARCHAR,[wmVar19]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar20' THEN (SELECT CONVERT(NVARCHAR,[wmVar20]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar21' THEN (SELECT CONVERT(NVARCHAR,[wmVar21]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar22' THEN (SELECT CONVERT(NVARCHAR,[wmVar22]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar23' THEN (SELECT CONVERT(NVARCHAR,[wmVar23]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar24' THEN (SELECT CONVERT(NVARCHAR,[wmVar24]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar25' THEN (SELECT CONVERT(NVARCHAR,[wmVar25]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar26' THEN (SELECT CONVERT(NVARCHAR,[wmVar26]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar27' THEN (SELECT CONVERT(NVARCHAR,[wmVar27]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar28' THEN (SELECT CONVERT(NVARCHAR,[wmVar28]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'wmVar29' THEN (SELECT CONVERT(NVARCHAR,[wmVar29]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
WHEN @szColumnName = 'dwILMRetention' THEN (SELECT CONVERT(NVARCHAR,[dwILMRetention]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID)
ELSE NULL
END AS ColumnValue,
@dwAttrType,
@szTableName,
@szColumnName,
@dwAttrSize
FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK)
WHERE [dwDocID] = @dwDocID;
------------------------------------------------------------------------------------------------------------
END; ELSE IF (@szTableName = 'Vector') BEGIN
SELECT @VectorCount = COUNT(*)
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID;
IF (@dwAttrType in (4097)) BEGIN -- String
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [szValue], @dwAttrType, @szTableName, 'szValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [szValue];
END; ELSE IF (@dwAttrType in (4098,4107)) BEGIN -- Integer
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [dwValue], @dwAttrType, @szTableName, 'dwValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [dwValue];
END; ELSE IF (@dwAttrType in (4099)) BEGIN -- Float
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [lfValue], @dwAttrType, @szTableName, 'lfValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [lfValue];
END; ELSE IF (@dwAttrType in (8,4100,8204)) BEGIN -- Bool
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [blValue], @dwAttrType, @szTableName, 'blValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [blValue];
END; ELSE IF (@dwAttrType in (4101)) BEGIN -- Date
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT @VectorCount, [decValue], @dwAttrType, @szTableName, 'decValue', @dwAttrSize
FROM [windreamDB].[dbo].[Vector] (NOLOCK)
WHERE [dwDocID] = @dwDocID
AND [dwAttrID] = @dwAttrID
GROUP BY [decValue];
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR5', 'COLUMN NOT FOUND', NULL;
END;
-- Failsafe, to have at least one result
IF (SELECT COUNT(*) FROM @Table) = 0 BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR4', 'NO VALUE FOUND', NULL;
END;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR3', 'TABLE NOT FOUND', NULL;
END;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR2', 'TABLE NOT FOUND', NULL;
END;
END; ELSE BEGIN
INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE])
SELECT 0, NULL, NULL, 'ERROR1', 'INDEX NOT FOUND', NULL;
END;
RETURN;
END;
GO
CREATE FUNCTION [dbo].[FNCUST_GET_TC_WD_RIGHTS] (
@windreamDocID BIGINT
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT concat([wdGI].[szNTDomain],'\',[wdGI].[szGroupName]) as 'RightGroups'
FROM [windreamDB].[dbo].[BaseAttributes] as [wdBA] (NOLOCK)
INNER JOIN [windreamDB].[dbo].[UserInfo] as [wdUI] (NOLOCK) ON UPPER([wdBA].[szText22]) = UPPER([wdUI].[szUserName]) -- Username for UserID
INNER JOIN [windreamDB].[dbo].[UserGroup] as [wdU2G] (NOLOCK) ON [wdUI].[dwUserID] = [wdU2G].[dwUserOrGroupID] -- UserID for GroupsID
INNER JOIN [windreamDB].[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
-- ######################### easyFLOW #############################################
CREATE FUNCTION [dbo].[FNCW_WM_SEARCH] (@pSearchValue Varchar(512),@pUSER_ID INTEGER, @pLike BIT)
RETURNS @TBResult TABLE
(DocID INTEGER,
INDEX_NAME VARCHAR(50),
COMMENT VARCHAR(500))
AS
BEGIN
DECLARE @USER_ECM_FKID INTEGER
SELECT @USER_ECM_FKID = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @pUSER_ID
IF @pLike = 1
BEGIN
INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT T.[dwDocID]
,T.[Idx]
FROM VWCW_SEARCH1 T INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON T.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE UPPER(T.Search_Term) LIKE UPPER('%' + @pSearchValue + '%')
INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT WMV.dwDocID, WMA.szAttrName
FROM [windreamDB].dbo.Attribute WMA INNER JOIN [windreamDB].dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID
INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51')
AND UPPER(WMV.szValue) LIKE UPPER('%' + @pSearchValue + '%')
END
ELSE
BEGIN
INSERT INTO @TBResult (DocID, INDEX_NAME) -- VALUES (1,'1234')
SELECT T.[dwDocID]
,T.[Idx]--,T.Search_Term
FROM VWCW_SEARCH1 T INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON T.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = 1000004
WHERE UPPER(T.Search_Term) = UPPER(@pSearchValue)
INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT WMV.dwDocID, WMA.szAttrName
FROM [windreamDB].dbo.Attribute WMA INNER JOIN [windreamDB].dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID
INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51')
AND UPPER(WMV.szValue) = UPPER(@pSearchValue)
END
RETURN
END
GO
CREATE PROCEDURE [dbo].[PRPM_REMOVE_NE_FILES]
AS
DECLARE
@DOC_ID INTEGER,
@DocRelativePath VARCHAR(500)
DECLARE c_PRPM_REMOVE_NE_FILES CURSOR FOR
select DOC_ID,FILE_PATH from TBPM_PROFILE_FILES
OPEN c_PRPM_REMOVE_NE_FILES
FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT [dwDocID] FROM [windreamDB].[dbo].[BaseAttributes] where dwDocID = @DOC_ID)
IF NOT EXISTS(SELECT IDB_OBJ_ID FROM IDB.dbo.TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @DOC_ID and UPPER(RELATIVE_PATH) = UPPER(@DocRelativePath))
DELETE FROM TBPM_PROFILE_FILES WHERE DOC_ID = @DOC_ID
FETCH NEXT FROM c_PRPM_REMOVE_NE_FILES INTO @DOC_ID,@DocRelativePath
END
CLOSE c_PRPM_REMOVE_NE_FILES
DEALLOCATE c_PRPM_REMOVE_NE_FILES
GO
UPDATE TBPM_KONFIGURATION SET SQL_PROFILE_MAIN_VIEW = '
/*## Following Columns need to be part of sql ##
TL_STATE Returns the TrafficLight-State for each doc (1=Red;2=Orange;3=Green)
PROFILE_ID TITLE Profile-Title used for default-grouping
DOC_ID
FULL_FILE_PATH
LAST USE
LAST EDITED */
--DECLARE @USER_ID INTEGER
--SET @USER_ID = 1
SELECT
T.GUID,
DATEDIFF(DAY, [dbo].[FNPM_LAST_EDITED_DOC] (T.PROFIL_ID,T.DOC_ID),GETDATE()) AS [Days in],
Case DATEDIFF(DAY, [dbo].[FNPM_LAST_EDITED_DOC] (T.PROFIL_ID,T.DOC_ID),GETDATE()) WHEN 0 THEN 3 WHEN 1 THEN 2 WHEN 2 THEN 1 ELSE 3 END AS TL_STATE,
T.PROFIL_ID AS PROFILE_ID,
T.DOC_ID,
T.FILE_PATH AS FULL_FILE_PATH,
TWM_BA.szLongName as Dateiname,
TWM_BA.szText36 AS Dokumentart,
--TWM_BA.szText35 AS [weitergeleitet an],
--TWM_BA.lfFloat14 AS [Rechnungs Summe],
--ISNULLTWM_BA.szText14 AS Buchungskreis,
--TWM_BA.szText08 AS Kreditor,
T.DMS_ERSTELLT_DATE AS [Erhalten wann],
[dbo].[FNPM_LAST_WORKUSER_DOC] (T.PROFIL_ID,T.DOC_ID) AS ''Last User'',
[dbo].[FNPM_LAST_EDITED_DOC] (T.PROFIL_ID,T.DOC_ID) AS ''Last edited'',
[dbo].[FNPM_PROFILE_GROUP_COLOR] (T.PROFIL_ID) AS ''GROUP_COLOR'',
[dbo].[FNPM_PROFILE_GROUP_TEXT] (T.PROFIL_ID) AS ''GROUP_TEXT''
FROM TBPM_PROFILE_FILES T,
TBPM_PROFILE T1,
TBDD_USER T2,
[windreamDB].dbo.BaseAttributes TWM_BA WHERE T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1 AND T.PROFIL_ID = T1.GUID AND T1.GUID in (SELECT PROFIL_ID FROM [dbo].[FNPM_GET_ACTIVE_PROFILES_USER] ({#USER#USER_ID})) AND T1.ACTIVE = 1 And T2.GUID = {#USER#USER_ID}
AND T.DOC_ID = TWM_BA.dwDocID ORDER By T1.PRIORITY'
WHERE GUID = 1
GO
CREATE FUNCTION [dbo].[FNDD_GET_WINDREAM_FILE_PATH] (@pDOCID BIGINT)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE
@RESULT VARCHAR(MAX),
@DOCID BIGINT,
@a TINYINT = 1,
@i TINYINT = 0,
@PARENT_ID BIGINT,
@DATEINAME NVARCHAR(255),
@PARENTNAME NVARCHAR(255),
@FSFLAGS INT,
@WM_PREFIX VARCHAR(50)
SELECT @WM_PREFIX = WM_REL_PATH from tbpm_KONFIGURATION WHERE GUID = 1
SELECT @FSFLAGS = dwFSFlags FROM [windreamDB].dbo.BaseAttributes WHERE dwDocID = @pDOCID
IF @FSFLAGS = 16
BEGIN
SET @RESULT = 'THIS IS NOT A FILE!'
END
ELSE
BEGIN
SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [windreamDB].dbo.BaseAttributes WHERE dwDocID = @pDOCID
WHILE @a > 0
BEGIN
IF @i = 0
BEGIN
IF @PARENT_ID = 1
BEGIN
SET @RESULT = '\'
BREAK
END
ELSE
BEGIN
SET @DOCID = @PARENT_ID
SET @RESULT = '\'
END
END
ELSE
BEGIN
IF @PARENT_ID = 1
BEGIN
SET @RESULT = '\' + @PARENTNAME + @RESULT
BREAK
END
ELSE
BEGIN
SET @DOCID = @PARENT_ID
SET @RESULT = '\' + @PARENTNAME + @RESULT
END
END
SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [windreamDB].dbo.BaseAttributes WHERE dwDocID = @DOCID
SET @i = @i + 1
END
END
SET @RESULT = @WM_PREFIX + @RESULT + @DATEINAME
RETURN @RESULT
END
GO

View File

@@ -0,0 +1,651 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.5';
GO
CREATE TABLE [dbo].[TBEDMI_ITEM_VALUE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[REFERENCE_GUID] NVARCHAR(250) NOT NULL,
[ITEM_DESCRIPTION] NVARCHAR(250) NOT NULL,
[ITEM_VALUE] NVARCHAR(4000) NULL,
[CREATEDWHEN] DATETIME NOT NULL,
[CREATEDWHO] NVARCHAR(100) NULL,
[CHANGEDWHEN] DATETIME NULL,
[GROUP_COUNTER] [int] NULL,
[SPEC_NAME] NVARCHAR(100) NULL,
[IS_REQUIRED] BIT NOT NULL,
[COMMENT] [nvarchar](100) NULL,
[CHANGEDWHO] [nvarchar](100) NULL,
CONSTRAINT [PK_TBEDMI_ITEM_VALUE_GUID] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_VALUE] ADD CONSTRAINT [DEF_TBEDMI_ITEM_VALUE_CREATEDWHEN] DEFAULT (getdate()) FOR [CREATEDWHEN]
GO
ALTER TABLE [dbo].[TBEDMI_ITEM_VALUE] ADD CONSTRAINT [DEF_TBEDMI_ITEM_VALUE_ISREQUIRED] DEFAULT ((0)) FOR [IS_REQUIRED]
GO
CREATE NONCLUSTERED INDEX IDX_TBEDMI_ITEM_VALUE_SPECNAME_REFGUID
ON TBEDMI_ITEM_VALUE (SPEC_NAME, REFERENCE_GUID) include (ITEM_VALUE, GROUP_COUNTER, ITEM_DESCRIPTION, IS_REQUIRED, CREATEDWHEN, CHANGEDWHEN, CHANGEDWHO) ;
CREATE NONCLUSTERED INDEX IDX_TBEDMI_ITEM_VALUE_REFGUID
ON TBEDMI_ITEM_VALUE (REFERENCE_GUID) include (ITEM_VALUE, SPEC_NAME, GROUP_COUNTER, ITEM_DESCRIPTION, IS_REQUIRED, CREATEDWHEN, CHANGEDWHEN, CHANGEDWHO) ;
GO
CREATE VIEW VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS AS
SELECT
A.SPEC_NAME,
A.ITEM_VALUE,
B.Area,
B.Row_Caption,
B.xPosition,
B.Y_eq_lastrow,
B.SequenceItem,
B.Display,
A.REFERENCE_GUID
FROM
(SELECT * FROM TBEDMI_ITEM_VALUE ) A INNER JOIN
(SELECT * FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Active = 1) B ON A.SPEC_NAME = B.SPECNAME
GO
/****** Object: StoredProcedure [dbo].[PRDD_SEND_REJECTION_MAIL] Script Date: 15.05.2025 09:29:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- PRDD_SEND_REJECTION_MAIL
-- =================================================================
-- Die Procedure verschickt die Ablehnungsmails für
-- - ZUGFeRD-Service
-- - E-Mail Profiler
--
-- Dabei werden die codierten Ablehnungsgründe mit dem
-- E-Mail-Template verknüpft.
-- =================================================================
-- Copyright (c) 2024 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 13.03.2024 / MP
-- =================================================================
-- History:
-- 13.03.2024 / MP - Prozedur erstellt
-- 10.04.2024 / MP - RECEIPT_EMAIL_PHRASE ergänzt
-- 17.04.2024 / MP - ZUGFeRD Integration fertiggestellt
-- 18.04.2024 / MP - DEPLOYMENT_ENVIRONMENT (PROD/TEST) auswerten, um 2. Mail zu verhindern.
-- 22.04.2024 / MP - Verwende FNCUST_SPLIT_STRING_WITH_GUID, um Ablehnungsgründe zu splitten
-- 24.04.2024 / MP - REMINDER_TYPE_ID muss ungleich 1 sein
CREATE PROCEDURE [dbo].[PRDD_SEND_REJECTION_MAIL]
@REF_MSGID VARCHAR(250) -- E-Mail MessageID
, @IDB_OBJ_ID BIGINT = 0 -- IDB_OBJ_ID
, @SENDING_PROFILE INTEGER = 0 -- Absenderprofil
, @REJ_SOURCE VARCHAR(50) -- Welcher Prozess lehnt ab?
, @MAIL_TEMPLATE INTEGER -- Welches Template soll verwendet werden?
, @REJ_REASONS VARCHAR(250) -- Liste mit IDs von Ablehnungsgründen, getrennt durch '|'
, @REPLACE_PARAM1 VARCHAR(MAX) -- Zusätzlicher Text-Parameter, ersetzt Platzhalter @REPLACE_PARAM1
, @REPLACE_PARAM2 VARCHAR(MAX) -- Zusätzlicher Text-Parameter, ersetzt Platzhalter @REPLACE_PARAM2
, @WF_ID INTEGER = 0 -- WorkflowID
AS
BEGIN
SET NOCOUNT ON;
DECLARE @EMAIL_ADRESS VARCHAR(250), @EMAIL_SUBJECT VARCHAR(250), @EMAIL_BODY VARCHAR(MAX), @COMMENT VARCHAR(500), @EMAIL_PATH VARCHAR(512),
@EMAIL_BODY1 VARCHAR(MAX), @EMAIL_BODY2 VARCHAR(MAX), @LANGUAGE VARCHAR(5), @CONNECTED_TEMPLATE_ID INTEGER,
@EMAIL_BODY1_CON VARCHAR(MAX), @EMAIL_BODY2_CON VARCHAR(MAX), @LANGUAGE_CON VARCHAR(5),
@REASON_ID VARCHAR(100), @REJ_REASON VARCHAR(900), @ORG_EMAIL_SUBJECT VARCHAR(250), @ORG_EMAIL_DATE VARCHAR(25),
@FILENAME VARCHAR(512), @REL_PATH VARCHAR(250), @PROCEDURE_NAME VARCHAR(30), @ALREADY_SENT_TODAY BIT,
@EMAIL_ADRESS_2 VARCHAR(250), @DEPLOYMENT_ENVIRONMENT VARCHAR(10);
DECLARE @REJ_REASON_TEMP_TABLE TABLE (REJ_ID VARCHAR(100), REJ_REASON VARCHAR(900), LANGUAGE VARCHAR(5));
SET @PROCEDURE_NAME = 'PRDD_SEND_REJECTION_MAIL'
-- ====================================================================================================================================
-- Prüfe Parameter
-- ====================================================================================================================================
IF @REF_MSGID IS NULL OR LEN(@REF_MSGID) <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### Parameter @REF_MSGID is NULL or Empty! ###'
RETURN;
END
IF @REJ_SOURCE IS NULL OR LEN(@REJ_SOURCE) <= 0
BEGIN
SET @REJ_SOURCE = 'Unkown Source (PRDD_SEND_REJECTION_MAIL)'
END
IF @MAIL_TEMPLATE <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### Parameter @MAIL_TEMPLATE is invalid! ###'
RETURN;
END
-- ====================================================================================================================================
-- Lade Daten des E-Mail-Eingangs
-- ====================================================================================================================================
DECLARE @TEMP_DATE DATETIME
SELECT
@EMAIL_ADRESS = EMAIL_FROM,
@ORG_EMAIL_SUBJECT = EMAIL_SUBJECT,
@TEMP_DATE = EMAIL_DATE
FROM [DD_ECM].[dbo].[TBEMLP_HISTORY]
WHERE EMAIL_MSGID = @REF_MSGID;
IF @EMAIL_ADRESS IS NULL OR LEN(@EMAIL_ADRESS) <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### EMAIL_ADRESS IS NULL or Empty! ###'
SET @EMAIL_ADRESS = 'm.schreiber@digitaldata.works'
SET @ORG_EMAIL_SUBJECT = 'Default Subject!'
SET @TEMP_DATE = '2024-01-01'
END
SET @ALREADY_SENT_TODAY = 0
IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999
BEGIN
IF EXISTS(SELECT 1
FROM TBEMLP_EMAIL_OUT
WHERE REFERENCE_ID = @IDB_OBJ_ID AND EMAIL_ADRESS = @EMAIL_ADRESS AND ADDED_WHO = @REJ_SOURCE AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE()))
BEGIN
SET @ALREADY_SENT_TODAY = 1
END
END
ELSE
BEGIN
IF EXISTS(SELECT 1
FROM TBEMLP_EMAIL_OUT
WHERE REFERENCE_STRING = @REF_MSGID AND EMAIL_ADRESS = @EMAIL_ADRESS AND ADDED_WHO = @REJ_SOURCE AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE()))
BEGIN
SET @ALREADY_SENT_TODAY = 1
END
END
IF @ALREADY_SENT_TODAY = 1
BEGIN
PRINT @PROCEDURE_NAME + ' - ### EMAIL with same reference already send today! ###'
--RETURN;
END
SET @ORG_EMAIL_DATE = CONVERT(VARCHAR(25), @TEMP_DATE, 120) -- yyyy-mm-dd hh:mm:ss
SELECT
@EMAIL_ADRESS_2 = ITEM_VALUE
FROM DD_ECM.dbo.TBEDMI_ITEM_VALUE
WHERE REFERENCE_GUID = @REF_MSGID
AND SPEC_NAME = 'INVOICE_SELLER_EMAIL';
-- ====================================================================================================================================
-- E-Mail-Absender
-- ====================================================================================================================================
IF @SENDING_PROFILE <= 0
BEGIN
SELECT @SENDING_PROFILE = CONVERT(INTEGER, CAT_STRING)
FROM IDB.dbo.TBIDB_CATALOG
WHERE CAT_TITLE = 'REJECTION_EMAIL_PROFILE'
END
IF @SENDING_PROFILE <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### No SENDING PROFILE found! ###'
RETURN;
END
-- ====================================================================================================================================
-- Lade Konfiguration aus TBIDB_CATALOG
-- ====================================================================================================================================
SELECT @DEPLOYMENT_ENVIRONMENT = CAT_STRING
FROM IDB.dbo.TBIDB_CATALOG
WHERE CAT_TITLE = 'DEPLOYMENT_ENVIRONMENT';
-- ====================================================================================================================================
-- Lade E-Mail-Template(s)
-- ====================================================================================================================================
IF NOT EXISTS (SELECT 1 FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE] WHERE GUID = @MAIL_TEMPLATE)
BEGIN
PRINT @PROCEDURE_NAME + ' - ### No EMAIL TEMPLATE found! ###'
RETURN;
END
SELECT
@EMAIL_SUBJECT = EMAIL_SUBJECT,
@EMAIL_BODY1 = EMAIL_BODY1,
@EMAIL_BODY2 = EMAIL_BODY2,
@LANGUAGE = [LANGUAGE],
@CONNECTED_TEMPLATE_ID = CONNECTED_TEMPLATE
FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE]
WHERE GUID = @MAIL_TEMPLATE;
IF @CONNECTED_TEMPLATE_ID > 0
BEGIN
SELECT
@EMAIL_BODY1_CON = EMAIL_BODY1,
@EMAIL_BODY2_CON = EMAIL_BODY2,
@LANGUAGE_CON = [LANGUAGE]
FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE]
WHERE GUID = @CONNECTED_TEMPLATE_ID;
END
ELSE
BEGIN
SET @LANGUAGE_CON = @LANGUAGE
END
-- ====================================================================================================================================
-- Lade Ablehnungsgründe in temporäre Tabelle
-- ====================================================================================================================================
IF @REJ_REASONS IS NULL OR LEN(@REJ_REASONS) <= 0
BEGIN
PRINT @PROCEDURE_NAME + ' - ### NO Rejection Reasons! ###'
RETURN;
END
IF @REJ_REASONS LIKE '%|%'
BEGIN
-- Es gibt mehrere Gründe
DECLARE cursorGetRejReasons CURSOR LOCAL FAST_FORWARD FOR
SELECT Item FROM DD_ECM.[dbo].[FNCUST_SPLIT_STRING_WITH_GUID] (@REJ_REASONS, '|')
OPEN cursorGetRejReasons
FETCH NEXT FROM cursorGetRejReasons INTO @REASON_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @REJ_REASON_TEMP_TABLE (REJ_ID, REJ_REASON, [LANGUAGE])
SELECT TITLE AS REJ_ID, STRING1 AS REJ_REASON, [LANGUAGE]
FROM [DD_ECM].[dbo].[TBDD_GUI_LANGUAGE_PHRASE]
WHERE [TITLE] = 'RejectReason' + @REASON_ID AND [LANGUAGE] IN (@LANGUAGE, @LANGUAGE_CON);
FETCH NEXT FROM cursorGetRejReasons INTO @REASON_ID
END
CLOSE cursorGetRejReasons
DEALLOCATE cursorGetRejReasons
END
ELSE
BEGIN
INSERT INTO @REJ_REASON_TEMP_TABLE (REJ_ID, REJ_REASON, [LANGUAGE])
SELECT TITLE AS REJ_ID, STRING1 AS REJ_REASON, [LANGUAGE]
FROM [DD_ECM].[dbo].[TBDD_GUI_LANGUAGE_PHRASE]
WHERE [TITLE] = @REJ_REASONS AND [LANGUAGE] IN (@LANGUAGE, @LANGUAGE_CON);
END
-- ====================================================================================================================================
-- Stelle E-Mail Body zusammen
-- ====================================================================================================================================
DECLARE @REASON_COUNTER INTEGER
SET @REASON_COUNTER = 1
SET @EMAIL_BODY = '<html><body style=''font-family:""Arial"";font-size:10.0pt''>'
SET @EMAIL_BODY += @EMAIL_BODY1
DECLARE cursorSelectRejReasons CURSOR LOCAL FAST_FORWARD FOR
SELECT REJ_ID, REJ_REASON
FROM @REJ_REASON_TEMP_TABLE
WHERE [LANGUAGE] = @LANGUAGE;
OPEN cursorSelectRejReasons
FETCH NEXT FROM cursorSelectRejReasons INTO @REASON_ID, @REJ_REASON
WHILE @@FETCH_STATUS = 0
BEGIN
IF @REASON_COUNTER > 1
BEGIN
SET @EMAIL_BODY += '<br/>' + @REJ_REASON;
END
ELSE
BEGIN
-- 1. Zeile
SET @EMAIL_BODY += @REJ_REASON
END
SET @REASON_COUNTER += 1;
FETCH NEXT FROM cursorSelectRejReasons INTO @REASON_ID, @REJ_REASON
END
CLOSE cursorSelectRejReasons
DEALLOCATE cursorSelectRejReasons
SET @EMAIL_BODY += @EMAIL_BODY2
IF @CONNECTED_TEMPLATE_ID > 0
BEGIN
SET @REASON_COUNTER = 1
SET @EMAIL_BODY += '<p>====================================================================================================================================<p/>'
SET @EMAIL_BODY += @EMAIL_BODY1_CON
DECLARE cursorSelectRejReasonsCon CURSOR LOCAL FAST_FORWARD FOR
SELECT REJ_ID, REJ_REASON
FROM @REJ_REASON_TEMP_TABLE
WHERE [LANGUAGE] = @LANGUAGE_CON;
OPEN cursorSelectRejReasonsCon
FETCH NEXT FROM cursorSelectRejReasonsCon INTO @REASON_ID, @REJ_REASON
WHILE @@FETCH_STATUS = 0
BEGIN
IF @REASON_COUNTER > 1
BEGIN
SET @EMAIL_BODY += '<br/>' + @REJ_REASON;
END
ELSE
BEGIN
-- 1. Zeile
SET @EMAIL_BODY += @REJ_REASON
END
SET @REASON_COUNTER += 1;
FETCH NEXT FROM cursorSelectRejReasonsCon INTO @REASON_ID, @REJ_REASON
END
CLOSE cursorSelectRejReasonsCon
DEALLOCATE cursorSelectRejReasonsCon
SET @EMAIL_BODY += @EMAIL_BODY2_CON
END
SET @EMAIL_BODY += '<p>(' + @REJ_REASONS + ')</p>'
SET @EMAIL_BODY += '</body></html>'
-- ====================================================================================================================================
-- Ersetze Platzhalter in SUBJECT und BODY
-- ====================================================================================================================================
DECLARE @LAST_USER VARCHAR(100), @LAST_USER_EMAIL VARCHAR(100), @ORG_INVOICE_NR VARCHAR(50), @INVOICE_NR_VALUE VARCHAR(50)
SET @ORG_INVOICE_NR = '[KEINE BELEGNR GEFUNDEN/GELIEFERT]'
SET @INVOICE_NR_VALUE = ''
SET @LAST_USER = 'No User so far'
SET @LAST_USER_EMAIL = ''
SET @ORG_EMAIL_SUBJECT = REPLACE(@ORG_EMAIL_SUBJECT,'[EXTERNAL] ', '')
IF EXISTS(SELECT ITEM_VALUE FROM [DD_ECM].[dbo].TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @REF_MSGID and SPEC_NAME = 'INVOICE_NUMBER')
BEGIN
SELECT @INVOICE_NR_VALUE = ITEM_VALUE
FROM [DD_ECM].[dbo].TBEDMI_ITEM_VALUE
WHERE REFERENCE_GUID = @REF_MSGID and SPEC_NAME = 'INVOICE_NUMBER';
SET @ORG_INVOICE_NR = @INVOICE_NR_VALUE;
END
IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999
BEGIN
SELECT
@LAST_USER = PRENAME + ' ' + COALESCE([NAME],''),
@LAST_USER_EMAIL = EMAIL
FROM [DD_ECM].[dbo].TBDD_USER
--WHERE USERNAME = [DD_ECM].[dbo].[FNPM_LAST_WORKUSER_DOC] (@IDB_OBJ_ID)
END
--PRINT '@REPLACE_PARAM1:' + @REPLACE_PARAM1
SET @EMAIL_SUBJECT = REPLACE(@EMAIL_SUBJECT, '@ORG_INVOICE_NR', @ORG_INVOICE_NR)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_MSGID', @REF_MSGID)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_INVOICE_NR', @ORG_INVOICE_NR)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_SUBJECT', @ORG_EMAIL_SUBJECT)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_DATE', @ORG_EMAIL_DATE)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@LAST_USER', @LAST_USER)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@LAST_USER_EMAIL', @LAST_USER_EMAIL)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@REPLACE_PARAM1', @REPLACE_PARAM1)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@REPLACE_PARAM2', @REPLACE_PARAM2)
--Print @EMAIL_BODY
-- ====================================================================================================================================
-- Ersetze Platzhalter @RECEIPT_EMAIL_PHRASE / @RECEIPT_EMAIL_PHRASE_EN im BODY
-- ====================================================================================================================================
DECLARE @RECEIPT_EMAIL_DE_PHRASE VARCHAR(100), @RECEIPT_EMAIL_EN_PHRASE VARCHAR(100)
SET @RECEIPT_EMAIL_DE_PHRASE = 'Email'
SET @RECEIPT_EMAIL_EN_PHRASE = 'Email'
-- Wenn Belegnummer vorliegt, dann konkreter Text
IF LEN(@INVOICE_NR_VALUE) > 1
BEGIN
SET @RECEIPT_EMAIL_DE_PHRASE = 'Rechnung ' + @INVOICE_NR_VALUE
SET @RECEIPT_EMAIL_EN_PHRASE = 'Invoice ' + @INVOICE_NR_VALUE
END
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@RECEIPT_EMAIL_DE_PHRASE', @RECEIPT_EMAIL_DE_PHRASE)
SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@RECEIPT_EMAIL_EN_PHRASE', @RECEIPT_EMAIL_EN_PHRASE)
-- ====================================================================================================================================
-- Evtl. vorhandener Dateianhang
-- ====================================================================================================================================
SET @EMAIL_PATH = ''
IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999
BEGIN
SELECT @REL_PATH = [CAT_STRING] FROM [IDB].[dbo].[TBIDB_CATALOG] WHERE [CAT_TITLE] = 'FILESTORE_PRAEFIX';
SELECT @FILENAME = RELATIVE_PATH FROM [IDB].[dbo].[TBIDB_DOC_INFO] WHERE IDB_OBJ_ID = @IDB_OBJ_ID;
IF LEN(@FILENAME) > 0
BEGIN
BEGIN
IF @FILENAME NOT LIKE @REL_PATH + '%'
BEGIN
SET @FILENAME = @REL_PATH + @FILENAME
END
END
SET @EMAIL_PATH = @FILENAME
END
ELSE
SET @EMAIL_PATH = 'F:\DocumentProcessing\Output\File\DocumentKindAssigned\ZUGFeRD\Success\archive\'
END
-- ====================================================================================================================================
-- Füge E-Mail-Daten in Tabelle ein
-- ====================================================================================================================================
INSERT INTO [DD_ECM].[dbo].[TBEMLP_EMAIL_OUT]
(
[SENDING_PROFILE] -- REQUIRED
, [REFERENCE_ID] -- REQUIRED
, [REFERENCE_STRING]
, [WF_ID] -- REQUIRED
, [EMAIL_ADRESS] -- REQUIRED
, [EMAIL_SUBJ] -- REQUIRED
, [EMAIL_BODY] -- REQUIRED
, [COMMENT]
, [ADDED_WHO] -- REQUIRED
, [EMAIL_ATTMT1]
, [REMINDER_TYPE_ID]
) VALUES (
@SENDING_PROFILE
, @IDB_OBJ_ID
, @REF_MSGID
, @WF_ID
, @EMAIL_ADRESS
, @EMAIL_SUBJECT
, @EMAIL_BODY
, @COMMENT
, @REJ_SOURCE
, @EMAIL_PATH
, 77
);
-- ====================================================================================================================================
-- Füge E-Mail-Daten in Tabelle ein, falls 2. E-Mail-Adresse vorliegt, und
-- diese sich von der 1. E-Mail-Adresse unterscheidet!
-- ====================================================================================================================================
IF @DEPLOYMENT_ENVIRONMENT = 'PROD' AND
LEN(@EMAIL_ADRESS_2) > 0 AND @EMAIL_ADRESS <> @EMAIL_ADRESS_2
BEGIN
INSERT INTO [DD_ECM].[dbo].[TBEMLP_EMAIL_OUT]
(
[SENDING_PROFILE] -- REQUIRED
, [REFERENCE_ID] -- REQUIRED
, [REFERENCE_STRING]
, [WF_ID] -- REQUIRED
, [EMAIL_ADRESS] -- REQUIRED
, [EMAIL_SUBJ] -- REQUIRED
, [EMAIL_BODY] -- REQUIRED
, [COMMENT]
, [ADDED_WHO] -- REQUIRED
, [EMAIL_ATTMT1]
, [REMINDER_TYPE_ID]
) VALUES (
@SENDING_PROFILE
, @IDB_OBJ_ID
, @REF_MSGID
, @WF_ID
, @EMAIL_ADRESS_2 -- EMAIL_ADRESS_2
, @EMAIL_SUBJECT
, @EMAIL_BODY
, @COMMENT
, @REJ_SOURCE
, @EMAIL_PATH
, 77
);
END
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values
('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0),
('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0),
('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1),
('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1),
('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1),
('INVOICE_SELLER_NAME', '', 'SELLER', 10, 6, 0, 1),
('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 7, 0, 1),
('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 8, 0, 1),
('INVOICE_SELLER_CITY', '', 'SELLER', 35, 9, 1, 1),
('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 10, 0, 1),
('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 11, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 12, 0, 1),
('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 13, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 14, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 15, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 16, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 17, 0, 0),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 18, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 19, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 20, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 21, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 22, 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
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.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE','INVOICE_POSITION_NOTE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','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 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 15
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_NOTE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_TAX_AMOUNT') AND GROUP_COUNTER = @GROUP_COUNTER 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 VIEW [dbo].[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 WHERE LEN(ITEM_VALUE) > 0 ) A INNER JOIN
(SELECT * FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Active = 1) B ON A.SPEC_NAME = B.SPECNAME
GO
CREATE TABLE TBDD_COLUMNS_FORMAT
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
MODULE VARCHAR(100) NOT NULL,
GRIDVIEW VARCHAR(100) NOT NULL,
COLUMN_TITLE VARCHAR(150) NOT NULL,
TYPE2FORMAT VARCHAR(100) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'Digital Data',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBDD_COLUMNS_FORMAT_GUID PRIMARY KEY (GUID)
)
GO
CREATE TRIGGER TBDD_COLUMNS_FORMAT_AFT_UPD ON TBDD_COLUMNS_FORMAT
FOR UPDATE
AS
UPDATE TBDD_COLUMNS_FORMAT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBDD_COLUMNS_FORMAT.GUID = INSERTED.GUID
GO

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,3 @@
USE [DD_ECM]
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.3' UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.3'
GO GO

View File

@@ -1,5 +1,3 @@
USE [DD_ECM]
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.4' UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.4'
GO GO
IF NOT EXISTS(SELECT 1 FROM sys.columns IF NOT EXISTS(SELECT 1 FROM sys.columns

View File

@@ -1,7 +1,5 @@
USE [DD_ECM] UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.5'
GO
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.5'
GO
if NOT EXISTS (select 1 from sysobjects where name = 'TBDD_EMAIL_TEMPLATE' ) if NOT EXISTS (select 1 from sysobjects where name = 'TBDD_EMAIL_TEMPLATE' )
CREATE TABLE TBDD_EMAIL_TEMPLATE CREATE TABLE TBDD_EMAIL_TEMPLATE
( (
@@ -21,6 +19,16 @@ if NOT EXISTS (select 1 from sysobjects where name = 'TBDD_EMAIL_TEMPLATE' )
CONSTRAINT UQ_TBCUST_EMAIL_TEMPLATE_TITLE UNIQUE (TITLE) CONSTRAINT UQ_TBCUST_EMAIL_TEMPLATE_TITLE UNIQUE (TITLE)
); );
ELSE ELSE
ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [LANGUAGE] varchar(5) DEFAULT 'de-DE'; BEGIN
ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [CONNECTED_TEMPLATE] int DEFAULT 0; IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE Name = N'LANGUAGE' AND Object_ID = Object_ID(N'dbo.TBDD_EMAIL_TEMPLATE'))
BEGIN
ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [LANGUAGE] varchar(5) DEFAULT 'de-DE';
END
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE Name = N'CONNECTED_TEMPLATE' AND Object_ID = Object_ID(N'dbo.TBDD_EMAIL_TEMPLATE'))
BEGIN
ALTER TABLE [dbo].[TBDD_EMAIL_TEMPLATE] ADD [CONNECTED_TEMPLATE] int DEFAULT 0;
END
END
GO GO

View File

@@ -1,5 +1,3 @@
USE [DD_ECM]
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.6' UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.6'
GO GO
INSERT INTO [TBDD_CATALOG] (CAT_TITLE,CAT_STRING) VALUES ('DDSUPPORT_PORTAL','https://digitaldata.works/support/') INSERT INTO [TBDD_CATALOG] (CAT_TITLE,CAT_STRING) VALUES ('DDSUPPORT_PORTAL','https://digitaldata.works/support/')

View File

@@ -1,5 +1,3 @@
USE [DD_ECM]
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.7'; UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.7';
GO GO
UPDATE TBDD_MODULES SET NAME = 'fileFLOW', SHORT_NAME = 'fileFLOW' WHERE SHORT_NAME = 'GLOBIX'; UPDATE TBDD_MODULES SET NAME = 'fileFLOW', SHORT_NAME = 'fileFLOW' WHERE SHORT_NAME = 'GLOBIX';
@@ -11,7 +9,7 @@ GO
--SET @ADMIN_GROUPNAME = 'fileFLOW_ADMINS' --SET @ADMIN_GROUPNAME = 'fileFLOW_ADMINS'
-- 20.09.2024 MS @MODULE_SHORT eingesetzt -- 20.09.2024 MS @MODULE_SHORT eingesetzt
CREATE PROCEDURE [dbo].[PRDD_CHECK_REL_DOCTYPE_MODULE] (@MODULE_SHORT VARCHAR(20),@DOCTYPE_ID INTEGER) CREATE OR ALTER PROCEDURE [dbo].[PRDD_CHECK_REL_DOCTYPE_MODULE] (@MODULE_SHORT VARCHAR(20),@DOCTYPE_ID INTEGER)
AS AS
DECLARE @MODULEID INTEGER DECLARE @MODULEID INTEGER
SELECT @MODULEID = GUID FROM TBDD_MODULES WHERE SHORT_NAME = @MODULE_SHORT SELECT @MODULEID = GUID FROM TBDD_MODULES WHERE SHORT_NAME = @MODULE_SHORT

View File

@@ -1,5 +1,3 @@
USE [DD_ECM]
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.8'; UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.8';
GO GO
IF NOT EXISTS(SELECT 1 FROM sys.columns IF NOT EXISTS(SELECT 1 FROM sys.columns

View File

@@ -4,7 +4,6 @@
--REPLACE [windreamDB] WIHT THE ACTUAL NAME OF --REPLACE [windreamDB] WIHT THE ACTUAL NAME OF
--THE WINDREAM DATABASE-NAME --THE WINDREAM DATABASE-NAME
------------------------------------------------ ------------------------------------------------
USE [DD_ECM]
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.9'; UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.9';
GO GO
SET ANSI_NULLS ON SET ANSI_NULLS ON

View File

@@ -1,5 +1,4 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.1'; UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.1';
GO
IF NOT EXISTS(SELECT 1 FROM sys.columns IF NOT EXISTS(SELECT 1 FROM sys.columns
WHERE Name = N'GENERAL_VIEWER' WHERE Name = N'GENERAL_VIEWER'
AND Object_ID = Object_ID(N'TBDD_USER')) AND Object_ID = Object_ID(N'TBDD_USER'))
@@ -13,5 +12,17 @@ IF NOT EXISTS(SELECT 1 FROM sys.columns
AND Object_ID = Object_ID(N'TBDD_USER')) AND Object_ID = Object_ID(N'TBDD_USER'))
BEGIN BEGIN
ALTER TABLE TBDD_USER ALTER TABLE TBDD_USER
ADD WAN_ENVIRONMENT BIT NOT NULL DEFAULT 0 ADD WAN_ENVIRONMENT BIT NOT NULL DEFAULT 0;
END END
GO
CREATE OR ALTER VIEW [dbo].[VWDD_GROUPS_USER] AS
select
USR.GUID AS USR_ID
,USR.USERNAME,
GRP.GUID AS GRP_ID
,GRP.NAME AS GRP_NAME
,GU.ADDED_WHEN
,GU.ADDED_WHO
from
TBDD_GROUPS GRP INNER JOIN TBDD_GROUPS_USER GU ON GRP.GUID = GU.GROUP_ID
INNER JOIN TBDD_USER USR ON GU.USER_ID = USR.GUID;

View File

@@ -0,0 +1,171 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.2';
--DROP TABLE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
CREATE TABLE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(
GUID INT IDENTITY(1,1),
SPECNAME VARCHAR(100) NOT NULL,
Row_Caption VARCHAR(250) NOT NULL,
Area VARCHAR(100) NOT NULL,
xPosition INTEGER NOT NULL DEFAULT 10,
--yPosition INTEGER NOT NULL,
SequenceItem INTEGER NOT NULL DEFAULT 1,
Y_eq_lastrow BIT NOT NULL DEFAULT 0,
Display BIT NOT NULL DEFAULT 1,
Active BIT NOT NULL DEFAULT 1,
AddedWho VARCHAR(50) DEFAULT 'DD_ECM DEFAULT' NOT NULL,
AddedWhen DATETIME DEFAULT GETDATE(),
ChangedWho VARCHAR(50),
ChangedWhen DATETIME,
CONSTRAINT PK_TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE PRIMARY KEY (GUID),
CONSTRAINT UNIQUE_TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE UNIQUE(SPECNAME)
)
GO
------------------------------------------------------------------------------
CREATE TRIGGER TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_AFT_UPD ON TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
FOR UPDATE
AS
UPDATE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE SET ChangedWhen = GETDATE() FROM INSERTED WHERE TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE.GUID = INSERTED.GUID
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
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),Row_Caption Varchar(100), SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 402
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_TAXPOS_RATE' 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),@Row_Caption VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE, B.Row_Caption, B.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_TAXPOS_AMOUNT',
'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE') AND GROUP_COUNTER = @GROUP_COUNTER ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Row_Caption,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,Row_Caption,SequenceItem,Display) VALUES
(@SPEC_NAME,@ITEM_VALUE,'TAXPOS',@Row_Caption,@INDEX,@Display)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE, @Row_Caption,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
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)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 15
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_TAX_AMOUNT') AND GROUP_COUNTER = @GROUP_COUNTER 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
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.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','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
DELETE FROM TBDD_SQL_COMMANDS WHERE TITLE = 'VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS';
INSERT INTO TBDD_SQL_COMMANDS (TITLE,SQL_COMMAND) VALUES
('VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS','
SELECT * FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (''@MSG_ID'') ORDER BY ORDER_SEQ')
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, 10, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 11, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 12, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 13, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 14, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 16, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 17, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 18, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 19, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 20, 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_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

View File

@@ -0,0 +1,116 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.3';
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, 10, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 11, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 12, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 13, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 14, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 16, 0, 0),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 17, 0, 0),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 18, 0, 0),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 19, 0, 0),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 20, 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_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 06.03.2025 INVOICE_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_NOTE',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','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 06.03.2025 INVOICE_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@INDEX INT = 15
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT',
'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_NOTE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_TAX_AMOUNT') AND GROUP_COUNTER = @GROUP_COUNTER 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
-- =============================================
-- Author: DD MS
-- Creation date: 25.06.20200
-- =============================================
CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_DECIMAL_FOR_VARCHAR] (@INPUT VARCHAR(100))
RETURNS DECIMAL(19,2)
AS
BEGIN
DECLARE @DEC_VALUE DECIMAL(19,2)
DECLARE @INPUT_SS_15 VARCHAR(5)
SELECT @INPUT_SS_15 = SUBSTRING(@INPUT,1,5)
IF @INPUT_SS_15 LIKE ('%.%')
BEGIN
DECLARE @REP_SS_15 VARCHAR(5)
SET @REP_SS_15 = REPLACE(@INPUT_SS_15,'.','')
SET @INPUT = REPLACE(@INPUT,@INPUT_SS_15,@REP_SS_15)
END
SELECT @INPUT = REPLACE(@INPUT,',','.')
SELECT @DEC_VALUE = convert(DECIMAL(19,2),@INPUT)
RETURN @DEC_VALUE
END
GO

View File

@@ -0,0 +1,194 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.4';
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
INSERT INTO TBDD_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('WM_DB_SERVER','')
GO
-- [VWEMLP_EMAIL_DATA]
-- =================================================================
-- Joins email tables for indexing service
--
-- Returns: table
-- =================================================================
-- Copyright (c) 2025 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: 19.03.2025 / HE,MK
-- Version Date / Editor: 25.03.2025 / MK
-- Version Number: 1.1.0.0
-- =================================================================
-- History:
-- 19.03.2025 / HE,MK - First Version
-- 25.03.2025 / MK - Added Attachment count
CREATE OR ALTER VIEW [dbo].[VWEMLP_EMAIL_DATA]
as
SELECT TOP 100 PERCENT
[TBEMLP_HISTORY].[EMAIL_MSGID],
[TBEMLP_HISTORY].[EMAIL_FROM],
[TBDD_EMAIL_ACCOUNT].[EMAIL_FROM] as [EMAIL_TO],
[TBEMLP_HISTORY].[EMAIL_SUBJECT],
[TBEMLP_HISTORY].[EMAIL_DATE],
[TBEMLP_HISTORY].[EMAIL_BODY],
ISNULL((SELECT count(*) FROM [TBEMLP_HISTORY_ATTACHMENT] (NOLOCK) WHERE [TBEMLP_HISTORY].[EMAIL_MSGID] = [TBEMLP_HISTORY_ATTACHMENT].[EMAIL_MSGID]),0) as 'EMAIL_ATTACHMENT_COUNT'
FROM [TBEMLP_HISTORY] (NOLOCK)
INNER JOIN [TBEMLP_POLL_PROFILES] (NOLOCK) ON [TBEMLP_HISTORY].[PROFILE_ID] = [TBEMLP_POLL_PROFILES].[GUID]
INNER JOIN [TBDD_EMAIL_ACCOUNT] (NOLOCK) ON [TBEMLP_POLL_PROFILES].[EMAIL_CONF_ID] = [TBDD_EMAIL_ACCOUNT].[GUID]
ORDER BY [TBEMLP_HISTORY].[GUID] ASC
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [FNDD_CONVERT_RTF2TEXT]
-- =================================================================
-- Converts a RTF text to a regular text
--
-- Returns: NVARCHAR - text
-- =================================================================
-- Copyright (c) 2025 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: 26.09.2024 / HE,MK
-- Version Date / Editor: 25.03.2025 / HE,MK
-- Version Number: 1.2.0.0
-- =================================================================
-- History:
-- 26.09.2024 / HE,MK - First Version
-- 14.12.2024 / MK - code optimisation, new additional parameters
-- 25.03.2025 / HE,MK - Remove rtf format strings
CREATE OR ALTER FUNCTION [dbo].[FNDD_CONVERT_RTF2TEXT](
@pRTF nvarchar(max), -- Give the RTF text, you want to convert
@pREMOVE_LINE_WRAP BIT = NULL, -- Set to 1 to remove line wraps
@pREMOVE_DOUBLE_BLANKS BIT = NULL -- Set to 1 to remove unnecessary blanks
)
RETURNS nvarchar(max)
AS
BEGIN
-- decalare new vars because of parameter sniffing
DECLARE @RTF NVARCHAR(max) = ISNULL(@pRTF,''),
@REMOVE_LINE_WRAP BIT = ISNULL(@pREMOVE_LINE_WRAP,1),
@REMOVE_DOUBLE_BLANKS BIT = ISNULL(@pREMOVE_DOUBLE_BLANKS,1);
-- decalare runtime vars
DECLARE @Pos1 int,
@Pos2 int,
@hex varchar(316);
DECLARE @Stage table ([Char] char(1), [Pos] int);
IF (LEN(@RTF) > 1) BEGIN
INSERT @Stage ([Char], [Pos])
SELECT SUBSTRING(@rtf, [Number], 1),
[Number]
FROM [master]..[spt_values]
WHERE ([Type] = 'p')
AND (SUBSTRING(@rtf, Number, 1) IN ('{', '}'));
SELECT @Pos1 = MIN([Pos])
, @Pos2 = MAX([Pos])
FROM @Stage;
DELETE
FROM @Stage
WHERE ([Pos] IN (@Pos1, @Pos2));
WHILE (1 = 1) BEGIN
SELECT TOP 1 @Pos1 = s1.[Pos]
, @Pos2 = s2.[Pos]
FROM @Stage s1
INNER JOIN @Stage s2 ON s2.[Pos] > s1.[Pos]
WHERE (s1.[Char] = '{')
AND (s2.[Char] = '}')
ORDER BY s2.[Pos] - s1.[Pos];
IF @@ROWCOUNT = 0
BREAK
DELETE
FROM @Stage
WHERE ([Pos] IN (@Pos1, @Pos2));
UPDATE @Stage
SET [Pos] = [Pos] - @Pos2 + @Pos1 - 1
WHERE ([Pos] > @Pos2);
SET @rtf = STUFF(@rtf, @Pos1, @Pos2 - @Pos1 + 1, '');
END;
SET @rtf = REPLACE(@rtf, '\pard', '');
SET @rtf = REPLACE(@rtf, '\par', '');
SET @rtf = STUFF(@rtf, 1, CHARINDEX(' ', @rtf), '');
WHILE (Right(@rtf, 1) IN (' ', CHAR(13), CHAR(10), '}')) BEGIN
SELECT @rtf = SUBSTRING(@rtf, 1, (LEN(@rtf + 'x') - 2));
IF LEN(@rtf) = 0 BREAK
END;
SET @Pos1 = CHARINDEX('\''', @rtf);
WHILE (@Pos1 > 0) BEGIN
IF (@Pos1 > 0) BEGIN
SET @hex = '0x' + SUBSTRING(@rtf, @Pos1 + 2, 2);
SET @rtf = REPLACE(@rtf, SUBSTRING(@rtf, @Pos1, 4),CHAR(CONVERT(int, CONVERT (binary(1), @hex,1))));
SET @Pos1 = CHARINDEX('\''', @rtf);
END;
END;
SET @rtf = @rtf + ' ';
SET @Pos1 = PATINDEX('%\%[0123456789][\ ]%', @rtf);
WHILE (@Pos1 > 0) BEGIN
SET @Pos2 = CHARINDEX(' ', @rtf, @Pos1 + 1);
IF (@Pos2 < @Pos1) BEGIN
SET @Pos2 = CHARINDEX('\', @rtf, @Pos1 + 1);
END;
IF (@Pos2 < @Pos1) BEGIN
SET @rtf = SUBSTRING(@rtf, 1, @Pos1 - 1);
SET @Pos1 = 0;
END; ELSE BEGIN
SET @rtf = STUFF(@rtf, @Pos1, @Pos2 - @Pos1 + 1, '');
SET @Pos1 = PATINDEX('%\%[0123456789][\ ]%', @rtf);
END;
END;
IF (@REMOVE_LINE_WRAP = 1) BEGIN
SET @rtf = REPLACE(@rtf,char(10),' ');
SET @rtf = REPLACE(@rtf,char(13),' ');
END;
IF (@REMOVE_DOUBLE_BLANKS = 1) BEGIN
WHILE (@rtf like '% %') BEGIN
IF (@rtf like '% %') BEGIN
SET @rtf = REPLACE(@rtf,' ',' ');
END;
END;
END;
-- Anyway remove trailing spaces
SET @rtf = LTRIM(RTRIM(@rtf));
-- Replace rtf format strings
SET @rtf = Replace(@rtf,'Riched20 10.0.17763} ','');
END;
RETURN @rtf;
END;

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;

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,51 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.0' where NAME = 'Process-Manager';
--Das Overview-SQL muss um folgenden LEFT JOIN erweitert werden
--#############################################################################################
--LEFT JOIN TBTF_PROFILE_FILES_WORK PFW ON T.DOC_ID = PFW.DocID AND T.PROFIL_ID = PFW.ProfileID
--#############################################################################################
--und einen where-Teil:
--#############################################################################################
--(PFW.DocID IS NULL OR (PFW.InWork = 0 AND PFW.Worked = 0))
CREATE TABLE TBTF_PROFILE_FILES_WORK
(
GUID BIGINT NOT NULL IDENTITY(1,1),
ProfileID INTEGER NOT NULL,
DocID BIGINT NOT NULL,
InWork BIT NOT NULL DEFAULT 0,
Worked BIT NOT NULL DEFAULT 0,
Action_When DATETIME,
Action_UserID INTEGER,
ChangedWho_ID INTEGER,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBTF_PROFILE_FILES_WORK PRIMARY KEY (GUID),
CONSTRAINT UQ_TBTF_PROFILE_FILES_WORK UNIQUE(ProfileID,DocID)
)
GO
CREATE PROCEDURE PRTF_PROFILE_FILES_WORK @pDocID BIGINT,@pProfilID INTEGER,@pUserID INTEGER, @pMode VARCHAR(100)
AS
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBTF_PROFILE_FILES_WORK WHERE ProfileID = @pProfilID AND DocID = @pDocID)
BEGIN
INSERT INTO TBTF_PROFILE_FILES_WORK (ProfileID,DocID,Action_UserID,Action_When) VALUES (@pProfilID,@pDocID,@pUserID,GETDATE());
END
IF @pMode = 'FreeFile'
BEGIN
PRINT 'FreeFile ...'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0, Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 1;
END
ELSE IF @pMode = 'InWork'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 1, Action_When = GETDATE(), Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 0;
ELSE IF @pMode = 'Worked'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0,Worked = 1, Action_When = GETDATE(), Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0;
END
GO
--#############################################################################################
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!!!'
GO

View File

@@ -0,0 +1,32 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.4.2.1' where NAME = 'Process-Manager';
--Das Overview-SQL zur Workflowdarstellung muss um folgenden LEFT JOIN erweitert werden
--#############################################################################################
--LEFT JOIN TBTF_PROFILE_FILES_WORK PFW ON T.DOC_ID = PFW.DocID AND T.PROFIL_ID = PFW.ProfileID
--#############################################################################################
--und einen where-Teil:
--#############################################################################################
--(PFW.DocID IS NULL OR (PFW.InWork = 0 AND PFW.Worked = 0))
GO
IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'SQL_PROFILE_MAIN_VIEW'
AND Object_ID = Object_ID(N'dbo.TBPM_PROFILE'))
BEGIN
ALTER TABLE TBPM_PROFILE DROP COLUMN SQL_PROFILE_MAIN_VIEW;
END
IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'SQL_GROUP_COLOR'
AND Object_ID = Object_ID(N'dbo.TBPM_PROFILE'))
BEGIN
ALTER TABLE TBPM_PROFILE DROP COLUMN SQL_GROUP_COLOR;
END
IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'SQL_GROUP_TEXT'
AND Object_ID = Object_ID(N'dbo.TBPM_PROFILE'))
BEGIN
ALTER TABLE TBPM_PROFILE DROP COLUMN SQL_GROUP_TEXT;
END
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!!!'
GO

View File

@@ -1,7 +1,7 @@
IF not EXISTS(SELECT GUID FROM TBDD_MODULES WHERE NAME = 'Clipboard-Watcher' ) IF not EXISTS(SELECT GUID FROM TBDD_MODULES WHERE NAME = 'Clipboard-Watcher' )
INSERT INTO TBDD_MODULES (NAME, SHORT_NAME, LICENSE,ACTIVE) VALUES ('Clipboard-Watcher','CW','kc6j9HSv/UJVAzFjMZv2A3wHZFy+2nNLKP9Qs8g9EVY=',1) INSERT INTO TBDD_MODULES (NAME, SHORT_NAME, LICENSE,ACTIVE) VALUES ('Clipboard-Watcher','CW','kc6j9HSv/UJVAzFjMZv2A3wHZFy+2nNLKP9Qs8g9EVY=',1)
GO GO
UPDATE TBDD_MODULES SET DB_VERSION = '2.0.0.1' where UPPER(NAME) = UPPER('Clipboard-Watcher') UPDATE TBDD_MODULES SET DB_VERSION = '2.3.0.0' where UPPER(NAME) = UPPER('Clipboard-Watcher')
GO GO
--ADDs THE USER WITH ADMIN-RIGHTS TO USER-MODULE RELATION --ADDs THE USER WITH ADMIN-RIGHTS TO USER-MODULE RELATION
INSERT INTO TBDD_USER_MODULES(USER_ID,MODULE_ID) INSERT INTO TBDD_USER_MODULES(USER_ID,MODULE_ID)
@@ -37,9 +37,9 @@ CREATE TABLE TBCW_PROFILES
( (
GUID INTEGER NOT NULL IDENTITY(1,1), GUID INTEGER NOT NULL IDENTITY(1,1),
NAME VARCHAR(100) NOT NULL, NAME VARCHAR(100) NOT NULL,
PROFILE_TYPE SMALLINT NOT NULL DEFAULT 0, PROFILE_TYPE SMALLINT NOT NULL DEFAULT 1,
REGEX_EXPRESSION VARCHAR(100) NOT NULL, REGEX_EXPRESSION VARCHAR(100) NOT NULL,
ACTIVE BIT NOT NULL DEFAULT 0, ACTIVE BIT NOT NULL DEFAULT 0,
COMMENT VARCHAR(500), COMMENT VARCHAR(500),
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT', ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(), ADDED_WHEN DATETIME DEFAULT GETDATE(),
@@ -392,7 +392,7 @@ BEGIN
INSERT INTO @TBResult (DocID, INDEX_NAME) INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT WMV.dwDocID, WMA.szAttrName SELECT DISTINCT WMV.dwDocID, WMA.szAttrName
FROM sDD_VMP01_APS01_windream60.dbo.Attribute WMA INNER JOIN sDD_VMP01_APS01_windream60.dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID FROM [windreamDB].dbo.Attribute WMA INNER JOIN [windreamDB].dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID
INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51') WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51')
AND UPPER(WMV.szValue) LIKE UPPER('%' + @pSearchValue + '%') AND UPPER(WMV.szValue) LIKE UPPER('%' + @pSearchValue + '%')
@@ -406,7 +406,7 @@ BEGIN
WHERE UPPER(T.Search_Term) = UPPER(@pSearchValue) WHERE UPPER(T.Search_Term) = UPPER(@pSearchValue)
INSERT INTO @TBResult (DocID, INDEX_NAME) INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT WMV.dwDocID, WMA.szAttrName SELECT DISTINCT WMV.dwDocID, WMA.szAttrName
FROM sDD_VMP01_APS01_windream60.dbo.Attribute WMA INNER JOIN sDD_VMP01_APS01_windream60.dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID FROM [windreamDB].dbo.Attribute WMA INNER JOIN [windreamDB].dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID
INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51') WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51')
AND UPPER(WMV.szValue) = UPPER(@pSearchValue) AND UPPER(WMV.szValue) = UPPER(@pSearchValue)
@@ -431,23 +431,63 @@ BEGIN
END END
GO GO
/*##### VIEWS ####*/ /*##### VIEWS ####*/
CREATE VIEW [dbo].[VWCW_USER_PROFILE] AS CREATE VIEW [dbo].[VWCW_GROUP_PROFILE] AS
SELECT DISTINCT SELECT
T.GUID, T1.GUID,
T.NAME, T.GUID AS PROFIL_ID,
T.NAME AS PROFIL_NAME,
T.REGEX_EXPRESSION, T.REGEX_EXPRESSION,
T.COMMENT, T.COMMENT,
T.ACTIVE, T.ACTIVE,
T.PROFILE_TYPE, T.PROFILE_TYPE,
T2.PROC_NAME, T1.GROUP_ID,
T1.USER_ID, T3.NAME AS GROUP_NAME
T3.GROUP_ID FROM
FROM TBCW_PROFILES T TBCW_PROFILES T
LEFT JOIN TBCW_USER_PROFILE T1 ON T.GUID = T1.PROFILE_ID ,TBCW_GROUP_PROFILE T1
LEFT JOIN TBCW_PROFILE_PROCESS T2 ON T.GUID = T2.PROFILE_ID , TBDD_GROUPS T3
LEFT JOIN TBCW_GROUP_PROFILE T3 ON T.GUID = T3.PROFILE_ID WHERE
WHERE T.ACTIVE = 1 T.GUID = T1.PROFILE_ID
AND T1.GROUP_ID = T3.GUID;
GO GO
--Changed 29.01.2025 MS Prozesse raus, Union Gruppen
CREATE VIEW [dbo].[VWCW_USER_PROFILE] AS
SELECT DISTINCT
T.GUID,
T.GUID AS PROFIL_ID,
T.NAME AS PROFIL_NAME,
T.REGEX_EXPRESSION,
T.COMMENT,
T.ACTIVE,
T.PROFILE_TYPE,
T1.USER_ID AS [USER_ID],
USR.NAME AS USER_SURNAME,
USR.PRENAME AS USER_PRENAME,
USR.USERNAME,
'USER_PROFILE' AS SOURCE
FROM TBCW_PROFILES T
INNER JOIN TBCW_USER_PROFILE T1 ON T.GUID = T1.PROFILE_ID
INNER JOIN TBDD_USER USR ON T1.USER_ID = USR.GUID
UNION
SELECT DISTINCT
GP.PROFIL_ID AS GUID,
GP.PROFIL_ID,
GP.PROFIL_NAME,
GP.REGEX_EXPRESSION,
GP.COMMENT,
GP.ACTIVE,
GP.PROFILE_TYPE,
GU.USR_ID AS [USER_ID],
USR.NAME AS USER_SURNAME,
USR.PRENAME AS USER_PRENAME,
USR.USERNAME,
'GROUP_PROFILE' AS SOURCE
FROM
VWCW_GROUP_PROFILE GP INNER JOIN
VWDD_GROUPS_USER GU ON GP.GROUP_ID = GU.GRP_ID INNER JOIN
TBDD_USER USR ON GU.USR_ID = USR.GUID ;
GO
CREATE VIEW VWCW_PROFILE_REL_WINDOW AS CREATE VIEW VWCW_PROFILE_REL_WINDOW AS
SELECT DISTINCT TOP 100 PERCENT SELECT DISTINCT TOP 100 PERCENT
@@ -465,9 +505,9 @@ FROM
,VWCW_USER_PROFILE T2 ,VWCW_USER_PROFILE T2
WHERE WHERE
T.PROCESS_ID = T1.GUID AND T.PROCESS_ID = T1.GUID AND
T1.PROFILE_ID = T2.GUID T1.PROFILE_ID = T2.PROFIL_ID
ORDER BY T.SEQUENCE ORDER BY T.SEQUENCE;
GO GO
CREATE VIEW VWCW_PROFILE_REL_CONTROL AS CREATE VIEW VWCW_PROFILE_REL_CONTROL AS
@@ -475,7 +515,7 @@ SELECT DISTINCT TOP 100 PERCENT
T.GUID T.GUID
,T1.USER_ID ,T1.USER_ID
,TP.PROC_NAME AS PROCESS_NAME ,TP.PROC_NAME AS PROCESS_NAME
,T1.GUID AS PROFILE_ID ,T1.PROFIL_ID AS PROFILE_ID
,T.WINDOW_ID ,T.WINDOW_ID
,T.DESCRIPTION ,T.DESCRIPTION
,T.SEQUENCE ,T.SEQUENCE
@@ -504,25 +544,7 @@ FROM
WHERE WHERE
T.WINDOW_ID = TW.GUID AND T.WINDOW_ID = TW.GUID AND
TW.PROCESS_ID = TP.GUID AND TW.PROCESS_ID = TP.GUID AND
TP.PROFILE_ID = T1.GUID TP.PROFILE_ID = T1.PROFIL_ID
ORDER BY T.SEQUENCE ORDER BY T.SEQUENCE;
GO GO
CREATE VIEW [dbo].[VWCW_GROUP_PROFILE] AS
SELECT
T.GUID,
T.NAME,
T.REGEX_EXPRESSION,
T.COMMENT,
T.ACTIVE,
T1.GROUP_ID,
T2.PROC_NAME
FROM
TBCW_PROFILES T
,TBCW_GROUP_PROFILE T1
,TBCW_PROFILE_PROCESS T2
WHERE
T.GUID = T1.PROFILE_ID
AND T.GUID = T2.PROFILE_ID
AND T.ACTIVE = 1
GO

View File

@@ -1,528 +0,0 @@
IF not EXISTS(SELECT GUID FROM TBDD_MODULES WHERE NAME = 'Clipboard-Watcher' )
INSERT INTO TBDD_MODULES (NAME, SHORT_NAME, LICENSE,ACTIVE) VALUES ('Clipboard-Watcher','CW','kc6j9HSv/UJVAzFjMZv2A3wHZFy+2nNLKP9Qs8g9EVY=',1)
GO
UPDATE TBDD_MODULES SET DB_VERSION = '2.0.0.1' where UPPER(NAME) = UPPER('Clipboard-Watcher')
GO
--ADDs THE USER WITH ADMIN-RIGHTS TO USER-MODULE RELATION
INSERT INTO TBDD_USER_MODULES(USER_ID,MODULE_ID)
SELECT DISTINCT USER_ID,(SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'CW')
FROM TBDD_USER_MODULES where IS_ADMIN = 1
GO
INSERT INTO TBDD_CLIENT_USER (USER_ID,CLIENT_ID) SELECT GUID,1 FROM TBDD_USER WHERE GUID NOT IN (SELECT USER_ID FROM TBDD_CLIENT_USER WHERE CLIENT_ID = 1)
GO
CREATE TABLE TBCW_CONFIGURATION
(
GUID TINYINT,
WD_UNICODE BIT NOT NULL DEFAULT 1,
GDPICTURE_LICENSE VARCHAR(500) NOT NULL DEFAULT '',
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBCW_CONFIGURATION_GUID PRIMARY KEY(GUID),
CONSTRAINT CH_TBCW_CONFIGURATION_GUID CHECK(GUID = 1)
)
GO
CREATE TRIGGER TBCW_CONFIGURATION_AFT_UPD ON TBCW_CONFIGURATION
FOR UPDATE
AS
UPDATE TBCW_CONFIGURATION SET CHANGED_WHEN = GETDATE() FROM INSERTED
WHERE TBCW_CONFIGURATION.GUID = INSERTED.GUID
GO
INSERT INTO TBCW_CONFIGURATION (GUID) VALUES (1)
GO
--ALTER TABLE TBDD_CLIENT
--ADD LICENSE_DDCBSEARCHER VARCHAR(5000) NOT NULL DEFAULT ''
--GO
CREATE TABLE TBCW_PROFILES
(
GUID INTEGER NOT NULL IDENTITY(1,1),
NAME VARCHAR(100) NOT NULL,
PROFILE_TYPE SMALLINT NOT NULL DEFAULT 0,
REGEX_EXPRESSION VARCHAR(100) NOT NULL,
ACTIVE BIT NOT NULL DEFAULT 0,
COMMENT VARCHAR(500),
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBCW_PROFILES PRIMARY KEY (GUID),
CONSTRAINT UQ_TBCW_PROFILES_NAME UNIQUE(NAME)
)
GO
CREATE TRIGGER TBCW_PROFILES_AFT_UPD ON TBCW_PROFILES
FOR UPDATE
AS
UPDATE TBCW_PROFILES SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBCW_PROFILES.GUID = INSERTED.GUID
GO
CREATE TABLE TBCW_USER_PROFILE
(
GUID INT IDENTITY(1,1),
PROFILE_ID INT NOT NULL,
[USER_ID] INT NOT NULL,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBCW_USER_PROFILE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBCW_USER_PROFILE_PID_UID UNIQUE (PROFILE_ID,[USER_ID])
)
GO
CREATE TABLE TBCW_PROFILE_PROCESS
(
GUID INT IDENTITY(1,1),
PROFILE_ID INT NOT NULL,
PROC_NAME VARCHAR(100) NOT NULL,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBCW_PROFILE_PROCESS PRIMARY KEY (GUID),
CONSTRAINT UQ_TBCW_PROFILE_PROCESS UNIQUE (PROFILE_ID,PROC_NAME)
)
GO
CREATE TABLE TBCW_PROF_DOC_SEARCH(
GUID INTEGER NOT NULL IDENTITY(1,1),
PROFILE_ID INTEGER NOT NULL,
CONN_ID TinyINT NOT NULL DEFAULT 0,
SQL_COMMAND VARCHAR(MAX) NOT NULL,
COUNT_COMMAND VARCHAR(MAX) NOT NULL,
TAB_INDEX TINYINT NOT NULL DEFAULT 0,
ACTIVE BIT NOT NULL DEFAULT 0,
TAB_TITLE VARCHAR(100) NOT NULL DEFAULT 'NOT DEFINED',
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBCW_PROF_DOC_SEARCH PRIMARY KEY (GUID),
CONSTRAINT FK_TBCW_PROF_DOC_SEARCH_PROF_IF FOREIGN KEY (PROFILE_ID) REFERENCES TBCW_PROFILES (GUID)
)
GO
CREATE TRIGGER TBCW_PROF_DOC_SEARCH_AFT_UPD ON TBCW_PROF_DOC_SEARCH
FOR UPDATE
AS
UPDATE TBCW_PROF_DOC_SEARCH SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBCW_PROF_DOC_SEARCH.GUID = INSERTED.GUID
GO
CREATE TRIGGER [dbo].[TBCW_PROF_DOC_SEARCH_AFT_INS] ON [dbo].[TBCW_PROF_DOC_SEARCH]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE @TABINDEX TINYINT
,@MAX_INDEX TINYINT
,@PROFILE_ID INT
,@GUID INTEGER
SELECT @TABINDEX = TAB_INDEX
,@PROFILE_ID = PROFILE_ID
,@GUID = GUID FROM inserted
SELECT @MAX_INDEX = ISNULL(MAX(TAB_INDEX),0) FROM TBCW_PROF_DOC_SEARCH WHERE PROFILE_ID = @PROFILE_ID AND GUID <> @GUID
UPDATE TBCW_PROF_DOC_SEARCH SET TAB_INDEX = @MAX_INDEX
FROM INSERTED
WHERE TBCW_PROF_DOC_SEARCH.GUID = INSERTED.GUID
UPDATE TBCW_PROF_DOC_SEARCH SET ADDED_WHEN = GETDATE() FROM INSERTED WHERE TBCW_PROF_DOC_SEARCH.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
--DROP TABLE TBCW_PROF_DATA_SEARCH
--GO
CREATE TABLE TBCW_PROF_DATA_SEARCH(
GUID INTEGER NOT NULL IDENTITY(1,1),
PROFILE_ID INTEGER NOT NULL,
CONN_ID TinyINT NOT NULL DEFAULT 0,
SQL_COMMAND VARCHAR(MAX) NOT NULL,
COUNT_COMMAND VARCHAR(MAX) NOT NULL,
TAB_INDEX TINYINT NOT NULL DEFAULT 0,
ACTIVE BIT NOT NULL DEFAULT 0,
TAB_TITLE VARCHAR(100) NOT NULL DEFAULT 'NOT DEFINED',
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBCW_PROF_DATA_SEARCH PRIMARY KEY (GUID),
CONSTRAINT FK_TBCW_PROF_DATA_SEARCH_PROF_IF FOREIGN KEY (PROFILE_ID) REFERENCES TBCW_PROFILES (GUID)
)
GO
CREATE TRIGGER TBCW_PROF_DATA_SEARCH_AFT_UPD ON TBCW_PROF_DATA_SEARCH
FOR UPDATE
AS
UPDATE TBCW_PROF_DATA_SEARCH SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBCW_PROF_DATA_SEARCH.GUID = INSERTED.GUID
GO
CREATE TRIGGER [dbo].[TBCW_PROF_DATA_SEARCH_AFT_INS] ON [dbo].[TBCW_PROF_DATA_SEARCH]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE @TABINDEX TINYINT
,@MAX_INDEX TINYINT
,@PROFILE_ID INT
,@GUID INTEGER
SELECT @TABINDEX = TAB_INDEX
,@PROFILE_ID = PROFILE_ID
,@GUID = GUID FROM inserted
SELECT @MAX_INDEX = ISNULL(MAX(TAB_INDEX),0) FROM TBCW_PROF_DATA_SEARCH WHERE PROFILE_ID = @PROFILE_ID AND GUID <> @GUID
UPDATE TBCW_PROF_DATA_SEARCH SET TAB_INDEX = @MAX_INDEX
FROM INSERTED
WHERE TBCW_PROF_DATA_SEARCH.GUID = INSERTED.GUID
UPDATE TBCW_PROF_DATA_SEARCH SET ADDED_WHEN = GETDATE() FROM INSERTED WHERE TBCW_PROF_DATA_SEARCH.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TABLE [dbo].[TBCW_GROUP_PROFILE](
GUID INTEGER IDENTITY(1,1) NOT NULL,
PROFILE_ID INTEGER NOT NULL,
GROUP_ID INTEGER NOT NULL,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBCW_GROUP_PROFILE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBCW_GROUP_PROFILE_PID_UID UNIQUE (PROFILE_ID,GROUP_ID)
)
GO
CREATE TABLE TBCW_PROF_REL_WINDOW(
GUID INTEGER NOT NULL IDENTITY(1,1),
PROCESS_ID INTEGER NOT NULL,
DESCRIPTION VARCHAR(250) NOT NULL DEFAULT '',
REGEX VARCHAR(500) NOT NULL,
SEQUENCE TINYINT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBCW_PROF_REL_WINDOW PRIMARY KEY (GUID),
CONSTRAINT FK_TBCW_PROF_REL_WINDOW_PROCESS_ID FOREIGN KEY (PROCESS_ID) REFERENCES TBCW_PROFILE_PROCESS (GUID)
)
GO
CREATE TRIGGER TBCW_PROF_REL_WINDOW_AFT_UPD ON TBCW_PROF_REL_WINDOW
FOR UPDATE
AS
UPDATE TBCW_PROF_REL_WINDOW SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBCW_PROF_REL_WINDOW.GUID = INSERTED.GUID
GO
CREATE TRIGGER [dbo].[TBCW_PROF_REL_WINDOW_AFT_INS] ON [dbo].TBCW_PROF_REL_WINDOW
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE @SEQUENCE TINYINT
,@MAX_SEQUENCE TINYINT
,@PROCESS_ID INT
,@GUID INTEGER
SELECT @SEQUENCE = SEQUENCE
,@PROCESS_ID = PROCESS_ID
,@GUID = GUID FROM inserted
SELECT @MAX_SEQUENCE = ISNULL(MAX(SEQUENCE),0) FROM TBCW_PROF_REL_WINDOW WHERE PROCESS_ID = @PROCESS_ID AND GUID <> @GUID
UPDATE TBCW_PROF_REL_WINDOW SET SEQUENCE = @MAX_SEQUENCE
FROM INSERTED
WHERE TBCW_PROF_REL_WINDOW.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TABLE TBCW_PROF_REL_CONTROL(
GUID INTEGER NOT NULL IDENTITY(1,1),
DESCRIPTION VARCHAR(250) NOT NULL,
WINDOW_ID INTEGER NOT NULL,
CONTROL_NAME VARCHAR(500) NOT NULL DEFAULT '',
[TOPLEFT_TOP] INTEGER NOT NULL DEFAULT 0,
[TOPLEFT_LEFT] INTEGER NOT NULL DEFAULT 0,
[TOPLEFT_RIGHT] INTEGER NOT NULL DEFAULT 0,
[TOPLEFT_BOTTOM] INTEGER NOT NULL DEFAULT 0,
[TOPRIGHT_TOP] INTEGER NOT NULL DEFAULT 0,
[TOPRIGHT_LEFT] INTEGER NOT NULL DEFAULT 0,
[TOPRIGHT_RIGHT] INTEGER NOT NULL DEFAULT 0,
[TOPRIGHT_BOTTOM] INTEGER NOT NULL DEFAULT 0,
[BOTTOMLEFT_TOP] INTEGER NOT NULL DEFAULT 0,
[BOTTOMLEFT_LEFT] INTEGER NOT NULL DEFAULT 0,
[BOTTOMLEFT_RIGHT] INTEGER NOT NULL DEFAULT 0,
[BOTTOMLEFT_BOTTOM] INTEGER NOT NULL DEFAULT 0,
[BOTTOMRIGHT_TOP] INTEGER NOT NULL DEFAULT 0,
[BOTTOMRIGHT_LEFT] INTEGER NOT NULL DEFAULT 0,
[BOTTOMRIGHT_RIGHT] INTEGER NOT NULL DEFAULT 0,
[BOTTOMRIGHT_BOTTOM] INTEGER NOT NULL DEFAULT 0,
SEQUENCE TINYINT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBCW_PROF_REL_CONTROL PRIMARY KEY (GUID),
CONSTRAINT FK_TBCW_PROF_REL_CONTROL_WINDOW_ID FOREIGN KEY (WINDOW_ID) REFERENCES TBCW_PROF_REL_WINDOW (GUID)
)
GO
CREATE TRIGGER TBCW_PROF_REL_CONTROL_AFT_UPD ON TBCW_PROF_REL_CONTROL
FOR UPDATE
AS
UPDATE TBCW_PROF_REL_CONTROL SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBCW_PROF_REL_CONTROL.GUID = INSERTED.GUID
GO
CREATE TRIGGER TBCW_PROF_REL_CONTROL_AFT_INS ON TBCW_PROF_REL_CONTROL
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE @SEQUENCE TINYINT
,@MAX_SEQUENCE TINYINT
,@WINDOW_ID INT
,@GUID INTEGER
SELECT @SEQUENCE = SEQUENCE
,@WINDOW_ID = WINDOW_ID
,@GUID = GUID FROM inserted
SELECT @MAX_SEQUENCE = ISNULL(MAX(SEQUENCE),0) FROM TBCW_PROF_REL_CONTROL WHERE WINDOW_ID = @WINDOW_ID AND GUID <> @GUID
UPDATE TBCW_PROF_REL_CONTROL SET SEQUENCE = @MAX_SEQUENCE
FROM INSERTED
WHERE TBCW_PROF_REL_CONTROL.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TRIGGER [dbo].[TBCW_PROF_REL_CONTROLAFT_INS] ON [dbo].TBCW_PROF_REL_CONTROL
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE @SEQUENCE TINYINT
,@MAX_SEQUENCE TINYINT
,@WINDOW_ID INT
,@GUID INTEGER
SELECT @SEQUENCE = SEQUENCE
,@WINDOW_ID = @WINDOW_ID
,@GUID = GUID FROM inserted
SELECT @MAX_SEQUENCE = ISNULL(MAX(SEQUENCE),0) FROM TBCW_PROF_REL_CONTROL WHERE @WINDOW_ID = @WINDOW_ID AND GUID <> @GUID
UPDATE TBCW_PROF_REL_CONTROL SET SEQUENCE = @MAX_SEQUENCE
FROM INSERTED
WHERE TBCW_PROF_REL_CONTROL.GUID = INSERTED.GUID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
/*##### PROCEDURES ####*/
CREATE PROCEDURE [dbo].[PRCW_DELETE_PROFILE](@pPROFILE_ID INT)
AS
BEGIN TRY
delete from TBCW_PROF_DATA_SEARCH where PROFILE_ID = @pPROFILE_ID
delete from TBCW_PROF_DOC_SEARCH where PROFILE_ID = @pPROFILE_ID
delete from TBCW_PROF_REL_CONTROL where WINDOW_ID IN (SELECT GUID FROM TBCW_PROF_REL_WINDOW WHERE PROCESS_ID IN (SELECT GUID FROM TBCW_PROFILE_PROCESS WHERE PROFILE_ID = @pPROFILE_ID))
delete from TBCW_PROF_REL_WINDOW where PROCESS_ID IN (SELECT GUID FROM TBCW_PROFILE_PROCESS WHERE PROFILE_ID = @pPROFILE_ID)
delete from TBCW_PROFILE_PROCESS where PROFILE_ID = @pPROFILE_ID
delete from TBCW_USER_PROFILE where PROFILE_ID = @pPROFILE_ID
delete from TBCW_PROFILES where GUID = @pPROFILE_ID
END TRY
BEGIN CATCH
PRINT 'FEHLER IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - FEHLER-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE PROCEDURE [dbo].[PRCW_DELETE_PROCESS](@pPROCESS_ID INT)
AS
BEGIN TRY
delete from TBCW_PROF_REL_CONTROL where WINDOW_ID IN (SELECT GUID FROM TBCW_PROF_REL_WINDOW WHERE PROCESS_ID = @pPROCESS_ID)
delete from TBCW_PROF_REL_WINDOW where PROCESS_ID = @pPROCESS_ID
delete from TBCW_PROFILE_PROCESS where GUID = @pPROCESS_ID
END TRY
BEGIN CATCH
PRINT 'FEHLER IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - FEHLER-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE PROCEDURE [dbo].[PRCW_DELETE_WINDOW](@pWINDOW_ID INT)
AS
BEGIN TRY
delete from TBCW_PROF_REL_CONTROL where WINDOW_ID = @pWINDOW_ID
delete from TBCW_PROF_REL_WINDOW where GUID = @pWINDOW_ID
END TRY
BEGIN CATCH
PRINT 'FEHLER IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - FEHLER-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
/*##### FUNCTIONS ####*/
CREATE FUNCTION [dbo].[FNCW_WM_SEARCH] (@pSearchValue Varchar(512),@pUSER_ID INTEGER, @pLike BIT)
RETURNS @TBResult TABLE
(DocID INTEGER,
INDEX_NAME VARCHAR(50),
COMMENT VARCHAR(500))
AS
BEGIN
DECLARE @USER_ECM_FKID INTEGER
SELECT @USER_ECM_FKID = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @pUSER_ID
IF @pLike = 1
BEGIN
INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT T.[dwDocID]
,T.[Idx]
FROM VWCW_SEARCH1 T INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON T.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE UPPER(T.Search_Term) LIKE UPPER('%' + @pSearchValue + '%')
INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT WMV.dwDocID, WMA.szAttrName
FROM sDD_VMP01_APS01_windream60.dbo.Attribute WMA INNER JOIN sDD_VMP01_APS01_windream60.dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID
INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51')
AND UPPER(WMV.szValue) LIKE UPPER('%' + @pSearchValue + '%')
END
ELSE
BEGIN
INSERT INTO @TBResult (DocID, INDEX_NAME) -- VALUES (1,'1234')
SELECT T.[dwDocID]
,T.[Idx]--,T.Search_Term
FROM VWCW_SEARCH1 T INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON T.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = 1000004
WHERE UPPER(T.Search_Term) = UPPER(@pSearchValue)
INSERT INTO @TBResult (DocID, INDEX_NAME)
SELECT DISTINCT WMV.dwDocID, WMA.szAttrName
FROM sDD_VMP01_APS01_windream60.dbo.Attribute WMA INNER JOIN sDD_VMP01_APS01_windream60.dbo.Vector WMV ON WMA.dwAttrID = WMV.dwAttrID
INNER JOIN VWDD_WM_ACCESS_RIGHTS T1 ON WMV.dwDocID = T1.dwObjectID AND T1.dwUserOrGROUPID = @USER_ECM_FKID
WHERE WMA.szAttrName in ('Vektor String 00','Vektor String 01','Vektor String 03','Vektor String 04','Vektor String 06','Vektor String 25','Vektor String 26','Vektor String 50','Vektor String 51')
AND UPPER(WMV.szValue) = UPPER(@pSearchValue)
END
RETURN
END
GO
CREATE FUNCTION FNCW_GET_SEARCH_COUNT_FOR_CONNECTION(@CONNECTION_ID int)
RETURNS int
AS
BEGIN
DECLARE @RESULT int
SELECT @RESULT = SUM(t.CNT) FROM (
SELECT COUNT(*) AS CNT FROM TBCW_PROF_DATA_SEARCH WHERE CONN_ID = @CONNECTION_ID
UNION ALL
SELECT COUNT(*) AS CNT FROM TBCW_PROF_DOC_SEARCH WHERE CONN_ID = @CONNECTION_ID
) t
RETURN @RESULT
END
GO
/*##### VIEWS ####*/
CREATE VIEW [dbo].[VWCW_USER_PROFILE] AS
SELECT DISTINCT
T.GUID,
T.NAME,
T.REGEX_EXPRESSION,
T.COMMENT,
T.ACTIVE,
T.PROFILE_TYPE,
T2.PROC_NAME,
T1.USER_ID,
T3.GROUP_ID
FROM TBCW_PROFILES T
LEFT JOIN TBCW_USER_PROFILE T1 ON T.GUID = T1.PROFILE_ID
LEFT JOIN TBCW_PROFILE_PROCESS T2 ON T.GUID = T2.PROFILE_ID
LEFT JOIN TBCW_GROUP_PROFILE T3 ON T.GUID = T3.PROFILE_ID
WHERE T.ACTIVE = 1
GO
CREATE VIEW VWCW_PROFILE_REL_WINDOW AS
SELECT DISTINCT TOP 100 PERCENT
T.GUID
,T.PROCESS_ID
,T2.USER_ID
,T1.PROC_NAME AS PROCESS_NAME
,T1.PROFILE_ID
,T.DESCRIPTION
,T.REGEX
,T.SEQUENCE
FROM
TBCW_PROF_REL_WINDOW T
,TBCW_PROFILE_PROCESS T1
,VWCW_USER_PROFILE T2
WHERE
T.PROCESS_ID = T1.GUID AND
T1.PROFILE_ID = T2.GUID
ORDER BY T.SEQUENCE
GO
CREATE VIEW VWCW_PROFILE_REL_CONTROL AS
SELECT DISTINCT TOP 100 PERCENT
T.GUID
,T1.USER_ID
,TP.PROC_NAME AS PROCESS_NAME
,T1.GUID AS PROFILE_ID
,T.WINDOW_ID
,T.DESCRIPTION
,T.SEQUENCE
,T.CONTROL_NAME
,T.TOPLEFT_LEFT
,T.TOPLEFT_RIGHT
,T.TOPLEFT_TOP
,T.TOPLEFT_BOTTOM
,T.TOPRIGHT_LEFT
,T.TOPRIGHT_RIGHT
,T.TOPRIGHT_TOP
,T.TOPRIGHT_BOTTOM
,T.BOTTOMLEFT_LEFT
,T.BOTTOMLEFT_RIGHT
,T.BOTTOMLEFT_TOP
,T.BOTTOMLEFT_BOTTOM
,T.BOTTOMRIGHT_LEFT
,T.BOTTOMRIGHT_RIGHT
,T.BOTTOMRIGHT_TOP
,T.BOTTOMRIGHT_BOTTOM
FROM
TBCW_PROF_REL_CONTROL T
,TBCW_PROF_REL_WINDOW TW
,TBCW_PROFILE_PROCESS TP
,VWCW_USER_PROFILE T1
WHERE
T.WINDOW_ID = TW.GUID AND
TW.PROCESS_ID = TP.GUID AND
TP.PROFILE_ID = T1.GUID
ORDER BY T.SEQUENCE
GO
CREATE VIEW [dbo].[VWCW_GROUP_PROFILE] AS
SELECT
T.GUID,
T.NAME,
T.REGEX_EXPRESSION,
T.COMMENT,
T.ACTIVE,
T1.GROUP_ID,
T2.PROC_NAME
FROM
TBCW_PROFILES T
,TBCW_GROUP_PROFILE T1
,TBCW_PROFILE_PROCESS T2
WHERE
T.GUID = T1.PROFILE_ID
AND T.GUID = T2.PROFILE_ID
AND T.ACTIVE = 1
GO

View File

@@ -1,7 +1,7 @@
-- Integrieren wir auch unsere IDB-Logik? -- Integrieren wir auch unsere IDB-Logik?
-- Wenn Ja: Suchen nach 0 IDB_FILESTORE_ID und ersetzen mit T4.IDB_FILESTORE_ID -- Wenn Ja: Suchen nach 0 IDB_FILESTORE_ID und ersetzen mit T4.IDB_FILESTORE_ID
UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.5.3.0' where NAME = 'Global-Indexer' UPDATE TBDD_MODULES SET DB_VERSION = '2.5.4.3' where NAME = 'fileFLOW'
GO GO
UPDATE TBDD_MODULES SET STRING1 = '\\windream\objects' WHERE SHORT_NAME = 'GLOBIX' AND STRING1 = 'W'; UPDATE TBDD_MODULES SET STRING1 = '\\windream\objects' WHERE SHORT_NAME = 'GLOBIX' AND STRING1 = 'W';
CREATE TABLE TBGI_CONFIGURATION CREATE TABLE TBGI_CONFIGURATION
@@ -287,7 +287,7 @@ GO
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
ALTER VIEW [dbo].[VWGI_DOCTYPE] AS CREATE VIEW [dbo].[VWGI_DOCTYPE] AS
SELECT DISTINCT SELECT DISTINCT
T.GUID AS [USER_ID], T.GUID AS [USER_ID],
T.USERNAME, T.USERNAME,
@@ -340,7 +340,43 @@ WHERE
T3.DOCTYPE_ID = T4.GUID AND T3.DOCTYPE_ID = T4.GUID AND
T4.GUID in (SELECT DOKART_ID FROM TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE UPPER(SHORT_NAME) = ('GLOBIX'))) T4.GUID in (SELECT DOKART_ID FROM TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE UPPER(SHORT_NAME) = ('GLOBIX')))
GO GO
CREATE VIEW [dbo].[VWGI_DOCTYPE_USER] AS
DECLARE @SQL nvarchar(max);
IF EXISTS (SELECT * FROM [TBDD_CATALOG] WHERE CAT_TITLE = 'USE_IDB_AS_METADATA' AND CAT_STRING = '1')
BEGIN
SET @SQL = N'--26.09 MS Shortname angepasst
CREATE OR ALTER VIEW [dbo].[VWGI_DOCTYPE_IDB] AS
SELECT
T4.GUID as DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.FOLDER_FOR_INDEX DYNAMIC_FOLDER,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
T6.OBJECT_TITLE AS OBJECT_STORE,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID,
T7.CAT_TITLE AS OBJECT_ST_PATH,
T4.ERSTELLTWANN,
T4.GEAENDERTWANN,
T4.SEQUENCE,
T4.IDB_DOCTYPE_ID
FROM
DD_ECM.dbo.TBDD_DOKUMENTART T4 LEFT JOIN IDB.dbo.TBIDB_OBJECT_STORE T6 ON T4.IDB_OBJECT_STORE_ID = T6.GUID
LEFT JOIN IDB.dbo.TBIDB_CATALOG T7 On T6.CAT_ID = T7.GUID
WHERE
T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE SHORT_NAME = ''fileFLOW''));';
EXEC (@SQL);
END;
GO
DECLARE @SQL nvarchar(max);
IF EXISTS (SELECT * FROM [TBDD_CATALOG] WHERE CAT_TITLE = 'USE_IDB_AS_METADATA' AND CAT_STRING = '1')
BEGIN
SET @SQL = N'
--26.09 MS Shortname angepasst
ALTER VIEW [dbo].[VWGI_DOCTYPE_USER] AS
SELECT DISTINCT SELECT DISTINCT
T.GUID AS [USER_ID], T.GUID AS [USER_ID],
T.USERNAME, T.USERNAME,
@@ -354,24 +390,24 @@ SELECT DISTINCT
T4.NAMENKONVENTION, T4.NAMENKONVENTION,
T4.OBJEKTTYP, T4.OBJEKTTYP,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID, T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID,
--T5.OBJECT_TITLE as OBJECT_ST_NAME, T5.OBJECT_TITLE as OBJECT_ST_NAME,
T4.SEQUENCE T4.SEQUENCE
FROM FROM
DD_ECM.dbo.TBDD_USER T, DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_GROUPS_USER T1, DD_ECM.dbo.TBDD_GROUPS_USER T1,
DD_ECM.dbo.TBDD_GROUPS T2, DD_ECM.dbo.TBDD_GROUPS T2,
DD_ECM.dbo.TBDD_USRGRP_DOKTYPE T3, DD_ECM.dbo.TBDD_USRGRP_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4--, DD_ECM.dbo.TBDD_DOKUMENTART T4,
--IDB.dbo.TBIDB_OBJECT_STORE T5 IDB.dbo.TBIDB_OBJECT_STORE T5
WHERE WHERE
T4.AKTIV = 1 AND T4.AKTIV = 1 AND
T.GUID = T1.[USER_ID] AND T.GUID = T1.[USER_ID] AND
T1.GROUP_ID = T2.GUID AND T1.GROUP_ID = T2.GUID AND
T2.GUID = T3.GROUP_ID AND T2.GUID = T3.GROUP_ID AND
T3.DOCTYPE_ID = T4.GUID AND T3.DOCTYPE_ID = T4.GUID AND
--T4.IDB_OBJECT_STORE_ID = T5.GUID AND T4.IDB_OBJECT_STORE_ID = T5.GUID AND
T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE UPPER(SHORT_NAME) = ('GLOBIX'))) T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE SHORT_NAME = ''fileFLOW''))
UNION UNION
SELECT DISTINCT SELECT DISTINCT
T.GUID AS [USER_ID], T.GUID AS [USER_ID],
@@ -386,20 +422,80 @@ SELECT DISTINCT
T4.NAMENKONVENTION, T4.NAMENKONVENTION,
T4.OBJEKTTYP, T4.OBJEKTTYP,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID, T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID,
--T5.OBJECT_TITLE as OBJECT_ST_NAME, T5.OBJECT_TITLE as OBJECT_ST_NAME,
T4.SEQUENCE T4.SEQUENCE
FROM FROM
DD_ECM.dbo.TBDD_USER T, DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_USER_DOKTYPE T3, DD_ECM.dbo.TBDD_USER_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4--, DD_ECM.dbo.TBDD_DOKUMENTART T4,
--IDB.dbo.TBIDB_OBJECT_STORE T5 IDB.dbo.TBIDB_OBJECT_STORE T5
WHERE WHERE
T4.AKTIV = 1 AND T4.AKTIV = 1 AND
T.GUID = T3.[USER_ID] AND T.GUID = T3.[USER_ID] AND
T3.DOCTYPE_ID = T4.GUID AND T3.DOCTYPE_ID = T4.GUID AND
--T4.IDB_OBJECT_STORE_ID = T5.GUID AND T4.IDB_OBJECT_STORE_ID = T5.GUID AND
T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE UPPER(SHORT_NAME) = ('GLOBIX'))) T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE SHORT_NAME = ''fileFLOW''))'
GO PRINT @SQL
END
ELSE
SET @SQL = N'
--26.09 MS Shortname angepasst
ALTER VIEW [dbo].[VWGI_DOCTYPE_USER] AS
SELECT DISTINCT
T.GUID AS [USER_ID],
T.USERNAME,
--T2.NAME AS GROUP_NAME,
T3.DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.ZIEL_PFAD,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
0 OBJECT_ST_ID,
T5.OBJECT_TITLE as OBJECT_ST_NAME,
T4.SEQUENCE
FROM
DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_GROUPS_USER T1,
DD_ECM.dbo.TBDD_GROUPS T2,
DD_ECM.dbo.TBDD_USRGRP_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4
WHERE
T4.AKTIV = 1 AND
T.GUID = T1.[USER_ID] AND
T1.GROUP_ID = T2.GUID AND
T2.GUID = T3.GROUP_ID AND
T3.DOCTYPE_ID = T4.GUID AND
T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE SHORT_NAME = ''fileFLOW''))
UNION
SELECT DISTINCT
T.GUID AS [USER_ID],
T.USERNAME,
--'' AS GROUP_NAME,
T4.GUID as DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.ZIEL_PFAD,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
0 OBJECT_ST_ID,
T5.OBJECT_TITLE as OBJECT_ST_NAME,
T4.SEQUENCE
FROM
DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_USER_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4
WHERE
T4.AKTIV = 1 AND
T.GUID = T3.[USER_ID] AND
T3.DOCTYPE_ID = T4.GUID AND
T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE SHORT_NAME = ''fileFLOW''))'
EXEC (@SQL);
GO
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
CREATE VIEW [dbo].[VWGI_USER_GROUPS_RELATION] AS CREATE VIEW [dbo].[VWGI_USER_GROUPS_RELATION] AS
@@ -484,7 +580,8 @@ BEGIN CATCH
+ CONVERT(VARCHAR(500),ERROR_MESSAGE()) + CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH END CATCH
GO GO
CREATE PROCEDURE [dbo].[PRDD_COPY_DOKPROFILE](@pDOCTYPE_ID INT,@pMODULE_ID INT) --CHANGED 24.09.2024 SEQ in autom. Index
CREATE OR ALTER PROCEDURE [dbo].[PRDD_COPY_DOKPROFILE](@pDOCTYPE_ID INT,@pMODULE_ID INT)
AS AS
DECLARE @NEWDOCTYPE_ID INT DECLARE @NEWDOCTYPE_ID INT
@@ -499,8 +596,8 @@ BEGIN
INSERT INTO TBDD_DOKUMENTART_MODULE (DOKART_ID,MODULE_ID,ADDED_WHO) VALUES (@NEWDOCTYPE_ID,@pMODULE_ID,'COPY-PROCEDURE') INSERT INTO TBDD_DOKUMENTART_MODULE (DOKART_ID,MODULE_ID,ADDED_WHO) VALUES (@NEWDOCTYPE_ID,@pMODULE_ID,'COPY-PROCEDURE')
INSERT INTO TBDD_INDEX_AUTOM ( INSERT INTO TBDD_INDEX_AUTOM (
DOCTYPE_ID,INDEXNAME,VALUE, SQL_ACTIVE,CONNECTION_ID,SQL_RESULT,COMMENT,ACTIVE,ADDED_WHO) DOCTYPE_ID,INDEXNAME,VALUE,SEQUENCE, SQL_ACTIVE,CONNECTION_ID,SQL_RESULT,COMMENT,ACTIVE,ADDED_WHO)
SELECT @NEWDOCTYPE_ID,INDEXNAME,VALUE, SQL_ACTIVE,CONNECTION_ID,SQL_RESULT,COMMENT,ACTIVE,'COPY-PROCEDURE' FROM TBDD_INDEX_AUTOM WHERE DOCTYPE_ID = @pDOCTYPE_ID SELECT @NEWDOCTYPE_ID,INDEXNAME,VALUE, [SEQUENCE], SQL_ACTIVE,CONNECTION_ID,SQL_RESULT,COMMENT,ACTIVE,'COPY-PROCEDURE' FROM TBDD_INDEX_AUTOM WHERE DOCTYPE_ID = @pDOCTYPE_ID
DECLARE DECLARE
@MANINDEX_ID INTEGER, @MANINDEX_ID INTEGER,
@@ -513,7 +610,7 @@ BEGIN
BEGIN BEGIN
INSERT INTO TBDD_INDEX_MAN ( INSERT INTO TBDD_INDEX_MAN (
DOK_ID, NAME, WD_INDEX, COMMENT, DATATYPE, SUGGESTION, DEFAULT_VALUE, CONNECTION_ID, SEQUENCE, ACTIVE , ADDED_WHO ,SQL_RESULT, SQL_CHECK, OPTIONAL, MULTISELECT, VKT_ADD_ITEM, VKT_PREVENT_MULTIPLE_VALUES) DOK_ID, NAME, WD_INDEX, COMMENT, DATATYPE, SUGGESTION, DEFAULT_VALUE, CONNECTION_ID, SEQUENCE, ACTIVE , ADDED_WHO ,SQL_RESULT, SQL_CHECK, OPTIONAL, MULTISELECT, VKT_ADD_ITEM, VKT_PREVENT_MULTIPLE_VALUES)
SELECT @NEWDOCTYPE_ID, NAME, WD_INDEX, COMMENT, DATATYPE, SUGGESTION, DEFAULT_VALUE, CONNECTION_ID, SEQUENCE, ACTIVE ,'COPY-PROCEDURE',SQL_RESULT, SQL_CHECK, OPTIONAL, MULTISELECT, VKT_ADD_ITEM, VKT_PREVENT_MULTIPLE_VALUES FROM TBDD_INDEX_MAN WHERE GUID = @MANINDEX_ID SELECT @NEWDOCTYPE_ID, NAME, WD_INDEX, COMMENT, DATATYPE, SUGGESTION, DEFAULT_VALUE, CONNECTION_ID, [SEQUENCE], ACTIVE ,'COPY-PROCEDURE',SQL_RESULT, SQL_CHECK, OPTIONAL, MULTISELECT, VKT_ADD_ITEM, VKT_PREVENT_MULTIPLE_VALUES FROM TBDD_INDEX_MAN WHERE GUID = @MANINDEX_ID
SELECT @NEW_ID = MAX(GUID) FROM TBDD_INDEX_MAN WHERE DOK_ID = @NEWDOCTYPE_ID SELECT @NEW_ID = MAX(GUID) FROM TBDD_INDEX_MAN WHERE DOK_ID = @NEWDOCTYPE_ID
@@ -531,7 +628,7 @@ BEGIN
PRINT '@NB_ID: ' + CONVERT(VARCHAR(5),@NB_ID) PRINT '@NB_ID: ' + CONVERT(VARCHAR(5),@NB_ID)
INSERT INTO TBDD_INDEX_MAN_POSTPROCESSING ( INSERT INTO TBDD_INDEX_MAN_POSTPROCESSING (
IDXMAN_ID, TYPE, FUNCTION1, FUNCTION2, TEXT1, TEXT2, TEXT3, SEQUENCE, ADDED_WHO, VARIANT) IDXMAN_ID, TYPE, FUNCTION1, FUNCTION2, TEXT1, TEXT2, TEXT3, SEQUENCE, ADDED_WHO, VARIANT)
SELECT @NEW_ID, TYPE, FUNCTION1, FUNCTION2, TEXT1, TEXT2, TEXT3, SEQUENCE, 'COPY-ROUTINE',VARIANT SELECT @NEW_ID, TYPE, FUNCTION1, FUNCTION2, TEXT1, TEXT2, TEXT3, [SEQUENCE], 'COPY-ROUTINE',VARIANT
FROM TBDD_INDEX_MAN_POSTPROCESSING WHERE GUID = @NB_ID FROM TBDD_INDEX_MAN_POSTPROCESSING WHERE GUID = @NB_ID
FETCH NEXT FROM c_NBFUNCTION INTO @NB_ID FETCH NEXT FROM c_NBFUNCTION INTO @NB_ID
END END
@@ -547,29 +644,62 @@ END
GO GO
CREATE OR ALTER VIEW [dbo].[VWGI_DOCTYPE_IDB] AS -- 20.09.2024 MS ModuleName geändert
SELECT CREATE OR ALTER VIEW [dbo].[VWGI_DOCTYPE] AS
SELECT DISTINCT
T.GUID AS [USER_ID],
T.USERNAME,
--T2.NAME AS GROUP_NAME,
T3.DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.ZIEL_PFAD,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
--T4.IDB_FILESTORE_ID,
T4.SEQUENCE
FROM
TBDD_USER T,
TBDD_GROUPS_USER T1,
TBDD_GROUPS T2,
TBDD_USRGRP_DOKTYPE T3,
TBDD_DOKUMENTART T4
WHERE
T4.AKTIV = 1 AND
T.GUID = T1.[USER_ID] AND
T1.GROUP_ID = T2.GUID AND
T2.GUID = T3.GROUP_ID AND
T3.DOCTYPE_ID = T4.GUID AND
T4.GUID in (SELECT DOKART_ID FROM TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'fileFLOW'))
UNION
SELECT DISTINCT
T.GUID AS [USER_ID],
T.USERNAME,
--'' AS GROUP_NAME,
T4.GUID as DOCTYPE_ID, T4.GUID as DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE, T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY, T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME, T4.KURZNAME,
T4.FOLDER_FOR_INDEX DYNAMIC_FOLDER, T4.ZIEL_PFAD,
T4.AKTIV, T4.AKTIV,
T4.NAMENKONVENTION, T4.NAMENKONVENTION,
T4.OBJEKTTYP, T4.OBJEKTTYP,
--T6.OBJECT_TITLE AS OBJECT_STORE, --T4.IDB_FILESTORE_ID,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID, T4.SEQUENCE
--T7.CAT_TITLE AS OBJECT_ST_PATH,
T4.ERSTELLTWANN,
T4.GEAENDERTWANN,
T4.SEQUENCE--,
--T4.IDB_DOCTYPE_ID
FROM FROM
DD_ECM.dbo.TBDD_DOKUMENTART T4 --LEFT JOIN IDB.dbo.TBIDB_OBJECT_STORE T6 ON T4.IDB_OBJECT_STORE_ID = T6.GUID TBDD_USER T,
--LEFT JOIN IDB.dbo.TBIDB_CATALOG T7 On T6.CAT_ID = T7.GUID TBDD_USER_DOKTYPE T3,
TBDD_DOKUMENTART T4
WHERE WHERE
T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE UPPER(SHORT_NAME) = ('GLOBIX'))) T4.AKTIV = 1 AND
T.GUID = T3.[USER_ID] AND
T3.DOCTYPE_ID = T4.GUID AND
T4.GUID in (SELECT DOKART_ID FROM TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'fileFLOW'))
GO GO
CREATE VIEW [dbo].[VWGI_DOCTYPE] AS CREATE VIEW [dbo].[VWGI_DOCTYPE] AS
SELECT DISTINCT SELECT DISTINCT
T.GUID AS [USER_ID], T.GUID AS [USER_ID],
@@ -659,7 +789,16 @@ SELECT @MODULEID = GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'GLOBIX'
If not exists(select guid from TBDD_DOKUMENTART_MODULE where DOKART_ID = @DOCTYPE_ID and MODULE_ID = @MODULEID) If not exists(select guid from TBDD_DOKUMENTART_MODULE where DOKART_ID = @DOCTYPE_ID and MODULE_ID = @MODULEID)
INSERT INTO TBDD_DOKUMENTART_MODULE (DOKART_ID,MODULE_ID, ADDED_WHO) VALUES (@DOCTYPE_ID,@MODULEID, 'PRDD_CHECK_REL_DOCTYPE_MODULE') INSERT INTO TBDD_DOKUMENTART_MODULE (DOKART_ID,MODULE_ID, ADDED_WHO) VALUES (@DOCTYPE_ID,@MODULEID, 'PRDD_CHECK_REL_DOCTYPE_MODULE')
GO GO
IF NOT EXISTS(SELECT GUID FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE_FILEFLOW')
BEGIN
INSERT INTO TBDD_3RD_PARTY_MODULES (ACTIVE,NAME,LICENSE) VALUES (
1,
'GDPICTURE_FILEFLOW',
'kG1Qf9PwmqgR8aDmIW2zI_ebj48RzqAJegRxcystEmkbTGQqfkNBdFOXIb6C_A00Ra8zZkrHdfjqzOPXK7kgkF2YDhvrqKfqh4WDug2vOt0qO31IommzkANSuLjZ4zmraoubyEVd25rE3veQ2h_j7tGIoH_LyIHmy24GaXsxdG0yCzIBMdiLbMMMDwcPY-809KeZ83Grv76OVhFvcbBWyYc251vou1N-kGg5_ZlHDgfWoY85gTLRxafjD3KS_i9ARW4BMiy36y8n7UP2jN8kGRnW_04ubpFtfjJqvtsrP_J9D0x7bqV8xtVtT5JI6dpKsVTiMgDCrIcoFSo5gCC1fw9oUopX4TDCkBQttO4-WHBlOeq9dG5Yb0otonVmJKaQA2tP6sMR-lZDs3ql_WI9t91yPWgpssrJUxSHDd27_LMTH_owJIqkF3NOJd9mYQuAv22oNKFYbH8e41pVKb8cT33Y9CgcQ_sy6YDA5PTuIRi67mjKge_nD9rd0IN213Ir9M_EFWqg9e4haWzIdHXQUo0md70kVhPX4UIH_BKJnxEEnFfoFRNMh77bB0N4jkcBEHPl-ghOERv8dOztf4vCnNpzzWvcLD2cqWIm6THy8XGGq9h4hp8aEreRleSMwv9QQAC7mjLwhQ1rBYkpUHlpTjhTLnMwHknl6HH0Z6zzmsgkRKVyfquv94Pd7QbQfZrRka0ss_48pf9p8hAywEn81Q=='
)
END
GO

View File

@@ -2,7 +2,7 @@ UPDATE TBDD_MODULES SET DB_VERSION = '2.5.4.0' where NAME = 'fileFLOW'
GO GO
-- 20.09.2024 MS ModuleName geändert -- 20.09.2024 MS ModuleName geändert
ALTER VIEW [dbo].[VWGI_DOCTYPE] AS CREATE OR ALTER VIEW [dbo].[VWGI_DOCTYPE] AS
SELECT DISTINCT SELECT DISTINCT
T.GUID AS [USER_ID], T.GUID AS [USER_ID],
T.USERNAME, T.USERNAME,

View File

@@ -1,7 +1,7 @@
UPDATE TBDD_MODULES SET DB_VERSION = '2.5.4.1' where NAME = 'fileFLOW' UPDATE TBDD_MODULES SET DB_VERSION = '2.5.4.1' where NAME = 'fileFLOW'
GO GO
--CHANGED 24.09.2024 SEQ in autom. Index --CHANGED 24.09.2024 SEQ in autom. Index
ALTER PROCEDURE [dbo].[PRDD_COPY_DOKPROFILE](@pDOCTYPE_ID INT,@pMODULE_ID INT) CREATE OR ALTER PROCEDURE [dbo].[PRDD_COPY_DOKPROFILE](@pDOCTYPE_ID INT,@pMODULE_ID INT)
AS AS
DECLARE @NEWDOCTYPE_ID INT DECLARE @NEWDOCTYPE_ID INT

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -21,14 +21,14 @@ BEGIN
-- SELECT @WM_LAUFWERKBUCHSTABE = WM_LAUFWERKBUCHSTABE FROM TBPMO_KONFIGURATION WHERE GUID = 1 -- SELECT @WM_LAUFWERKBUCHSTABE = WM_LAUFWERKBUCHSTABE FROM TBPMO_KONFIGURATION WHERE GUID = 1
--SELECT @SHAREPATH = WMPATH_PREFIX FROM TBPMO_KONFIGURATION WHERE GUID = 1; --SELECT @SHAREPATH = WMPATH_PREFIX FROM TBPMO_KONFIGURATION WHERE GUID = 1;
SELECT @FSFLAGS = dwFSFlags FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID SELECT @FSFLAGS = dwFSFlags FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID
IF @FSFLAGS = 16 IF @FSFLAGS = 16
BEGIN BEGIN
SET @RESULT = 'THIS IS NOT A FILE!' SET @RESULT = 'THIS IS NOT A FILE!'
END END
ELSE ELSE
BEGIN BEGIN
SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID
WHILE @a > 0 WHILE @a > 0
BEGIN BEGIN
IF @i = 0 IF @i = 0
@@ -58,7 +58,7 @@ BEGIN
END END
END END
SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @DOCID SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @DOCID
SET @i = @i + 1 SET @i = @i + 1
END END
END END

View File

@@ -36,5 +36,5 @@ ALTER VIEW [dbo].[VWSIG_CONFIG_DOC_PATH] AS
SELECT SELECT
DOCUMENT_PATH DOCUMENT_PATH
FROM [dbo].[TBSIG_CONFIG] FROM [dbo].[TBSIG_CONFIG]
GO GO

View File

@@ -9,6 +9,8 @@ ALTER TABLE [dbo].[TBSIG_RECEIVER] ADD [TOTP_EXPIRATION] DATETIME;
GO GO
ALTER TABLE [dbo].[TBSIG_RECEIVER] ADD [TOTP_SECRET_KEY] NVARCHAR(MAX); ALTER TABLE [dbo].[TBSIG_RECEIVER] ADD [TOTP_SECRET_KEY] NVARCHAR(MAX);
GO GO
ALTER TABLE [dbo].[TBSIG_RECEIVER] ADD [TFA_REG_DEADLINE] DATETIME;
GO
USE [DD_ECM] USE [DD_ECM]
GO GO

View File

@@ -8,6 +8,7 @@ BEGIN
ALTER TABLE [dbo].[TBSIG_ENVELOPE_RECEIVER] DROP CONSTRAINT [DF_TBSIG_ENVELOPE_RECEIVER_TFA_ENABLED]; ALTER TABLE [dbo].[TBSIG_ENVELOPE_RECEIVER] DROP CONSTRAINT [DF_TBSIG_ENVELOPE_RECEIVER_TFA_ENABLED];
ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER DROP COLUMN TFA_ENABLED; ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER DROP COLUMN TFA_ENABLED;
END END
IF EXISTS(SELECT * IF EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TBSIG_CONFIG' WHERE TABLE_NAME = 'TBSIG_CONFIG'
@@ -20,6 +21,8 @@ ALTER TABLE [dbo].TBSIG_ENVELOPE ADD TFA_ENABLED BIT NOT NULL DEFAULT 0;
GO GO
ALTER TABLE [dbo].TBSIG_CONFIG ADD DEF_TFA_ENABLED BIT NOT NULL DEFAULT 0; ALTER TABLE [dbo].TBSIG_CONFIG ADD DEF_TFA_ENABLED BIT NOT NULL DEFAULT 0;
GO GO
ALTER TABLE [dbo].TBSIG_CONFIG ADD DEF_TFA_WITH_PHONE BIT NOT NULL DEFAULT 0;
GO
-- Changed 23.01.2025 MS TFA_ENABLED -- Changed 23.01.2025 MS TFA_ENABLED
-- Changed 07.01.2025 MS VerifType integriert -- Changed 07.01.2025 MS VerifType integriert
ALTER VIEW [dbo].[VWSIG_ENVELOPE_DATA] AS ALTER VIEW [dbo].[VWSIG_ENVELOPE_DATA] AS
@@ -55,7 +58,7 @@ SELECT
FROM FROM
[TBSIG_ENVELOPE] ENV INNER JOIN TBDD_USER USR ON ENV.USER_ID = USR.GUID [TBSIG_ENVELOPE] ENV INNER JOIN TBDD_USER USR ON ENV.USER_ID = USR.GUID
GO GO
IF EXISTS(SELECT * IF NOT EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TBSIG_ENVELOPE_RECEIVER' WHERE TABLE_NAME = 'TBSIG_ENVELOPE_RECEIVER'
AND COLUMN_NAME = 'PHONE_NUMBER') AND COLUMN_NAME = 'PHONE_NUMBER')
@@ -63,6 +66,7 @@ BEGIN
ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER ADD PHONE_NUMBER VARCHAR(30) NOT NULL DEFAULT ''; ALTER TABLE [dbo].TBSIG_ENVELOPE_RECEIVER ADD PHONE_NUMBER VARCHAR(30) NOT NULL DEFAULT '';
END END
GO GO
--CHANGED 13.11.2024 MS RECEIVER_TERM integriert
ALTER VIEW [dbo].[VWSIG_ENVELOPE_RECEIVER] AS ALTER VIEW [dbo].[VWSIG_ENVELOPE_RECEIVER] AS
SELECT SELECT
ENV.GUID ENV_ID, ENV.GUID ENV_ID,
@@ -154,4 +158,72 @@ CREATE TRIGGER [dbo].[TBSIG_CHART_AFT_UPD] ON [dbo].[TBSIG_CHART]
FOR UPDATE FOR UPDATE
AS AS
UPDATE TBSIG_CHART SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBSIG_CHART.GUID = INSERTED.GUID UPDATE TBSIG_CHART SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBSIG_CHART.GUID = INSERTED.GUID
GO GO
IF NOT EXISTS(SELECT 1 FROM TBDD_GROUPS WHERE NAME = 'ENVELOPE-ADMIN')
INSERT INTO TBDD_GROUPS (NAME, INTERNAL,ACTIVE) VALUES ('ENVELOPE-ADMIN',1,1)
GO
CREATE VIEW [dbo].[VWSIG_REPORT_ENVELOPES_OPENED_DELETED] AS
SELECT
DEL.* FROM
(SELECT [ENVELOPE_ID],POS_WHEN FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_REPORT] A where POS_STATUS = 1009) DEL INNER JOIN --DELETED
(SELECT [ENVELOPE_ID],POS_WHEN FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_REPORT] A where POS_STATUS = 3002) REQ ON DEL.ENVELOPE_ID = REQ.ENVELOPE_ID INNER JOIN --AccessCodeSent
(SELECT [ENVELOPE_ID],POS_WHEN FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_REPORT] A where POS_STATUS = 2004) OP ON REQ.ENVELOPE_ID = OP.ENVELOPE_ID --DocOpened
GO
CREATE TABLE [dbo].[TBSIG_REORT_ENV_COUNT](
GUID INTEGER IDENTITY(1,1) NOT NULL,
ENV_ID INTEGER NOT NULL,
MONTH_REPORT VARCHAR(50) NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBSIG_REORT_ENV_COUNT PRIMARY KEY (GUID)
)
GO
INSERT INTO TBDD_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('SIG_REPORT_RECEIVER_ENV_MONTHLY','m.schreiber@digitaldata.works;a.truebenbach@digitaldata.works');
GO
INSERT INTO TBDD_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('SIG_CUSTOMER_NAME','Digital Data Testsystem');
GO
CREATE PROCEDURE [dbo].[PRSIG_EMAIL_REPORT_MONTHLY_ENVELOPES] AS
BEGIN
Declare @Body VARCHAR(MAX),@AM_FINISHED INT,@AM_SENT_DELETED INT, @Month VARCHAR(100),@SUM_MONTH INT,@CUSTOMER VARCHAR(100),@EML_RECEIPIANTS VARCHAR(500)
SELECT @CUSTOMER FROM TBDD_CATALOG WHERE CAT_TITLE = 'SIG_CUSTOMER_NAME';
SELECT @EML_RECEIPIANTS FROM TBDD_CATALOG WHERE CAT_TITLE = 'SIG_REPORT_RECEIVER_ENV_MONTHLY';
Declare @SUBJ VARCHAR(250) = 'Verbrauchsmeldung signFLOW - Kunde: ' + @CUSTOMER
SELECT @Month = DATENAME(MONTH, GETDATE() -1)
SET @Body = 'Automatisch erzeugte Email zur Abrechnung signFLOW-Envelopes: <p>'
SET @Body += 'Kunde: <b>' + @CUSTOMER + '</b><p>'
SET @Body += 'Monat: <b>' + @Month + '</b><p>'
SELECT
@AM_FINISHED = COUNT(ENVELOPE_ID)
FROM
[DD_ECM].[dbo].[VWSIG_ENVELOPE_DATA] A LEFT JOIN TBSIG_REORT_ENV_COUNT B ON A.ENVELOPE_ID = B.ENV_ID
WHERE
envelope_State = 1008 and DATEDIFF(month,CHANGED_WHEN,GETDATE()) = 1
AND B.GUID IS NULL;
SELECT
@AM_SENT_DELETED = COUNT(ENVELOPE_ID)
FROM
VWSIG_REPORT_ENVELOPES_OPENED_DELETED A LEFT JOIN TBSIG_REORT_ENV_COUNT B ON A.ENVELOPE_ID = B.ENV_ID
WHERE
DATEDIFF(month,POS_WHEN,GETDATE()) = 1
AND B.GUID IS NULL;
INSERT INTO TBSIG_REORT_ENV_COUNT (ENV_ID,MONTH_REPORT)
SELECT ENVELOPE_ID,@Month FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_DATA] where envelope_State = 1008 and DATEDIFF(month,CHANGED_WHEN,GETDATE()) = 1;
INSERT INTO TBSIG_REORT_ENV_COUNT (ENV_ID,MONTH_REPORT)
SELECT ENVELOPE_ID,@Month FROM VWSIG_REPORT_ENVELOPES_OPENED_DELETED WHERE DATEDIFF(month,POS_WHEN,GETDATE()) = 1;
SET @SUM_MONTH = @AM_FINISHED + @AM_SENT_DELETED
SET @Body += 'Anzahl final signierte Envelopes: <b>' + Convert(Varchar(5),@AM_FINISHED) + '</b> <br>'
SET @Body += 'Anzahl Gelöschte aber geöffnete Envelopes: <b>' + Convert(Varchar(5),@AM_SENT_DELETED) + '</b> <p>'
SET @Body += 'Summe abrechenbare Envelopes: <b>' + Convert(Varchar(5),@SUM_MONTH) + '</b> <p>'
IF LEN(@EML_RECEIPIANTS) > 0 AND LEN(@EML_RECEIPIANTS) > 0
EXEC PREMAIL_NEW_EMAIL 1,@EML_RECEIPIANTS,@SUBJ,@Body,'sigFLOW-EnvCount',9000,9000,'signFLOW-EnvelopeCount'
END

View File

@@ -0,0 +1,41 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.5.4.1' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
CREATE FUNCTION dbo.FNDD_Generate5DigitRandomCode()
RETURNS CHAR(5)
AS
BEGIN
DECLARE @Code CHAR(5), @Rand1 INT, @Rand2 INT, @Rand3 INT, @Rand4 INT, @Rand5 INT
SET @Rand1 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP))) % 36
SET @Rand2 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand1 AS VARBINARY))) % 36
SET @Rand3 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand2 AS VARBINARY))) % 36
SET @Rand4 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand3 AS VARBINARY))) % 36
SET @Rand5 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand4 AS VARBINARY))) % 36
SET @Code =
CHAR(CASE WHEN @Rand1 < 10 THEN 48 + @Rand1 ELSE 55 + @Rand1 END) +
CHAR(CASE WHEN @Rand2 < 10 THEN 48 + @Rand2 ELSE 55 + @Rand2 END) +
CHAR(CASE WHEN @Rand3 < 10 THEN 48 + @Rand3 ELSE 55 + @Rand3 END) +
CHAR(CASE WHEN @Rand4 < 10 THEN 48 + @Rand4 ELSE 55 + @Rand4 END) +
CHAR(CASE WHEN @Rand5 < 10 THEN 48 + @Rand5 ELSE 55 + @Rand5 END)
RETURN @Code
END
GO
CREATE TRIGGER [dbo].TBSIG_ENVELOPE_RECEIVER_AFT_UPD ON [dbo].[TBSIG_ENVELOPE_RECEIVER]
FOR INSERT
AS
BEGIN
DECLARE @ENVELOPE_ID INT,@RECEIVER_ID INT,@ACCESS_CODE NVARCHAR(64)
SELECT
@ENVELOPE_ID = ENVELOPE_ID,
@RECEIVER_ID = RECEIVER_ID,
@ACCESS_CODE = ACCESS_CODE FROM inserted
IF LEN(@ACCESS_CODE) = 0
BEGIN
SELECT @ACCESS_CODE = [dbo].[FNDD_Generate5DigitRandomCode] ();
UPDATE TBSIG_ENVELOPE_RECEIVER SET ACCESS_CODE = @ACCESS_CODE FROM INSERTED
WHERE TBSIG_ENVELOPE_RECEIVER.ENVELOPE_ID = INSERTED.ENVELOPE_ID AND TBSIG_ENVELOPE_RECEIVER.RECEIVER_ID = INSERTED.RECEIVER_ID;
END
END

View File

@@ -1,9 +0,0 @@
TRUNCATE TABLE TBSIG_ENVELOPE_HISTORY
TRUNCATE TABLE TBSIG_ENVELOPE
TRUNCATE TABLE TBSIG_RECEIVER
TRUNCATE TABLE TBSIG_ENVELOPE_RECEIVER
TRUNCATE TABLE TBSIG_DOCUMENT_RECEIVER_ELEMENT
TRUNCATE TABLE TBSIG_DOCUMENT_STATUS
TRUNCATE TABLE TBSIG_ENVELOPE_CERTIFICATE
TRUNCATE TABLE TBSIG_ENVELOPE_DOCUMENT
TRUNCATE TABLE TBSIG_USER_RECEIVER

View File

@@ -1,18 +0,0 @@
DROP TABLE TBSIG_ENVELOPE_HISTORY
DROP TABLE TBSIG_ENVELOPE
DROP TABLE TBSIG_RECEIVER
DROP TABLE TBSIG_ENVELOPE_RECEIVER
DROP TABLE TBSIG_DOCUMENT_RECEIVER_ELEMENT
DROP TABLE TBSIG_DOCUMENT_STATUS
DROP TABLE TBSIG_ENVELOPE_CERTIFICATE
DROP TABLE TBSIG_ENVELOPE_DOCUMENT
DROP TABLE TBSIG_USER_RECEIVER
DROP TABLE TBSIG_CONFIG
DROP TABLE TBSIG_ENVELOPE_TYPE
DROP VIEW VWSIG_ENVELOPE_REPORT
DROP VIEW VWSIG_ENVELOPE_RECEIVER
DROP VIEW VWSIG_ENVELOPE_RECEIVERS
DROP PROCEDURE PRSIG_GET_CLOSED_ENVELOPES_FOR_USER
DROP PROCEDURE PRSIG_GET_ENVELOPES_FOR_USER

View File

@@ -1,81 +0,0 @@
USE [DD_ECM]
GO
/****** Object: Trigger [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] Script Date: 05.12.2023 15:50:11 ******/
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
--PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2
IF LEFT(CONVERT(VARCHAR(4),@STATUS),1) = 1
BEGIN
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009) /*ENVELOPE QUEUED*/
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID
END
ELSE IF LEFT(CONVERT(VARCHAR(4),@STATUS),1) = 2
BEGIN
IF @STATUS = 2002 /*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 = 2002
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
END
ELSE IF LEFT(CONVERT(VARCHAR(4),@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
CREATE OR ALTER VIEW [dbo].[VWSIG_ENVELOPE_REPORT] as
SELECT
T2.GUID AS ENVELOPE_ID
--- HEAD
,T2.ENVELOPE_UUID HEAD_UUID
,T2.TITLE HEAD_TITLE
,T2.MESSAGE HEAD_MESSAGE
--- POSITIONS
,T.STATUS POS_STATUS
,T.ACTION_DATE POS_WHEN
,T.USER_REFERENCE POS_WHO
FROM TBSIG_ENVELOPE_HISTORY T
JOIN TBSIG_ENVELOPE T2 ON T2.GUID = T.ENVELOPE_ID
GO

View File

@@ -1,215 +0,0 @@
USE [DD_ECM]
GO
/****** Object: Trigger [dbo].[TBEMLP_EMAIL_OUT_AFT_UPD] Script Date: 09.01.2024 10:02:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CREATED 07.12.2023 DD MS
ALTER TRIGGER [dbo].[TBEMLP_EMAIL_OUT_AFT_UPD] ON [dbo].[TBEMLP_EMAIL_OUT]
FOR UPDATE
AS
BEGIN
PRINT '[TBEMLP_EMAIL_OUT_AFT_UPD]...'
DECLARE
@GUID BIGINT,
@ENVELOPE_UUID VARCHAR(250),
@ENVELOPE_ID INTEGER,
@WF_ID INTEGER,
@USER_REFERENCE VARCHAR(100),
@EMAIL_SENT DATETIME,
@EMAIL_ADRESS VARCHAR(250)
SELECT @WF_ID = WF_ID FROM inserted;
IF UPDATE (EMAIL_SENT) AND @WF_ID IN (3001,3002,3003,3004)
BEGIN
SELECT @ENVELOPE_UUID = REFERENCE_STRING, @EMAIL_SENT = EMAIL_SENT,@ENVELOPE_ID = REFERENCE_ID, @EMAIL_ADRESS = EMAIL_ADRESS FROM inserted;
PRINT 'ENVELOPE MSG' + @ENVELOPE_UUID
DECLARE @USR2SIGN INT, @USERS_MAIL_SENT INT,@ENV_ID INT
INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID, USER_REFERENCE, STATUS, ACTION_DATE) VALUES
(@ENVELOPE_ID, @EMAIL_ADRESS, @WF_ID, @EMAIL_SENT)
END
END
GO
USE [DD_ECM]
GO
/****** Object: Trigger [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] Script Date: 09.01.2024 10:01:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
USE [DD_ECM]
GO
/****** Object: Trigger [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] Script Date: 11.01.2024 10:23:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object: Trigger [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] Script Date: 05.12.2023 15:50:11 ******/
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
--PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2
IF LEFT(CONVERT(VARCHAR(4),@STATUS),1) = 1
BEGIN
IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009) /*ENVELOPE QUEUED*/
UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID
END
ELSE IF LEFT(CONVERT(VARCHAR(4),@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
END
ELSE IF LEFT(CONVERT(VARCHAR(4),@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
CREATE TABLE [dbo].[TBSIG_ENVELOPE_TYPE](
[GUID] [int] IDENTITY(1,1) NOT NULL,
[TITLE] [nvarchar](128) NOT NULL,
[LANGUAGE] [nvarchar](5) NULL,
[EXPIRES_DAYS] [int] NULL,
[CERTIFICATION_TYPE] [int] NULL,
[USE_ACCESS_CODE] [bit] NULL,
[FINAL_EMAIL_TO_CREATOR] [int] NULL,
[FINAL_EMAIL_TO_RECEIVERS] [int] NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHEN] [datetime] NULL,
[EXPIRES_WARNING_DAYS] [int] NULL,
[SEND_REMINDER_EMAILS] [bit] NULL,
[FIRST_REMINDER_DAYS] [int] NULL,
[REMINDER_INTERVAL_DAYS] [int] NULL,
[CONTRACT_TYPE] [int] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_LANGUAGE] DEFAULT (N'((de-DE))') FOR [LANGUAGE]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_EXPIRES_DAYS] DEFAULT ((0)) FOR [EXPIRES_DAYS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_CERTIFICATION_TYPE] DEFAULT ((0)) FOR [CERTIFICATION_TYPE]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_USE_ACCESS_CODE] DEFAULT ((0)) FOR [USE_ACCESS_CODE]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_FINAL_EMAIL_TO_CREATOR] DEFAULT ((0)) FOR [FINAL_EMAIL_TO_CREATOR]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_FINAL_EMAIL_TO_RECEIVER] DEFAULT ((0)) FOR [FINAL_EMAIL_TO_RECEIVERS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE_TYPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_TYPE_CONTRACT_TYPE] DEFAULT ((1)) FOR [CONTRACT_TYPE]
GO
/* --- TBSIG_ENVELOPE --- */
ALTER TABLE TBSIG_ENVELOPE ADD [LANGUAGE] [nvarchar](5) NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [SEND_REMINDER_EMAILS] [bit] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [FIRST_REMINDER_DAYS] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [REMINDER_INTERVAL_DAYS] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [ENVELOPE_TYPE] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [CERTIFICATION_TYPE] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [USE_ACCESS_CODE] [bit] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [FINAL_EMAIL_TO_CREATOR] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [FINAL_EMAIL_TO_RECEIVERS] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [EXPIRES_WHEN_DAYS] [int] NULL
GO
ALTER TABLE TBSIG_ENVELOPE ADD [EXPIRES_WARNING_WHEN_DAYS] [int] NULL
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_SEND_REMINDER_EMAILS] DEFAULT ((0)) FOR [SEND_REMINDER_EMAILS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_FIRST_REMINDER_DAYS] DEFAULT ((0)) FOR [FIRST_REMINDER_DAYS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_REMINDER_INTERVAL_DAYS] DEFAULT ((0)) FOR [REMINDER_INTERVAL_DAYS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_ENVELOPE_TYPE] DEFAULT ((0)) FOR [ENVELOPE_TYPE]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_CERTIFICATION_TYPE] DEFAULT ((1)) FOR [CERTIFICATION_TYPE]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_FINAL_EMAIL_TO_CREATOR] DEFAULT ((0)) FOR [FINAL_EMAIL_TO_CREATOR]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_FINAL_EMAIL_TO_RECEIVER] DEFAULT ((0)) FOR [FINAL_EMAIL_TO_RECEIVERS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_EXPIRES_WHEN_DAYS] DEFAULT ((0)) FOR [EXPIRES_WHEN_DAYS]
GO
ALTER TABLE [dbo].[TBSIG_ENVELOPE] ADD CONSTRAINT [DF_TBSIG_ENVELOPE_EXPIRES_WARNING_WHEN_DAYS] DEFAULT ((0)) FOR [EXPIRES_WARNING_WHEN_DAYS]
GO

View File

@@ -1,112 +0,0 @@
USE [DD_ECM]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[VWSIG_ENVELOPE_REPORT] as
SELECT
T2.GUID AS ENVELOPE_ID
--- HEAD
,T2.ENVELOPE_UUID HEAD_UUID
,T2.TITLE HEAD_TITLE
,T2.MESSAGE HEAD_MESSAGE
--- POSITIONS
,T.STATUS POS_STATUS
,T.ACTION_DATE POS_WHEN
,T.USER_REFERENCE POS_WHO
FROM TBSIG_ENVELOPE_HISTORY T
JOIN TBSIG_ENVELOPE T2 ON T2.GUID = T.ENVELOPE_ID
WHERE T.STATUS NOT IN (1005, 1006)
GO
CREATE TABLE [dbo].[TBSIG_EMAIL_TEMPLATE](
[GUID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [nvarchar](64) NULL,
[BODY] [nvarchar](max) NULL,
[SUBJECT] [nvarchar](512) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] ON
GO
INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] ([GUID], [NAME], [BODY], [SUBJECT]) VALUES (1, N'DocumentReceived', N'Guten Tag [NAME_RECEIVER],<br />
<br />
[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet.<br />
<br />
Über den folgenden Link können Sie das Dokument einsehen: <a href="[LINK_TO_DOCUMENT]">[LINK_TO_DOCUMENT_TEXT]</a><br />
<br />
[MESSAGE]<br />
<br />
Mit freundlichen Grüßen<br />
<br />
[NAME_PORTAL]', N'Dokument erhalten: ''[DOCUMENT_TITLE]''')
GO
INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] ([GUID], [NAME], [BODY], [SUBJECT]) VALUES (2, N'DocumentDeleted', N'Guten Tag [NAME_RECEIVER],<br />
<br />
[NAME_SENDER] hat den Umschlag ''[DOCUMENT_TITLE]'' gelöscht.<br />
<br />
Mit freundlichen Grüßen<br />
<br />
[NAME_PORTAL]', N'Umschlag zurückgezogen: ''[DOCUMENT_TITLE]''')
GO
INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] ([GUID], [NAME], [BODY], [SUBJECT]) VALUES (3, N'DocumentSigned', N'Guten Tag [NAME_RECEIVER],<br />
<br />
hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang ''[DOCUMENT_TITLE]''.<br />
<br />
Mit freundlichen Grüßen<br />
<br />
[NAME_PORTAL]', N'Dokument unterschrieben: ''[DOCUMENT_TITLE]''')
GO
INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] ([GUID], [NAME], [BODY], [SUBJECT]) VALUES (4, N'DocumentCompleted', N'Guten Tag [NAME_RECEIVER],<br />
<br />
Der Signaturvorgang ''[DOCUMENT_TITLE]'' wurde erfolgreich abgeschlossen.<br />
<br />
Sie erhalten das Dokument mit einem detaillierten Ergebnisbericht als Anhang zu dieser Email.<br />
<br />
Mit freundlichen Grüßen<br />
<br />
[NAME_PORTAL]', N'Umschlag abgeschlossen: ''[DOCUMENT_TITLE]''')
GO
INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] ([GUID], [NAME], [BODY], [SUBJECT]) VALUES (5, N'DocumentAccessCodeReceived', N'Guten Tag [NAME_RECEIVER],<br />
<br />
[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet. <br />
<br />
Verwenden Sie den folgenden Zugriffscode, um das Dokument einzusehen:<br />
<br />
[DOCUMENT_ACCESS_CODE]<br />
<br />
Mit freundlichen Grüßen<br />
<br />
[NAME_PORTAL]', N'Zugriffscode für Dokument erhalten: ''[DOCUMENT_TITLE]''')
GO
SET IDENTITY_INSERT [dbo].[TBSIG_EMAIL_TEMPLATE] OFF
GO
ALTER TRIGGER [dbo].[TBEMLP_EMAIL_OUT_AFT_UPD] ON [dbo].[TBEMLP_EMAIL_OUT]
FOR UPDATE
AS
BEGIN
PRINT '[TBEMLP_EMAIL_OUT_AFT_UPD]...'
DECLARE
@GUID BIGINT,
@ENVELOPE_UUID VARCHAR(250),
@ENVELOPE_ID INTEGER,
@WF_ID INTEGER,
@USER_REFERENCE VARCHAR(100),
@EMAIL_SENT DATETIME,
@EMAIL_ADRESS VARCHAR(250)
SELECT @WF_ID = WF_ID FROM inserted;
IF UPDATE (EMAIL_SENT) AND @WF_ID IN (3001,3002,3003,3004,3005)
BEGIN
SELECT @ENVELOPE_UUID = REFERENCE_STRING, @EMAIL_SENT = EMAIL_SENT,@ENVELOPE_ID = REFERENCE_ID, @EMAIL_ADRESS = EMAIL_ADRESS FROM inserted;
PRINT 'ENVELOPE MSG' + @ENVELOPE_UUID
DECLARE @USR2SIGN INT, @USERS_MAIL_SENT INT,@ENV_ID INT
INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID, USER_REFERENCE, STATUS, ACTION_DATE) VALUES
(@ENVELOPE_ID, @EMAIL_ADRESS, @WF_ID, @EMAIL_SENT)
END
END
GO

View File

@@ -0,0 +1,94 @@
UPDATE TBDD_MODULES SET DB_VERSION = '1.5.4.2' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
CREATE VIEW VWSIG_ADMIN_ENVELOPES_BUSY
AS
SELECT TOP 100 PERCENT
[ENVELOPE_ID]
,ENVELOPE_UUID
,[USER_EMAIL]
,[ENVELOPE_STATE] ENVELOPE_STATEID
,CASE [ENVELOPE_STATE] WHEN 1004 THEN 'Envelope Sent'
WHEN '1001' THEN 'Envelope Created'
WHEN '1002' THEN 'Envelope Saved'
WHEN '1005' THEN 'Envelope partly signed'
WHEN '1006' THEN 'Envelope completely signed'
WHEN '1007' THEN 'Envelope Report Created'
END as ENVELOPE_STATE
,[MESSAGE]
,[TITLE]
,[ADDED_WHEN]
,CHANGED_WHEN
FROM
VWSIG_ENVELOPE_DATA where
ENVELOPE_STATE NOT IN (1008,1009) --Archived,Deleted
order by
ENVELOPE_ID desc
GO
-- =============================================
-- Author: DD MS
-- Hier werden Envelopes gefunden, die seit mehr als 20 Minuten unterschrieben sind, wo aber keine Unterschriften gebrannt wurden!
-- Creation date: 28.03.2025
-- =============================================
CREATE PROCEDURE [dbo].[PRDD_CUST_SUPPORT_ERR_7001001]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SUBJECT VARCHAR(100), @BODY VARCHAR(MAX), @EMAIL_TO VARCHAR(100), @MAIL_FROM VARCHAR(200), @COMMENT VARCHAR(MAX),
@SYS_DESCR VARCHAR(5), @WF_ID BIGINT, @CUSTOMER_NAME VARCHAR(100),
@ENV_ID BIGINT, @SENDING_PROFILE TINYINT
SET @WF_ID = 7001001
SET @SYS_DESCR = 'PROD'
SELECT @EMAIL_TO = CAT_STRING FROM TBDD_CATALOG WHERE CAT_TITLE = 'DD_SUPPORT_EMAIL';
SELECT @SENDING_PROFILE = CONVERT(TINYINT, CAT_STRING) FROM TBDD_CATALOG WHERE CAT_TITLE = 'EMAIL_SENDING_PROFILE';
SELECT @CUSTOMER_NAME = CAT_STRING FROM TBDD_CATALOG WHERE CAT_TITLE = 'SIG_CUSTOMER_NAME'
DECLARE curs_PRDD_CUST_SUPPORT_ERR_7001001 CURSOR LOCAL FAST_FORWARD FOR
select ENVELOPE_ID from [VWSIG_ENVELOPE_DATA] where ENVELOPE_STATE = 1006 and Datediff(Minute, CHANGED_WHEN,GETDATE()) > 20
OPEN curs_PRDD_CUST_SUPPORT_ERR_7001001
FETCH NEXT FROM curs_PRDD_CUST_SUPPORT_ERR_7001001 INTO @ENV_ID;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SUBJECT = @CUSTOMER_NAME + ' - signFLOW - ' + @SYS_DESCR + ' - Envelope Brennen Signaturen fehlerhaft'
SET @BODY = '<p>ACHTUNG: für folgende Envelope-ID konnten die Unterschriften bisher nicht gebrannt werden!</p>'
SET @BODY += '<p>Envelope-ID: <strong>' + CONVERT(VARCHAR(20),@ENV_ID) + '</strong></p>'
SET @BODY += '<p>Handlungsempfehlung</p>'
SET @BODY += '<p>1. Das Log des signFLOW Envelope Services prüfen.</p>'
SET @BODY += '<p>2. Fehler beheben :)</p>'
SET @BODY += '<p>Erzeugt von Procedure: [PRDD_CUST_SUPPORT_ERR_7001001]</p>'
IF NOT EXISTS(SELECT GUID FROM TBEMLP_EMAIL_OUT WHERE [EMAIL_ADRESS] = @EMAIL_TO AND REFERENCE_ID = @ENV_ID AND WF_ID = @WF_ID AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE())
)
BEGIN
PRINT 'NOW INSERTING THE MAIL...'
--PRINT @EMAIL_TO
--PRINT @SUBJECT
--PRINT @BODY
EXEC PREMAIL_NEW_EMAIL @SENDING_PROFILE, @EMAIL_TO, @SUBJECT, @BODY, '', @ENV_ID, @WF_ID, 'PRDD_CUST_SUPPORT_ERR_7001001';
END
FETCH NEXT FROM curs_PRDD_CUST_SUPPORT_ERR_7001001 INTO @ENV_ID
END
CLOSE curs_PRDD_CUST_SUPPORT_ERR_7001001
DEALLOCATE curs_PRDD_CUST_SUPPORT_ERR_7001001
END
GO
IF NOT EXISTS(SELECT CAT_STRING FROM TBDD_CATALOG WHERE CAT_TITLE = 'DD_SUPPORT_EMAIL')
INSERT INTO TBDD_CATALOG(CAT_TITLE,CAT_STRING) VALUES ('DD_SUPPORT_EMAIL','support-flow@digitaldata.works');
IF NOT EXISTS(SELECT CAT_STRING FROM TBDD_CATALOG WHERE CAT_TITLE = 'EMAIL_SENDING_PROFILE')
INSERT INTO TBDD_CATALOG(CAT_TITLE,CAT_STRING) VALUES ('EMAIL_SENDING_PROFILE',(SELECT MIN(GUID) FROM TBDD_EMAIL_ACCOUNT));

Some files were not shown because too many files have changed in this diff Show More