@@ -1,20 +1,18 @@
USE [ DD_ECM ]
GO
Object StoredProcedure [ dbo ] . [ PRCUST_EXPORT_POSTING_DATA ] Script Date 21 . 03 . 2024 155901
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Prozedur - Zentrale Logik zur Erstellung der Schnittstellendatei für Schleupen.
-- Stand MK 04 .02 .2022
-- 04 .02 .2022 Änderung des Dateinamensschemas - es wird nun die Buchungsnummer in den Dateinamen geschrieben und nicht mehr die Export Zählernummer
-- 27.11.2021 Erweiterung der Logik, um die Möglichkeit EXPORT_BOOKING_NUMBERs gemischt aus diesem und dem nächsten Jahr (- Unter schiedliche Nummernkreise!) zu erstellen (Basis ist das windream Belegdatum)
-- 31.0 1.2021 Initial
-- MK // 27 .09 .2024
-- 27 .09 .2024 MK Implementierung, um doppelte Nummernvergabe zu verhindern
-- 04.02.2022 MK Änderung des Dateinamensschemas - es wird nun die Buchungsnummer in den Dateinamen ge schr ieben und nicht mehr die Export Zählernummer
-- 27.1 1.2021 MK Erweiterung der Logik, um die Möglichkeit "EXPORT_BOOKING_NUMBERs" gemischt aus diesem und dem nächsten Jahr (-> Unterschiedliche Nummernkreise!) zu erstellen (Basis ist das windream Belegdatum)
-- 31.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;
@@ -30,7 +28,7 @@ GO
-- RECONFIGURE WITH OVERRIDE
-- GO
CREATE PROCEDURE [ dbo ] . [ PRCUST_EXPORT_POSTING_DATA ]
CREATE OR ALTER PROCEDURE [ dbo ] . [ PRCUST_EXPORT_POSTING_DATA ]
@ JOB_GUID INT ,
@ windreamDocID BIGINT ,
@ windreamStatus VARCHAR ( 20 ) = ' erledigt ' ,
@@ -39,10 +37,10 @@ AS
PRINT ' =============================== '
PRINT ' PROCEDURE - START [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT ( varchar ( 50 ) , GETDATE ( ) , 120 )
PRINT ' PARAMETER1 - @JOB_GUID ' + CONVERT ( varchar ( 50 ) , @ JOB_GUID )
PRINT ' PARAMETER2 - @windreamDocID ' + CONVERT ( varchar ( 50 ) , @ windreamDocID )
PRINT ' PARAMETER3 - @windreamStatus ' + CONVERT ( varchar ( 50 ) , @ windreamStatus )
PRINT ' PARAMETER4 - @windreamExportDate ' + CONVERT ( varchar ( 50 ) , @ windreamExportDate )
PRINT ' PARAMETER1 - @JOB_GUID: ' + CONVERT ( varchar ( 50 ) , @ JOB_GUID )
PRINT ' PARAMETER2 - @windreamDocID: ' + CONVERT ( varchar ( 50 ) , @ windreamDocID )
PRINT ' PARAMETER3 - @windreamStatus: ' + CONVERT ( varchar ( 50 ) , @ windreamStatus )
PRINT ' PARAMETER4 - @windreamExportDate: ' + CONVERT ( varchar ( 50 ) , @ windreamExportDate )
BEGIN TRY
@@ -65,12 +63,12 @@ BEGIN TRY
- - = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -- There should be exact one file --===============================================--
( SELECT @ FileCount = count ( )
FROM [ windream60 ] . [ dbo ] . [ BaseAttributes ]
( SELECT @ FileCount = count ( * )
FROM [ windream60 ] . [ dbo ] . [ BaseAttributes ] ( NOLOCK )
WHERE [ dwDocID ] = @ windreamDocID
and [ szText33 ] = @ windreamStatus
and ( ( [ dwDate04 ] = @ windreamExportDate )
OR ( [ dwDate04 ] = ' 19700101 ' ) -- Dummy Value, because PM FinalIndex cannot handle NUll as Result in case of Angehalten or Abgelehnt
OR ( [ dwDate04 ] = ' 19700101 ' ) -- Dummy Value, because PM FinalIndex cannot handle NUll as Result in case of " Angehalten" or " Abgelehnt"
OR ( [ dwDate04 ] IS NULL ) ) )
IF ( ( @ windreamStatus = ' erledigt ' ) and ( @ FileCount = 1 ) )
@@ -80,24 +78,23 @@ BEGIN TRY
SELECT @ JOB_NAME = [ JOB_NAME ] ,
@ MANDATOR = [ MANDANTOR ] ,
@ EXPORT_TYPE = [ EXPORT_TYPE ]
FROM [ TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG ]
FROM [ TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG ] ( NOLOCK )
WHERE [ GUID ] = @ JOB_GUID
- - = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -- Get windream File Indices --=============================================--
SELECT @ DocumentDate = [ dwDate09 ] -- = Needed for setting Booking Number
FROM [ windream60 ] . [ dbo ] . [ BaseAttributes ]
FROM [ windream60 ] . [ dbo ] . [ BaseAttributes ] ( NOLOCK )
WHERE [ dwDocID ] = @ windreamDocID
- - = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -- Get File config infos --===============================================--
SELECT @ GUID = [ GUID ] ,
@ EXPORT_BOOKING_NUMBER_BASE = [ EXPORT_BOOKING_NUMBER_BASE ] ,
@ EXPORT_BOOKING_NUMBER_COUNTER = [ EXPORT_BOOKING_NUMBER_COUNTER ]
FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG ]
@ EXPORT_BOOKING_NUMBER_BASE = [ EXPORT_BOOKING_NUMBER_BASE ]
FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG ] ( NOLOCK )
WHERE [ JOB_GUID ] = @ JOB_GUID
- - = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -- Get and Set Booking Number --===============================================--
IF ( @ DocumentDate IS NOT NULL )
BEGIN -- If windream Belegdatum is set, take year as base value
BEGIN -- If " windream Belegdatum" is set, take year as base value
SET @ DATE_YY = RIGHT ( LEFT ( @ DocumentDate , 4 ) , 2 )
END
ELSE
@@ -107,18 +104,40 @@ BEGIN TRY
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
PRINT 'Searching for existing numbers in temp table...'
IF ( SELECT COUNT ( * ) FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_TEMP ] ( NOLOCK ) WHERE [ JOB_GUID ] = @ JOB_GUID AND [ ADDED_WHO ] = ' [PRCUST_EXPORT_POSTING_DATA] ' ) > 0
BEGIN
SELECT TOP 1 @ EXPORT_BOOKING_NUMBER_COUNTER = [ EXPORT_BOOKING_NUMBER_COUNTER ]
FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_TEMP ] ( NOLOCK )
WHERE [ JOB_GUID ] = @ JOB_GUID
AND [ ADDED_WHO ] = ' [PRCUST_EXPORT_POSTING_DATA] '
ORDER BY [ EXPORT_BOOKING_NUMBER ] DESC
PRINT ' Found value in temp table! '
END
ELSE
BEGIN
SELECT @ EXPORT_BOOKING_NUMBER_COUNTER = [ EXPORT_BOOKING_NUMBER_COUNTER ]
FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG ] ( NOLOCK )
WHERE [ JOB_GUID ] = @ JOB_GUID
PRINT ' Nothing found in temp table using config table! '
END
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
PRINT 'Searching for existing numbers in history table...'
PRINT ( convert ( varchar ( 2 ) , @ DATE_YY ) + ' % ' )
-- Check histr oy table if there are numbers with same prefix (= the year)
-- Check histor y table if there are numbers with same prefix (= the year)
SELECT @ EXPORT_BOOKING_NUMBER_MAXCOUNT = MAX ( EXPORT_BOOKING_NUMBER )
FROM [ DD_ECM ] . [ dbo ] . [ TBCUST_EXPORT_POSTING_DATA_FILE_ARCHIV]
FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_ARCHIV ] ( NOLOCK )
WHERE [ EXPORT_BOOKING_NUMBER ] LIKE ( convert ( varchar ( 2 ) , @ DATE_YY ) + ' % ' )
IF ( @ EXPORT_BOOKING_NUMBER_MAXCOUNT IS NOT NULL )
BEGIN
PRINT ' Highest number found ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_MAXCOUNT )
PRINT ' Highest number found: ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_MAXCOUNT )
SET @ EXPORT_BOOKING_NUMBER = CONVERT ( INT , @ EXPORT_BOOKING_NUMBER_MAXCOUNT )
SET @ EXPORT_BOOKING_NUMBER = CONVERT ( INT , @ EXPORT_BOOKING_NUMBER )
@@ -135,13 +154,13 @@ BEGIN TRY
END
PRINT ' '
PRINT ' @EXPORT_BOOKING_NUMBER_BASE ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_BASE )
PRINT ' @EXPORT_BOOKING_NUMBER_BASENOW ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_BASE_NOW )
PRINT ' @EXPORT_BOOKING_NUMBER_COUNTER ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_COUNTER )
PRINT ' @EXPORT_BOOKING_NUMBER_BASE: ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_BASE )
PRINT ' @EXPORT_BOOKING_NUMBER_BASENOW: ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_BASE_NOW )
PRINT ' @EXPORT_BOOKING_NUMBER_COUNTER: ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_COUNTER )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
-- If Booking number base (like 2100000) is not the initial value
IF ( @ EXPORT_BOOKING_NUMBER_BASE @ EXPORT_BOOKING_NUMBER_BASE_NOW )
IF ( @ EXPORT_BOOKING_NUMBER_BASE < > @ EXPORT_BOOKING_NUMBER_BASE_NOW )
BEGIN
SET @ EXPORT_BOOKING_NUMBER_BASE = @ EXPORT_BOOKING_NUMBER_BASE_NOW
Update [ TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG ]
@@ -149,10 +168,11 @@ BEGIN TRY
WHERE JOB_GUID = @ JOB_GUID
END ;
PRINT ' @EXPORT_BOOKING_NUMBER_BASE (final) ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_BASE )
PRINT ' @EXPORT_BOOKING_NUMBER_BASE (final): ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_BASE )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
SET @EXPORT_BOOKING_NUMBER_COUNTER = convert(bigint,@EXPORT_BOOKING_NUMBER_COUNTER)
IF ( @ EXPORT_BOOKING_NUMBER_COUNTER = 0 ) or ( @ EXPORT_BOOKING_NUMBER_COUNTER is null )
IF ( @ EXPORT_BOOKING_NUMBER_COUNTER < = 0 ) or ( @ EXPORT_BOOKING_NUMBER_COUNTER is null )
BEGIN
SET @ EXPORT_BOOKING_NUMBER_COUNTER = 1
Update [ TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG ]
@@ -169,22 +189,27 @@ BEGIN TRY
WHERE JOB_GUID = @ JOB_GUID
END ;
PRINT ' @EXPORT_BOOKING_NUMBER_COUNTER ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_COUNTER )
PRINT ' @EXPORT_BOOKING_NUMBER_COUNTER: ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER_COUNTER )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
IF (@EXPORT_BOOKING_NUMBER_BASE = 1) and (@EXPORT_BOOKING_NUMBER_COUNTER = 1)
IF (@EXPORT_BOOKING_NUMBER_BASE > = 1) and (@EXPORT_BOOKING_NUMBER_COUNTER > = 1)
BEGIN
SET @ EXPORT_BOOKING_NUMBER = convert ( bigint , @ EXPORT_BOOKING_NUMBER_BASE ) + convert ( bigint , @ EXPORT_BOOKING_NUMBER_COUNTER )
END
ELSE
SET @ EXPORT_BOOKING_NUMBER = ' 9999999 ' ;
PRINT ' @EXPORT_BOOKING_NUMBER (final) ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER )
PRINT ' @EXPORT_BOOKING_NUMBER (final): ' + convert ( varchar ( 100 ) , @ EXPORT_BOOKING_NUMBER )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
--=============================================-- Fill temp table for busy check --=============================================--
INSERT INTO [ TBCUST_EXPORT_POSTING_DATA_FILE_TEMP ] ( [ JOB_GUID ] , [ DOCID ] , [ EXPORT_BOOKING_NUMBER_COUNTER ] , [ EXPORT_BOOKING_NUMBER ] , [ COMMENT ] , [ ADDED_WHO ] , [ ADDED_WHEN ] )
VALUES ( @ JOB_GUID , @ windreamDocID , @ EXPORT_BOOKING_NUMBER_COUNTER , @ EXPORT_BOOKING_NUMBER , NULL , ' [PRCUST_EXPORT_POSTING_DATA] ' , GETDATE ( ) )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
--===============================================-- Fill table with content --===============================================--
INSERT INTO [ TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT ]
( [ FILE_CONFIG_GUID ] ,
[ FILE_CONTENT ] )
INSERT INTO [ TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT ] ( [ FILE_CONFIG_GUID ] , [ FILE_CONTENT ] )
SELECT @ GUID , [ FILE_CONTENT_BODY ]
FROM [ FNCUST_FORMAT - EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN ] ( @ JOB_GUID , @ EXPORT_BOOKING_NUMBER , @ windreamDocID , @ windreamStatus , @ windreamExportDate )
@@ -196,6 +221,17 @@ BEGIN TRY
PRINT ' PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT ( varchar ( 50 ) , GETDATE ( ) , 120 )
PRINT ' =============================== '
- - = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -- Clear temp table for busy check --=============================================--
DELETE
FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_TEMP ]
WHERE [ JOB_GUID ] = @ JOB_GUID
AND [ DOCID ] = @ windreamDocID
AND [ EXPORT_BOOKING_NUMBER_COUNTER ] = @ EXPORT_BOOKING_NUMBER_COUNTER
AND [ EXPORT_BOOKING_NUMBER ] = @ EXPORT_BOOKING_NUMBER
AND [ ADDED_WHO ] = ' [PRCUST_EXPORT_POSTING_DATA] '
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
END
ELSE
@@ -203,16 +239,16 @@ BEGIN TRY
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 truewahr, '
PRINT ' have to be falsefalsch! '
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] @ ' + CONVERT ( varchar ( 50 ) , GETDATE ( ) , 120 )
PRINT ' =============================== '
RETURN 1 -- IF @windreamStatus 'erledigt'
RETURN 1 -- IF @windreamStatus <> 'erledigt'
END
END TRY
@@ -223,12 +259,9 @@ BEGIN CATCH
- - FROM [ TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT ]
- - WHERE [ FILE_CONFIG_GUID ] = @ GUID
PRINT ' ERROR IN PROCEDURE ' + CONVERT ( VARCHAR ( 50 ) , ERROR_PROCEDURE ( ) )
+ ' - ERROR-MESSAGE '
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
- - 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
RETURN 1
END CATCH
GO