8
0

DEX: Work in progress....

This commit is contained in:
2026-02-24 16:43:48 +01:00
parent adbec46520
commit 0251860d92
38 changed files with 6688 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
# Fehlercodes DEX
Diese Datei beschreibt die aktuell im Quelltext verwendeten Fehlercodes des DEX-Moduls.
Stand der Analyse: 24.02.2026.
## Aktive Fehlercodes (im SQL-Code gefunden)
| Fehlercode | Quelle(n) | Bedeutung / Hinweis |
|---:|---|---|
| 50000 | Mehrere Prozeduren (CATCH-Fallback) | Allgemeiner Fallback-Fehler (`CASE ... ELSE 50000`). Details stehen in `ERROR_MESSAGE()` und im Log. |
| 50001 | `PRDEX_GET_INPUT`, `PRDEX_GET_INPUT_CONTENT`, `PRDEX_WRITE_OUTPUT` | Ungültige Query (z. B. zu kurz, < 15 Zeichen) bzw. fehlerhafte Query-Konfiguration. |
| 50002 | `PRDEX_GET_INPUT` | Keine verarbeitbaren Daten gefunden (ggf. bereits verarbeitet/exportiert). |
| 50003 | `PRDEX_CHECK_SYSTEM` | Keine gültige Modul-Lizenz gefunden. |
| 50004 | `PRDEX_START_PROFILE_EXECUTION` | Ungültige Profil-/Laufzeitkonfiguration (`@PROFILE_NAME`, `@MANDANTOR`, `@EXPORT_TYPE`, `@LANGUAGE`, `@LOG_LEVEL`). |
| 50005 | `PRDEX_SET_QUERY` | Keine ausreichenden Datenzeilen in `TBDEX_TMP_QUERY` gefunden. |
| 50006 | `PRDEX_RUN_MAINPROCESSING` | Temporäre Content-Tabelle konnte nicht erstellt werden. |
| 50007 | `PRDEX_GET_INPUT_CONTENT` | Unzureichende Daten in `TBDEX_TMP_PROCESS_REFERENCES` und/oder `TBDEX_TMP_QUERY`. |
| 50008 | `PRDEX_REGISTER_PROCESS` | Prozess ist bereits registriert (Duplicate). |
| 50010 | `PRDEX_RUN_MAINPROCESSING`, `PRDEX_START_PROFILE_EXECUTION` | Inkonsistenter/vermisster Verarbeitungszustand (z. B. fehlende Prozessreferenzen bzw. ungültige TMP-Tabellen-Konfiguration). |
| 50012 | `PRDEX_CHECK_SYSTEM` | SQL-Server-Version zu alt / Mindestversion nicht erfüllt. |
| 50013 | `PRDEX_CHECK_SYSTEM` | Fehlende DB-Berechtigung (`CONTROL`) für den ausführenden User. |
| 50014 | `PRDEX_CHECK_SYSTEM` | Erforderliche DEX-Objekte (Tabellen/Views/Prozeduren/Funktionen) fehlen. |
| 50015 | `PRDEX_WRITE_LOG` | Logging-Zieltabelle nicht vorhanden oder nicht zugreifbar. |
| 50016 | `PRDEX_START_PROFILE_EXECUTION` | Profil ist offline oder nicht vorhanden. |
| 50017 | `PRDEX_RUN_PREPROCESSING` | Fehler in der Preprocessing-Ausführung. |
| 50018 | `PRDEX_RUN_POSTPROCESSING` | Fehler in der Postprocessing-Ausführung. |
| 50019 | `PRDEX_SET_EXPORT_NUMBER` | Kein gültiger Nummernkreis gefunden (Erstellversuch wird eingeleitet). |
| 50020 | `PRDEX_SET_EXPORT_NUMBER` | Nummernkreis konnte nicht gültig ermittelt/angelegt werden. |
| 50021 | `PRDEX_SET_EXPORT_NUMBER` | Gefundener Nummernkreis ist inaktiv. |
| 50022 | `PRDEX_RUN_MAINPROCESSING` | Export-Spaltenkonfiguration (`TBDEX_CFG_OUT_STRUCTURE`) unzureichend/ungültig. |
| 50023 | `PRDEX_START_PROFILE_EXECUTION` | Ungültige `BATCH_ID` (Mindestlänge nicht erreicht). |
| 50024 | `PRDEX_REGISTER_PROCESS` | Prozess ist bereits in `TBDEX_TMP_PROCESS_REFERENCES` registriert (Duplicate). |
| 50025 | `PRDEX_SET_EXPORT_NUMBER` | Prozesszeile in `TBDEX_TMP_PROCESS` fehlt. |
| 50026 | `PRDEX_SET_EXPORT_NUMBER` | Prozessreferenzen in `TBDEX_TMP_PROCESS_REFERENCES` fehlen. |
| 50027 | `PRDEX_SET_EXPORT_NUMBER` | Nummernkreis-Lock konnte nicht stabil erreicht werden (Retry/Timeout-Szenario). |
| 50028 | `PRDEX_SET_EXPORT_NUMBER` | Nummernkreis konnte nicht gesperrt werden. |
| 50029 | `PRDEX_REGISTER_PROCESS` | Nach Insert ist die erwartete Einzelzeile in `TBDEX_TMP_PROCESS` nicht vorhanden. |
| 50051 | `PRDEX_GET_INPUT` | Unsicherer Query-Inhalt erkannt (unaufgelöste Placeholder oder verbotene SQL-Muster). |
| 50052 | `PRDEX_SET_QUERY` | Unsicherer Query-Inhalt erkannt (unaufgelöste Placeholder oder verbotene SQL-Muster). |
| 50054 | `PRDEX_WRITE_OUTPUT` | Unsicherer Query-Inhalt erkannt (unaufgelöste Placeholder oder verbotene SQL-Muster). |
| 50055 | `PRDEX_RUN_PREPROCESSING` | Unsicherer Query-Inhalt erkannt (unaufgelöste Placeholder oder verbotene SQL-Muster). |
| 50056 | `PRDEX_RUN_POSTPROCESSING` | Unsicherer Query-Inhalt erkannt (unaufgelöste Placeholder oder verbotene SQL-Muster). |
| 50057 | `PRDEX_RUN_MAINPROCESSING` | Unsicherer/inkonsistenter dynamischer Query-Inhalt oder Temp-Target-Konfiguration. |
| 50058 | `PRDEX_WRITE_OUTPUT` | `EXPORT_NUMBER`-Mapping für Output-Referenzen konnte nicht aufgelöst werden. |
## Empfohlene Sofortmaßnahme je Fehlercode
| Fehlercode | Empfohlene Sofortmaßnahme (erste 510 Minuten) |
|---:|---|
| 50000 | Letzten `ERROR_MESSAGE()`-Eintrag und `TBDEX_RUN_LOG` für `PROFILE_ID`/`BATCH_ID` prüfen; danach auf den ersten fachlichen Code zurückverfolgen. |
| 50001 | Verwendete Query (`START`/`MAIN`/`END`) und Platzhalterauflösung prüfen; Konfiguration in `TBDEX_CFG_RESOURCES` und direkte Querylänge validieren. |
| 50002 | Prüfen, ob Input bereits verarbeitet wurde (`VWDEX_OUT`) oder Startquery keine Daten liefert; Testweise Startquery separat ausführen. |
| 50003 | Lizenzdaten in `TBDD_MODULES` für DEX (`SHORT_NAME`) und `ACTIVE`/`LICENSE` kontrollieren. |
| 50004 | Profilstammdaten in `TBDEX_CFG_PROFILE` auf Pflichtfelder und konsistente Werte prüfen. |
| 50005 | Inhalt in `TBDEX_TMP_QUERY` für aktuellen Batch prüfen (erzeugte Main-Query vorhanden?). |
| 50006 | Generiertes `CREATE TABLE`-Statement aus `TBDEX_TMP_PROCESS` prüfen und manuell gegen Berechtigungen/Objektnamen testen. |
| 50007 | Für den Batch prüfen, ob `TBDEX_TMP_PROCESS_REFERENCES` und `TBDEX_TMP_QUERY` befüllt sind und gleiche Batch-/Profile-Filter verwenden. |
| 50008 | Doppelte Batch-Registrierung in `TBDEX_TMP_PROCESS`/`TBDEX_TMP_PROCESS_REFERENCES` prüfen; ggf. mit `PRDEX_CLEAN_UP` bereinigen. |
| 50010 | Prozesskette bis Mainprocessing prüfen: fehlen Prozessreferenzen oder TMP-Tabellenmetadaten im aktuellen Batch? |
| 50012 | SQL-Server-Version gegen Mindestversion abgleichen; ggf. auf unterstützte Instanz wechseln. |
| 50013 | Ausführenden DB-User prüfen und fehlende `CONTROL`-Rechte auf die Ziel-DB setzen. |
| 50014 | Fehlende DEX-Objekte gemäß Systemcheck nachdeployen (Tabellen, Views, Prozeduren, Funktionen). |
| 50015 | Existenz/Zugriff auf `TBDEX_RUN_LOG` prüfen; Rechte und Schema (`dbo`) verifizieren. |
| 50016 | Profilstatus in `VWDEX_PROFILE`/`TBDEX_CFG_PROFILE` prüfen (`ACTIVE=1`). |
| 50017 | Preprocessing-Query aus `TBDEX_CFG_RESOURCES` isoliert ausführen und auf SQL-/Placeholder-Fehler prüfen. |
| 50018 | Postprocessing-Query aus `TBDEX_CFG_RESOURCES` isoliert ausführen und auf SQL-/Placeholder-Fehler prüfen. |
| 50019 | `TBDEX_RUN_NUMBER_RANGE` auf passenden aktiven Satz für Profil/Schema/Datum prüfen. |
| 50020 | Anlage-/Ermittlungspfad des Nummernkreises prüfen; Konflikte mit Parallelprozessen ausschließen. |
| 50021 | Nummernkreis aktivieren (`ACTIVE=1`) oder korrektes `EXPORT_NUMBER_SCHEMA` im Profil setzen. |
| 50022 | Exportspalten-Setup in `TBDEX_CFG_OUT_STRUCTURE` auf Vollständigkeit (`PATH_OR_COLUMN`, `DATA_TYPE`, `SEQUENCE`) prüfen. |
| 50023 | Batch-ID-Quelle prüfen (`FNDEX_GET_NEXT_BATCH_ID` bzw. Inputparameter), Mindestlänge sicherstellen. |
| 50024 | Doppelte Referenzregistrierung im Batch prüfen; alte Restdaten in TMP-Tabellen entfernen. |
| 50025 | Prüfen, ob `PRDEX_REGISTER_PROCESS` erfolgreich lief und `TBDEX_TMP_PROCESS`-Satz für Batch vorhanden ist. |
| 50026 | Prüfen, ob `PRDEX_GET_INPUT` Referenzen für den Batch in `TBDEX_TMP_PROCESS_REFERENCES` geschrieben hat. |
| 50027 | Lock-/Deadlock-Situation im Nummernkreis prüfen; parallele Läufe für gleiches Profil temporär reduzieren. |
| 50028 | Sperrfehler im Nummernkreis prüfen (offene Transaktionen, Blocker, Deadlocks). |
| 50029 | Nach Insert die Eindeutigkeit/Filter für `TBDEX_TMP_PROCESS` prüfen (Profil+Batch). |
| 50051 | Unsichere/ungeklärte Platzhalter in Startquery prüfen und verbotene SQL-Muster entfernen. |
| 50052 | Unsichere/ungeklärte Platzhalter in Mainquery prüfen und verbotene SQL-Muster entfernen. |
| 50054 | Unsichere/ungeklärte Platzhalter in Endquery prüfen und verbotene SQL-Muster entfernen. |
| 50055 | Preprocessing-Statements auf unaufgelöste Tokens und gesperrte SQL-Muster prüfen. |
| 50056 | Postprocessing-Statements auf unaufgelöste Tokens und gesperrte SQL-Muster prüfen. |
| 50057 | Dynamische Temp-Statements in Mainprocessing vollständig ausgeben und auf Placeholder-/Targetfehler prüfen. |
| 50058 | Mapping `TBDEX_OUT``TBDEX_TMP_PROCESS_REFERENCES` für den Batch prüfen (Referenzfelder + `EXPORT_NUMBER`). |

View File

@@ -0,0 +1,318 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [FNDEX_GET_NEXT_EXPORT_NUMBER]
-- =================================================================
-- Table function to get next available export number.
--
-- Returns: table with one row
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH <20> Ludwig-Rinn-Strasse 16 <20> D-35452 Heuchelheim
-- Tel.: 0641/202360 <20> E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER FUNCTION [dbo].[FNDEX_GET_NEXT_EXPORT_NUMBER](
@pPROFILE_ID BIGINT,
@pTEST_MODE BIT,
@pASYNC_MODE BIT,
@pBATCH_ID NVARCHAR(25),
@pBATCH_CREATOR NVARCHAR(50),
@pLANGUAGE NVARCHAR(10),
@pLOG_LEVEL NVARCHAR(25),
@pFORCE BIT,
@pPROFILE_NAME NVARCHAR(50),
@pMANDANTOR NVARCHAR(50),
@pEXPORT_TYPE NVARCHAR(50),
@pEXPORT_NUMBER_SCHEMA NVARCHAR(25),
@pDEFAULT_DATA_SEPARATOR NVARCHAR(10),
@pREFERENCE1 NVARCHAR(150),
@pREFERENCE2 NVARCHAR(150),
@pREFERENCE3 NVARCHAR(150),
@pREFERENCE4 NVARCHAR(150),
@pREFERENCE5 NVARCHAR(150),
@pEXTERNAL_REFERENCE1 NVARCHAR(2000),
@pEXTERNAL_REFERENCE2 NVARCHAR(2000),
@pEXTERNAL_REFERENCE3 NVARCHAR(2000),
@pEXTERNAL_REFERENCE4 NVARCHAR(2000),
@pEXTERNAL_REFERENCE5 NVARCHAR(2000)
)
RETURNS @vTBDEX_RUN_NUMBER_RANGE TABLE (
[GUID] BIGINT NOT NULL,
[PROFILE_ID] BIGINT NOT NULL,
[ACTIVE] BIT NOT NULL,
[EXPORT_NUMBER_SCHEMA] NVARCHAR(25) NULL,
[EXPORT_NUMBER_COUNTER] BIGINT NULL,
[EXPORT_NUMBER] NVARCHAR(25) NULL,
[NEXT_EXPORT_NUMBER_COUNTER] BIGINT NULL,
[NEXT_EXPORT_NUMBER] NVARCHAR(25) NULL
)
AS
BEGIN
-- declare new vars because of parameter sniffing
DECLARE @PROFILE_ID BIGINT = @pPROFILE_ID,
@TEST_MODE BIT = @pTEST_MODE,
@ASYNC_MODE BIT = @pASYNC_MODE,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@BATCH_CREATOR NVARCHAR(128) = ISNULL(@pBATCH_CREATOR,OBJECT_NAME(@@PROCID)),
@LANGUAGE NVARCHAR(10) = @pLANGUAGE,
@LOG_LEVEL NVARCHAR(25) = UPPER(ISNULL(@pLOG_LEVEL,'INFO')),
@FORCE BIT = @pFORCE,
@PROFILE_NAME NVARCHAR(50) = @pPROFILE_NAME,
@MANDANTOR NVARCHAR(50) = @pMANDANTOR,
@EXPORT_TYPE NVARCHAR(50) = @pEXPORT_TYPE,
@EXPORT_NUMBER_SCHEMA NVARCHAR(50) = @pEXPORT_NUMBER_SCHEMA,
@DEFAULT_DATA_SEPARATOR NVARCHAR(10) = @pDEFAULT_DATA_SEPARATOR,
@REFERENCE1 NVARCHAR(150) = @pREFERENCE1,
@REFERENCE2 NVARCHAR(150) = @pREFERENCE2,
@REFERENCE3 NVARCHAR(150) = @pREFERENCE3,
@REFERENCE4 NVARCHAR(150) = @pREFERENCE4,
@REFERENCE5 NVARCHAR(150) = @pREFERENCE5,
@EXTERNAL_REFERENCE1 NVARCHAR(2000) = @pEXTERNAL_REFERENCE1,
@EXTERNAL_REFERENCE2 NVARCHAR(2000) = @pEXTERNAL_REFERENCE2,
@EXTERNAL_REFERENCE3 NVARCHAR(2000) = @pEXTERNAL_REFERENCE3,
@EXTERNAL_REFERENCE4 NVARCHAR(2000) = @pEXTERNAL_REFERENCE4,
@EXTERNAL_REFERENCE5 NVARCHAR(2000) = @pEXTERNAL_REFERENCE5;
-- Special for Calculation
DECLARE @WORK_VALUE NVARCHAR(50) = NULL,
@LoopCounter INT = 1,
@len INT = 0,
@bestStart INT = 0,
@bestLen INT = 0,
@curStart INT = 0,
@curLen INT = 0,
@numericStart INT = 0,
@numericLength INT = 0,
@numericText NVARCHAR(50) = NULL,
@numericValue BIGINT = 0,
@nextNumericString BIGINT = 0,
@nextNumericInt BIGINT = 0,
@nextNumericPadded NVARCHAR(50) = NULL;
-- declare runtime vars
DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@GUID BIGINT = NULL,
@ACTIVE BIT = NULL,
@EXPORT_NUMBER_COUNTER BIGINT = NULL,
@EXPORT_NUMBER NVARCHAR(25) = NULL,
@NEXT_EXPORT_NUMBER_COUNTER BIGINT = NULL,
@NEXT_EXPORT_NUMBER NVARCHAR(25) = NULL,
@DATE_TODAY DATE = CONVERT(date, getdate()),
@PLACEHOLDER_NAME NVARCHAR(50) = NULL,
@PLACEHOLDER NVARCHAR(MAX) = NULL,
@PLACEHOLDER_TYPE NVARCHAR(10) = 'CONST';
--==================================================-- Work copy from table --===================================================--
SELECT TOP 1 @GUID = [GUID],
@ACTIVE = [ACTIVE],
@EXPORT_NUMBER_COUNTER = [EXPORT_NUMBER_COUNTER],
@EXPORT_NUMBER = [EXPORT_NUMBER],
@NEXT_EXPORT_NUMBER_COUNTER = NULL,
@NEXT_EXPORT_NUMBER = NULL
FROM [TBDEX_RUN_NUMBER_RANGE] WITH (READPAST)
WHERE [PROFILE_ID] = @PROFILE_ID
AND [ACTIVE] in (@ACTIVE_FLAG,@INACTIVE_FLAG)
AND [EXPORT_NUMBER_SCHEMA] = @EXPORT_NUMBER_SCHEMA
AND (([VALID_FROM] IS NULL AND [VALID_TO] IS NULL)
OR (@DATE_TODAY BETWEEN [VALID_FROM] AND [VALID_TO]))
ORDER BY [GUID] DESC; -- take the newest line if there are multiple
-----------------------------------------------------------------------------------------------------------------------------------
--=============================================-- Exit if there is no valid line --==============================================--
IF (@GUID IS NULL) BEGIN
RETURN;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Calculate next number --==================================================--
SET @WORK_VALUE = COALESCE(NULLIF(@EXPORT_NUMBER_SCHEMA,''), NULLIF(@EXPORT_NUMBER,''), '');
SET @len = LEN(@WORK_VALUE);
WHILE (@LoopCounter <= @len) BEGIN
IF (SUBSTRING(@WORK_VALUE, @LoopCounter, 1) LIKE '[0-9]') BEGIN
IF @curLen = 0 BEGIN
SET @curStart = @LoopCounter;
END;
SET @curLen += 1;
IF @curLen > @bestLen BEGIN
SET @bestLen = @curLen;
SET @bestStart = @curStart;
END;
END; ELSE BEGIN
SET @curLen = 0;
END;
SET @LoopCounter += 1;
END;
SET @numericStart = @bestStart;
SET @numericLength = @bestLen;
SET @numericText = CASE
WHEN @numericLength > 0
THEN SUBSTRING(@WORK_VALUE, @numericStart, @numericLength)
ELSE ''
END;
SET @numericValue = CASE
WHEN @numericLength > 0
THEN TRY_CAST(@numericText AS BIGINT)
ELSE NULL
END;
-- base current number from counter if available, else from parsed value
IF (TRY_CAST(@EXPORT_NUMBER_COUNTER AS BIGINT) IS NOT NULL) BEGIN
SET @nextNumericInt = TRY_CAST(@EXPORT_NUMBER_COUNTER AS BIGINT);
END ELSE IF (@numericValue IS NOT NULL) BEGIN
SET @nextNumericInt = @numericValue;
END ELSE BEGIN
SET @nextNumericInt = 0;
END;
SET @nextNumericInt = @nextNumericInt + 1; -- increment
SET @nextNumericString = @nextNumericInt;
SET @nextNumericPadded = CASE
WHEN @numericLength > 0
THEN RIGHT(REPLICATE('0', @numericLength) + CAST(@nextNumericInt AS NVARCHAR(50)), @numericLength)
ELSE CAST(@nextNumericInt AS NVARCHAR(50))
END;
IF (@numericLength = 0) BEGIN
SET @NEXT_EXPORT_NUMBER = @WORK_VALUE + @nextNumericPadded;
END ELSE BEGIN
SET @NEXT_EXPORT_NUMBER = STUFF(@WORK_VALUE, @numericStart, @numericLength, @nextNumericPadded);
END;
SET @NEXT_EXPORT_NUMBER_COUNTER = @nextNumericInt;
-----------------------------------------------------------------------------------------------------------------------------------
--=================================================-- Handle placeholders 1/2 --=================================================--
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%PROFILE_ID%',ISNULL(@PROFILE_ID,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%TEST_MODE%',ISNULL(@TEST_MODE,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%ASYNC_MODE%',ISNULL(@ASYNC_MODE,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%BATCH_ID%',ISNULL(@BATCH_ID,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%BATCH_CREATOR%',ISNULL(@BATCH_CREATOR,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%LANGUAGE%',ISNULL(@LANGUAGE,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%LOG_LEVEL%',ISNULL(@LOG_LEVEL,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%FORCE%',ISNULL(@FORCE,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%MY_PROCEDURE_NAME%',ISNULL(@MY_FUNCTION_NAME,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%MY_FUNCTION_NAME%',ISNULL(@MY_FUNCTION_NAME,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%PROFILE_NAME%',ISNULL(@PROFILE_NAME,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%MANDANTOR%',ISNULL(@MANDANTOR,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXPORT_TYPE%',ISNULL(@EXPORT_TYPE,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXPORT_NUMBER_SCHEMA%',ISNULL(@EXPORT_NUMBER_SCHEMA,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%DEFAULT_DATA_SEPARATOR%',ISNULL(@DEFAULT_DATA_SEPARATOR,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%REFERENCE1%',ISNULL(@REFERENCE1,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%REFERENCE2%',ISNULL(@REFERENCE2,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%REFERENCE3%',ISNULL(@REFERENCE3,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%REFERENCE4%',ISNULL(@REFERENCE4,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%REFERENCE5%',ISNULL(@REFERENCE5,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXTERNAL_REFERENCE1%',ISNULL(@EXTERNAL_REFERENCE1,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXTERNAL_REFERENCE2%',ISNULL(@EXTERNAL_REFERENCE2,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXTERNAL_REFERENCE3%',ISNULL(@EXTERNAL_REFERENCE3,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXTERNAL_REFERENCE4%',ISNULL(@EXTERNAL_REFERENCE4,''));
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,'%EXTERNAL_REFERENCE5%',ISNULL(@EXTERNAL_REFERENCE5,''));
DECLARE CURSOR_PLACEHOLDER CURSOR
LOCAL FAST_FORWARD FOR
SELECT [PLACEHOLDER_NAME] as 'Placeholder_Name', [PLACEHOLDER] as 'Placeholder'
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (0,@PROFILE_ID) AND [ACTIVE] = @ACTIVE_FLAG AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @PLACEHOLDER_TYPE
ORDER BY [SEQUENCE] ASC;
OPEN CURSOR_PLACEHOLDER
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @EXPORT_NUMBER_SCHEMA = REPLACE(@EXPORT_NUMBER_SCHEMA,concat('%',@PLACEHOLDER_NAME,'%'),ISNULL(@PLACEHOLDER,''));
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
END
CLOSE CURSOR_PLACEHOLDER;
DEALLOCATE CURSOR_PLACEHOLDER;
-----------------------------------------------------------------------------------------------------------------------------------
--=================================================-- Handle placeholders 2/2 --=================================================--
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%PROFILE_ID%',ISNULL(@PROFILE_ID,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%TEST_MODE%',ISNULL(@TEST_MODE,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%ASYNC_MODE%',ISNULL(@ASYNC_MODE,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%BATCH_ID%',ISNULL(@BATCH_ID,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%BATCH_CREATOR%',ISNULL(@BATCH_CREATOR,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%LANGUAGE%',ISNULL(@LANGUAGE,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%LOG_LEVEL%',ISNULL(@LOG_LEVEL,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%FORCE%',ISNULL(@FORCE,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%MY_PROCEDURE_NAME%',ISNULL(@MY_FUNCTION_NAME,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%MY_FUNCTION_NAME%',ISNULL(@MY_FUNCTION_NAME,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%PROFILE_NAME%',ISNULL(@PROFILE_NAME,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%MANDANTOR%',ISNULL(@MANDANTOR,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXPORT_TYPE%',ISNULL(@EXPORT_TYPE,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXPORT_NUMBER_SCHEMA%',ISNULL(@EXPORT_NUMBER_SCHEMA,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%DEFAULT_DATA_SEPARATOR%',ISNULL(@DEFAULT_DATA_SEPARATOR,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%REFERENCE1%',ISNULL(@REFERENCE1,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%REFERENCE2%',ISNULL(@REFERENCE2,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%REFERENCE3%',ISNULL(@REFERENCE3,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%REFERENCE4%',ISNULL(@REFERENCE4,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%REFERENCE5%',ISNULL(@REFERENCE5,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXTERNAL_REFERENCE1%',ISNULL(@EXTERNAL_REFERENCE1,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXTERNAL_REFERENCE2%',ISNULL(@EXTERNAL_REFERENCE2,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXTERNAL_REFERENCE3%',ISNULL(@EXTERNAL_REFERENCE3,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXTERNAL_REFERENCE4%',ISNULL(@EXTERNAL_REFERENCE4,''));
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,'%EXTERNAL_REFERENCE5%',ISNULL(@EXTERNAL_REFERENCE5,''));
DECLARE CURSOR_PLACEHOLDER CURSOR
LOCAL FAST_FORWARD FOR
SELECT [PLACEHOLDER_NAME] as 'Placeholder_Name', [PLACEHOLDER] as 'Placeholder'
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (0,@PROFILE_ID) AND [ACTIVE] = @ACTIVE_FLAG AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @PLACEHOLDER_TYPE
ORDER BY [SEQUENCE] ASC;
OPEN CURSOR_PLACEHOLDER
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @NEXT_EXPORT_NUMBER = REPLACE(@NEXT_EXPORT_NUMBER,concat('%',@PLACEHOLDER_NAME,'%'),ISNULL(@PLACEHOLDER,''));
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
END
CLOSE CURSOR_PLACEHOLDER;
DEALLOCATE CURSOR_PLACEHOLDER;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- insert result --======================================================--
INSERT INTO @vTBDEX_RUN_NUMBER_RANGE([GUID],[PROFILE_ID],[ACTIVE],[EXPORT_NUMBER_SCHEMA], [EXPORT_NUMBER_COUNTER],
[EXPORT_NUMBER], [NEXT_EXPORT_NUMBER_COUNTER],[NEXT_EXPORT_NUMBER])
VALUES(@GUID, @PROFILE_ID, @ACTIVE, @EXPORT_NUMBER_SCHEMA, @EXPORT_NUMBER_COUNTER,
@EXPORT_NUMBER, @NEXT_EXPORT_NUMBER_COUNTER, @NEXT_EXPORT_NUMBER);
-----------------------------------------------------------------------------------------------------------------------------------
RETURN;
END;
GO

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,593 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDEX_GET_INPUT_CONTENT]
-- =================================================================
-- Sucht alle noch nicht exportierten Dokumente bzw. Daten zusammen
--
-- Returns: INTEGER; 0 = ok; 0 <> nicht ok
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH <20> Ludwig-Rinn-Strasse 16 <20> D-35452 Heuchelheim
-- Tel.: 0641/202360 <20> E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_GET_INPUT_CONTENT](
@pPROFILE_ID BIGINT,
@pTEST_MODE BIT,
@pASYNC_MODE BIT,
@pBATCH_ID NVARCHAR(25),
@pBATCH_CREATOR NVARCHAR(50),
@pLANGUAGE NVARCHAR(10),
@pLOG_LEVEL NVARCHAR(25),
@pSTART_QUERY NVARCHAR(MAX),
@pSTART_QUERY_VAR1 NVARCHAR(50),
@pSTART_QUERY_VAR2 NVARCHAR(50),
@pSTART_QUERY_VAR3 NVARCHAR(50),
@pSTART_QUERY_VAR4 NVARCHAR(50),
@pSTART_QUERY_VAR5 NVARCHAR(50),
@pMAIN_QUERY NVARCHAR(MAX),
@pMAIN_QUERY_VAR1 NVARCHAR(50),
@pMAIN_QUERY_VAR2 NVARCHAR(50),
@pMAIN_QUERY_VAR3 NVARCHAR(50),
@pMAIN_QUERY_VAR4 NVARCHAR(50),
@pMAIN_QUERY_VAR5 NVARCHAR(50),
@pEND_QUERY NVARCHAR(MAX),
@pEND_QUERY_VAR1 NVARCHAR(50),
@pEND_QUERY_VAR2 NVARCHAR(50),
@pEND_QUERY_VAR3 NVARCHAR(50),
@pEND_QUERY_VAR4 NVARCHAR(50),
@pEND_QUERY_VAR5 NVARCHAR(50),
@pFORCE BIT,
@pPROFILE_NAME NVARCHAR(50),
@pMANDANTOR NVARCHAR(50),
@pEXPORT_TYPE NVARCHAR(50),
@pEXPORT_NUMBER_SCHEMA NVARCHAR(25),
@pDEFAULT_DATA_SEPARATOR NVARCHAR(10),
@pTBDEX_TMP_TABLE_SCHEMA SYSNAME,
@pTBDEX_TMP_TABLE_NAME SYSNAME,
@pTBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150),
@pTBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX),
@pREFERENCE1 NVARCHAR(150),
@pREFERENCE2 NVARCHAR(150),
@pREFERENCE3 NVARCHAR(150),
@pREFERENCE4 NVARCHAR(150),
@pREFERENCE5 NVARCHAR(150),
@pEXTERNAL_REFERENCE1 NVARCHAR(250),
@pEXTERNAL_REFERENCE2 NVARCHAR(250),
@pEXTERNAL_REFERENCE3 NVARCHAR(250),
@pEXTERNAL_REFERENCE4 NVARCHAR(250),
@pEXTERNAL_REFERENCE5 NVARCHAR(250)
)
AS
BEGIN TRY
SET NOCOUNT ON;
-- declare new vars because of parameter sniffing
DECLARE @PROFILE_ID BIGINT = @pPROFILE_ID,
@TEST_MODE BIT = @pTEST_MODE,
@ASYNC_MODE BIT = @pASYNC_MODE,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@BATCH_CREATOR NVARCHAR(128) = ISNULL(@pBATCH_CREATOR,OBJECT_NAME(@@PROCID)),
@LANGUAGE NVARCHAR(10) = @pLANGUAGE,
@LOG_LEVEL NVARCHAR(25) = UPPER(ISNULL(@pLOG_LEVEL,'INFO')),
@START_QUERY NVARCHAR(500) = @pSTART_QUERY,
@START_QUERY_VAR1 NVARCHAR(50) = @pSTART_QUERY_VAR1,
@START_QUERY_VAR2 NVARCHAR(50) = @pSTART_QUERY_VAR2,
@START_QUERY_VAR3 NVARCHAR(50) = @pSTART_QUERY_VAR3,
@START_QUERY_VAR4 NVARCHAR(50) = @pSTART_QUERY_VAR4,
@START_QUERY_VAR5 NVARCHAR(50) = @pSTART_QUERY_VAR5,
@MAIN_QUERY NVARCHAR(500) = @pMAIN_QUERY,
@MAIN_QUERY_VAR1 NVARCHAR(50) = @pMAIN_QUERY_VAR1,
@MAIN_QUERY_VAR2 NVARCHAR(50) = @pMAIN_QUERY_VAR2,
@MAIN_QUERY_VAR3 NVARCHAR(50) = @pMAIN_QUERY_VAR3,
@MAIN_QUERY_VAR4 NVARCHAR(50) = @pMAIN_QUERY_VAR4,
@MAIN_QUERY_VAR5 NVARCHAR(50) = @pMAIN_QUERY_VAR5,
@END_QUERY NVARCHAR(500) = @pEND_QUERY,
@END_QUERY_VAR1 NVARCHAR(50) = @pEND_QUERY_VAR1,
@END_QUERY_VAR2 NVARCHAR(50) = @pEND_QUERY_VAR2,
@END_QUERY_VAR3 NVARCHAR(50) = @pEND_QUERY_VAR3,
@END_QUERY_VAR4 NVARCHAR(50) = @pEND_QUERY_VAR4,
@END_QUERY_VAR5 NVARCHAR(50) = @pEND_QUERY_VAR5,
@FORCE BIT = @pFORCE,
@PROFILE_NAME NVARCHAR(50) = @pPROFILE_NAME,
@MANDANTOR NVARCHAR(50) = @pMANDANTOR,
@EXPORT_TYPE NVARCHAR(50) = @pEXPORT_TYPE,
@EXPORT_NUMBER_SCHEMA NVARCHAR(25) = @pEXPORT_NUMBER_SCHEMA,
@DEFAULT_DATA_SEPARATOR NVARCHAR(10) = @pDEFAULT_DATA_SEPARATOR,
@TBDEX_TMP_TABLE_SCHEMA SYSNAME = @pTBDEX_TMP_TABLE_SCHEMA,
@TBDEX_TMP_TABLE_NAME SYSNAME = @pTBDEX_TMP_TABLE_NAME,
@TBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150) = @pTBDEX_TMP_TABLE_SCHEMA_AND_NAME,
@TBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_COLUMNS,
@TBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_DROP_QUERY,
@TBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_CREATE_QUERY,
@TBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_INSERT_QUERY,
@REFERENCE1 NVARCHAR(150) = @pREFERENCE1,
@REFERENCE2 NVARCHAR(150) = @pREFERENCE2,
@REFERENCE3 NVARCHAR(150) = @pREFERENCE3,
@REFERENCE4 NVARCHAR(150) = @pREFERENCE4,
@REFERENCE5 NVARCHAR(150) = @pREFERENCE5,
@EXTERNAL_REFERENCE1 NVARCHAR(250) = @pEXTERNAL_REFERENCE1,
@EXTERNAL_REFERENCE2 NVARCHAR(250) = @pEXTERNAL_REFERENCE2,
@EXTERNAL_REFERENCE3 NVARCHAR(250) = @pEXTERNAL_REFERENCE3,
@EXTERNAL_REFERENCE4 NVARCHAR(250) = @pEXTERNAL_REFERENCE4,
@EXTERNAL_REFERENCE5 NVARCHAR(250) = @pEXTERNAL_REFERENCE5;
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@ROW_COUNT0 SMALLINT = 0,
@ROW_COUNT1 SMALLINT = 0,
@ROW_COUNT2 SMALLINT = 0,
@ROW_COUNTER1 SMALLINT = 0,
@ROW_COUNTER2 SMALLINT = 0,
@ROW_COUNT_SUM1 SMALLINT = 0,
@PLACEHOLDER_NAME NVARCHAR(50) = NULL,
@PLACEHOLDER NVARCHAR(MAX) = NULL,
@PLACEHOLDER_TYPE NVARCHAR(10) = 'CONST',
@TBDEX_IN_GUID BIGINT = 0,
@TBDEX_IN_PROFILE_ID SMALLINT = 0,
@TBDEX_IN_BATCH_ID NVARCHAR(25) = NULL,
@TBDEX_IN_REFERENCE1 NVARCHAR(150) = NULL,
@TBDEX_IN_REFERENCE2 NVARCHAR(150) = NULL,
@TBDEX_IN_REFERENCE3 NVARCHAR(150) = NULL,
@TBDEX_IN_REFERENCE4 NVARCHAR(150) = NULL,
@TBDEX_IN_REFERENCE5 NVARCHAR(150) = NULL,
@TBDEX_IN_EXTERNAL_REFERENCE1 NVARCHAR(250) = NULL,
@TBDEX_IN_EXTERNAL_REFERENCE2 NVARCHAR(250) = NULL,
@TBDEX_IN_EXTERNAL_REFERENCE3 NVARCHAR(250) = NULL,
@TBDEX_IN_EXTERNAL_REFERENCE4 NVARCHAR(250) = NULL,
@TBDEX_IN_EXTERNAL_REFERENCE5 NVARCHAR(250) = NULL,
@TBDEX_IN_TEST_MODE BIT = 0,
@TBDEX_IN_ASYNC_MODE BIT = 0,
@TBDEX_IN_COMMENT NVARCHAR(150) = NULL,
@TBDEX_IN_ADDED_WHO NVARCHAR(50) = NULL,
@TBDEX_IN_ADDED_WHEN DATETIME = NULL,
@TBDEX_TMP_QUERY_GUID BIGINT = 0,
@TBDEX_TMP_QUERY_PROFILE_ID SMALLINT = 0,
@TBDEX_TMP_QUERY_BATCH_ID NVARCHAR(25) = NULL,
@TBDEX_TMP_QUERY_QUERY NVARCHAR(MAX) = NULL,
@TBDEX_TMP_QUERY_COMMENT NVARCHAR(150) = NULL,
@TBDEX_TMP_QUERY_ADDED_WHO NVARCHAR(50) = NULL,
@TBDEX_TMP_QUERY_ADDED_WHEN DATETIME = NULL,
@RETURN_STATUS INT = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = concat('START PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(varchar(50),GETDATE(),120)),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
PRINT '====================================================================================================';
PRINT @RETURN_STATUS_TEXT;
PRINT '';
PRINT 'PARAMETER01 - @PROFILE_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_ID,'<NO-VALUE>'));
PRINT 'PARAMETER02 - @TEST_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@TEST_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER03 - @ASYNC_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@ASYNC_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER04 - @BATCH_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_ID,'<NO-VALUE>'));
PRINT 'PARAMETER05 - @BATCH_CREATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_CREATOR,'<NO-VALUE>'));
PRINT 'PARAMETER06 - @LANGUAGE: ' + CONVERT(NVARCHAR(50),ISNULL(@LANGUAGE,'<NO-VALUE>'));
PRINT 'PARAMETER07 - @LOG_LEVEL: ' + CONVERT(NVARCHAR(50),ISNULL(@LOG_LEVEL,'<NO-VALUE>'));
PRINT 'PARAMETER08 - @START_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER09 - @START_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER10 - @START_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER11 - @START_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER12 - @START_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER13 - @START_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER14 - @MAIN_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER15 - @MAIN_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER16 - @MAIN_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER17 - @MAIN_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER18 - @MAIN_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER19 - @MAIN_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER20 - @END_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER21 - @END_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER22 - @END_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER23 - @END_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER24 - @END_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER25 - @END_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER26 - @FORCE: ' + CONVERT(NVARCHAR(50),ISNULL(@FORCE,'<NO-VALUE>'));
PRINT 'PARAMETER27 - @PROFILE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER28 - @MANDANTOR: ' + CONVERT(NVARCHAR(50),ISNULL(@MANDANTOR,'<NO-VALUE>'));
PRINT 'PARAMETER29 - @EXPORT_TYPE: ' + CONVERT(NVARCHAR(50),ISNULL(@EXPORT_TYPE,'<NO-VALUE>'));
PRINT 'PARAMETER30 - @EXPORT_NUMBER_SCHEMA: ' + CONVERT(NVARCHAR(50),ISNULL(@EXPORT_NUMBER_SCHEMA,'<NO-VALUE>'));
PRINT 'PARAMETER31 - @DEFAULT_DATA_SEPARATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@DEFAULT_DATA_SEPARATOR,'<NO-VALUE>'));
PRINT 'PARAMETER32 - @REFERENCE1: ' + CONVERT(NVARCHAR(50),ISNULL(@REFERENCE1,'<NO-VALUE>'));
PRINT 'PARAMETER33 - @REFERENCE2: ' + CONVERT(NVARCHAR(50),ISNULL(@REFERENCE2,'<NO-VALUE>'));
PRINT 'PARAMETER34 - @REFERENCE3: ' + CONVERT(NVARCHAR(50),ISNULL(@REFERENCE3,'<NO-VALUE>'));
PRINT 'PARAMETER35 - @REFERENCE4: ' + CONVERT(NVARCHAR(50),ISNULL(@REFERENCE4,'<NO-VALUE>'));
PRINT 'PARAMETER36 - @REFERENCE5: ' + CONVERT(NVARCHAR(50),ISNULL(@REFERENCE5,'<NO-VALUE>'));
PRINT '';
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Count main sql querys --==================================================--
SET @ROW_COUNT1 = ISNULL((SELECT COUNT(*) FROM [TBDEX_TMP_PROCESS_REFERENCES] WITH (SNAPSHOT)
WHERE [PROFILE_ID]=@PROFILE_ID AND [BATCH_ID]=@BATCH_ID AND [ADDED_WHO]=@BATCH_CREATOR),0);
SET @ROW_COUNT2 = ISNULL((SELECT COUNT(*) FROM [TBDEX_TMP_QUERY] WITH (SNAPSHOT)
WHERE [GUID] > 0 AND [PROFILE_ID]=@PROFILE_ID AND [BATCH_ID]=@BATCH_ID AND [QUERY] IS NOT NULL AND [ADDED_WHO]=@BATCH_CREATOR),0);
SET @ROW_COUNT_SUM1 = (@ROW_COUNT1 + @ROW_COUNT2);
IF (@ROW_COUNT_SUM1 < 2) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50007;
SET @RETURN_STATUS_TEXT = concat('','');
SET @RETURN_ERROR_TEXT = concat('Insufficient rows in [TBDEX_TMP_PROCESS_REFERENCES] (COUNT: ',CONVERT(NVARCHAR(50),@ROW_COUNT1),') and/or [TBDEX_TMP_QUERY] (COUNT: ',CONVERT(NVARCHAR(50),@ROW_COUNT2),') found!');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found the sum of: ',CONVERT(NVARCHAR(50),@ROW_COUNT_SUM1),' in the tables [TBDEX_TMP_PROCESS_REFERENCES] and [TBDEX_TMP_QUERY].');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
--==================================================-- Handle placeholders --==================================================--
DECLARE CURSOR_TBDEX_TMP_PROCESS_REFERENCES CURSOR
LOCAL FAST_FORWARD FOR
SELECT [GUID] as 'TBDEX_IN_GUID', [PROFILE_ID] as 'TBDEX_IN_PROFILE_ID',
[BATCH_ID] as 'TBDEX_IN_BATCH_ID',
[REFERENCE1] as 'TBDEX_IN_REFERENCE1', [REFERENCE2] as 'TBDEX_IN_REFERENCE2',
[REFERENCE3] as 'TBDEX_IN_REFERENCE3', [REFERENCE4] as 'TBDEX_IN_REFERENCE4',
[REFERENCE5] as 'TBDEX_IN_REFERENCE5',
[EXTERNAL_REFERENCE1] as 'TBDEX_IN_EXTERNAL_REFERENCE1', [EXTERNAL_REFERENCE2] as 'TBDEX_IN_EXTERNAL_REFERENCE2',
[EXTERNAL_REFERENCE3] as 'TBDEX_IN_EXTERNAL_REFERENCE3', [EXTERNAL_REFERENCE4] as 'TBDEX_IN_EXTERNAL_REFERENCE4',
[EXTERNAL_REFERENCE5] as 'TBDEX_IN_EXTERNAL_REFERENCE5',
--[TEST_MODE] as 'TBDEX_IN_TEST_MODE', [ASYNC_MODE] as 'TBDEX_IN_ASYNC_MODE',
[COMMENT] as 'TBDEX_IN_COMMENT',
[ADDED_WHO] as 'TBDEX_IN_ADDED_WHO', [ADDED_WHEN] as 'TBDEX_IN_ADDED_WHEN'
FROM [TBDEX_TMP_PROCESS_REFERENCES] WITH (SNAPSHOT)
WHERE [PROFILE_ID]=@PROFILE_ID AND [BATCH_ID]=@BATCH_ID AND [ADDED_WHO]=@BATCH_CREATOR
ORDER BY [GUID] ASC;
OPEN CURSOR_TBDEX_TMP_PROCESS_REFERENCES
FETCH NEXT FROM CURSOR_TBDEX_TMP_PROCESS_REFERENCES INTO @TBDEX_IN_GUID,@TBDEX_IN_PROFILE_ID,@TBDEX_IN_BATCH_ID,@TBDEX_IN_REFERENCE1,@TBDEX_IN_REFERENCE2,@TBDEX_IN_REFERENCE3,@TBDEX_IN_REFERENCE4,@TBDEX_IN_REFERENCE5,@TBDEX_IN_EXTERNAL_REFERENCE1,@TBDEX_IN_EXTERNAL_REFERENCE2,@TBDEX_IN_EXTERNAL_REFERENCE3,@TBDEX_IN_EXTERNAL_REFERENCE4,@TBDEX_IN_EXTERNAL_REFERENCE5,@TBDEX_IN_COMMENT,@TBDEX_IN_ADDED_WHO,@TBDEX_IN_ADDED_WHEN;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @ROW_COUNTER1 += 1; -- Increase loop counter
IF ((@ROW_COUNTER1 = 1) OR (@ROW_COUNTER1 = @ROW_COUNT1) OR (@ROW_COUNTER1 % 100 = 0)) BEGIN
PRINT concat('This is cursor (CURSOR_TBDEX_TMP_PROCESS_REFERENCES), loop nr: ',@ROW_COUNTER1);
END;
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Proccessing table: [TBDEX_TMP_PROCESS_REFERENCES] - Row ',CONVERT(NVARCHAR(50),@ROW_COUNTER1),' of ',CONVERT(NVARCHAR(50),@ROW_COUNT1));
SET @RETURN_ERROR_TEXT = concat('','');
IF ((@ROW_COUNTER1 = 1) OR (@ROW_COUNTER1 = @ROW_COUNT1) OR (@ROW_COUNTER1 % 100 = 0)) BEGIN
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- loop vars from row --====================================================--
PRINT '[GUID]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_GUID,'<NO-VALUE>'));
PRINT '[PROFILE_ID]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_PROFILE_ID,'<NO-VALUE>'));
PRINT '[BATCH_ID]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_BATCH_ID,'<NO-VALUE>'));
PRINT '[REFERENCE1]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_REFERENCE1,'<NO-VALUE>'));
PRINT '[REFERENCE2]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_REFERENCE2,'<NO-VALUE>'));
PRINT '[REFERENCE3]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_REFERENCE3,'<NO-VALUE>'));
PRINT '[REFERENCE4]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_REFERENCE4,'<NO-VALUE>'));
PRINT '[REFERENCE5]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_REFERENCE5,'<NO-VALUE>'));
PRINT '[TEST_MODE]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_TEST_MODE,'<NO-VALUE>'));
PRINT '[ASYNC_MODE]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_ASYNC_MODE,'<NO-VALUE>'));
PRINT '[COMMENT]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_COMMENT,'<NO-VALUE>'));
PRINT '[ADDED_WHO]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_ADDED_WHO,'<NO-VALUE>'));
PRINT '[ADDED_WHEN]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_IN_ADDED_WHEN,'<NO-VALUE>'));
-----------------------------------------------------------------------------------------------------------------------------------
SET @ROW_COUNTER2 = 0;
DECLARE CURSOR_TBDEX_TMP_QUERY CURSOR
LOCAL FAST_FORWARD FOR
SELECT [GUID] as 'TBDEX_TMP_QUERY_GUID', [PROFILE_ID] as 'TBDEX_TMP_QUERY_PROFILE_ID', [BATCH_ID] as 'TBDEX_TMP_QUERY_BATCH_ID',
[QUERY] as 'TBDEX_TMP_QUERY_QUERY', [COMMENT] as 'TBDEX_TMP_QUERY_COMMENT', [ADDED_WHO] as 'TBDEX_TMP_QUERY_ADDED_WHO',
[ADDED_WHEN] as 'TBDEX_TMP_QUERY_ADDED_WHEN'
FROM [TBDEX_TMP_QUERY] WITH (SNAPSHOT)
WHERE [PROFILE_ID]=@PROFILE_ID AND [BATCH_ID]=@BATCH_ID
ORDER BY [GUID] ASC;
OPEN CURSOR_TBDEX_TMP_QUERY
FETCH NEXT FROM CURSOR_TBDEX_TMP_QUERY INTO @TBDEX_TMP_QUERY_GUID,@TBDEX_TMP_QUERY_PROFILE_ID,@TBDEX_TMP_QUERY_BATCH_ID,@TBDEX_TMP_QUERY_QUERY,@TBDEX_TMP_QUERY_COMMENT,@TBDEX_TMP_QUERY_ADDED_WHO,@TBDEX_TMP_QUERY_ADDED_WHEN;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @ROW_COUNTER2 += 1; -- Increase loop counter
IF ((@ROW_COUNTER2 = 1) OR (@ROW_COUNTER2 = @ROW_COUNT2) OR (@ROW_COUNTER2 % 100 = 0)) BEGIN
PRINT concat('This is cursor (CURSOR_TBDEX_TMP_QUERY), loop nr: ',@ROW_COUNTER2);
END;
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Proccessing table: [TBDEX_TMP_QUERY] - Row ',CONVERT(NVARCHAR(50),@ROW_COUNTER2),' of ',CONVERT(NVARCHAR(50),@ROW_COUNT2));
SET @RETURN_ERROR_TEXT = concat('','');
IF ((@ROW_COUNTER2 = 1) OR (@ROW_COUNTER2 = @ROW_COUNT2) OR (@ROW_COUNTER2 % 100 = 0)) BEGIN
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- loop vars from row --====================================================--
PRINT '[GUID]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_GUID,'<NO-VALUE>'));
PRINT '[PROFILE_ID]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_PROFILE_ID,'<NO-VALUE>'));
PRINT '[BATCH_ID]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_BATCH_ID,'<NO-VALUE>'));
PRINT '[QUERY]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_QUERY,'<NO-VALUE>'));
PRINT '[COMMENT]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_COMMENT,'<NO-VALUE>'));
PRINT '[ADDED_WHO]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_ADDED_WHO,'<NO-VALUE>'));
PRINT '[ADDED_WHEN]: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_QUERY_ADDED_WHEN,'<NO-VALUE>'));
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Handle placeholders --==================================================--
PRINT '';
PRINT 'Replacing placeholders in query...';
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%PROFILE_ID%',ISNULL(@PROFILE_ID,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%TEST_MODE%',ISNULL(@TEST_MODE,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%ASYNC_MODE%',ISNULL(@ASYNC_MODE,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%BATCH_ID%',ISNULL(@BATCH_ID,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%BATCH_CREATOR%',ISNULL(@BATCH_CREATOR,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%LANGUAGE%',ISNULL(@LANGUAGE,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%LOG_LEVEL%',ISNULL(@LOG_LEVEL,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%START_QUERY%',ISNULL(@START_QUERY,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%START_QUERY_VAR1%',ISNULL(@START_QUERY_VAR1,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%START_QUERY_VAR2%',ISNULL(@START_QUERY_VAR2,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%START_QUERY_VAR3%',ISNULL(@START_QUERY_VAR3,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%START_QUERY_VAR4%',ISNULL(@START_QUERY_VAR4,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%START_QUERY_VAR5%',ISNULL(@START_QUERY_VAR5,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%FORCE%',ISNULL(@FORCE,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%MY_PROCEDURE_NAME%',ISNULL(@MY_PROCEDURE_NAME,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%PROFILE_NAME%',ISNULL(@PROFILE_NAME,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%MANDANTOR%',ISNULL(@MANDANTOR,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%EXPORT_TYPE%',ISNULL(@EXPORT_TYPE,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%REFERENCE1%',ISNULL(@TBDEX_IN_REFERENCE1,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%REFERENCE2%',ISNULL(@TBDEX_IN_REFERENCE2,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%REFERENCE3%',ISNULL(@TBDEX_IN_REFERENCE3,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%REFERENCE4%',ISNULL(@TBDEX_IN_REFERENCE4,''));
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,'%REFERENCE5%',ISNULL(@TBDEX_IN_REFERENCE5,''));
DECLARE CURSOR_PLACEHOLDER CURSOR
LOCAL FAST_FORWARD FOR
SELECT [PLACEHOLDER_NAME] as 'Placeholder_Name', [PLACEHOLDER] as 'Placeholder'
FROM [TBDEX_CFG_RESOURCES] (NOLOCK)
WHERE [PROFILE_ID] IN (0,@PROFILE_ID) AND [ACTIVE] = @ACTIVE_FLAG AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @PLACEHOLDER_TYPE
ORDER BY [SEQUENCE] ASC;
OPEN CURSOR_PLACEHOLDER
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @TBDEX_TMP_QUERY_QUERY = REPLACE(@TBDEX_TMP_QUERY_QUERY,concat('%',@PLACEHOLDER_NAME,'%'),ISNULL(@PLACEHOLDER,''));
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
END
CLOSE CURSOR_PLACEHOLDER;
DEALLOCATE CURSOR_PLACEHOLDER;
-----------------------------------------------------------------------------------------------------------------------------------
--=================================================-- Check first sql query --===================================================--
IF (LEN(@TBDEX_TMP_QUERY_QUERY) < 15) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50001;
SET @RETURN_STATUS_TEXT = concat('Wrong call or configuraton!','');
SET @RETURN_ERROR_TEXT = concat('Found no valid querys (query needs to be 15 chars or more)!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found valid "@TBDEX_TMP_QUERY_QUERY" query: ',char(13),@TBDEX_TMP_QUERY_QUERY);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--=================================================-- build insert statement --==================================================--
SET @TBDEX_TMP_QUERY_QUERY = CONCAT(char(13),'INSERT INTO ',@TBDEX_TMP_TABLE_SCHEMA_AND_NAME,
'(',@pTBDEX_TMP_TABLE_COLUMNS,')',char(13),
@TBDEX_TMP_QUERY_QUERY);
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('The complete "@TBDEX_TMP_QUERY_QUERY" query: ',char(13),@TBDEX_TMP_QUERY_QUERY);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Safety checks --======================================================--
EXEC [PRDEX_TEST_DYNAMIC_SQL] @pQUERY = @TBDEX_TMP_QUERY_QUERY,
@pRETURN_STATUS = 50052,
@pQUERY_NAME = N'@TBDEX_TMP_QUERY_QUERY';
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- run insert statement --===================================================--
EXEC @RETURN_STATUS = sp_executesql @TBDEX_TMP_QUERY_QUERY;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Check previous error text!','');
SET @RETURN_ERROR_TEXT = concat('Error occurred in [PRDEX_GET_INPUT_CONTENT] / @TBDEX_TMP_QUERY_QUERY!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_GET_INPUT_CONTENT] / @TBDEX_TMP_QUERY_QUERY worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
FETCH NEXT FROM CURSOR_TBDEX_TMP_QUERY INTO @TBDEX_TMP_QUERY_GUID,@TBDEX_TMP_QUERY_PROFILE_ID,@TBDEX_TMP_QUERY_BATCH_ID,@TBDEX_TMP_QUERY_QUERY,@TBDEX_TMP_QUERY_COMMENT,@TBDEX_TMP_QUERY_ADDED_WHO,@TBDEX_TMP_QUERY_ADDED_WHEN;
END
CLOSE CURSOR_TBDEX_TMP_QUERY;
DEALLOCATE CURSOR_TBDEX_TMP_QUERY;
-----------------------------------------------------------------------------------------------------------------------------------
FETCH NEXT FROM CURSOR_TBDEX_TMP_PROCESS_REFERENCES INTO @TBDEX_IN_GUID,@TBDEX_IN_PROFILE_ID,@TBDEX_IN_BATCH_ID,@TBDEX_IN_REFERENCE1,@TBDEX_IN_REFERENCE2,@TBDEX_IN_REFERENCE3,@TBDEX_IN_REFERENCE4,@TBDEX_IN_REFERENCE5,@TBDEX_IN_EXTERNAL_REFERENCE1,@TBDEX_IN_EXTERNAL_REFERENCE2,@TBDEX_IN_EXTERNAL_REFERENCE3,@TBDEX_IN_EXTERNAL_REFERENCE4,@TBDEX_IN_EXTERNAL_REFERENCE5,@TBDEX_IN_COMMENT,@TBDEX_IN_ADDED_WHO,@TBDEX_IN_ADDED_WHEN;
END
CLOSE CURSOR_TBDEX_TMP_PROCESS_REFERENCES;
DEALLOCATE CURSOR_TBDEX_TMP_PROCESS_REFERENCES;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--====================================================-- exception / error --====================================================--
IF (@@TRANCOUNT > 0) BEGIN
ROLLBACK TRANSACTION;
END;
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;
GO

View File

@@ -0,0 +1,601 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDEX_RUN_MAINPROCESSING]
-- =================================================================
-- Sub procedure to run MAINPROCESSING steps
--
-- Returns: INTEGER; 0 = ok; 0 <> not ok
-- =================================================================
-- 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: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_RUN_MAINPROCESSING](
@pPROFILE_ID BIGINT,
@pTEST_MODE BIT,
@pASYNC_MODE BIT,
@pBATCH_ID NVARCHAR(25),
@pBATCH_CREATOR NVARCHAR(50),
@pLANGUAGE NVARCHAR(10),
@pLOG_LEVEL NVARCHAR(25),
@pSTART_QUERY NVARCHAR(MAX),
@pSTART_QUERY_VAR1 NVARCHAR(50),
@pSTART_QUERY_VAR2 NVARCHAR(50),
@pSTART_QUERY_VAR3 NVARCHAR(50),
@pSTART_QUERY_VAR4 NVARCHAR(50),
@pSTART_QUERY_VAR5 NVARCHAR(50),
@pMAIN_QUERY NVARCHAR(MAX),
@pMAIN_QUERY_VAR1 NVARCHAR(50),
@pMAIN_QUERY_VAR2 NVARCHAR(50),
@pMAIN_QUERY_VAR3 NVARCHAR(50),
@pMAIN_QUERY_VAR4 NVARCHAR(50),
@pMAIN_QUERY_VAR5 NVARCHAR(50),
@pEND_QUERY NVARCHAR(MAX),
@pEND_QUERY_VAR1 NVARCHAR(50),
@pEND_QUERY_VAR2 NVARCHAR(50),
@pEND_QUERY_VAR3 NVARCHAR(50),
@pEND_QUERY_VAR4 NVARCHAR(50),
@pEND_QUERY_VAR5 NVARCHAR(50),
@pFORCE BIT,
@pPROFILE_NAME NVARCHAR(50),
@pMANDANTOR NVARCHAR(50),
@pEXPORT_TYPE NVARCHAR(50),
@pDEFAULT_DATA_SEPARATOR NVARCHAR(10),
@pTBDEX_TMP_TABLE_SCHEMA SYSNAME,
@pTBDEX_TMP_TABLE_NAME SYSNAME,
@pTBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150),
@pTBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX)
)
AS
BEGIN TRY
SET NOCOUNT ON;
SET XACT_ABORT ON;
-- declare new vars because of parameter sniffing
DECLARE @PROFILE_ID BIGINT = @pPROFILE_ID,
@TEST_MODE BIT = @pTEST_MODE,
@ASYNC_MODE BIT = @pASYNC_MODE,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@BATCH_CREATOR NVARCHAR(128) = ISNULL(@pBATCH_CREATOR,OBJECT_NAME(@@PROCID)),
@LANGUAGE NVARCHAR(10) = @pLANGUAGE,
@LOG_LEVEL NVARCHAR(25) = UPPER(ISNULL(@pLOG_LEVEL,'INFO')),
@START_QUERY NVARCHAR(MAX) = @pSTART_QUERY,
@START_QUERY_VAR1 NVARCHAR(50) = @pSTART_QUERY_VAR1,
@START_QUERY_VAR2 NVARCHAR(50) = @pSTART_QUERY_VAR2,
@START_QUERY_VAR3 NVARCHAR(50) = @pSTART_QUERY_VAR3,
@START_QUERY_VAR4 NVARCHAR(50) = @pSTART_QUERY_VAR4,
@START_QUERY_VAR5 NVARCHAR(50) = @pSTART_QUERY_VAR5,
@MAIN_QUERY NVARCHAR(MAX) = @pMAIN_QUERY,
@MAIN_QUERY_VAR1 NVARCHAR(50) = @pMAIN_QUERY_VAR1,
@MAIN_QUERY_VAR2 NVARCHAR(50) = @pMAIN_QUERY_VAR2,
@MAIN_QUERY_VAR3 NVARCHAR(50) = @pMAIN_QUERY_VAR3,
@MAIN_QUERY_VAR4 NVARCHAR(50) = @pMAIN_QUERY_VAR4,
@MAIN_QUERY_VAR5 NVARCHAR(50) = @pMAIN_QUERY_VAR5,
@END_QUERY NVARCHAR(MAX) = @pEND_QUERY,
@END_QUERY_VAR1 NVARCHAR(50) = @pEND_QUERY_VAR1,
@END_QUERY_VAR2 NVARCHAR(50) = @pEND_QUERY_VAR2,
@END_QUERY_VAR3 NVARCHAR(50) = @pEND_QUERY_VAR3,
@END_QUERY_VAR4 NVARCHAR(50) = @pEND_QUERY_VAR4,
@END_QUERY_VAR5 NVARCHAR(50) = @pEND_QUERY_VAR5,
@FORCE BIT = @pFORCE,
@PROFILE_NAME NVARCHAR(50) = @pPROFILE_NAME,
@MANDANTOR NVARCHAR(50) = @pMANDANTOR,
@EXPORT_TYPE NVARCHAR(10) = @pEXPORT_TYPE,
@DEFAULT_DATA_SEPARATOR NVARCHAR(50) = @pDEFAULT_DATA_SEPARATOR,
@TBDEX_TMP_TABLE_SCHEMA SYSNAME = @pTBDEX_TMP_TABLE_SCHEMA,
@TBDEX_TMP_TABLE_NAME SYSNAME = @pTBDEX_TMP_TABLE_NAME,
@TBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150) = @pTBDEX_TMP_TABLE_SCHEMA_AND_NAME,
@TBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_COLUMNS,
@TBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_DROP_QUERY,
@TBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_CREATE_QUERY,
@TBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_INSERT_QUERY;
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@ROW_COUNT1 SMALLINT = 0,
@ROW_COUNT2 SMALLINT = 0,
@GUID BIGINT = 0,
@SEQUENCE TINYINT = 0,
@MAINPROCESSING_NAME NVARCHAR(50) = NULL,
@MAINPROCESSING_TYPE NVARCHAR(10) = NULL,
@MAINPROCESSING_QUERY NVARCHAR(MAX) = NULL,
@ERROR_ACTION NVARCHAR(25) = NULL,
@REFERENCE1 NVARCHAR(150) = NULL,
@REFERENCE2 NVARCHAR(150) = NULL,
@REFERENCE3 NVARCHAR(150) = NULL,
@REFERENCE4 NVARCHAR(150) = NULL,
@REFERENCE5 NVARCHAR(150) = NULL,
@EXTERNAL_REFERENCE1 NVARCHAR(250) = NULL,
@EXTERNAL_REFERENCE2 NVARCHAR(250) = NULL,
@EXTERNAL_REFERENCE3 NVARCHAR(250) = NULL,
@EXTERNAL_REFERENCE4 NVARCHAR(250) = NULL,
@EXTERNAL_REFERENCE5 NVARCHAR(250) = NULL,
@TBDEX_TMP_TABLE_CONTENT NVARCHAR(MAX) = NULL,
@EXPORT_NUMBER_SCHEMA NVARCHAR(25) = NULL,
@EXPORT_NUMBER_COUNTER BIGINT = NULL,
@EXPORT_NUMBER NVARCHAR(25) = NULL,
@PLACEHOLDER_NAME NVARCHAR(50) = NULL,
@PLACEHOLDER NVARCHAR(MAX) = NULL,
@PLACEHOLDER_TYPE NVARCHAR(10) = 'CONST',
@HAS_UNRESOLVED_PLACEHOLDER BIT = 0,
@HAS_RESTRICTED_SQL BIT = 0,
@HAS_UNSAFE_TEMP_TARGET BIT = 0,
@RETURN_STATUS INT = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = concat('START PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(varchar(50),GETDATE(),120)),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
PRINT '====================================================================================================';
PRINT @RETURN_STATUS_TEXT;
PRINT '';
PRINT 'PARAMETER01 - @PROFILE_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_ID,'<NO-VALUE>'));
PRINT 'PARAMETER02 - @TEST_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@TEST_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER03 - @ASYNC_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@ASYNC_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER04 - @BATCH_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_ID,'<NO-VALUE>'));
PRINT 'PARAMETER05 - @BATCH_CREATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_CREATOR,'<NO-VALUE>'));
PRINT 'PARAMETER06 - @LANGUAGE: ' + CONVERT(NVARCHAR(50),ISNULL(@LANGUAGE,'<NO-VALUE>'));
PRINT 'PARAMETER07 - @LOG_LEVEL: ' + CONVERT(NVARCHAR(50),ISNULL(@LOG_LEVEL,'<NO-VALUE>'));
PRINT 'PARAMETER08 - @START_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER09 - @START_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER10 - @START_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER11 - @START_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER12 - @START_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER13 - @START_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER14 - @MAIN_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER15 - @MAIN_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER16 - @MAIN_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER17 - @MAIN_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER18 - @MAIN_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER19 - @MAIN_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER20 - @END_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER21 - @END_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER22 - @END_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER23 - @END_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER24 - @END_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER25 - @END_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER26 - @FORCE: ' + CONVERT(NVARCHAR(50),ISNULL(@FORCE,'<NO-VALUE>'));
PRINT 'PARAMETER27 - @PROFILE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER28 - @MANDANTOR: ' + CONVERT(NVARCHAR(50),ISNULL(@MANDANTOR,'<NO-VALUE>'));
PRINT 'PARAMETER29 - @EXPORT_TYPE: ' + CONVERT(NVARCHAR(50),ISNULL(@EXPORT_TYPE,'<NO-VALUE>'));
PRINT 'PARAMETER30 - @DEFAULT_DATA_SEPARATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@DEFAULT_DATA_SEPARATOR,'<NO-VALUE>'));
PRINT 'PARAMETER31 - @TBDEX_TMP_TABLE_SCHEMA: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_SCHEMA,'<NO-VALUE>'));
PRINT 'PARAMETER32 - @TBDEX_TMP_TABLE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER33 - @TBDEX_TMP_TABLE_SCHEMA_AND_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_SCHEMA_AND_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER34 - @TBDEX_TMP_TABLE_COLUMNS: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_COLUMNS,'<NO-VALUE>'));
PRINT 'PARAMETER35 - @TBDEX_TMP_TABLE_DROP_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_DROP_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER36 - @TBDEX_TMP_TABLE_CREATE_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_CREATE_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER37 - @TBDEX_TMP_TABLE_INSERT_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_INSERT_QUERY,'<NO-VALUE>'));
PRINT '';
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--================================================-- Check for export columns --=================================================--
SET @ROW_COUNT1 = (SELECT count(*) FROM [TBDEX_CFG_OUT_STRUCTURE] AS [COS]
WHERE [COS].[ACTIVE] = @ACTIVE_FLAG AND [COS].[EXPORT_TYPE] = @EXPORT_TYPE AND [COS].[PROFILE_ID] = @PROFILE_ID
AND [COS].[LANGUAGE] in (REPLACE(@LANGUAGE,'-','_'),REPLACE(@LANGUAGE,'_','-')));
IF (@ROW_COUNT1 = 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50022;
SET @RETURN_STATUS_TEXT = concat('','');
SET @RETURN_ERROR_TEXT = concat('Found no valid column configuration in [TBDEX_CFG_OUT_STRUCTURE]!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found a valid column configuration in [TBDEX_CFG_OUT_STRUCTURE]!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Safety checks --======================================================--
EXEC [PRDEX_TEST_DYNAMIC_SQL] @pQUERY = @TBDEX_TMP_TABLE_DROP_QUERY,
@pRETURN_STATUS = 50057,
@pQUERY_NAME = N'@TBDEX_TMP_TABLE_DROP_QUERY';
EXEC [PRDEX_TEST_DYNAMIC_SQL] @pQUERY = @TBDEX_TMP_TABLE_CREATE_QUERY,
@pRETURN_STATUS = 50057,
@pQUERY_NAME = N'@TBDEX_TMP_TABLE_CREATE_QUERY';
SET @HAS_UNSAFE_TEMP_TARGET = CASE WHEN
(PATINDEX('%DROP TABLE%',UPPER(@TBDEX_TMP_TABLE_DROP_QUERY)) = 0) OR
(PATINDEX('%CREATE TABLE%',UPPER(@TBDEX_TMP_TABLE_CREATE_QUERY)) = 0) OR
(
(PATINDEX('%TEMPDB..%',UPPER(@TBDEX_TMP_TABLE_DROP_QUERY)) = 0)
AND (PATINDEX('%#%',@TBDEX_TMP_TABLE_DROP_QUERY) = 0)
) OR
(
(PATINDEX('%TEMPDB..%',UPPER(@TBDEX_TMP_TABLE_CREATE_QUERY)) = 0)
AND (PATINDEX('%#%',@TBDEX_TMP_TABLE_CREATE_QUERY) = 0)
)
THEN 1 ELSE 0 END;
IF (@HAS_UNSAFE_TEMP_TARGET = 1) BEGIN
SET @RETURN_STATUS = 50057;
SET @RETURN_STATUS_TEXT = concat('Blocked unsafe temp table query content in [PRDEX_RUN_MAINPROCESSING]!','');
SET @RETURN_ERROR_TEXT = concat('Detected unresolved placeholders, restricted statements, or non-tempdb/non-# table target in drop/create query.','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--============================================-- Drop dynamic temp table, if exists --===========================================--
PRINT concat('INFO: ','Executing drop cmd:',char(13),@TBDEX_TMP_TABLE_DROP_QUERY);
EXEC sp_executesql @TBDEX_TMP_TABLE_DROP_QUERY;
-----------------------------------------------------------------------------------------------------------------------------------
--================================================-- create dynamic temp table --================================================--
PRINT concat('INFO: ','Executing create cmd:',char(13),@TBDEX_TMP_TABLE_CREATE_QUERY);
EXEC sp_executesql @TBDEX_TMP_TABLE_CREATE_QUERY; -- The structure is based on the config of the table "[TBDEX_CFG_OUT_STRUCTURE]"
-----------------------------------------------------------------------------------------------------------------------------------
--===============================================-- Check if table was created --================================================--
IF (OBJECT_ID(concat('tempdb..',@TBDEX_TMP_TABLE_SCHEMA_AND_NAME), 'U') IS NULL) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50006;
SET @RETURN_STATUS_TEXT = concat('','')
SET @RETURN_ERROR_TEXT = concat('Cannot create the temp table: ',@TBDEX_TMP_TABLE_SCHEMA_AND_NAME,'!');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('The temp table: ',@TBDEX_TMP_TABLE_SCHEMA_AND_NAME,' has been created!');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--=============================================-- Check if ref table has content --==============================================--
SET @ROW_COUNT2 = (SELECT COUNT(*) FROM [TBDEX_TMP_PROCESS_REFERENCES] WITH (SNAPSHOT)
WHERE [PROFILE_ID] = @PROFILE_ID
AND [BATCH_ID] = @BATCH_ID
AND [ADDED_WHO] IN (@BATCH_CREATOR,@MY_PROCEDURE_NAME));
IF (@ROW_COUNT2 = 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50010;
SET @RETURN_STATUS_TEXT = concat('','');
SET @RETURN_ERROR_TEXT = concat('Found no fitting lines [TBDEX_TMP_PROCESS_REFERENCES]!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found ',@ROW_COUNT2,' fitting lines in [TBDEX_TMP_PROCESS_REFERENCES]!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===========================================-- Get referencies from input table --==============================================--
DECLARE CURSOR_MAINPROCESSING CURSOR
LOCAL FAST_FORWARD FOR
SELECT [REFERENCE1] as 'REFERENCE1',
[REFERENCE2] as 'REFERENCE2',
[REFERENCE3] as 'REFERENCE3',
[REFERENCE4] as 'REFERENCE4',
[REFERENCE5] as 'REFERENCE5',
[EXTERNAL_REFERENCE1] as 'EXTERNAL_REFERENCE1',
[EXTERNAL_REFERENCE2] as 'EXTERNAL_REFERENCE2',
[EXTERNAL_REFERENCE3] as 'EXTERNAL_REFERENCE3',
[EXTERNAL_REFERENCE4] as 'EXTERNAL_REFERENCE4',
[EXTERNAL_REFERENCE5] as 'EXTERNAL_REFERENCE5',
[EXPORT_NUMBER_COUNTER] as 'EXPORT_NUMBER_COUNTER',
[EXPORT_NUMBER] as 'EXPORT_NUMBER'
FROM [TBDEX_TMP_PROCESS_REFERENCES] WITH (SNAPSHOT)
WHERE [PROFILE_ID] = @PROFILE_ID
AND [BATCH_ID] = @BATCH_ID
AND [ADDED_WHO] IN (@BATCH_CREATOR,@MY_PROCEDURE_NAME);
OPEN CURSOR_MAINPROCESSING
FETCH NEXT FROM CURSOR_MAINPROCESSING INTO @REFERENCE1,@REFERENCE2,@REFERENCE3,@REFERENCE4,@REFERENCE5,@EXTERNAL_REFERENCE1,@EXTERNAL_REFERENCE2,@EXTERNAL_REFERENCE3,@EXTERNAL_REFERENCE4,@EXTERNAL_REFERENCE5,@EXPORT_NUMBER_COUNTER,@EXPORT_NUMBER;
WHILE @@FETCH_STATUS = 0
BEGIN
--=================================================-- Call input procedure --==================================================--
EXEC @RETURN_STATUS = [PRDEX_SET_QUERY] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pMAIN_QUERY = @MAIN_QUERY,
@pMAIN_QUERY_VAR1 = @MAIN_QUERY_VAR1,
@pMAIN_QUERY_VAR2 = @MAIN_QUERY_VAR2,
@pMAIN_QUERY_VAR3 = @MAIN_QUERY_VAR3,
@pMAIN_QUERY_VAR4 = @MAIN_QUERY_VAR4,
@pMAIN_QUERY_VAR5 = @MAIN_QUERY_VAR5,
@pEND_QUERY = @END_QUERY,
@pEND_QUERY_VAR1 = @END_QUERY_VAR1,
@pEND_QUERY_VAR2 = @END_QUERY_VAR2,
@pEND_QUERY_VAR3 = @END_QUERY_VAR3,
@pEND_QUERY_VAR4 = @END_QUERY_VAR4,
@pEND_QUERY_VAR5 = @END_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pEXPORT_NUMBER_SCHEMA = @EXPORT_NUMBER_SCHEMA,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR,
@pREFERENCE1 = @REFERENCE1,
@pREFERENCE2 = @REFERENCE2,
@pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4,
@pREFERENCE5 = @REFERENCE5,
@pEXTERNAL_REFERENCE1 = @EXTERNAL_REFERENCE1,
@pEXTERNAL_REFERENCE2 = @EXTERNAL_REFERENCE2,
@pEXTERNAL_REFERENCE3 = @EXTERNAL_REFERENCE3,
@pEXTERNAL_REFERENCE4 = @EXTERNAL_REFERENCE4,
@pEXTERNAL_REFERENCE5 = @EXTERNAL_REFERENCE5;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_SET_QUERY]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_SET_QUERY] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--=============================================-- Call input content procedure --==============================================--
EXEC @RETURN_STATUS = [PRDEX_GET_INPUT_CONTENT] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pMAIN_QUERY = @MAIN_QUERY,
@pMAIN_QUERY_VAR1 = @MAIN_QUERY_VAR1,
@pMAIN_QUERY_VAR2 = @MAIN_QUERY_VAR2,
@pMAIN_QUERY_VAR3 = @MAIN_QUERY_VAR3,
@pMAIN_QUERY_VAR4 = @MAIN_QUERY_VAR4,
@pMAIN_QUERY_VAR5 = @MAIN_QUERY_VAR5,
@pEND_QUERY = @END_QUERY,
@pEND_QUERY_VAR1 = @END_QUERY_VAR1,
@pEND_QUERY_VAR2 = @END_QUERY_VAR2,
@pEND_QUERY_VAR3 = @END_QUERY_VAR3,
@pEND_QUERY_VAR4 = @END_QUERY_VAR4,
@pEND_QUERY_VAR5 = @END_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pEXPORT_NUMBER_SCHEMA = @EXPORT_NUMBER_SCHEMA,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR,
@pTBDEX_TMP_TABLE_SCHEMA = @TBDEX_TMP_TABLE_SCHEMA,
@pTBDEX_TMP_TABLE_NAME = @TBDEX_TMP_TABLE_NAME,
@pTBDEX_TMP_TABLE_SCHEMA_AND_NAME = @TBDEX_TMP_TABLE_SCHEMA_AND_NAME,
@pTBDEX_TMP_TABLE_COLUMNS = @TBDEX_TMP_TABLE_COLUMNS,
@pTBDEX_TMP_TABLE_DROP_QUERY = @TBDEX_TMP_TABLE_DROP_QUERY,
@pTBDEX_TMP_TABLE_CREATE_QUERY = @TBDEX_TMP_TABLE_CREATE_QUERY,
@pTBDEX_TMP_TABLE_INSERT_QUERY = @TBDEX_TMP_TABLE_INSERT_QUERY,
@pREFERENCE1 = @REFERENCE1,
@pREFERENCE2 = @REFERENCE2,
@pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4,
@pREFERENCE5 = @REFERENCE5,
@pEXTERNAL_REFERENCE1 = @EXTERNAL_REFERENCE1,
@pEXTERNAL_REFERENCE2 = @EXTERNAL_REFERENCE2,
@pEXTERNAL_REFERENCE3 = @EXTERNAL_REFERENCE3,
@pEXTERNAL_REFERENCE4 = @EXTERNAL_REFERENCE4,
@pEXTERNAL_REFERENCE5 = @EXTERNAL_REFERENCE5;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_GET_INPUT_CONTENT]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_GET_INPUT_CONTENT] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
FETCH NEXT FROM CURSOR_MAINPROCESSING INTO @REFERENCE1,@REFERENCE2,@REFERENCE3,@REFERENCE4,@REFERENCE5,@EXTERNAL_REFERENCE1,@EXTERNAL_REFERENCE2,@EXTERNAL_REFERENCE3,@EXTERNAL_REFERENCE4,@EXTERNAL_REFERENCE5,@EXPORT_NUMBER_COUNTER,@EXPORT_NUMBER;
END
CLOSE CURSOR_MAINPROCESSING;
DEALLOCATE CURSOR_MAINPROCESSING;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--====================================================-- exception / error --====================================================--
IF (@@TRANCOUNT > 0) BEGIN
ROLLBACK TRANSACTION;
END;
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;
GO

View File

@@ -0,0 +1,555 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDEX_RUN_POSTPROCESSING]
-- =================================================================
-- Sub procedure to run POSTPROCESSING steps
--
-- Returns: INTEGER; 0 = ok; 0 <> not ok
-- =================================================================
-- 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: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_RUN_POSTPROCESSING](
@pPROFILE_ID BIGINT,
@pTEST_MODE BIT,
@pASYNC_MODE BIT,
@pBATCH_ID NVARCHAR(25),
@pBATCH_CREATOR NVARCHAR(50),
@pLANGUAGE NVARCHAR(10),
@pLOG_LEVEL NVARCHAR(25),
@pSTART_QUERY NVARCHAR(MAX),
@pSTART_QUERY_VAR1 NVARCHAR(50),
@pSTART_QUERY_VAR2 NVARCHAR(50),
@pSTART_QUERY_VAR3 NVARCHAR(50),
@pSTART_QUERY_VAR4 NVARCHAR(50),
@pSTART_QUERY_VAR5 NVARCHAR(50),
@pMAIN_QUERY NVARCHAR(MAX),
@pMAIN_QUERY_VAR1 NVARCHAR(50),
@pMAIN_QUERY_VAR2 NVARCHAR(50),
@pMAIN_QUERY_VAR3 NVARCHAR(50),
@pMAIN_QUERY_VAR4 NVARCHAR(50),
@pMAIN_QUERY_VAR5 NVARCHAR(50),
@pEND_QUERY NVARCHAR(MAX),
@pEND_QUERY_VAR1 NVARCHAR(50),
@pEND_QUERY_VAR2 NVARCHAR(50),
@pEND_QUERY_VAR3 NVARCHAR(50),
@pEND_QUERY_VAR4 NVARCHAR(50),
@pEND_QUERY_VAR5 NVARCHAR(50),
@pFORCE BIT,
@pPROFILE_NAME NVARCHAR(50),
@pMANDANTOR NVARCHAR(50),
@pEXPORT_TYPE NVARCHAR(50),
@pDEFAULT_DATA_SEPARATOR NVARCHAR(10),
@pTBDEX_TMP_TABLE_SCHEMA NVARCHAR(150),
@pTBDEX_TMP_TABLE_NAME NVARCHAR(150),
@pTBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX)
)
AS
BEGIN TRY
SET NOCOUNT ON;
-- declare new vars because of parameter sniffing
DECLARE @PROFILE_ID BIGINT = @pPROFILE_ID,
@TEST_MODE BIT = @pTEST_MODE,
@ASYNC_MODE BIT = @pASYNC_MODE,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@BATCH_CREATOR NVARCHAR(128) = ISNULL(@pBATCH_CREATOR,OBJECT_NAME(@@PROCID)),
@LANGUAGE NVARCHAR(10) = @pLANGUAGE,
@LOG_LEVEL NVARCHAR(25) = UPPER(ISNULL(@pLOG_LEVEL,'INFO')),
@START_QUERY NVARCHAR(MAX) = @pSTART_QUERY,
@START_QUERY_VAR1 NVARCHAR(50) = @pSTART_QUERY_VAR1,
@START_QUERY_VAR2 NVARCHAR(50) = @pSTART_QUERY_VAR2,
@START_QUERY_VAR3 NVARCHAR(50) = @pSTART_QUERY_VAR3,
@START_QUERY_VAR4 NVARCHAR(50) = @pSTART_QUERY_VAR4,
@START_QUERY_VAR5 NVARCHAR(50) = @pSTART_QUERY_VAR5,
@MAIN_QUERY NVARCHAR(MAX) = @pMAIN_QUERY,
@MAIN_QUERY_VAR1 NVARCHAR(50) = @pMAIN_QUERY_VAR1,
@MAIN_QUERY_VAR2 NVARCHAR(50) = @pMAIN_QUERY_VAR2,
@MAIN_QUERY_VAR3 NVARCHAR(50) = @pMAIN_QUERY_VAR3,
@MAIN_QUERY_VAR4 NVARCHAR(50) = @pMAIN_QUERY_VAR4,
@MAIN_QUERY_VAR5 NVARCHAR(50) = @pMAIN_QUERY_VAR5,
@END_QUERY NVARCHAR(MAX) = @pEND_QUERY,
@END_QUERY_VAR1 NVARCHAR(50) = @pEND_QUERY_VAR1,
@END_QUERY_VAR2 NVARCHAR(50) = @pEND_QUERY_VAR2,
@END_QUERY_VAR3 NVARCHAR(50) = @pEND_QUERY_VAR3,
@END_QUERY_VAR4 NVARCHAR(50) = @pEND_QUERY_VAR4,
@END_QUERY_VAR5 NVARCHAR(50) = @pEND_QUERY_VAR5,
@FORCE BIT = @pFORCE,
@PROFILE_NAME NVARCHAR(50) = @pPROFILE_NAME,
@MANDANTOR NVARCHAR(50) = @pMANDANTOR,
@EXPORT_TYPE NVARCHAR(10) = @pEXPORT_TYPE,
@DEFAULT_DATA_SEPARATOR NVARCHAR(50) = @pDEFAULT_DATA_SEPARATOR,
@TBDEX_TMP_TABLE_SCHEMA NVARCHAR(150) = @pTBDEX_TMP_TABLE_SCHEMA,
@TBDEX_TMP_TABLE_NAME NVARCHAR(150) = @pTBDEX_TMP_TABLE_NAME,
@TBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_COLUMNS;
-- declare virtual table for POSTPROCESSING steps
DECLARE @vTBDEX_CFG_RESOURCES_POSTPROCESSING as TABLE (
[GUID] BIGINT NOT NULL,
[PROFILE_ID] BIGINT NOT NULL,
[SEQUENCE] TINYINT NOT NULL,
[POSTPROCESSING_NAME] NVARCHAR(50) NOT NULL,
[POSTPROCESSING_TYPE] NVARCHAR(10) NOT NULL,
[POSTPROCESSING_QUERY] NVARCHAR(max) NOT NULL,
[ERROR_ACTION] NVARCHAR(25) NOT NULL);
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@STEP_COUNTER INT = 0,
@ROW_COUNT SMALLINT = 0,
@GUID BIGINT = 0,
@SEQUENCE TINYINT = 0,
@POSTPROCESSING_NAME NVARCHAR(50) = NULL,
@POSTPROCESSING_TYPE NVARCHAR(10) = NULL,
@POSTPROCESSING_QUERY NVARCHAR(MAX) = NULL,
@ERROR_ACTION NVARCHAR(25) = NULL,
@REFERENCE1 NVARCHAR(150) = NULL,
@REFERENCE2 NVARCHAR(150) = NULL,
@REFERENCE3 NVARCHAR(150) = NULL,
@REFERENCE4 NVARCHAR(150) = NULL,
@REFERENCE5 NVARCHAR(150) = NULL,
@PLACEHOLDER_NAME NVARCHAR(50) = 'QUERY_POSTPROCESSING',
@PLACEHOLDER NVARCHAR(MAX) = NULL,
@PLACEHOLDER_TYPE NVARCHAR(10) = 'CONST',
@HAS_UNRESOLVED_PLACEHOLDER BIT = 0,
@HAS_RESTRICTED_SQL BIT = 0,
@RETURN_STATUS INT = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = concat('START PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(varchar(50),GETDATE(),120)),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
PRINT '====================================================================================================';
PRINT @RETURN_STATUS_TEXT;
PRINT '';
PRINT 'PARAMETER01 - @PROFILE_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_ID,'<NO-VALUE>'));
PRINT 'PARAMETER02 - @TEST_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@TEST_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER03 - @ASYNC_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@ASYNC_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER04 - @BATCH_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_ID,'<NO-VALUE>'));
PRINT 'PARAMETER05 - @BATCH_CREATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_CREATOR,'<NO-VALUE>'));
PRINT 'PARAMETER06 - @LANGUAGE: ' + CONVERT(NVARCHAR(50),ISNULL(@LANGUAGE,'<NO-VALUE>'));
PRINT 'PARAMETER07 - @LOG_LEVEL: ' + CONVERT(NVARCHAR(50),ISNULL(@LOG_LEVEL,'<NO-VALUE>'));
PRINT 'PARAMETER08 - @START_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER09 - @START_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER10 - @START_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER11 - @START_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER12 - @START_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER13 - @START_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER14 - @MAIN_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER15 - @MAIN_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER16 - @MAIN_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER17 - @MAIN_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER18 - @MAIN_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER19 - @MAIN_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER20 - @END_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER21 - @END_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER22 - @END_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER23 - @END_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER24 - @END_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER25 - @END_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER26 - @FORCE: ' + CONVERT(NVARCHAR(50),ISNULL(@FORCE,'<NO-VALUE>'));
PRINT 'PARAMETER27 - @PROFILE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER28 - @MANDANTOR: ' + CONVERT(NVARCHAR(50),ISNULL(@MANDANTOR,'<NO-VALUE>'));
PRINT 'PARAMETER29 - @EXPORT_TYPE: ' + CONVERT(NVARCHAR(50),ISNULL(@EXPORT_TYPE,'<NO-VALUE>'));
PRINT 'PARAMETER30 - @DEFAULT_DATA_SEPARATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@DEFAULT_DATA_SEPARATOR,'<NO-VALUE>'));
PRINT 'PARAMETER31 - @TBDEX_TMP_TABLE_SCHEMA: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_SCHEMA,'<NO-VALUE>'));
PRINT 'PARAMETER32 - @TBDEX_TMP_TABLE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER33 - @TBDEX_TMP_TABLE_COLUMNS: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_COLUMNS,'<NO-VALUE>'));
PRINT '';
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- POSTPROCESSING steps --===================================================--
IF (@TEST_MODE = 1) OR (@ASYNC_MODE = 1) BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('TEST_MODE and/or ASYNC_MODE are enabled!','Exiting...');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END; ELSE BEGIN
INSERT INTO @vTBDEX_CFG_RESOURCES_POSTPROCESSING([GUID],[PROFILE_ID],[SEQUENCE],[POSTPROCESSING_NAME],[POSTPROCESSING_TYPE],[POSTPROCESSING_QUERY],[ERROR_ACTION])
SELECT TOP 100 PERCENT [GUID],[PROFILE_ID],[SEQUENCE],[PLACEHOLDER_NAME], [PLACEHOLDER_TYPE],LTRIM(RTRIM([PLACEHOLDER])),CASE WHEN [ERROR_ACTION] = 1 THEN 'CONTINUE' ELSE 'STOP' END
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (@PROFILE_ID,0) AND [ACTIVE] = @ACTIVE_FLAG AND LTRIM(RTRIM([PLACEHOLDER_NAME])) = @PLACEHOLDER_NAME
ORDER BY [PROFILE_ID] ASC,[GUID] DESC;
SET @ROW_COUNT = (ISNULL((SELECT COUNT(*) FROM @vTBDEX_CFG_RESOURCES_POSTPROCESSING),0));
IF (@ROW_COUNT = 0) BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found no assigned POSTPROCESSING steps in [TBDEX_CFG_RESOURCES] table! ',', Exiting POSTPROCESSING...');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'WARN: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found ',@ROW_COUNT,' assigned POSTPROCESSING steps in [TBDEX_CFG_RESOURCES] table!',', Engaging POSTPROCESSING...');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--================================================-- Run loop for POSTPROCESSING --===============================================--
DECLARE CURSOR_POSTPROCESSING CURSOR
LOCAL FAST_FORWARD FOR
SELECT [GUID] as 'GUID',
[PROFILE_ID] as 'PROFILE_ID',
[SEQUENCE] as 'SEQUENCE',
[POSTPROCESSING_NAME] as 'POSTPROCESSING_NAME',
[POSTPROCESSING_TYPE] as 'POSTPROCESSING_TYPE',
[POSTPROCESSING_QUERY] as 'POSTPROCESSING_QUERY',
[ERROR_ACTION] as 'ERROR_ACTION'
FROM @vTBDEX_CFG_RESOURCES_POSTPROCESSING
ORDER BY [PROFILE_ID] ASC,[SEQUENCE] ASC, [GUID] DESC;
OPEN CURSOR_POSTPROCESSING
FETCH NEXT FROM CURSOR_POSTPROCESSING INTO @GUID, @PROFILE_ID, @SEQUENCE, @POSTPROCESSING_NAME, @POSTPROCESSING_TYPE, @POSTPROCESSING_QUERY, @ERROR_ACTION;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @STEP_COUNTER = @STEP_COUNTER + 1;
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Running POSTPROCESSING step with GUID: ',@GUID,'. The set "ERROR_ACTION" behavior is: ',@ERROR_ACTION);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
BEGIN TRY
--==================================================-- Handle placeholders --==================================================--
PRINT '';
PRINT 'Replacing placeholders...';
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%PROFILE_ID%',ISNULL(@PROFILE_ID,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%TEST_MODE%',ISNULL(@TEST_MODE,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%ASYNC_MODE%',ISNULL(@ASYNC_MODE,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%BATCH_ID%',ISNULL(@BATCH_ID,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%BATCH_CREATOR%',ISNULL(@BATCH_CREATOR,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%LANGUAGE%',ISNULL(@LANGUAGE,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%LOG_LEVEL%',ISNULL(@LOG_LEVEL,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%START_QUERY%',ISNULL(@START_QUERY,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%START_QUERY_VAR1%',ISNULL(@START_QUERY_VAR1,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%START_QUERY_VAR2%',ISNULL(@START_QUERY_VAR2,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%START_QUERY_VAR3%',ISNULL(@START_QUERY_VAR3,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%START_QUERY_VAR4%',ISNULL(@START_QUERY_VAR4,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%START_QUERY_VAR5%',ISNULL(@START_QUERY_VAR5,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MAIN_QUERY%',ISNULL(@MAIN_QUERY,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MAIN_QUERY_VAR1%',ISNULL(@MAIN_QUERY_VAR1,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MAIN_QUERY_VAR2%',ISNULL(@MAIN_QUERY_VAR2,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MAIN_QUERY_VAR3%',ISNULL(@MAIN_QUERY_VAR3,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MAIN_QUERY_VAR4%',ISNULL(@MAIN_QUERY_VAR4,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MAIN_QUERY_VAR5%',ISNULL(@MAIN_QUERY_VAR5,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%END_QUERY%',ISNULL(@END_QUERY,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%END_QUERY_VAR1%',ISNULL(@END_QUERY_VAR1,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%END_QUERY_VAR2%',ISNULL(@END_QUERY_VAR2,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%END_QUERY_VAR3%',ISNULL(@END_QUERY_VAR3,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%END_QUERY_VAR4%',ISNULL(@END_QUERY_VAR4,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%END_QUERY_VAR5%',ISNULL(@END_QUERY_VAR5,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%FORCE%',ISNULL(@FORCE,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MY_PROCEDURE_NAME%',ISNULL(@MY_PROCEDURE_NAME,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%PROFILE_NAME%',ISNULL(@PROFILE_NAME,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%MANDANTOR%',ISNULL(@MANDANTOR,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%EXPORT_TYPE%',ISNULL(@EXPORT_TYPE,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%REFERENCE1%',ISNULL(@REFERENCE1,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%REFERENCE2%',ISNULL(@REFERENCE2,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%REFERENCE3%',ISNULL(@REFERENCE3,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%REFERENCE4%',ISNULL(@REFERENCE4,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%REFERENCE5%',ISNULL(@REFERENCE5,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%TBDEX_TMP_TABLE_SCHEMA%',ISNULL(@TBDEX_TMP_TABLE_SCHEMA,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%TBDEX_TMP_TABLE_NAME%',ISNULL(@TBDEX_TMP_TABLE_NAME,''));
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,'%TBDEX_TMP_TABLE_COLUMNS%',ISNULL(@TBDEX_TMP_TABLE_COLUMNS,''));
DECLARE CURSOR_PLACEHOLDER CURSOR
LOCAL FAST_FORWARD FOR
SELECT [PLACEHOLDER_NAME] as 'Placeholder_Name', [PLACEHOLDER] as 'Placeholder'
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (0,@PROFILE_ID) AND [ACTIVE] = @ACTIVE_FLAG AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @PLACEHOLDER_TYPE
ORDER BY [SEQUENCE] ASC;
OPEN CURSOR_PLACEHOLDER
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @POSTPROCESSING_QUERY = REPLACE(@POSTPROCESSING_QUERY,concat('%',@PLACEHOLDER_NAME,'%'),ISNULL(@PLACEHOLDER,''));
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
END
CLOSE CURSOR_PLACEHOLDER;
DEALLOCATE CURSOR_PLACEHOLDER;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Prepared "@POSTPROCESSING_QUERY" (length: ',LEN(@POSTPROCESSING_QUERY),', preview: ',LEFT(@POSTPROCESSING_QUERY,500),')');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Safety checks --======================================================--
EXEC [PRDEX_TEST_DYNAMIC_SQL] @pQUERY = @POSTPROCESSING_QUERY,
@pRETURN_STATUS = 50056,
@pQUERY_NAME = N'@POSTPROCESSING_QUERY';
-----------------------------------------------------------------------------------------------------------------------------------
--=========================================-- Finally execute the POSTPROCESSING_QUERY --=========================================--
EXEC sp_executesql @POSTPROCESSING_QUERY;
-----------------------------------------------------------------------------------------------------------------------------------
END TRY BEGIN CATCH
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 50018;
SET @RETURN_STATUS_TEXT = concat('','');
SET @RETURN_ERROR_TEXT = CONVERT(NVARCHAR(500),ERROR_MESSAGE());
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END CATCH;
-----------------------------------------------------------------------------------------------------------------------------------
IF (@RETURN_STATUS <> 0) BEGIN
IF (@ERROR_ACTION <> 'CONTINUE') BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_RUN_POSTPROCESSING]!',' Exiting...');
SET @RETURN_ERROR_TEXT = ISNULL(@RETURN_ERROR_TEXT,'Unknown postprocessing error.');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_RUN_POSTPROCESSING]!',' Continue...');
SET @RETURN_ERROR_TEXT = ISNULL(@RETURN_ERROR_TEXT,'Unknown postprocessing error.');
PRINT 'ERROR: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_RUN_POSTPROCESSING] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
FETCH NEXT FROM CURSOR_POSTPROCESSING INTO @GUID, @PROFILE_ID, @SEQUENCE, @POSTPROCESSING_NAME, @POSTPROCESSING_TYPE, @POSTPROCESSING_QUERY, @ERROR_ACTION;
END
CLOSE CURSOR_POSTPROCESSING;
DEALLOCATE CURSOR_POSTPROCESSING;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--====================================================-- exception / error --====================================================--
IF (@@TRANCOUNT > 0) BEGIN
ROLLBACK TRANSACTION;
END;
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;
GO

View File

@@ -0,0 +1,101 @@
USE [DD_ECM]
GO
/****** Object: StoredProcedure [dbo].[PRDEX_BUILD_FILE_NAME] Script Date: 08.12.2025 21:34:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Prozedur - Zentrale Logik zur Erstellung der Dateinamen f<>r die Schnittstellendatei f<>r Schleupen.
-- MK // 04.10.2024
-- 04.10.2024 MK Implementierung von SQL TRANSACTION
-- 14.10.2020 MK Initial
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_SET_EXPORT_FILENAME]
@JOB_GUID INT, -- Mandatory Parameter, to build the file name
@EXPORT_BOOKING_NUMBER VARCHAR(100),
@FILE_NAME VARCHAR(50) OUTPUT
AS
PRINT '==============================='
PRINT 'PROCEDURE - START [PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT 'PARAMETER1 - @JOB_GUID: ' + CONVERT(varchar(50),@JOB_GUID)
PRINT '-------------------------------'
BEGIN TRY
SET XACT_ABORT ON;
BEGIN TRANSACTION
SET NOCOUNT ON;
DECLARE
@FILE_NAME_SEPARATOR VARCHAR(1),
@FILE_BASE_NAME VARCHAR(50),
@FILE_RUNNING_NUMBER BIGINT,
@FILE_EXTENSION VARCHAR(4)
SELECT @FILE_BASE_NAME = [FILE_BASE_NAME],
@FILE_NAME_SEPARATOR = [FILE_NAME_SEPARATOR],
@FILE_RUNNING_NUMBER = [FILE_RUNNING_NUMBER],
@FILE_EXTENSION = [FILE_EXTENSION]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
WHERE [JOB_GUID] = @JOB_GUID
IF (@EXPORT_BOOKING_NUMBER is null) or (LEN(@EXPORT_BOOKING_NUMBER) = 0)
BEGIN
SET @EXPORT_BOOKING_NUMBER = 1
END
PRINT '@FILE_BASE_NAME: ' + CONVERT(varchar(50),@FILE_BASE_NAME)
PRINT '@FILE_EXTENSION: ' + CONVERT(varchar(50),@FILE_EXTENSION)
PRINT '@FILE_NAME_SEPARATOR: ' + CONVERT(varchar(50),@FILE_NAME_SEPARATOR)
SET @FILE_NAME = @FILE_BASE_NAME + @FILE_NAME_SEPARATOR + CONVERT(varchar(1000),@EXPORT_BOOKING_NUMBER) + '.' + @FILE_EXTENSION
PRINT '@FILE_NAME: ' + CONVERT(varchar(50),@FILE_NAME)
PRINT '@EXPORT_BOOKING_NUMBER: ' + CONVERT(varchar(100),@EXPORT_BOOKING_NUMBER)
-- Set running number to next value...
SET @FILE_RUNNING_NUMBER = @FILE_RUNNING_NUMBER + 1
PRINT '@FILE_RUNNING_NUMBER(new): ' + CONVERT(varchar(50),@FILE_RUNNING_NUMBER)
-- ...and update value in TB
UPDATE [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
SET [FILE_RUNNING_NUMBER] = @FILE_RUNNING_NUMBER
WHERE [JOB_GUID] = @JOB_GUID
PRINT 'Set - new - FILE_RUNNING_NUMBER to table!'
-- Failsafe
SET @FILE_NAME = ISNULL(@FILE_NAME,'undefined.txt')
PRINT '@FILE_NAME: ' + CONVERT(varchar(50),@FILE_NAME)
PRINT '-------------------------------'
PRINT 'PROCEDURE - END PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT '==============================='
COMMIT TRANSACTION
--SELECT @FILE_NAME AS [FILE_NAME]
RETURN
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(50),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
--EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_LOG] @JOB_GUID, 'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE', ERROR_PROCEDURE, ERROR_MESSAGE
RETURN 1
END CATCH
GO

View File

@@ -0,0 +1,67 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDEX_TEST_DYNAMIC_SQL]
-- =================================================================
-- Central guard for dynamic SQL safety checks
--
-- Returns: INTEGER; 0 = ok; 0 <> nicht ok
-- =================================================================
-- 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: 24.02.2026 / MK
-- Version Date / Editor: 24.02.2026 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 24.02.2026 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_TEST_DYNAMIC_SQL](
@pQUERY NVARCHAR(MAX),
@pRETURN_STATUS INT,
@pQUERY_NAME NVARCHAR(100) = N'@QUERY'
)
AS
BEGIN TRY
--================================================-- Set session options --===============================================--
SET NOCOUNT ON;
----------------------------------------------------------------------------------------------------------------------------
--=========================================-- declare new vars because of parameter sniffing --===========================--
DECLARE @QUERY NVARCHAR(MAX) = ISNULL(@pQUERY,N''),
@RETURN_STATUS INT = ISNULL(@pRETURN_STATUS,50000),
@QUERY_NAME NVARCHAR(100) = ISNULL(@pQUERY_NAME,N'@QUERY'),
@HAS_UNRESOLVED_PLACEHOLDER BIT = 0,
@HAS_RESTRICTED_SQL BIT = 0,
@RETURN_ERROR_TEXT NVARCHAR(MAX) = N'';
----------------------------------------------------------------------------------------------------------------------------
--=========================================-- validate query content --====================================================--
SET @HAS_UNRESOLVED_PLACEHOLDER = CASE WHEN PATINDEX('%[%][A-Z_][A-Z0-9_][A-Z0-9_][A-Z0-9_][%]%',UPPER(@QUERY)) > 0 THEN 1 ELSE 0 END;
SET @HAS_RESTRICTED_SQL = CASE WHEN
(PATINDEX('%;--%',UPPER(@QUERY)) > 0) OR
(PATINDEX('%XP_CMDSHELL%',UPPER(@QUERY)) > 0) OR
(PATINDEX('%SP_CONFIGURE%',UPPER(@QUERY)) > 0) OR
(PATINDEX('%ALTER LOGIN%',UPPER(@QUERY)) > 0) OR
(PATINDEX('%CREATE LOGIN%',UPPER(@QUERY)) > 0) OR
(PATINDEX('%DROP DATABASE%',UPPER(@QUERY)) > 0)
THEN 1 ELSE 0 END;
----------------------------------------------------------------------------------------------------------------------------
IF (@HAS_UNRESOLVED_PLACEHOLDER = 1) OR (@HAS_RESTRICTED_SQL = 1) BEGIN
SET @RETURN_ERROR_TEXT = CONCAT('Blocked unsafe query content in ',@QUERY_NAME,'. Detected unresolved placeholder tokens (%TOKEN%) or restricted statements.');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
END;
RETURN 0;
END TRY BEGIN CATCH
THROW;
END CATCH;
GO

View File

@@ -0,0 +1,417 @@
USE [DD_ECM]
GO
/****** Object: StoredProcedure [dbo].[PRDEX_WRITE_FILE] Script Date: 14.02.2026 17:23:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Prozedur welche die bereitsgesammelten Daten abruft und in Folge in eine Datei und ins Archiv schreibt.
-- MK // 08.10.2024
-- 08.10.2024 MK Implementierung @EXPORT_HEADER
-- 04.10.2024 MK Implementierung von SQL TRANSACTION und @BATCH_TIMESTAMP für Massenverarbeitung
-- 27.09.2024 MK NOLOCK und LOCAL FAST_FORWARD eingebaut
-- 30.01.2021 MK Initial
---- To run the file export in this procedure, it is n to reconfigure the sql server
-- sp_configure 'show advanced options', 1;
-- GO
-- RECONFIGURE WITH OVERRIDE;
-- GO
-- sp_configure 'Ole Automation Procedures', 1;
-- GO
-- RECONFIGURE WITH OVERRIDE;
-- GO
-- EXEC sp_configure 'xp_cmdshell', 1
-- GO
-- RECONFIGURE WITH OVERRIDE
-- GO
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_WRITE_FILE]
@JOB_GUID INT,
@BATCH_TIMESTAMP VARCHAR(25)
AS
PRINT '==============================='
PRINT 'PROCEDURE - START [PRCUST_EXPORT_POSTING_DATA_WRITE_FILE] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT 'PARAMETER1 - @JOB_GUID: ' + CONVERT(varchar(50),@JOB_GUID)
PRINT 'PARAMETER2 - @BATCH_TIMESTAMP: ' + CONVERT(varchar(50),@BATCH_TIMESTAMP)
BEGIN TRY
BEGIN TRANSACTION
DECLARE @JOB_NAME VARCHAR(50),
@MANDATOR VARCHAR(50),
@EXPORT_TYPE VARCHAR(50),
@EXPORT_HEADER TINYINT,
@EXPORT_BOOKING_NUMBER VARCHAR(100),
@EXPORT_BOOKING_NUMBER_ARRAY VARCHAR(MAX),
@EXPORT_BOOKING_NUMBER_FIRST_VALUE VARCHAR(50),
@EXPORT_BOOKING_NUMBER_LAST_VALUE VARCHAR(50),
@OLE_RESULT INT,
@FSO INT,
@GUID BIGINT,
@windreamDocID VARCHAR(MAX),
@windreamDocID_ARRAY VARCHAR(MAX),
@ERROR VARCHAR(1000),
@ERROR_LINE VARCHAR(10),
@FILE_ID INT,
@FILE_CONTENT NVARCHAR(MAX) = '',
@FILE_CONTENT_HEAD NVARCHAR(MAX),
@FILE_CONTENT_HEAD_QUERY NVARCHAR(MAX),
@FILE_CONTENT_BODY_COUNT INT,
@FILE_CONTENT_BODY_LINE NVARCHAR(MAX),
@FILE_NAME VARCHAR(50),
@FILE_PATH_TEMP VARCHAR(500),
@FILE_PATH_EXPORT VARCHAR(500),
@FILE_PATH_ARCHIV VARCHAR(500),
@FILE_PATH_ERROR VARCHAR(500),
@FILE_PATH_AND_NAME VARCHAR(600),
@FILE_NAME_SEPARATOR VARCHAR(10) = '-',
@FILE_DATA_SEPARATOR VARCHAR(10) = ';',
@CMD VARCHAR(1000);
-- declare runtime vars
DECLARE @MyProcedureName NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @DBName NVARCHAR(100),
@DBNameCount INT,
@FULLLOCALBACKUPPATH NVARCHAR(255),
@ProductVersion sql_variant,
@ProductMainVersion INT,
@ProductLevel sql_variant,
@ProductEdition sql_variant,
@ProductEditionSimpleString NVARCHAR(50),
@MySessionID NVARCHAR(50) = @@SPID,
@Date_YYYYMMDD NVARCHAR(20) = CONVERT(VARCHAR(20),GETDATE(),112),
@sysconfigurations INT = 0,
@SQLCommand NVARCHAR(1000) = NULL,
@CMDCommand NVARCHAR(1000) = NULL,
@CMDCommandResult INT = 0,
@return_status NVARCHAR(50) = 0,
@return_status_text NVARCHAR(MAX) = 'START ' + @MyProcedureName + ' @ ' + CONVERT(varchar(50),GETDATE(),120);
--==========================================-- Checking system configuration --============================================--
PRINT 'Checking system configuration';
SELECT @sysconfigurations = SUM(CAST([value] AS INT))
FROM [master].[sys].[configurations]
WHERE [name] in ('show advanced options','Ole Automation Procedures','xp_cmdshell');
If (@sysconfigurations = 3) BEGIN
SET @return_status = 0;
SET @return_status_text = 'System configuration does fit! (' + CONVERT(varchar,@sysconfigurations) + ')';
PRINT @return_status_text;
END; ELSE BEGIN
PRINT 'System configuration does NOT fit! Try to reconfigure... (' + CONVERT(varchar,@sysconfigurations) + ')';
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE WITH OVERRIDE;
-- Check again
SELECT @sysconfigurations = SUM(CAST(value AS INT))
FROM [master].[sys].[configurations]
WHERE [name] in ('show advanced options','Ole Automation Procedures','xp_cmdshell');
If (@sysconfigurations = 3) BEGIN
SET @return_status = 0;
SET @return_status_text = 'System configuration does fit, now! (' + CONVERT(varchar,@sysconfigurations) + ')';
PRINT @return_status_text;
END; ELSE BEGIN
SET @return_status = 1;
SET @return_status_text = 'System configuration does NOT fit! (' + CONVERT(varchar,@sysconfigurations) + ')';
PRINT @return_status_text;
END;
END;
-----------------------------------------------------------------------------------------------------------------------------
DECLARE @FILE_CONTENT_BODY as TABLE (GUID INT, [EXPORT_BOOKING_NUMBER] VARCHAR(50),FILE_CONTENT_BODY_LINE VARCHAR(max));
DECLARE @FILE_CONTENT_HEAD_Result as TABLE (ResultText VARCHAR(500));
-- Get Job infos
SELECT @JOB_NAME = [JOB_NAME],
@MANDATOR = [MANDANTOR],
@EXPORT_TYPE = [EXPORT_TYPE]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG] (NOLOCK)
WHERE [GUID] = @JOB_GUID;
-- Get Export config
SELECT @EXPORT_HEADER = [EXPORT_HEADER]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID;
-- Get export file content
INSERT INTO @FILE_CONTENT_BODY ([GUID],[EXPORT_BOOKING_NUMBER],[FILE_CONTENT_BODY_LINE])
SELECT [T1].[GUID], [T1].[EXPORT_BOOKING_NUMBER], [T1].[FILE_CONTENT]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT] AS [T1],
[TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] AS [T2]
WHERE [T1].[BATCH_TIMESTAMP] = @BATCH_TIMESTAMP
and [T2].[JOB_GUID] = @JOB_GUID
and [T2].[GUID] = [T1].[FILE_CONFIG_GUID]
ORDER BY [T1].[EXPORT_BOOKING_NUMBER] ASC;
IF (SELECT COUNT(*) FROM [dbo].[TBCUST_EXPORT_POSTING_DATA_FILE_TEMP] (NOLOCK) WHERE [BATCH_TIMESTAMP] = @BATCH_TIMESTAMP) > 1 BEGIN
-- Create a temporary table
PRINT 'Creating temp table';
CREATE TABLE #TempBookingNumbers (EXPORT_BOOKING_NUMBER NVARCHAR(50), DOCID BIGINT);
-- Insert the required data into the temporary table
PRINT 'Filling temp table';
INSERT INTO #TempBookingNumbers
SELECT [EXPORT_BOOKING_NUMBER], [DOCID]
FROM [dbo].[TBCUST_EXPORT_POSTING_DATA_FILE_TEMP] (NOLOCK)
WHERE [BATCH_TIMESTAMP] = @BATCH_TIMESTAMP
ORDER BY [EXPORT_BOOKING_NUMBER],[DOCID] ASC;
-- Get the aggregated values and concat
PRINT 'Retriving from temp table';
SELECT @windreamDocID = STRING_AGG([DOCID],', '),
@EXPORT_BOOKING_NUMBER_ARRAY = STRING_AGG([EXPORT_BOOKING_NUMBER],', ')
FROM #TempBookingNumbers
-- Get the first and last values
PRINT 'Getting lowest and hights numbers';
SELECT @EXPORT_BOOKING_NUMBER_FIRST_VALUE = MIN([EXPORT_BOOKING_NUMBER]),
@EXPORT_BOOKING_NUMBER_LAST_VALUE = MAX([EXPORT_BOOKING_NUMBER])
FROM #TempBookingNumbers;
-- Drop the temporary table
PRINT 'Dropping temp table';
DROP TABLE #TempBookingNumbers;
PRINT '@EXPORT_BOOKING_NUMBER_ARRAY: ' + @EXPORT_BOOKING_NUMBER_ARRAY;
PRINT '@EXPORT_BOOKING_NUMBER_FIRST_VALUE: ' + convert(varchar,@EXPORT_BOOKING_NUMBER_FIRST_VALUE);
PRINT '@EXPORT_BOOKING_NUMBER_LAST_VALUE: ' + convert(varchar,@EXPORT_BOOKING_NUMBER_LAST_VALUE);
SET @EXPORT_BOOKING_NUMBER = @EXPORT_BOOKING_NUMBER_FIRST_VALUE + @FILE_NAME_SEPARATOR + @EXPORT_BOOKING_NUMBER_LAST_VALUE;
END; ELSE BEGIN
-- get windream DocId
SELECT @windreamDocID = [DOCID]
FROM [dbo].[TBCUST_EXPORT_POSTING_DATA_FILE_TEMP] (NOLOCK)
WHERE [BATCH_TIMESTAMP] = @BATCH_TIMESTAMP;
-- get booking number
SELECT @EXPORT_BOOKING_NUMBER = [EXPORT_BOOKING_NUMBER]
FROM [dbo].[TBCUST_EXPORT_POSTING_DATA_FILE_TEMP] (NOLOCK)
WHERE [BATCH_TIMESTAMP] = @BATCH_TIMESTAMP;
END;
SET @FILE_CONTENT_BODY_COUNT = (SELECT COUNT(*) FROM @FILE_CONTENT_BODY);
-- Go on, if there is a contetn to export
IF (@FILE_CONTENT_BODY_COUNT > 0)
BEGIN
PRINT '@FILE_CONTENT_BODY_COUNT (lines in FILE_CONTENT Table): ' + CONVERT(VARCHAR(50),@FILE_CONTENT_BODY_COUNT)
-- Textdatei erzeugen
-- Create an instance of the file system object
EXECUTE @OLE_RESULT = sp_OACreate 'Scripting.FileSystemObject',@FSO OUT
-- If Scripting object cannot be created
IF (@OLE_RESULT <> 0)
BEGIN
SET @ERROR = 'Scripting.FileSystemObject ' + ' Error code: ' + CONVERT(VARCHAR(300),@OLE_RESULT)
SET @ERROR_LINE = CONVERT(VARCHAR(10),@OLE_RESULT)
EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] @JOB_GUID,'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE',@ERROR_LINE,@ERROR
END
-- If Scripting object can be created
ELSE
BEGIN
-- Open the text file for writing
SELECT @FILE_NAME_SEPARATOR = RTRIM(LTRIM(CONVERT(VARCHAR(10), [FILE_NAME_SEPARATOR]))),
@FILE_DATA_SEPARATOR = RTRIM(LTRIM(CONVERT(VARCHAR(10), [FILE_DATA_SEPARATOR]))),
@FILE_PATH_TEMP = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_TEMP]))),
@FILE_PATH_EXPORT = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_EXPORT]))),
@FILE_PATH_ARCHIV = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_ARCHIV]))),
@FILE_PATH_ERROR = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_ERROR])))
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID
PRINT ' '
PRINT '@FILE_PATH_TEMP: ' + @FILE_PATH_TEMP
PRINT '@FILE_PATH_EXPORT: ' + @FILE_PATH_EXPORT
PRINT '@FILE_PATH_ARCHIV: ' + @FILE_PATH_ARCHIV
PRINT '@FILE_PATH_ERROR: ' + @FILE_PATH_ERROR
-- Build Filename @FILE_NAME =
EXECUTE [dbo].[PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME] @JOB_GUID = @JOB_GUID, @EXPORT_BOOKING_NUMBER = @EXPORT_BOOKING_NUMBER, @FILE_NAME = @FILE_NAME OUTPUT;
PRINT 'Determined @FILE_NAME: ' + @FILE_NAME
-- Build Filename and path
SET @FILE_PATH_AND_NAME = @FILE_PATH_TEMP + '\' + @FILE_NAME
PRINT 'Determined @FILE_PATH_AND_NAME: ' + @FILE_PATH_AND_NAME
EXEC @OLE_RESULT = sp_OAMethod @FSO,'OpenTextFile',@FILE_ID OUT, @FILE_PATH_AND_NAME, 2, TRUE, 0
IF @OLE_RESULT <> 0
BEGIN
SET @ERROR = 'OpenTextFile ' + ' Error code: ' + CONVERT(VARCHAR(300),@OLE_RESULT)
SET @ERROR_LINE = CONVERT(VARCHAR(10),@OLE_RESULT)
--EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] 'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE',@ERROR_LINE,@ERROR
END
-- If file could be created, fill the content
ELSE
BEGIN
-- Set File Head
PRINT ' '
PRINT '@JOB_NAME: ' + CONVERT(VARCHAR(50),@JOB_NAME)
-- Write Headline to Var and file if enabled
IF (@EXPORT_HEADER = 0)
BEGIN
PRINT 'Header from [TBCUST_EXPORT_POSTING_DATA_FILE_TEMPLATE] should NOT be exported'
END
ELSE
BEGIN
PRINT 'Header from [TBCUST_EXPORT_POSTING_DATA_FILE_TEMPLATE] should be exported'
SET @FILE_CONTENT_HEAD_QUERY = [dbo].[FNCUST_EXPORT_POSTING_DATA_BUILD_FILE_HEAD](@JOB_NAME,1)
PRINT '@FILE_CONTENT_HEAD_QUERY (unprocessed): ' + @FILE_CONTENT_HEAD_QUERY
INSERT INTO @FILE_CONTENT_HEAD_RESULT
EXECUTE sp_executesql @FILE_CONTENT_Head_Query, N'@FILE_DATA_SEPARATOR varchar(1)', @FILE_DATA_SEPARATOR = @FILE_DATA_SEPARATOR;
-- Get File Head and replace word wrap / line breaks
SET @FILE_CONTENT_HEAD = (SELECT * FROM @FILE_CONTENT_HEAD_RESULT)
SET @FILE_CONTENT_HEAD = REPLACE(@FILE_CONTENT_HEAD,CHAR(13) + CHAR(10),'')
PRINT '@FILE_CONTENT_Head: ' + @FILE_CONTENT_Head
SET @FILE_CONTENT = @FILE_CONTENT_Head + @FILE_CONTENT
EXECUTE @OLE_RESULT = sp_OAMethod @FILE_ID,'WriteLine',NULL,@FILE_CONTENT
END
-- prepare cursor to write every content line
DECLARE CURSOR_WRITE_FILE_CONTENT CURSOR
LOCAL FAST_FORWARD FOR
SELECT [FILE_CONTENT_BODY_LINE]
FROM @FILE_CONTENT_BODY
ORDER BY [EXPORT_BOOKING_NUMBER], [GUID] ASC
OPEN CURSOR_WRITE_FILE_CONTENT
FETCH NEXT FROM CURSOR_WRITE_FILE_CONTENT INTO @FILE_CONTENT_BODY_LINE
WHILE @@FETCH_STATUS = 0
BEGIN
-- Write the line into the file
PRINT '@FILE_CONTENT_BODY_LINE: ' + @FILE_CONTENT_BODY_LINE
EXECUTE @OLE_RESULT = sp_OAMethod @FILE_ID,'WriteLine',NULL,@FILE_CONTENT_BODY_LINE
-- Set Var to write into Archiv
SET @FILE_CONTENT = @FILE_CONTENT + CHAR(13) + CHAR(10) + @FILE_CONTENT_BODY_LINE
FETCH NEXT FROM CURSOR_WRITE_FILE_CONTENT INTO @FILE_CONTENT_BODY_LINE
END
CLOSE CURSOR_WRITE_FILE_CONTENT
DEALLOCATE CURSOR_WRITE_FILE_CONTENT
-- Remove filesystemobject
EXECUTE @OLE_RESULT = sp_OADestroy @FILE_ID
EXECUTE @OLE_RESULT = sp_OADestroy @FSO
-- prepare cursor to delete content lines
DECLARE CURSOR_DELETE_FILE_CONTENT CURSOR
LOCAL FAST_FORWARD FOR
SELECT [GUID]
FROM @FILE_CONTENT_BODY
OPEN CURSOR_DELETE_FILE_CONTENT
FETCH NEXT FROM CURSOR_DELETE_FILE_CONTENT INTO @GUID
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT]
WHERE [GUID] = @GUID
FETCH NEXT FROM CURSOR_DELETE_FILE_CONTENT INTO @GUID
END
CLOSE CURSOR_DELETE_FILE_CONTENT
DEALLOCATE CURSOR_DELETE_FILE_CONTENT
-- Copy file to archiv folder
SET @CMD = 'copy "' + @FILE_PATH_AND_NAME + '" "' + @FILE_PATH_ARCHIV + '"'
EXEC master..xp_cmdshell @CMD, no_output
-- If copy was successfull, move to output folder
SET @CMD = 'move "' + @FILE_PATH_AND_NAME + '" "' + @FILE_PATH_EXPORT + '"'
EXEC master..xp_cmdshell @CMD, no_output
PRINT 'File: ' + @FILE_PATH_AND_NAME + ' has been created, and moved to: ' + @FILE_PATH_EXPORT
-- Archive to DB
IF LEN(@EXPORT_BOOKING_NUMBER_ARRAY) > 0 BEGIN
EXECUTE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE_ARCHIV] @JOB_GUID, @windreamDocID, @BATCH_TIMESTAMP, @EXPORT_BOOKING_NUMBER_ARRAY, @FILE_NAME, @FILE_CONTENT;
END; ELSE BEGIN
EXECUTE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE_ARCHIV] @JOB_GUID, @windreamDocID, @BATCH_TIMESTAMP, @EXPORT_BOOKING_NUMBER, @FILE_NAME, @FILE_CONTENT;
END;
PRINT 'Data now written to archive table'
PRINT ''
PRINT 'PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA_WRITE_FILE] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT '==============================='
COMMIT TRANSACTION
END
END
END
ELSE
BEGIN
PRINT 'No rows in data table found!'
PRINT ''
PRINT 'Please check if File was already exported!'
PRINT '1. Check if windream Date [dwdate04] is set? Must be unset or 19700101! (19700101 = 1.1.1970)! '
PRINT '2. Check if windream Status [szText33] is set to "erledigt"!'
PRINT '3. Check if WF: Zahlungsfreigabe der Geschäftsführung [Vektor_Boolean_06] ist set to true/wahr, '
PRINT ' have to be false/falsch!'
PRINT ''
PRINT 'PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA_WRITE_FILE] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT '==============================='
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(50),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
--EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] @JOB_GUID, 'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE'--, CONVERT(VARCHAR(30),ERROR_PROCEDURE()), ERROR_MESSAGE
ROLLBACK TRANSACTION
RETURN 1;
END CATCH
GO

View File

@@ -0,0 +1,139 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDEX_WRITE_LOG]
-- =================================================================
-- Writes log mesages to table [TBDEX_RUN_LOG]
--
-- Returns: INTEGER; 0 = ok; 0 <> nicht ok
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH <20> Ludwig-Rinn-Strasse 16 <20> D-35452 Heuchelheim
-- Tel.: 0641/202360 <20> E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_WRITE_LOG](
@pLOG_LEVEL NVARCHAR(25),
@pPROFILE_ID BIGINT,
@pBATCH_ID NVARCHAR(25),
@pREFERENCE1 NVARCHAR(150),
@pREFERENCE2 NVARCHAR(150) = NULL,
@pREFERENCE3 NVARCHAR(150) = NULL,
@pREFERENCE4 NVARCHAR(150) = NULL,
@pREFERENCE5 NVARCHAR(150) = NULL,
@pRETURN_CODE INT,
@pMESSAGE1 NVARCHAR(max),
@pMESSAGE2 NVARCHAR(max) = NULL,
@pMESSAGE3 NVARCHAR(max) = NULL,
@pMESSAGE4 NVARCHAR(max) = NULL,
@pMESSAGE5 NVARCHAR(max) = NULL,
@pCOMMENT NVARCHAR(250) = NULL,
@pADDED_WHO NVARCHAR(50) = NULL
)
AS
BEGIN TRY
SET NOCOUNT ON;
SET XACT_ABORT ON;
-- declare new vars because of parameter sniffing
DECLARE @LOG_LEVEL NVARCHAR(25) = ISNULL(UPPER(@pLOG_LEVEL),'UNKNOWN'),
@PROFILE_ID BIGINT = @pPROFILE_ID,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@REFERENCE1 NVARCHAR(150) = ISNULL(@pREFERENCE1,'<NO REFERENCE GIVEN!>'),
@REFERENCE2 NVARCHAR(150) = @pREFERENCE2,
@REFERENCE3 NVARCHAR(150) = @pREFERENCE3,
@REFERENCE4 NVARCHAR(150) = @pREFERENCE4,
@REFERENCE5 NVARCHAR(150) = @pREFERENCE5,
@RETURN_CODE INT = ISNULL(@pRETURN_CODE,99999),
@MESSAGE1 NVARCHAR(max) = ISNULL(@pMESSAGE1,'<NO MESSAGE GIVEN!>'),
@MESSAGE2 NVARCHAR(max) = @pMESSAGE2,
@MESSAGE3 NVARCHAR(max) = @pMESSAGE3,
@MESSAGE4 NVARCHAR(max) = @pMESSAGE4,
@MESSAGE5 NVARCHAR(max) = @pMESSAGE5,
@COMMENT NVARCHAR(250) = @pCOMMENT,
@ADDED_WHO NVARCHAR(50) = ISNULL(@pADDED_WHO,OBJECT_NAME(@@PROCID));
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@ERROR_MESSAGE NVARCHAR(4000),
@ERROR_STATE INT,
@ERROR_SEVERITY INT,
@RETURN_STATUS NVARCHAR(50) = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = concat('START PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(varchar(50),GETDATE(),120)),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
--================================================-- write log if table exists --================================================--
IF NOT EXISTS (SELECT 1 FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_NAME] = N'TBDEX_RUN_LOG') BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50015;
SET @RETURN_STATUS_TEXT = concat('','');
SET @RETURN_ERROR_TEXT = concat('Cannot find target table ([TBDEX_RUN_LOG]) for logging!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--=====================================================-- Write log line --======================================================--
BEGIN TRANSACTION;
INSERT INTO [TBDEX_RUN_LOG]([LOG_LEVEL], [PROFILE_ID], [BATCH_ID], [REFERENCE1], [REFERENCE2], [REFERENCE3], [REFERENCE4], [REFERENCE5], [RETURN_CODE], [MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [MESSAGE5], [COMMENT], [ADDED_WHO], [ADDED_WHEN])
VALUES(@LOG_LEVEL, @PROFILE_ID, @BATCH_ID, @REFERENCE1, @REFERENCE2, @REFERENCE3, @REFERENCE4, @REFERENCE5, @RETURN_CODE, @MESSAGE1, @MESSAGE2, @MESSAGE3, @MESSAGE4, @MESSAGE5, @COMMENT, @ADDED_WHO, GETDATE());
IF (@@TRANCOUNT > 0) BEGIN
COMMIT TRANSACTION;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--====================================================-- exception / error --====================================================--
IF (@@TRANCOUNT > 0) BEGIN
ROLLBACK TRANSACTION;
END;
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Write to sql ERRORLOG --==================================================--
SELECT @ERROR_MESSAGE = ERROR_MESSAGE(),
@ERROR_SEVERITY = ERROR_SEVERITY(),
@ERROR_STATE = ERROR_STATE();
RAISERROR (@ERROR_MESSAGE,@ERROR_SEVERITY,@ERROR_STATE);
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;
GO

View File

@@ -0,0 +1,574 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDEX_WRITE_OUTPUT]
-- =================================================================
-- Inserts data to the Output tables
--
-- Returns: INTEGER; 0 = ok; 0 <> nicht ok
-- =================================================================
-- 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: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_WRITE_OUTPUT]
@pPROFILE_ID BIGINT,
@pTEST_MODE BIT,
@pASYNC_MODE BIT,
@pBATCH_ID NVARCHAR(25),
@pBATCH_CREATOR NVARCHAR(50),
@pLANGUAGE NVARCHAR(10),
@pLOG_LEVEL NVARCHAR(25),
@pSTART_QUERY NVARCHAR(MAX),
@pSTART_QUERY_VAR1 NVARCHAR(50),
@pSTART_QUERY_VAR2 NVARCHAR(50),
@pSTART_QUERY_VAR3 NVARCHAR(50),
@pSTART_QUERY_VAR4 NVARCHAR(50),
@pSTART_QUERY_VAR5 NVARCHAR(50),
@pMAIN_QUERY NVARCHAR(MAX),
@pMAIN_QUERY_VAR1 NVARCHAR(50),
@pMAIN_QUERY_VAR2 NVARCHAR(50),
@pMAIN_QUERY_VAR3 NVARCHAR(50),
@pMAIN_QUERY_VAR4 NVARCHAR(50),
@pMAIN_QUERY_VAR5 NVARCHAR(50),
@pEND_QUERY NVARCHAR(MAX),
@pEND_QUERY_VAR1 NVARCHAR(50),
@pEND_QUERY_VAR2 NVARCHAR(50),
@pEND_QUERY_VAR3 NVARCHAR(50),
@pEND_QUERY_VAR4 NVARCHAR(50),
@pEND_QUERY_VAR5 NVARCHAR(50),
@pFORCE BIT,
@pPROFILE_NAME NVARCHAR(50),
@pMANDANTOR NVARCHAR(50),
@pEXPORT_TYPE NVARCHAR(50),
@pEXPORT_NUMBER_SCHEMA NVARCHAR(25),
@pDEFAULT_DATA_SEPARATOR NVARCHAR(10),
@pTBDEX_TMP_TABLE_SCHEMA SYSNAME,
@pTBDEX_TMP_TABLE_NAME SYSNAME,
@pTBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150),
@pTBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX),
@pTBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX)
AS
BEGIN TRY
SET NOCOUNT ON;
-- declare new vars because of parameter sniffing
DECLARE @PROFILE_ID BIGINT = @pPROFILE_ID,
@TEST_MODE BIT = @pTEST_MODE,
@ASYNC_MODE BIT = @pASYNC_MODE,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@BATCH_CREATOR NVARCHAR(128) = ISNULL(@pBATCH_CREATOR,OBJECT_NAME(@@PROCID)),
@LANGUAGE NVARCHAR(10) = @pLANGUAGE,
@LOG_LEVEL NVARCHAR(25) = UPPER(@pLOG_LEVEL),
@START_QUERY NVARCHAR(MAX) = @pSTART_QUERY,
@START_QUERY_VAR1 NVARCHAR(50) = @pSTART_QUERY_VAR1,
@START_QUERY_VAR2 NVARCHAR(50) = @pSTART_QUERY_VAR2,
@START_QUERY_VAR3 NVARCHAR(50) = @pSTART_QUERY_VAR3,
@START_QUERY_VAR4 NVARCHAR(50) = @pSTART_QUERY_VAR4,
@START_QUERY_VAR5 NVARCHAR(50) = @pSTART_QUERY_VAR5,
@MAIN_QUERY NVARCHAR(MAX) = @pMAIN_QUERY,
@MAIN_QUERY_VAR1 NVARCHAR(50) = @pMAIN_QUERY_VAR1,
@MAIN_QUERY_VAR2 NVARCHAR(50) = @pMAIN_QUERY_VAR2,
@MAIN_QUERY_VAR3 NVARCHAR(50) = @pMAIN_QUERY_VAR3,
@MAIN_QUERY_VAR4 NVARCHAR(50) = @pMAIN_QUERY_VAR4,
@MAIN_QUERY_VAR5 NVARCHAR(50) = @pMAIN_QUERY_VAR5,
@END_QUERY NVARCHAR(MAX) = @pEND_QUERY,
@END_QUERY_VAR1 NVARCHAR(50) = @pEND_QUERY_VAR1,
@END_QUERY_VAR2 NVARCHAR(50) = @pEND_QUERY_VAR2,
@END_QUERY_VAR3 NVARCHAR(50) = @pEND_QUERY_VAR3,
@END_QUERY_VAR4 NVARCHAR(50) = @pEND_QUERY_VAR4,
@END_QUERY_VAR5 NVARCHAR(50) = @pEND_QUERY_VAR5,
@FORCE BIT = @pFORCE,
@PROFILE_NAME NVARCHAR(50) = @pPROFILE_NAME,
@MANDANTOR NVARCHAR(50) = @pMANDANTOR,
@EXPORT_TYPE NVARCHAR(50) = @pEXPORT_TYPE,
@EXPORT_NUMBER_SCHEMA NVARCHAR(25) = @pEXPORT_NUMBER_SCHEMA,
@DEFAULT_DATA_SEPARATOR NVARCHAR(50) = @pDEFAULT_DATA_SEPARATOR,
@TBDEX_TMP_TABLE_SCHEMA SYSNAME = @pTBDEX_TMP_TABLE_SCHEMA,
@TBDEX_TMP_TABLE_NAME SYSNAME = @pTBDEX_TMP_TABLE_NAME,
@TBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150) = @pTBDEX_TMP_TABLE_SCHEMA_AND_NAME,
@TBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_COLUMNS,
@TBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_DROP_QUERY,
@TBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_CREATE_QUERY,
@TBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX) = @pTBDEX_TMP_TABLE_INSERT_QUERY;
DECLARE @vTBDEX_OUT_SOURCE TABLE (
[PROFILE_ID] BIGINT,
[BATCH_ID] NVARCHAR(25),
[CONTENT] NVARCHAR(MAX),
[REFERENCE1] NVARCHAR(150),
[REFERENCE2] NVARCHAR(150),
[REFERENCE3] NVARCHAR(150),
[REFERENCE4] NVARCHAR(150),
[REFERENCE5] NVARCHAR(150),
[EXTERNAL_REFERENCE1] NVARCHAR(2000),
[EXTERNAL_REFERENCE2] NVARCHAR(2000),
[EXTERNAL_REFERENCE3] NVARCHAR(2000),
[EXTERNAL_REFERENCE4] NVARCHAR(2000),
[EXTERNAL_REFERENCE5] NVARCHAR(2000)
);
DECLARE @vTBDEX_OUT_INSERTED TABLE (
[OUT_ID] BIGINT,
[PROFILE_ID] BIGINT,
[BATCH_ID] NVARCHAR(25),
[REFERENCE1] NVARCHAR(150),
[REFERENCE2] NVARCHAR(150),
[REFERENCE3] NVARCHAR(150),
[REFERENCE4] NVARCHAR(150),
[REFERENCE5] NVARCHAR(150),
[EXTERNAL_REFERENCE1] NVARCHAR(2000),
[EXTERNAL_REFERENCE2] NVARCHAR(2000),
[EXTERNAL_REFERENCE3] NVARCHAR(2000),
[EXTERNAL_REFERENCE4] NVARCHAR(2000),
[EXTERNAL_REFERENCE5] NVARCHAR(2000)
);
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@ROW_COUNT1 INT = 0,
@QUERY_KEYWORD NVARCHAR(50) = 'QUERY',
@QUERY_SET_OUTPUT NVARCHAR(MAX) = NULL,
@PLACEHOLDER_NAME NVARCHAR(50) = NULL,
@PLACEHOLDER NVARCHAR(MAX) = NULL,
@PLACEHOLDER_TYPE NVARCHAR(10) = 'CONST',
@REFERENCE1 NVARCHAR(150) = NULL,
@REFERENCE2 NVARCHAR(150) = NULL,
@REFERENCE3 NVARCHAR(150) = NULL,
@REFERENCE4 NVARCHAR(150) = NULL,
@REFERENCE5 NVARCHAR(150) = NULL,
@RETURN_STATUS INT = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = concat('START PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(varchar(50),GETDATE(),120)),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
PRINT '====================================================================================================';
PRINT @RETURN_STATUS_TEXT;
PRINT '';
PRINT 'PARAMETER01 - @PROFILE_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_ID,'<NO-VALUE>'));
PRINT 'PARAMETER02 - @TEST_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@TEST_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER03 - @ASYNC_MODE: ' + CONVERT(NVARCHAR(50),ISNULL(@ASYNC_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER04 - @BATCH_ID: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_ID,'<NO-VALUE>'));
PRINT 'PARAMETER05 - @BATCH_CREATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@BATCH_CREATOR,'<NO-VALUE>'));
PRINT 'PARAMETER06 - @LANGUAGE: ' + CONVERT(NVARCHAR(50),ISNULL(@LANGUAGE,'<NO-VALUE>'));
PRINT 'PARAMETER07 - @LOG_LEVEL: ' + CONVERT(NVARCHAR(50),ISNULL(@LOG_LEVEL,'<NO-VALUE>'));
PRINT 'PARAMETER08 - @START_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER09 - @START_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER10 - @START_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER11 - @START_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER12 - @START_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER13 - @START_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@START_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER14 - @MAIN_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER15 - @MAIN_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER16 - @MAIN_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER17 - @MAIN_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER18 - @MAIN_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER19 - @MAIN_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@MAIN_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER20 - @END_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER21 - @END_QUERY_VAR1: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER22 - @END_QUERY_VAR2: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER23 - @END_QUERY_VAR3: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER24 - @END_QUERY_VAR4: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER25 - @END_QUERY_VAR5: ' + CONVERT(NVARCHAR(50),ISNULL(@END_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER26 - @FORCE: ' + CONVERT(NVARCHAR(50),ISNULL(@FORCE,'<NO-VALUE>'));
PRINT 'PARAMETER27 - @PROFILE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@PROFILE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER28 - @MANDANTOR: ' + CONVERT(NVARCHAR(50),ISNULL(@MANDANTOR,'<NO-VALUE>'));
PRINT 'PARAMETER29 - @EXPORT_TYPE: ' + CONVERT(NVARCHAR(50),ISNULL(@EXPORT_TYPE,'<NO-VALUE>'));
PRINT 'PARAMETER30 - @DEFAULT_DATA_SEPARATOR: ' + CONVERT(NVARCHAR(50),ISNULL(@DEFAULT_DATA_SEPARATOR,'<NO-VALUE>'));
PRINT 'PARAMETER31 - @TBDEX_TMP_TABLE_SCHEMA: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_SCHEMA,'<NO-VALUE>'));
PRINT 'PARAMETER32 - @TBDEX_TMP_TABLE_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER33 - @TBDEX_TMP_TABLE_SCHEMA_AND_NAME: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_SCHEMA_AND_NAME,'<NO-VALUE>'));
PRINT 'PARAMETER34 - @TBDEX_TMP_TABLE_COLUMNS: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_COLUMNS,'<NO-VALUE>'));
PRINT 'PARAMETER35 - @TBDEX_TMP_TABLE_DROP_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_DROP_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER36 - @TBDEX_TMP_TABLE_CREATE_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_CREATE_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER37 - @TBDEX_TMP_TABLE_INSERT_QUERY: ' + CONVERT(NVARCHAR(50),ISNULL(@TBDEX_TMP_TABLE_INSERT_QUERY,'<NO-VALUE>'));
PRINT '';
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--====================================================-- Get end sql query --====================================================--
IF (((UPPER(@END_QUERY) LIKE 'SELECT%') OR (UPPER(@END_QUERY) LIKE '%SELECT%')) AND (UPPER(@END_QUERY) LIKE '%FROM%')) BEGIN
SET @QUERY_SET_OUTPUT = LTRIM(RTRIM(@END_QUERY));
END; ELSE IF ((SELECT count(*)
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (0,@PROFILE_ID) AND [ACTIVE] = @ACTIVE_FLAG
AND LTRIM(RTRIM([PLACEHOLDER_NAME])) = @END_QUERY AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @QUERY_KEYWORD) >= 1) BEGIN
SET @QUERY_SET_OUTPUT = (SELECT TOP 1 LTRIM(RTRIM([PLACEHOLDER]))
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (@PROFILE_ID,0) AND [ACTIVE] = @ACTIVE_FLAG
AND LTRIM(RTRIM([PLACEHOLDER_NAME])) = @END_QUERY AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @QUERY_KEYWORD
ORDER BY [PROFILE_ID] ASC,[GUID] DESC);
END;
-----------------------------------------------------------------------------------------------------------------------------------
--=================================================-- Check first sql query --===================================================--
IF (LEN(@QUERY_SET_OUTPUT) < 15) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50001;
SET @RETURN_STATUS_TEXT = concat('Wrong call or configuraton!','');
SET @RETURN_ERROR_TEXT = concat('Found no valid querys (query needs to be 15 chars or more)!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found "QUERY_SET_OUTPUT" query: ',char(13),@QUERY_SET_OUTPUT);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--==============================================-- Get data separator for cols --===============================================--
IF (LEN(@DEFAULT_DATA_SEPARATOR) > 0) BEGIN
SET @TBDEX_TMP_TABLE_COLUMNS = REPLACE(@TBDEX_TMP_TABLE_COLUMNS,',',@DEFAULT_DATA_SEPARATOR)
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('The @TBDEX_TMP_TABLE_COLUMNS variable has been modified by the @DEFAULT_DATA_SEPARATOR variable: ',@TBDEX_TMP_TABLE_COLUMNS);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('The @TBDEX_TMP_TABLE_COLUMNS variable has NOT been modified by the @DEFAULT_DATA_SEPARATOR variable: ',@TBDEX_TMP_TABLE_COLUMNS);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Handle placeholders --==================================================--
PRINT 'Replacing placeholders...';
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%PROFILE_ID%',ISNULL(@PROFILE_ID,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TEST_MODE%',ISNULL(@TEST_MODE,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%ASYNC_MODE%',ISNULL(@ASYNC_MODE,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%BATCH_ID%',ISNULL(@BATCH_ID,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%BATCH_CREATOR%',ISNULL(@BATCH_CREATOR,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%LANGUAGE%',ISNULL(@LANGUAGE,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%LOG_LEVEL%',ISNULL(@LOG_LEVEL,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%START_QUERY%',ISNULL(@START_QUERY,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%START_QUERY_VAR1%',ISNULL(@START_QUERY_VAR1,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%START_QUERY_VAR2%',ISNULL(@START_QUERY_VAR2,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%START_QUERY_VAR3%',ISNULL(@START_QUERY_VAR3,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%START_QUERY_VAR4%',ISNULL(@START_QUERY_VAR4,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%START_QUERY_VAR5%',ISNULL(@START_QUERY_VAR5,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MAIN_QUERY%',ISNULL(@MAIN_QUERY,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MAIN_QUERY_VAR1%',ISNULL(@MAIN_QUERY_VAR1,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MAIN_QUERY_VAR2%',ISNULL(@MAIN_QUERY_VAR2,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MAIN_QUERY_VAR3%',ISNULL(@MAIN_QUERY_VAR3,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MAIN_QUERY_VAR4%',ISNULL(@MAIN_QUERY_VAR4,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MAIN_QUERY_VAR5%',ISNULL(@MAIN_QUERY_VAR5,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%END_QUERY%',ISNULL(@END_QUERY,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%END_QUERY_VAR1%',ISNULL(@END_QUERY_VAR1,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%END_QUERY_VAR2%',ISNULL(@END_QUERY_VAR2,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%END_QUERY_VAR3%',ISNULL(@END_QUERY_VAR3,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%END_QUERY_VAR4%',ISNULL(@END_QUERY_VAR4,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%END_QUERY_VAR5%',ISNULL(@END_QUERY_VAR5,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%FORCE%',ISNULL(@FORCE,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MY_PROCEDURE_NAME%',ISNULL(@MY_PROCEDURE_NAME,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%PROFILE_NAME%',ISNULL(@PROFILE_NAME,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%MANDANTOR%',ISNULL(@MANDANTOR,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%EXPORT_TYPE%',ISNULL(@EXPORT_TYPE,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%DEFAULT_DATA_SEPARATOR%',ISNULL(@DEFAULT_DATA_SEPARATOR,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%REFERENCE1%',ISNULL(@REFERENCE1,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%REFERENCE2%',ISNULL(@REFERENCE2,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%REFERENCE3%',ISNULL(@REFERENCE3,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%REFERENCE4%',ISNULL(@REFERENCE4,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%REFERENCE5%',ISNULL(@REFERENCE5,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TBDEX_TMP_TABLE_SCHEMA%',ISNULL(@TBDEX_TMP_TABLE_SCHEMA,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TBDEX_TMP_TABLE_NAME%',ISNULL(@TBDEX_TMP_TABLE_NAME,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TBDEX_TMP_TABLE_COLUMNS%',ISNULL(@TBDEX_TMP_TABLE_COLUMNS,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TBDEX_TMP_TABLE_DROP_QUERY%',ISNULL(@TBDEX_TMP_TABLE_DROP_QUERY,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TBDEX_TMP_TABLE_CREATE_QUERY%',ISNULL(@TBDEX_TMP_TABLE_CREATE_QUERY,''));
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,'%TBDEX_TMP_TABLE_INSERT_QUERY%',ISNULL(@TBDEX_TMP_TABLE_INSERT_QUERY,''));
DECLARE CURSOR_PLACEHOLDER CURSOR
LOCAL FAST_FORWARD FOR
SELECT [PLACEHOLDER_NAME] as 'Placeholder_Name', [PLACEHOLDER] as 'Placeholder'
FROM [TBDEX_CFG_RESOURCES]
WHERE [PROFILE_ID] IN (0,@PROFILE_ID) AND [ACTIVE] = @ACTIVE_FLAG AND LTRIM(RTRIM([PLACEHOLDER_TYPE])) = @PLACEHOLDER_TYPE
ORDER BY [SEQUENCE] ASC;
OPEN CURSOR_PLACEHOLDER
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @QUERY_SET_OUTPUT = REPLACE(@QUERY_SET_OUTPUT,concat('%',@PLACEHOLDER_NAME,'%'),ISNULL(@PLACEHOLDER,''));
FETCH NEXT FROM CURSOR_PLACEHOLDER INTO @PLACEHOLDER_NAME,@PLACEHOLDER;
END
CLOSE CURSOR_PLACEHOLDER;
DEALLOCATE CURSOR_PLACEHOLDER;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Prepared "@QUERY_SET_OUTPUT" (length: ',LEN(@QUERY_SET_OUTPUT),', preview: ',LEFT(@QUERY_SET_OUTPUT,500),')');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Safety checks --======================================================--
EXEC [PRDEX_TEST_DYNAMIC_SQL] @pQUERY = @QUERY_SET_OUTPUT,
@pRETURN_STATUS = 50054,
@pQUERY_NAME = N'@QUERY_SET_OUTPUT';
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- run insert statement --===================================================--
INSERT INTO @vTBDEX_OUT_SOURCE ([PROFILE_ID],[BATCH_ID],[CONTENT],[REFERENCE1],[REFERENCE2],[REFERENCE3],[REFERENCE4],[REFERENCE5],[EXTERNAL_REFERENCE1],[EXTERNAL_REFERENCE2],[EXTERNAL_REFERENCE3],[EXTERNAL_REFERENCE4],[EXTERNAL_REFERENCE5])
EXEC sp_executesql @QUERY_SET_OUTPUT;
-----------------------------------------------------------------------------------------------------------------------------------
BEGIN TRANSACTION;
MERGE [TBDEX_OUT] AS [T]
USING (
SELECT [SRC].[PROFILE_ID],
[SRC].[BATCH_ID],
[SRC].[CONTENT],
[SRC].[REFERENCE1],
[SRC].[REFERENCE2],
[SRC].[REFERENCE3],
[SRC].[REFERENCE4],
[SRC].[REFERENCE5],
[SRC].[EXTERNAL_REFERENCE1],
[SRC].[EXTERNAL_REFERENCE2],
[SRC].[EXTERNAL_REFERENCE3],
[SRC].[EXTERNAL_REFERENCE4],
[SRC].[EXTERNAL_REFERENCE5]
FROM @vTBDEX_OUT_SOURCE AS [SRC]
) AS [S]
ON 1 = 0
WHEN NOT MATCHED THEN
INSERT ([PROFILE_ID],[BATCH_ID],[CONTENT],[ADDED_WHO],[ADDED_WHEN])
VALUES ([S].[PROFILE_ID],[S].[BATCH_ID],[S].[CONTENT],@BATCH_CREATOR,GETDATE())
OUTPUT INSERTED.[GUID],
[S].[PROFILE_ID],
[S].[BATCH_ID],
[S].[REFERENCE1],
[S].[REFERENCE2],
[S].[REFERENCE3],
[S].[REFERENCE4],
[S].[REFERENCE5],
[S].[EXTERNAL_REFERENCE1],
[S].[EXTERNAL_REFERENCE2],
[S].[EXTERNAL_REFERENCE3],
[S].[EXTERNAL_REFERENCE4],
[S].[EXTERNAL_REFERENCE5]
INTO @vTBDEX_OUT_INSERTED ([OUT_ID],[PROFILE_ID],[BATCH_ID],[REFERENCE1],[REFERENCE2],[REFERENCE3],[REFERENCE4],[REFERENCE5],[EXTERNAL_REFERENCE1],[EXTERNAL_REFERENCE2],[EXTERNAL_REFERENCE3],[EXTERNAL_REFERENCE4],[EXTERNAL_REFERENCE5]);
IF EXISTS (
SELECT 1
FROM @vTBDEX_OUT_INSERTED AS [OI]
OUTER APPLY (
SELECT TOP 1 [TPR].[EXPORT_NUMBER]
FROM [TBDEX_TMP_PROCESS_REFERENCES] AS [TPR] WITH (SNAPSHOT)
WHERE [TPR].[PROFILE_ID] = [OI].[PROFILE_ID]
AND [TPR].[BATCH_ID] = [OI].[BATCH_ID]
AND ISNULL([TPR].[REFERENCE1],'') = ISNULL([OI].[REFERENCE1],'')
AND ISNULL([TPR].[REFERENCE2],'') = ISNULL([OI].[REFERENCE2],'')
AND ISNULL([TPR].[REFERENCE3],'') = ISNULL([OI].[REFERENCE3],'')
AND ISNULL([TPR].[REFERENCE4],'') = ISNULL([OI].[REFERENCE4],'')
AND ISNULL([TPR].[REFERENCE5],'') = ISNULL([OI].[REFERENCE5],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE1],'') = ISNULL([OI].[EXTERNAL_REFERENCE1],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE2],'') = ISNULL([OI].[EXTERNAL_REFERENCE2],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE3],'') = ISNULL([OI].[EXTERNAL_REFERENCE3],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE4],'') = ISNULL([OI].[EXTERNAL_REFERENCE4],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE5],'') = ISNULL([OI].[EXTERNAL_REFERENCE5],'')
AND [TPR].[ADDED_WHO] IN (@BATCH_CREATOR,@MY_PROCEDURE_NAME)
ORDER BY [TPR].[GUID] DESC
) AS [MAP]
WHERE [MAP].[EXPORT_NUMBER] IS NULL
) BEGIN
SET @RETURN_STATUS = 50058;
SET @RETURN_STATUS_TEXT = concat('Missing EXPORT_NUMBER mapping for output references!','');
SET @RETURN_ERROR_TEXT = concat('Could not resolve [TBDEX_TMP_PROCESS_REFERENCES].[EXPORT_NUMBER] for at least one output row.','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
END;
INSERT INTO [TBDEX_OUT_REFERENCES] ([OUT_ID],[REFERENCE1],[REFERENCE2],[REFERENCE3],[REFERENCE4],[REFERENCE5],[EXTERNAL_REFERENCE1],[EXTERNAL_REFERENCE2],[EXTERNAL_REFERENCE3],[EXTERNAL_REFERENCE4],[EXTERNAL_REFERENCE5],[EXPORT_NUMBER],[ADDED_WHO],[ADDED_WHEN])
SELECT [OI].[OUT_ID],
ISNULL([OI].[REFERENCE1],''),
[OI].[REFERENCE2],
[OI].[REFERENCE3],
[OI].[REFERENCE4],
[OI].[REFERENCE5],
LEFT([OI].[EXTERNAL_REFERENCE1],255),
LEFT([OI].[EXTERNAL_REFERENCE2],255),
LEFT([OI].[EXTERNAL_REFERENCE3],255),
LEFT([OI].[EXTERNAL_REFERENCE4],255),
LEFT([OI].[EXTERNAL_REFERENCE5],255),
[MAP].[EXPORT_NUMBER],
@BATCH_CREATOR,
GETDATE()
FROM @vTBDEX_OUT_INSERTED AS [OI]
CROSS APPLY (
SELECT TOP 1 [TPR].[EXPORT_NUMBER]
FROM [TBDEX_TMP_PROCESS_REFERENCES] AS [TPR] WITH (SNAPSHOT)
WHERE [TPR].[PROFILE_ID] = [OI].[PROFILE_ID]
AND [TPR].[BATCH_ID] = [OI].[BATCH_ID]
AND ISNULL([TPR].[REFERENCE1],'') = ISNULL([OI].[REFERENCE1],'')
AND ISNULL([TPR].[REFERENCE2],'') = ISNULL([OI].[REFERENCE2],'')
AND ISNULL([TPR].[REFERENCE3],'') = ISNULL([OI].[REFERENCE3],'')
AND ISNULL([TPR].[REFERENCE4],'') = ISNULL([OI].[REFERENCE4],'')
AND ISNULL([TPR].[REFERENCE5],'') = ISNULL([OI].[REFERENCE5],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE1],'') = ISNULL([OI].[EXTERNAL_REFERENCE1],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE2],'') = ISNULL([OI].[EXTERNAL_REFERENCE2],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE3],'') = ISNULL([OI].[EXTERNAL_REFERENCE3],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE4],'') = ISNULL([OI].[EXTERNAL_REFERENCE4],'')
AND ISNULL([TPR].[EXTERNAL_REFERENCE5],'') = ISNULL([OI].[EXTERNAL_REFERENCE5],'')
AND [TPR].[ADDED_WHO] IN (@BATCH_CREATOR,@MY_PROCEDURE_NAME)
ORDER BY [TPR].[GUID] DESC
) AS [MAP];
COMMIT TRANSACTION;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--====================================================-- exception / error --====================================================--
IF (@@TRANCOUNT > 0) BEGIN
ROLLBACK TRANSACTION;
END;
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;
GO

View File

@@ -0,0 +1,129 @@
USE [DD_ECM]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[PRDEX_START_PROFILE_EXECUTION]
@pPROFILE_ID = 2,
@pTEST_MODE = 0,
@pASYNC_MODE = 0,
@pBATCH_ID = N'4712',
@pBATCH_CREATOR = N'meSamB',
@pLANGUAGE = N'de-de',
@pLOG_LEVEL = N'info',
@pSTART_QUERY_VAR1 = 'erledigt'
SELECT 'Return Value' = @return_value
GO
SELECT * FROM [DD_ECM].[dbo].[TBDEX_RUN_LOG]
-- =========================================
-- Validation: OUT <-> OUT_REFERENCES mapping
-- =========================================
-- 1) Letzte 50 Outputs inkl. Anzahl referenzzeilen
SELECT TOP (50)
[O].[GUID] AS [OUT_ID],
[O].[PROFILE_ID],
[O].[BATCH_ID],
[O].[ADDED_WHEN],
COUNT([R].[GUID]) AS [REFERENCE_ROWS]
FROM [DD_ECM].[dbo].[TBDEX_OUT] AS [O]
LEFT JOIN [DD_ECM].[dbo].[TBDEX_OUT_REFERENCES] AS [R]
ON [R].[OUT_ID] = [O].[GUID]
GROUP BY [O].[GUID],[O].[PROFILE_ID],[O].[BATCH_ID],[O].[ADDED_WHEN]
ORDER BY [O].[GUID] DESC;
-- 2) Outputs ohne Referenzzeile (sollte 0 Zeilen liefern)
SELECT
[O].[GUID] AS [OUT_ID],
[O].[PROFILE_ID],
[O].[BATCH_ID],
[O].[ADDED_WHEN]
FROM [DD_ECM].[dbo].[TBDEX_OUT] AS [O]
LEFT JOIN [DD_ECM].[dbo].[TBDEX_OUT_REFERENCES] AS [R]
ON [R].[OUT_ID] = [O].[GUID]
WHERE [R].[GUID] IS NULL
ORDER BY [O].[GUID] DESC;
-- 3) Referenzzeilen ohne Parent (sollte 0 Zeilen liefern)
SELECT
[R].[GUID] AS [REFERENCE_ID],
[R].[OUT_ID],
[R].[EXPORT_NUMBER],
[R].[ADDED_WHEN]
FROM [DD_ECM].[dbo].[TBDEX_OUT_REFERENCES] AS [R]
LEFT JOIN [DD_ECM].[dbo].[TBDEX_OUT] AS [O]
ON [O].[GUID] = [R].[OUT_ID]
WHERE [O].[GUID] IS NULL
ORDER BY [R].[GUID] DESC;
-- delete FROM [DD_ECM].[dbo].[TBDEX_RUN_LOG]
/****
SELECT DISTINCT %PROFILE_ID% as 'PROFILE_ID',
%BATCH_ID% as 'BATCH_ID',
[BA].[dwDocID] as 'REFERENCE1',
RIGHT(LEFT(ISNULL([BA].[dwDate09],RIGHT(year(getdate()),2)),4),2) as 'REFERENCE2',
NULL as 'REFERENCE3',
NULL as 'REFERENCE4',
NULL as 'REFERENCE5',
[dbo].[FNDD_GET_WINDREAM_FILE_PATH]([BA].[dwDocID],1) as 'EXTERNAL_REFERENCE1',
NULL as 'EXTERNAL_REFERENCE2',
NULL as 'EXTERNAL_REFERENCE3',
NULL as 'EXTERNAL_REFERENCE4',
NULL as 'EXTERNAL_REFERENCE5',
%TEST_MODE% as 'TEST_MODE',
%ASYNC_MODE% as 'ASYNC_MODE',
NULL as 'COMMENT',
'%BATCH_CREATOR%' as 'ADDED_WHO',
GETDATE() as 'ADDED_WHEN'
FROM %CONST_WD_DB%.[BaseAttributes] as [BA] (NOLOCK)
INNER JOIN %CONST_WD_DB%.[Vector] as [V] (NOLOCK) ON [BA].[dwDocID] = [V].[dwDocID]
WHERE [BA].[dwDocID] is not null
and [BA].[dwCatalogID] = 1
and [BA].[szText37] in ('Eingangsrechnung-WF','Eingangsgutschrift-WF') -- Dokumentart
and [BA].[szText32] = 'Bestätigt' -- Status-Detail
and [BA].[szText33] = '%START_QUERY_VAR1%' -- Status
and ([BA].[dwDate04] is null or [BA].[dwDate04] = 19700101) -- Export-Datum
and LEFT([BA].[dwDate09],4) in (year(GETDATE()),year(GETDATE())-1,year(GETDATE())+1) -- Beleg-Datum
and ([BA].[dwInteger20] is NULL or [BA].[dwInteger20] = 0) -- Buchungsnummer
and (SELECT COUNT(*) FROM %CONST_WD_DB%.[Vector] as [V] (NOLOCK) WHERE [BA].[dwDocID] = [V].[dwDocID] and [V].[dwAttrID] = %CONST_WD_VECTOR_ID3% and [V].[blValue] = 1) > 0 --WF: Zahlungsfreigabe der Geschäftsführung
and (SELECT COUNT(*) FROM %CONST_WD_DB%.[Vector] as [V] (NOLOCK) WHERE [BA].[dwDocID] = [V].[dwDocID] and [V].[dwAttrID] = %CONST_WD_VECTOR_ID4% and [V].[blValue] = 1) = 0 --WF: Manuelle Schleupen Übergabe
ORDER BY [BA].[dwDocID] ASC;
SELECT %PROFILE_ID% as [PROFILE_ID],
%BATCH_ID% as [BATCH_ID],
'EXPORT_BOOKING_NUMBER' as [Belegnummer (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate09],8)),104),'dd.MM.yyyy') as [Belegdatum (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate07],8)),104),'dd.MM.yyyy') as [Valutadatum],
'K' as [Kontoart (X)],
REPLACE(REPLACE([szText38],';',''),' ','') as [Kontonummer (X)],
NULL as [Gegenkontoart (X)],
NULL as [Gegenkonto],
NULL as [Zusatzkontoart],
NULL as [Zusatzkonto],
TRY_CONVERT(float,[lfFloat12]) as [Betrag],
'IncomeExpensesFlag' as [S/H-Kennzeichen],
'' as [Steuerschlüssel],
REPLACE(REPLACE([szText02],';',''),CHAR(13) + CHAR(10),'') as [Buchungstext],
NULL as [Zahlungsträgerhinweis],
NULL as [Geschäftsbereich],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([decCreationTime],8)),104),'dd.MM.yyyy') as [externes Rechnungsdatum],
REPLACE([szText19],';','') as [externe Rechnungsnummer],
NULL as [Rechnungseinheit],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate06],8)),104),'dd.MM.yyyy') as [Fälligkeitsdatum],
NULL as [Skontotage 1],
NULL as [Skonto Prozent 1],
NULL as [Skontotage 2],
NULL as [Skonto Prozent 2],
[dwInteger22] as [Nettotage]
FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK)
WHERE [dwDocID] = '%REFERENCE1%'
and [szText33] = 'in Arbeit';
****/

View File

@@ -0,0 +1,46 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_CFG_OUT_DB] Script Date: 07.12.2025 23:10:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_CFG_OUT_DB](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[CONTENT_TYPE] [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_TBDEX_CFG_OUT_DB] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_DB] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_DB_ACTIVE] DEFAULT ((0)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_DB] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_DB_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_DB] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_DB_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_DB] WITH CHECK ADD CONSTRAINT [FK_TBDEX_CFG_OUT_DB_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_DB] CHECK CONSTRAINT [FK_TBDEX_CFG_OUT_DB_TBDEX_CFG_PROFILE]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_CFG_OUT_DB', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_CFG_OUT_DB_TBDEX_CFG_PROFILE'
GO

View File

@@ -0,0 +1,90 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_CFG_OUT_FILE] Script Date: 07.12.2025 23:12:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_CFG_OUT_FILE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[EXPORT_HEADER] [bit] NOT NULL,
[FILE_TYPE] [nvarchar](50) NOT NULL,
[FILE_NAME_SEPARATOR] [nvarchar](50) NOT NULL,
[FILE_DATA_SEPARATOR] [nvarchar](50) NOT NULL,
[FILE_BASE_NAME] [nvarchar](50) NOT NULL,
[FILE_COUNTER_SCHEMA] [nvarchar](50) NOT NULL,
[FILE_COUNTER] [bigint] NOT NULL,
[FILE_EXTENSION] [nvarchar](5) NOT NULL,
[FILE_PATH_TEMP] [nvarchar](255) NOT NULL,
[FILE_PATH_EXPORT] [nvarchar](255) NOT NULL,
[FILE_PATH_ARCHIV] [nvarchar](255) NOT NULL,
[FILE_PATH_ERROR] [nvarchar](255) NOT NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_CFG_OUT_FILE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_ACTIVE] DEFAULT ((0)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_EXPORT_HEADER] DEFAULT ((0)) FOR [EXPORT_HEADER]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_NAME_SEPARATOR] DEFAULT ('_') FOR [FILE_NAME_SEPARATOR]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_DATA_SEPARATOR] DEFAULT (';') FOR [FILE_DATA_SEPARATOR]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_BASE_NAME] DEFAULT ('ExportFile_') FOR [FILE_BASE_NAME]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_COUNTER_SCHEMA] DEFAULT ('YY00000') FOR [FILE_COUNTER_SCHEMA]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_COUNTER] DEFAULT ((0)) FOR [FILE_COUNTER]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_EXTENSION] DEFAULT ('CSV') FOR [FILE_EXTENSION]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_PATH_TEMP] DEFAULT ('E:\FileProcessing\Temp\File\<ProfileName>') FOR [FILE_PATH_TEMP]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_PATH_EXPORT] DEFAULT ('E:\FileProcessing\Output\File\<ProfileName>') FOR [FILE_PATH_EXPORT]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_PATH_ARCHIV] DEFAULT ('E:\FileProcessing\Archive\File\<ProfileName>') FOR [FILE_PATH_ARCHIV]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_PATH_ERROR] DEFAULT ('E:\FileProcessing\Error\File\<ProfileName>') FOR [FILE_PATH_ERROR]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_FILE_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] WITH CHECK ADD CONSTRAINT [FK_TBDEX_CFG_OUT_FILE_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_FILE] CHECK CONSTRAINT [FK_TBDEX_CFG_OUT_FILE_TBDEX_CFG_PROFILE]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_CFG_OUT_FILE', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_CFG_OUT_FILE_TBDEX_CFG_PROFILE'
GO

View File

@@ -0,0 +1,67 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_CFG_OUT_STRUCTURE] Script Date: 07.12.2025 23:14:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[DESCRIPTION] [nvarchar](500) NULL,
[EXPORT_TYPE] [nvarchar](50) NOT NULL,
[SEQUENCE] [tinyint] NOT NULL,
[PATH_OR_COLUMN] [nvarchar](500) NOT NULL,
[DATA_TYPE] [nvarchar](50) NOT NULL,
[LANGUAGE] [nvarchar](10) NOT NULL,
[COMMENT] [nvarchar](250) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_CFG_OUT_STRUCTURE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_STRUCTURE_ACTIVE] DEFAULT ((0)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_STRUCTURE_LEVEL_OR_COLUMN_NUMBER] DEFAULT ((0)) FOR [SEQUENCE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_STRUCTURE_DATA_TYPE] DEFAULT ('NVARCHAR(100)') FOR [DATA_TYPE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_STRUCTURE_LANGUAGE] DEFAULT ('de_DE') FOR [LANGUAGE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_STRUCTURE_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] ADD CONSTRAINT [DF_TBDEX_CFG_OUT_STRUCTURE_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] WITH CHECK ADD CONSTRAINT [FK_TBDEX_CFG_OUT_STRUCTURE_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] CHECK CONSTRAINT [FK_TBDEX_CFG_OUT_STRUCTURE_TBDEX_CFG_PROFILE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] WITH CHECK ADD CONSTRAINT [CK_TBDEX_CFG_OUT_STRUCTURE_EXPORT_TYPE] CHECK ((upper([DATA_TYPE])='DATETIME2' OR upper([DATA_TYPE])='DATETIME' OR upper([DATA_TYPE])='DATE' OR upper([DATA_TYPE])='FLOAT' OR upper([DATA_TYPE])='BIGINT' OR upper([DATA_TYPE])='INT' OR upper([DATA_TYPE])='TINYINT' OR upper([DATA_TYPE]) like '%VARCHAR%'))
GO
ALTER TABLE [dbo].[TBDEX_CFG_OUT_STRUCTURE] CHECK CONSTRAINT [CK_TBDEX_CFG_OUT_STRUCTURE_EXPORT_TYPE]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_CFG_OUT_STRUCTURE', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_CFG_OUT_STRUCTURE_TBDEX_CFG_PROFILE'
GO

View File

@@ -0,0 +1,66 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_CFG_PROFILE] Script Date: 07.12.2025 23:16:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_CFG_PROFILE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[ACTIVE] [bit] NOT NULL,
[PROFILE_NAME] [nvarchar](50) NOT NULL,
[DESCRIPTION] [nvarchar](250) NULL,
[MANDANTOR] [nvarchar](50) NOT NULL,
[EXPORT_TYPE] [nvarchar](50) NOT NULL,
[EXPORT_NUMBER_SCHEMA] [nvarchar](25) NOT NULL,
[DEFAULT_DATA_SEPARATOR] [nvarchar](10) NULL,
[LOG_LEVEL] [nvarchar](5) NOT NULL,
[LANGUAGE] [nvarchar](10) NOT NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_CFG_PROFILE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_ACTIVE] DEFAULT ((0)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_MANDANTOR] DEFAULT ('DEFAULT') FOR [MANDANTOR]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_EXPORT_TYPE] DEFAULT (N'DB') FOR [EXPORT_TYPE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_LOG_LEVEL] DEFAULT ('ERROR') FOR [LOG_LEVEL]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_LANGUAGE] DEFAULT ('de_DE') FOR [LANGUAGE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] ADD CONSTRAINT [DF_TBDEX_CFG_PROFILE_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] WITH CHECK ADD CONSTRAINT [CK_TBDEX_CFG_PROFILE_EXPORT_TYPE] CHECK ((upper([EXPORT_TYPE])='DB' OR upper([EXPORT_TYPE])='CSV_FILE'))
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] CHECK CONSTRAINT [CK_TBDEX_CFG_PROFILE_EXPORT_TYPE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] WITH CHECK ADD CONSTRAINT [CK_TBDEX_CFG_PROFILE_LOG_LEVEL] CHECK ((upper([LOG_LEVEL])='ERROR' OR upper([LOG_LEVEL])='WARN' OR upper([LOG_LEVEL])='INFO'))
GO
ALTER TABLE [dbo].[TBDEX_CFG_PROFILE] CHECK CONSTRAINT [CK_TBDEX_CFG_PROFILE_LOG_LEVEL]
GO

View File

@@ -0,0 +1,73 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_CFG_RESOURCES](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[SEQUENCE] [tinyint] NOT NULL,
[PLACEHOLDER_NAME] [nvarchar](50) NOT NULL,
[PLACEHOLDER_TYPE] [nvarchar](10) NOT NULL,
[PLACEHOLDER] [nvarchar](max) NOT NULL,
[ERROR_ACTION] [smallint] NULL,
[COMMENT] [nvarchar](250) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_CFG_RESOURCES] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_ACTIVE] DEFAULT ((1)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_SEQUENCE] DEFAULT ((0)) FOR [SEQUENCE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_PLACEHOLDER_NAME] DEFAULT ('DEFAULT') FOR [PLACEHOLDER_NAME]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_PLACEHOLDER_TYPE] DEFAULT ('VALUE') FOR [PLACEHOLDER_TYPE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_ERROR_ACTION] DEFAULT ((0)) FOR [ERROR_ACTION]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] ADD CONSTRAINT [DF_TBDEX_CFG_RESOURCES_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] WITH NOCHECK ADD CONSTRAINT [FK_TBDEX_CFG_RESOURCES_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] NOCHECK CONSTRAINT [FK_TBDEX_CFG_RESOURCES_TBDEX_CFG_PROFILE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] WITH CHECK ADD CONSTRAINT [CK_TBDEX_CFG_RESOURCES_PLACEHOLDER_TYPE] CHECK ((upper([PLACEHOLDER_TYPE])='QUERY' OR upper([PLACEHOLDER_TYPE])='CONST'))
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] CHECK CONSTRAINT [CK_TBDEX_CFG_RESOURCES_PLACEHOLDER_TYPE]
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] WITH CHECK ADD CONSTRAINT [CK_TBDEX_CFG_RESOURCES_ERROR_ACTION] CHECK (([ERROR_ACTION]=(0) OR [ERROR_ACTION]=(1)))
GO
ALTER TABLE [dbo].[TBDEX_CFG_RESOURCES] CHECK CONSTRAINT [CK_TBDEX_CFG_RESOURCES_ERROR_ACTION]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Fehlerbehandlung (0 = STOP; 1 = CONTINUE)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_CFG_RESOURCES', @level2type=N'COLUMN',@level2name=N'ERROR_ACTION'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_CFG_RESOURCES', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_CFG_RESOURCES_TBDEX_CFG_PROFILE'
GO

View File

@@ -0,0 +1,48 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_IN] Script Date: 07.12.2025 23:19:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_IN]
(
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[BATCH_ID] [nvarchar](25) COLLATE Latin1_General_CI_AS NOT NULL,
[REFERENCE1] [nvarchar](150) COLLATE Latin1_General_CI_AS NOT NULL,
[REFERENCE2] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE3] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE4] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE5] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE1] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE2] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE3] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE4] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE5] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[TEST_MODE] [bit] NOT NULL,
[ASYNC_MODE] [bit] NOT NULL,
[COMMENT] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[ADDED_WHO] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
CONSTRAINT [PK_TBDEX_IN] PRIMARY KEY NONCLUSTERED
(
[GUID] ASC
)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
GO
ALTER TABLE [dbo].[TBDEX_IN] ADD CONSTRAINT [DF_TBDEX_IN_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_IN] ADD CONSTRAINT [DF_TBDEX_IN_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_IN] ADD INDEX [IX_TBDEX_IN_PROFILE_BATCH] NONCLUSTERED ([PROFILE_ID],[BATCH_ID]);
GO

View File

@@ -0,0 +1,50 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_OUT] Script Date: 07.12.2025 13:25:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_OUT](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[BATCH_ID] [nvarchar](25) NOT NULL,
[CONTENT] [nvarchar](max) NOT NULL,
[EXPORT_FILE_NAME] [nvarchar](100) NULL,
[EXPORT_FILE_HASH_TYPE] [nvarchar](25) NULL,
[EXPORT_FILE_HASH_VALUE] [nvarchar](250) NULL,
[EXPORT_WHEN] [datetime] NULL,
[EXPORT_STATUS] [tinyint] NULL,
[EXPORT_STATUS_MESSAGE] [nvarchar](max) NULL,
[COMMENT] [nvarchar](max) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_OUT] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_OUT] ADD CONSTRAINT [DF_TBDEX_OUT_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_OUT] ADD CONSTRAINT [DF_TBDEX_OUT_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_OUT] WITH CHECK ADD CONSTRAINT [FK_TBDEX_OUT_TBDEX_CONFIG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_OUT] CHECK CONSTRAINT [FK_TBDEX_OUT_TBDEX_CONFIG_PROFILE]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_OUT', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_OUT_TBDEX_CONFIG_PROFILE'
GO

View File

@@ -0,0 +1,52 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_OUT_REFERENCES] Script Date: 07.12.2025 23:23:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_OUT_REFERENCES](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[OUT_ID] [bigint] NOT NULL,
[REFERENCE1] [nvarchar](150) NOT NULL,
[REFERENCE2] [nvarchar](150) NULL,
[REFERENCE3] [nvarchar](150) NULL,
[REFERENCE4] [nvarchar](150) NULL,
[REFERENCE5] [nvarchar](150) NULL,
[EXTERNAL_REFERENCE1] [nvarchar](255) NULL,
[EXTERNAL_REFERENCE2] [nvarchar](255) NULL,
[EXTERNAL_REFERENCE3] [nvarchar](255) NULL,
[EXTERNAL_REFERENCE4] [nvarchar](255) NULL,
[EXTERNAL_REFERENCE5] [nvarchar](255) NULL,
[EXPORT_NUMBER] [nvarchar](50) NOT NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_OUT_REFERENCES] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_OUT_REFERENCES] ADD CONSTRAINT [DF_TBDEX_OUT_REFERENCES_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_OUT_REFERENCES] ADD CONSTRAINT [DF_TBDEX_OUT_REFERENCES_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_OUT_REFERENCES] WITH CHECK ADD CONSTRAINT [FK_TBDEX_OUT_REFERENCES_TBDEX_OUT] FOREIGN KEY([OUT_ID])
REFERENCES [dbo].[TBDEX_OUT] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_OUT_REFERENCES] CHECK CONSTRAINT [FK_TBDEX_OUT_REFERENCES_TBDEX_OUT]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link OUT_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_OUT_REFERENCES', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_OUT_REFERENCES_TBDEX_OUT'
GO

View File

@@ -0,0 +1,75 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_RUN_LOG] Script Date: 07.12.2025 23:25:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_RUN_LOG](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[BATCH_ID] [nvarchar](25) NULL,
[LOG_LEVEL] [nvarchar](25) NOT NULL,
[REFERENCE1] [nvarchar](150) NULL,
[REFERENCE2] [nvarchar](150) NULL,
[REFERENCE3] [nvarchar](150) NULL,
[REFERENCE4] [nvarchar](150) NULL,
[REFERENCE5] [nvarchar](150) NULL,
[RETURN_CODE] [int] NOT NULL,
[MESSAGE1] [nvarchar](max) NOT NULL,
[MESSAGE2] [nvarchar](max) NULL,
[MESSAGE3] [nvarchar](max) NULL,
[MESSAGE4] [nvarchar](max) NULL,
[MESSAGE5] [nvarchar](max) NULL,
[COMMENT] [nvarchar](250) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
CONSTRAINT [PK_TBDEX_RUN_LOG_GUID] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (DATA_COMPRESSION = PAGE, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] ADD CONSTRAINT [DF_TBDEX_RUN_LOG_REFERENCE1] DEFAULT ((0)) FOR [PROFILE_ID]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] ADD CONSTRAINT [DF_TBDEX_RUN_LOG_LOG_LEVEL] DEFAULT ('UNKNOWN') FOR [LOG_LEVEL]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] ADD CONSTRAINT [DF_TBDEX_RUN_LOG_RETURN_CODE] DEFAULT ((0)) FOR [RETURN_CODE]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] ADD CONSTRAINT [DF_TBDEX_RUN_LOG_MESSAGE1] DEFAULT ('NO MESSAGE GIVEN') FOR [MESSAGE1]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] ADD CONSTRAINT [DF_TBDEX_RUN_LOG_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] ADD CONSTRAINT [DF_TBDEX_RUN_LOG_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] WITH CHECK ADD CONSTRAINT [FK_TBDEX_RUN_LOG_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_RUN_LOG] CHECK CONSTRAINT [FK_TBDEX_RUN_LOG_TBDEX_CFG_PROFILE]
GO
CREATE NONCLUSTERED INDEX [IX_TBDEX_RUN_LOG_PROFILE_BATCH] ON [dbo].[TBDEX_RUN_LOG]
(
[PROFILE_ID] ASC,
[BATCH_ID] ASC,
[ADDED_WHEN] DESC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_RUN_LOG', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_RUN_LOG_TBDEX_CFG_PROFILE'
GO

View File

@@ -0,0 +1,52 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_RUN_NUMBER_RANGE] Script Date: 07.12.2025 23:26:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_RUN_NUMBER_RANGE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[ACTIVE] [bit] NOT NULL,
[DESCRIPTION] [nvarchar](50) NULL,
[EXPORT_NUMBER_SCHEMA] [nvarchar](25) NOT NULL,
[EXPORT_NUMBER_COUNTER] [bigint] NOT NULL,
[EXPORT_NUMBER] [nvarchar](25) NOT NULL,
[VALID_FROM] [date] NULL,
[VALID_TO] [date] NULL,
[COMMENT] [nvarchar](250) NULL,
[ADDED_WHO] [nvarchar](50) NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_RUN_NUMBER_RANGE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_RUN_NUMBER_RANGE] ADD CONSTRAINT [DF_TBDEX_RUN_NUMBER_RANGE_ACTIVE] DEFAULT ((0)) FOR [ACTIVE]
GO
ALTER TABLE [dbo].[TBDEX_RUN_NUMBER_RANGE] ADD CONSTRAINT [DF_TBDEX_RUN_NUMBER_RANGE_ADDED_WHO] DEFAULT ('DD_ECM DB-Internal') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_RUN_NUMBER_RANGE] ADD CONSTRAINT [DF_TBDEX_RUN_NUMBER_RANGE_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_RUN_NUMBER_RANGE] WITH CHECK ADD CONSTRAINT [FK_TBDEX_RUN_NUMBER_RANGE_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_RUN_NUMBER_RANGE] CHECK CONSTRAINT [FK_TBDEX_RUN_NUMBER_RANGE_TBDEX_CFG_PROFILE]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Link PROFILE_ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TBDEX_RUN_NUMBER_RANGE', @level2type=N'CONSTRAINT',@level2name=N'FK_TBDEX_RUN_NUMBER_RANGE_TBDEX_CFG_PROFILE'
GO

View File

@@ -0,0 +1,32 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_RUN_PROFILE] Script Date: 07.12.2025 23:26:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_RUN_PROFILE](
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[FIRST_RUN] [datetime] NULL,
[LAST_RUN] [datetime] NULL,
[LAST_BATCH_ID] [nvarchar](25) NULL,
[LAST_RESULT] [nvarchar](250) NULL
CONSTRAINT [PK_TBDEX_RUN_PROFILE] PRIMARY KEY CLUSTERED
(
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBDEX_RUN_PROFILE] WITH CHECK ADD CONSTRAINT [FK_TBDEX_RUN_PROFILE_TBDEX_CFG_PROFILE] FOREIGN KEY([PROFILE_ID])
REFERENCES [dbo].[TBDEX_CFG_PROFILE] ([GUID])
GO
ALTER TABLE [dbo].[TBDEX_RUN_PROFILE] CHECK CONSTRAINT [FK_TBDEX_RUN_PROFILE_TBDEX_CFG_PROFILE]
GO

View File

@@ -0,0 +1,46 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_TMP_PROCESS] Script Date: 07.12.2025 23:29:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_TMP_PROCESS]
(
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[BATCH_ID] [nvarchar](25) COLLATE Latin1_General_CI_AS NOT NULL,
[TBDEX_TMP_TABLE_SCHEMA] [nvarchar](15) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_NAME] [nvarchar](128) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_SCHEMA_AND_NAME] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_COLUMNS] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_DROP_QUERY] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_CREATE_QUERY] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_INSERT_QUERY] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[TBDEX_TMP_TABLE_CONTENT] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[COMMENT] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[ADDED_WHO] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PK_TBDEX_TMP_PROCESS] PRIMARY KEY NONCLUSTERED
(
[GUID] ASC
)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
GO
ALTER TABLE [dbo].[TBDEX_TMP_PROCESS] ADD CONSTRAINT [DF_TBDEX_TMP_PROCESS_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_TMP_PROCESS] ADD CONSTRAINT [DF_TBDEX_TMP_PROCESS_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_TMP_PROCESS] ADD INDEX [IX_TBDEX_TMP_PROCESS_PROFILE_BATCH] NONCLUSTERED ([PROFILE_ID],[BATCH_ID]);
GO

View File

@@ -0,0 +1,48 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_TMP_PROCESS_REFERENCES] Script Date: 07.12.2025 23:29:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_TMP_PROCESS_REFERENCES]
(
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[BATCH_ID] [nvarchar](25) COLLATE Latin1_General_CI_AS NOT NULL,
[REFERENCE1] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE2] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE3] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE4] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[REFERENCE5] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE1] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE2] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE3] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE4] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXTERNAL_REFERENCE5] [nvarchar](2000) COLLATE Latin1_General_CI_AS NULL,
[EXPORT_NUMBER_COUNTER] [bigint] NULL,
[EXPORT_NUMBER] [nvarchar](25) COLLATE Latin1_General_CI_AS NULL,
[COMMENT] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[ADDED_WHO] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
CONSTRAINT [PK_TBDEX_TMP_PROCESS_REFERENCES] PRIMARY KEY NONCLUSTERED
(
[GUID] ASC
)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
GO
ALTER TABLE [dbo].[TBDEX_TMP_PROCESS_REFERENCES] ADD CONSTRAINT [DF_TBDEX_TMP_PROCESS_REFERENCES_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_TMP_PROCESS_REFERENCES] ADD CONSTRAINT [DF_TBDEX_TMP_PROCESS_REFERENCES_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_TMP_PROCESS_REFERENCES] ADD INDEX [IX_TBDEX_TMP_PROCESS_REFERENCES_PROFILE_BATCH] NONCLUSTERED ([PROFILE_ID],[BATCH_ID]);
GO

View File

@@ -0,0 +1,37 @@
USE [DD_ECM]
GO
/****** Object: Table [dbo].[TBDEX_TMP_QUERY] Script Date: 07.12.2025 23:30:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBDEX_TMP_QUERY]
(
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
[PROFILE_ID] [bigint] NOT NULL,
[BATCH_ID] [nvarchar](25) COLLATE Latin1_General_CI_AS NOT NULL,
[QUERY] [nvarchar](max) COLLATE Latin1_General_CI_AS NOT NULL,
[COMMENT] [nvarchar](150) COLLATE Latin1_General_CI_AS NULL,
[ADDED_WHO] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
CONSTRAINT [PK_TBDEX_TMP_QUERY] PRIMARY KEY NONCLUSTERED
(
[GUID] ASC
)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
GO
ALTER TABLE [dbo].[TBDEX_TMP_QUERY] ADD CONSTRAINT [DF_TBDEX_TMP_QUERY_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO]
GO
ALTER TABLE [dbo].[TBDEX_TMP_QUERY] ADD CONSTRAINT [DF_TBDEX_TMP_QUERY_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBDEX_TMP_QUERY] ADD INDEX [IX_TBDEX_TMP_QUERY_PROFILE_BATCH] NONCLUSTERED ([PROFILE_ID],[BATCH_ID]);
GO

View File

@@ -0,0 +1,58 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [VWDEX_OUT]
-- =================================================================
-- Vereint die Datenabfragen aus der OUTPUT und OUTPUT Reference TB
--
-- Returns: SQL table
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH <20> Ludwig-Rinn-Strasse 16 <20> D-35452 Heuchelheim
-- Tel.: 0641/202360 <20> E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 28.02.2025 / MK
-- Version Date / Editor: 28.02.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
CREATE OR ALTER VIEW [dbo].[VWDEX_OUT]
as
SELECT
[O].[GUID],
[O].[PROFILE_ID],
[O].[BATCH_ID],
[O].[CONTENT],
[O].[EXPORT_FILE_NAME],
[O].[EXPORT_FILE_HASH_TYPE],
[O].[EXPORT_FILE_HASH_VALUE],
[O].[EXPORT_WHEN],
[O].[EXPORT_STATUS],
[O].[EXPORT_STATUS_MESSAGE],
[O].[COMMENT],
[O].[ADDED_WHO],
[O].[ADDED_WHEN],
[O].[CHANGED_WHO],
[O].[CHANGED_WHEN],
[OR].[EXPORT_NUMBER],
[OR].[REFERENCE1],
[OR].[REFERENCE2],
[OR].[REFERENCE3],
[OR].[REFERENCE4],
[OR].[REFERENCE5],
[OR].[EXTERNAL_REFERENCE1],
[OR].[EXTERNAL_REFERENCE2],
[OR].[EXTERNAL_REFERENCE3],
[OR].[EXTERNAL_REFERENCE4],
[OR].[EXTERNAL_REFERENCE5]
FROM [TBDEX_OUT] AS [O]
INNER JOIN [TBDEX_OUT_REFERENCES] AS [OR] ON [O].[GUID] = [OR].[OUT_ID];
GO

View File

@@ -0,0 +1,32 @@
CREATE OR ALTER VIEW [VWDEX_PROFILE]
as
SELECT
[CFG_PROFILE].[GUID],
[CFG_PROFILE].[ACTIVE],
[CFG_PROFILE].[PROFILE_NAME],
[CFG_PROFILE].[DESCRIPTION],
[CFG_PROFILE].[MANDANTOR],
[CFG_PROFILE].[EXPORT_TYPE],
[CFG_PROFILE].[EXPORT_NUMBER_SCHEMA],
[CFG_PROFILE].[DEFAULT_DATA_SEPARATOR],
CASE
WHEN [CFG_PROFILE].[LOG_LEVEL] IS NULL -- In case of using the LOG_LEVEL Parameter
THEN 'INFO'
WHEN [CFG_PROFILE].[LOG_LEVEL] NOT IN ('INFO','WARN','ERROR')
THEN 'INFO'
ELSE [CFG_PROFILE].[LOG_LEVEL]
END as 'LOG_LEVEL',
[CFG_PROFILE].[LANGUAGE],
[CFG_PROFILE].[ADDED_WHO],
[CFG_PROFILE].[ADDED_WHEN],
[CFG_PROFILE].[CHANGED_WHO],
[CFG_PROFILE].[CHANGED_WHEN],
[RUN_PROFILE].[FIRST_RUN],
[RUN_PROFILE].[LAST_RUN],
[RUN_PROFILE].[LAST_BATCH_ID],
[RUN_PROFILE].[LAST_RESULT]
FROM [TBDEX_CFG_PROFILE] as [CFG_PROFILE]
LEFT JOIN [TBDEX_RUN_PROFILE] as [RUN_PROFILE] ON [CFG_PROFILE].[GUID] = [RUN_PROFILE].[PROFILE_ID];

View File

@@ -0,0 +1,22 @@
CREATE OR ALTER VIEW [VWDEX_RESOURCES]
as
SELECT [CFG_RESOURCES].[GUID],
[CFG_RESOURCES].[PROFILE_ID],
[CFG_RESOURCES].[ACTIVE],
[CFG_RESOURCES].[SEQUENCE],
[CFG_RESOURCES].[PLACEHOLDER_NAME],
[CFG_RESOURCES].[PLACEHOLDER_TYPE],
[CFG_RESOURCES].[PLACEHOLDER],
CASE
WHEN [CFG_RESOURCES].[ERROR_ACTION] = 0
THEN 'STOP'
WHEN [CFG_RESOURCES].[ERROR_ACTION] = 1
THEN 'CONTINUE'
ELSE 'UNDEFINED'
END as 'ERROR_ACTION',
[CFG_RESOURCES].[COMMENT],
[CFG_RESOURCES].[ADDED_WHO],
[CFG_RESOURCES].[ADDED_WHEN],
[CFG_RESOURCES].[CHANGED_WHO],
[CFG_RESOURCES].[CHANGED_WHEN]
FROM [dbo].[TBDEX_CFG_RESOURCES] as [CFG_RESOURCES];