Initial
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
Object StoredProcedure [dbo].[PRCUST_ADD_HISTORY_STATE] Script Date 21.03.2024 155749
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[PRCUST_ADD_HISTORY_STATE] @MessageID VARCHAR(250), @TITLE1 VARCHAR(250), @TITLE2 VARCHAR(250), @COMMENT VARCHAR(3000) = 0
|
||||
AS
|
||||
BEGIN
|
||||
INSERT INTO TBEMLP_HISTORY_STATE
|
||||
(MESSAGE_ID,STATE_TITLE,STATE_TITLE1,COMMENT) VALUES (@MessageID,@TITLE1,@TITLE2,@COMMENT)
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[PRCUST_EML_ATTMT_HANDLER] Script Date: 21.03.2024 15:58:22 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
---- 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
|
||||
|
||||
-- =======================================================
|
||||
-- Author: Digital Data, MS MK
|
||||
-- Create Date: 19.11.2020
|
||||
-- Überprüft alle unbearbeiteten Attachments und prüft die Vollständigkeit der Anlagen
|
||||
-- =======================================================
|
||||
CREATE PROCEDURE [dbo].[PRCUST_EML_ATTMT_HANDLER] AS
|
||||
|
||||
PRINT '==============================='
|
||||
PRINT 'PROCEDURE - START PRCUST_EML_ATTMT_HANDLER @ ' + CONVERT(varchar(50),GETDATE(),120)
|
||||
|
||||
DECLARE
|
||||
@EMAIL_MSGID VARCHAR(500),
|
||||
@EMAIL_FROM VARCHAR(200),
|
||||
@EMAIL_ATTMT VARCHAR(900),
|
||||
@EMAIL_ATTMT_FILE_NAME VARCHAR(MAX),
|
||||
@EMAIL_ATTMT_FILE_EXPORTPATH VARCHAR(MAX) = 'E:\DocumentProcessing\Output\File\DocumentKindAssigned\E-Rechnung',
|
||||
@EMAIL_ATTMT_FILE_ARCHIVPATH VARCHAR(MAX) = '',
|
||||
@EMAIL_PROFILER_PROCESS_GUID INT = 1,
|
||||
@FILENAME_SEPERATOR VARCHAR(1) = '~',
|
||||
@FILE_PATH_AND_NAME VARCHAR(MAX),
|
||||
@SUBJECT VARCHAR(250),
|
||||
@BODY_PRAEFIX VARCHAR(900),
|
||||
@BODY_SUFFIX VARCHAR(900),
|
||||
@CMD VARCHAR(1000);
|
||||
|
||||
DECLARE c_REDO CURSOR FOR
|
||||
SELECT
|
||||
T.EMAIL_MSGID,T.EMAIL_FROM
|
||||
FROM
|
||||
TBEMLP_HISTORY T
|
||||
WHERE
|
||||
T.PROFILE_ID = 1
|
||||
AND NOT EXISTS(SELECT GUID FROM TBEMLP_CUST_STATE WHERE STATE_TITLE IN ('MOVE FOR IMPORT','REJECTED') AND EMAIL_MSGID = T.EMAIL_MSGID)
|
||||
ORDER BY T.GUID
|
||||
OPEN c_REDO
|
||||
FETCH NEXT FROM c_REDO INTO @EMAIL_MSGID,@EMAIL_FROM
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
DECLARE @COUNT_PDF TINYINT
|
||||
SELECT @COUNT_PDF = COUNT(GUID) FROM TBEMLP_HISTORY_ATTACHMENT WHERE EMAIL_MSGID = @EMAIL_MSGID AND UPPER(reverse(left(reverse(EMAIL_ATTMT),CHARINDEX('.',reverse(EMAIL_ATTMT))-1))) = 'PDF'
|
||||
IF (@COUNT_PDF = 0 or @COUNT_PDF > 1)
|
||||
BEGIN
|
||||
PRINT 'REJECTING MAIL: ' + @EMAIL_MSGID
|
||||
SELECT
|
||||
@SUBJECT = EMAIL_SUBJECT,@BODY_PRAEFIX = EMAIL_BODY1,@BODY_SUFFIX = EMAIL_BODY2
|
||||
FROM
|
||||
TBDD_EMAIL_TEMPLATE WHERE TITLE = 'Email Ablehnung'
|
||||
BEGIN
|
||||
IF @COUNT_PDF > 1
|
||||
SET @BODY_PRAEFIX = REPLACE(@BODY_PRAEFIX,'@CheckResult','Mehr als 1 PDF-Anhang in Mail enthalten. <br> Bitte beachten Sie dass nur 1 PDF als Anhang erlaubt ist!')
|
||||
ELSE
|
||||
SET @BODY_PRAEFIX = REPLACE(@BODY_PRAEFIX,'@CheckResult','Wir konnten aus Ihrer Mail keine PDF-Datei als Attachment extrahieren!')
|
||||
END
|
||||
SET @BODY_PRAEFIX = '<!DOCTYPE html><html><body style=''font-family:"Arial";font-size:10.0pt''"' + @BODY_PRAEFIX + @BODY_SUFFIX + '</body></html>'
|
||||
INSERT INTO TBEMLP_CUST_STATE ( EMAIL_MSGID, STATE_TITLE, COMMENT)
|
||||
VALUES ( @EMAIL_MSGID, 'REJECTED', 'ATTACHMENT >2=0')
|
||||
DECLARE @CUST_STATE_GUID BIGINT
|
||||
SELECT @CUST_STATE_GUID = MAX(GUID) FROM TBEMLP_CUST_STATE WHERE EMAIL_MSGID = @EMAIL_MSGID AND STATE_TITLE = 'REJECTED'
|
||||
IF NOT EXISTS(SELECT GUID FROM TBEMLP_EMAIL_OUT WHERE REFERENCE_ID = @CUST_STATE_GUID AND REFERENCE_STRING = @EMAIL_MSGID)
|
||||
INSERT INTO TBEMLP_EMAIL_OUT
|
||||
(SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO)
|
||||
VALUES
|
||||
(1, @CUST_STATE_GUID,@EMAIL_MSGID, @EMAIL_FROM, @SUBJECT, @BODY_PRAEFIX, 'PROCEDURE XX'
|
||||
)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT 'ALLES OK FOR EMAIL: ' + @EMAIL_MSGID
|
||||
INSERT INTO TBEMLP_CUST_STATE ( EMAIL_MSGID, STATE_TITLE)
|
||||
VALUES ( @EMAIL_MSGID, 'MOVE FOR IMPORT')
|
||||
|
||||
-- Get current E-Mail msg id
|
||||
SELECT @EMAIL_MSGID = EMAIL_MSGID
|
||||
FROM [TBEMLP_CUST_STATE]
|
||||
WHERE [STATE_TITLE] = 'MOVE FOR IMPORT'
|
||||
|
||||
-- Get Attachment name to build the real name
|
||||
SELECT TOP 1 @EMAIL_ATTMT = EMAIL_ATTMT
|
||||
FROM TBEMLP_HISTORY_ATTACHMENT
|
||||
WHERE EMAIL_MSGID = @EMAIL_MSGID
|
||||
AND GUID = (SELECT MAX(GUID) FROM TBEMLP_HISTORY_ATTACHMENT WHERE EMAIL_MSGID = @EMAIL_MSGID)
|
||||
|
||||
-- Set filename to move for
|
||||
SET @EMAIL_ATTMT_FILE_NAME = @EMAIL_MSGID + @FILENAME_SEPERATOR + @EMAIL_ATTMT
|
||||
PRINT 'Processing current file: ' + @EMAIL_ATTMT_FILE_NAME
|
||||
|
||||
-- Get Export path
|
||||
SELECT @EMAIL_ATTMT_FILE_EXPORTPATH = [PATH_EMAIL_TEMP]
|
||||
FROM [TBEMLP_POLL_PROCESS]
|
||||
WHERE GUID = @EMAIL_PROFILER_PROCESS_GUID
|
||||
|
||||
-- Set path and filename to move for
|
||||
SET @FILE_PATH_AND_NAME = @EMAIL_ATTMT_FILE_EXPORTPATH + '\' + @EMAIL_ATTMT_FILE_NAME
|
||||
|
||||
PRINT 'Targetpath for move: ' + @EMAIL_ATTMT_FILE_EXPORTPATH
|
||||
|
||||
IF LEN(@EMAIL_ATTMT_FILE_ARCHIVPATH) > 1
|
||||
BEGIN
|
||||
|
||||
-- Copy file to archiv folder
|
||||
SET @CMD = 'copy "' + @FILE_PATH_AND_NAME + '" "' + @EMAIL_ATTMT_FILE_ARCHIVPATH + '"'
|
||||
EXEC master..xp_cmdshell @CMD, no_output
|
||||
|
||||
-- If copy was successfull, move to output folder
|
||||
SET @CMD = 'move "' + @FILE_PATH_AND_NAME + '" "' + @EMAIL_ATTMT_FILE_EXPORTPATH + '"'
|
||||
EXEC master..xp_cmdshell @CMD, no_output
|
||||
|
||||
END
|
||||
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
-- move to output folder
|
||||
SET @CMD = 'move "' + @FILE_PATH_AND_NAME + '" "' + @EMAIL_ATTMT_FILE_EXPORTPATH + '"'
|
||||
EXEC master..xp_cmdshell @CMD, no_output
|
||||
|
||||
END
|
||||
|
||||
END
|
||||
FETCH NEXT FROM c_REDO INTO @EMAIL_MSGID,@EMAIL_FROM
|
||||
END
|
||||
CLOSE c_REDO
|
||||
DEALLOCATE c_REDO
|
||||
|
||||
PRINT 'PROCEDURE - END PRCUST_EML_ATTMT_HANDLER @ ' + CONVERT(varchar(50),GETDATE(),120)
|
||||
PRINT '==============================='
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
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 (- Unterschiedliche Nummernkreise!) zu erstellen (Basis ist das windream Belegdatum)
|
||||
-- 31.01.2021 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 PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA]
|
||||
@JOB_GUID INT,
|
||||
@windreamDocID BIGINT,
|
||||
@windreamStatus VARCHAR(20) = 'erledigt',
|
||||
@windreamExportDate VARCHAR(8) = NULL
|
||||
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)
|
||||
|
||||
BEGIN TRY
|
||||
|
||||
DECLARE @JOB_NAME VARCHAR(50),
|
||||
@MANDATOR VARCHAR(50),
|
||||
@EXPORT_TYPE VARCHAR(50),
|
||||
@EXPORT_BOOKING_NUMBER BIGINT,
|
||||
@EXPORT_BOOKING_NUMBER_BASE BIGINT,
|
||||
@EXPORT_BOOKING_NUMBER_BASE_NOW BIGINT,
|
||||
@EXPORT_BOOKING_NUMBER_COUNTER BIGINT,
|
||||
@EXPORT_BOOKING_NUMBER_MAXCOUNT BIGINT,
|
||||
|
||||
@GUID BIGINT,
|
||||
@DATE_YY INT,
|
||||
@ERROR VARCHAR(1000),
|
||||
@ERROR_LINE VARCHAR(10),
|
||||
|
||||
@FileCount INT,
|
||||
@DocumentDate INT;
|
||||
|
||||
--===============================================-- There should be exact one file --===============================================--
|
||||
|
||||
(SELECT @FileCount = count()
|
||||
FROM [windream60].[dbo].[BaseAttributes]
|
||||
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] IS NULL)))
|
||||
|
||||
IF ((@windreamStatus = 'erledigt') and (@FileCount = 1))
|
||||
BEGIN
|
||||
|
||||
--===================================================-- Get Job infos --===================================================--
|
||||
SELECT @JOB_NAME = [JOB_NAME],
|
||||
@MANDATOR = [MANDANTOR],
|
||||
@EXPORT_TYPE = [EXPORT_TYPE]
|
||||
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG]
|
||||
WHERE [GUID] = @JOB_GUID
|
||||
|
||||
--=============================================-- Get windream File Indices --=============================================--
|
||||
SELECT @DocumentDate = [dwDate09] -- = Needed for setting Booking Number
|
||||
FROM [windream60].[dbo].[BaseAttributes]
|
||||
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]
|
||||
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
|
||||
SET @DATE_YY = RIGHT(LEFT(@DocumentDate,4),2)
|
||||
END
|
||||
ELSE
|
||||
BEGIN -- and if not, take current year as base value
|
||||
SET @DATE_YY = RIGHT(year(getdate()),2)
|
||||
END
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
PRINT 'Searching for existing numbers in history table...'
|
||||
PRINT (convert(varchar(2),@DATE_YY) + '%')
|
||||
|
||||
-- Check histroy 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]
|
||||
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)
|
||||
|
||||
SET @EXPORT_BOOKING_NUMBER = CONVERT(INT,@EXPORT_BOOKING_NUMBER_MAXCOUNT)
|
||||
SET @EXPORT_BOOKING_NUMBER = CONVERT(INT,@EXPORT_BOOKING_NUMBER)
|
||||
|
||||
SET @EXPORT_BOOKING_NUMBER_COUNTER = CONVERT(INT,RIGHT(@EXPORT_BOOKING_NUMBER,5))
|
||||
SET @EXPORT_BOOKING_NUMBER_BASE = (@EXPORT_BOOKING_NUMBER - @EXPORT_BOOKING_NUMBER_COUNTER)
|
||||
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @EXPORT_BOOKING_NUMBER_COUNTER = 0
|
||||
SET @EXPORT_BOOKING_NUMBER_BASE = convert(bigint,@EXPORT_BOOKING_NUMBER_BASE)
|
||||
SET @EXPORT_BOOKING_NUMBER_BASE_NOW = convert(bigint,CONVERT(VARCHAR(50),@DATE_YY) + '00000')
|
||||
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)
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
-- If Booking number base (like 2100000) is not the initial value
|
||||
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]
|
||||
Set [EXPORT_BOOKING_NUMBER_BASE] = @EXPORT_BOOKING_NUMBER_BASE_NOW
|
||||
WHERE JOB_GUID = @JOB_GUID
|
||||
END;
|
||||
|
||||
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)
|
||||
BEGIN
|
||||
SET @EXPORT_BOOKING_NUMBER_COUNTER = 1
|
||||
Update [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
|
||||
SET [EXPORT_BOOKING_NUMBER_COUNTER] = @EXPORT_BOOKING_NUMBER_COUNTER,
|
||||
[EXPORT_BOOKING_NUMBER_BASE] = @EXPORT_BOOKING_NUMBER_BASE
|
||||
WHERE JOB_GUID = @JOB_GUID
|
||||
END;
|
||||
Else
|
||||
BEGIN
|
||||
SET @EXPORT_BOOKING_NUMBER_COUNTER = @EXPORT_BOOKING_NUMBER_COUNTER + 1
|
||||
Update [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
|
||||
SET [EXPORT_BOOKING_NUMBER_COUNTER] = @EXPORT_BOOKING_NUMBER_COUNTER,
|
||||
[EXPORT_BOOKING_NUMBER_BASE] = @EXPORT_BOOKING_NUMBER_BASE
|
||||
WHERE JOB_GUID = @JOB_GUID
|
||||
END;
|
||||
|
||||
PRINT '@EXPORT_BOOKING_NUMBER_COUNTER ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_COUNTER)
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
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)
|
||||
----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
--===============================================-- Fill table with 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)
|
||||
|
||||
--===============================================-- Write content to File and Log --===============================================--
|
||||
|
||||
EXEC PRCUST_EXPORT_POSTING_DATA_WRITE_FILE @JOB_GUID = @JOB_GUID, @windreamDocID = @windreamDocID, @EXPORT_BOOKING_NUMBER = @EXPORT_BOOKING_NUMBER
|
||||
|
||||
PRINT 'PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT(varchar(50),GETDATE(),120)
|
||||
PRINT '==============================='
|
||||
|
||||
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 truewahr, '
|
||||
PRINT ' have to be falsefalsch!'
|
||||
PRINT ''
|
||||
|
||||
PRINT 'PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT(varchar(50),GETDATE(),120)
|
||||
PRINT '==============================='
|
||||
|
||||
RETURN 1 -- IF @windreamStatus 'erledigt'
|
||||
END
|
||||
|
||||
END TRY
|
||||
|
||||
BEGIN CATCH
|
||||
|
||||
--DELETE
|
||||
--FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT]
|
||||
--WHERE [FILE_CONFIG_GUID] = @GUID
|
||||
|
||||
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
|
||||
RETURN 1
|
||||
END CATCH
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME] Script Date: 21.03.2024 15:59:35 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME]
|
||||
@JOB_GUID INT, -- Mandatory Parameter, to build the file name
|
||||
@EXPORT_BOOKING_NUMBER VARCHAR(50),
|
||||
@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
|
||||
|
||||
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 (@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(50),@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 '==============================='
|
||||
|
||||
--SELECT @FILE_NAME AS [FILE_NAME]
|
||||
RETURN
|
||||
|
||||
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_LOG] @JOB_GUID, 'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE', ERROR_PROCEDURE, ERROR_MESSAGE
|
||||
RETURN 1
|
||||
END CATCH
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT] Script Date: 21.03.2024 16:00:05 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT]
|
||||
@JOB_GUID INT,
|
||||
@windreamDocID BIGINT,
|
||||
@windreamStatus VARCHAR(20) = 'erledigt',
|
||||
@windreamExportDate VARCHAR(8) = NULL
|
||||
AS
|
||||
|
||||
PRINT '==============================='
|
||||
PRINT 'PROCEDURE - START PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT @ ' + 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)
|
||||
|
||||
BEGIN TRY
|
||||
|
||||
DECLARE @JOB_NAME VARCHAR(50),
|
||||
@MANDATOR VARCHAR(50),
|
||||
@EXPORT_TYPE VARCHAR(50),
|
||||
@ERROR VARCHAR(1000),
|
||||
@ERROR_LINE VARCHAR(10)
|
||||
|
||||
DECLARE @WINDREAM_2_SCHLEUPEN as TABLE ([GUID] [INT] IDENTITY(1,1) NOT NULL,
|
||||
[Belegnummer (X)] [BIGINT] NULL,
|
||||
[Belegdatum (X)] [DATE] NULL,
|
||||
[Valutadatum] [DATE] NULL,
|
||||
[Kontoart (X)] [VARCHAR](20) NULL,
|
||||
[Kontonummer (X)] [INT] NULL,
|
||||
[Gegenkontoart (X)] [VARCHAR](20) NULL,
|
||||
[Gegenkonto] [INT] NULL,
|
||||
[Zusatzkontoart] [VARCHAR](20) NULL,
|
||||
[Zusatzkonto] [INT] NULL,
|
||||
[Betrag] [FLOAT] NULL,
|
||||
[S/H-Kennzeichen] [VARCHAR](20) NULL,
|
||||
[Buchungstext] [VARCHAR](max) NULL,
|
||||
[Zahlungsträgerhinweis] [VARCHAR](max) NULL,
|
||||
[Geschäftsbereich] [VARCHAR](20) NULL,
|
||||
[externes Rechnungsdatum] [DATE] NULL,
|
||||
[externe Rechnungsnummer] [VARCHAR](50) NULL,
|
||||
[Rechnungseinheit] [INT] NULL,
|
||||
[Fälligkeitsdatum] [DATE] NULL,
|
||||
[Skontotage 1] [INT] NULL,
|
||||
[Skonto Prozent 1] [INT] NULL,
|
||||
[Skontotage 2] [INT] NULL,
|
||||
[Skonto Prozent 2] [INT] NULL,
|
||||
[Nettotage] [INT] NULL)
|
||||
|
||||
-- Get Job infos
|
||||
SELECT @JOB_NAME = [JOB_NAME],
|
||||
@MANDATOR = [MANDANTOR],
|
||||
@EXPORT_TYPE = [EXPORT_TYPE]
|
||||
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG]
|
||||
WHERE [GUID] = @JOB_GUID
|
||||
|
||||
INSERT INTO @WINDREAM_2_SCHLEUPEN ([Belegnummer (X)],
|
||||
[Belegdatum (X)],
|
||||
[Valutadatum],
|
||||
[Kontoart (X)],
|
||||
[Kontonummer (X)],
|
||||
[Gegenkontoart (X)],
|
||||
[Gegenkonto],
|
||||
[Zusatzkontoart],
|
||||
[Zusatzkonto],
|
||||
[Betrag],
|
||||
[S/H-Kennzeichen],
|
||||
[Buchungstext],
|
||||
[Zahlungsträgerhinweis],
|
||||
[Geschäftsbereich],
|
||||
[externes Rechnungsdatum],
|
||||
[externe Rechnungsnummer],
|
||||
[Rechnungseinheit],
|
||||
[Fälligkeitsdatum],
|
||||
[Skontotage 1],
|
||||
[Skonto Prozent 1],
|
||||
[Skontotage 2],
|
||||
[Skonto Prozent 2],
|
||||
[Nettotage])
|
||||
|
||||
SELECT [dwDocID] as [Belegnummer (X)],
|
||||
-- [szLongName] as [FileName],
|
||||
-- [szFile_Ext] as [FileExtension],
|
||||
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([decCreationTime],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)],
|
||||
[szText38] as [Kontonummer (X)],
|
||||
NULL as [Gegenkontoart (X)],
|
||||
NULL as [Gegenkonto],
|
||||
NULL as [Zusatzkontoart],
|
||||
NULL as [Zusatzkonto],
|
||||
[lfFloat12] as [Betrag],
|
||||
'H' as [S/H-Kennzeichen],
|
||||
--[szText00] as [NOTIZFELD],
|
||||
[szText02] as [Buchungstext],
|
||||
NULL as [Zahlungsträgerhinweis],
|
||||
[szText16] as [Geschäftsbereich],
|
||||
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate09],8)),104),'dd.MM.yyyy') as [externes Rechnungsdatum],
|
||||
[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],
|
||||
[lfFloat09] as [Skonto Prozent 1],
|
||||
NULL as [Skontotage 2],
|
||||
NULL as [Skonto Prozent 2],
|
||||
NULL as [Nettotage]
|
||||
FROM [windream60].[dbo].[BaseAttributes]
|
||||
WHERE [dwDocID] = @windreamDocID
|
||||
and [szText33] = @windreamStatus
|
||||
and (([dwDate04] = @windreamExportDate) OR ([dwDate04] IS NULL))
|
||||
|
||||
|
||||
SELECT * FROM @WINDREAM_2_SCHLEUPEN
|
||||
RETURN
|
||||
|
||||
-- execute procedure to create file
|
||||
--EXECUTE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE] @JOB_GUID = @JOB_GUID;
|
||||
|
||||
PRINT 'PROCEDURE - END PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT @ ' + CONVERT(varchar(50),GETDATE(),120)
|
||||
PRINT '==============================='
|
||||
|
||||
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
|
||||
RETURN 1
|
||||
END CATCH
|
||||
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,269 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE] Script Date: 21.03.2024 16:00:33 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
-- Prozedur welche die bereitsgesammelten Daten abruft und in Folge in eine Datei und ins Archiv schreibt.
|
||||
-- Stand: MK // 30.01.2021
|
||||
|
||||
---- 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 PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE]
|
||||
@JOB_GUID INT,
|
||||
@windreamDocID BIGINT,
|
||||
@EXPORT_BOOKING_NUMBER BIGINT
|
||||
|
||||
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 - @windreamDocID: ' + CONVERT(varchar(50),@windreamDocID)
|
||||
PRINT 'PARAMETER3 - @EXPORT_BOOKING_NUMBER: ' + CONVERT(varchar(50),@EXPORT_BOOKING_NUMBER)
|
||||
|
||||
BEGIN TRY
|
||||
|
||||
DECLARE @JOB_NAME VARCHAR(50),
|
||||
@MANDATOR VARCHAR(50),
|
||||
@EXPORT_TYPE VARCHAR(50),
|
||||
|
||||
@OLE_RESULT INT,
|
||||
@FSO INT,
|
||||
@GUID BIGINT,
|
||||
@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 @FILE_CONTENT_BODY as TABLE (GUID INT, 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]
|
||||
WHERE [GUID] = @JOB_GUID
|
||||
|
||||
-- Get export file content
|
||||
INSERT INTO @FILE_CONTENT_BODY ([GUID], [FILE_CONTENT_BODY_LINE])
|
||||
SELECT [T1].[GUID], [T1].[FILE_CONTENT]
|
||||
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT] AS [T1],
|
||||
[TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] AS [T2]
|
||||
WHERE [T2].[JOB_GUID] = @JOB_GUID
|
||||
and [T2].[GUID] = [T1].[FILE_CONFIG_GUID]
|
||||
ORDER BY [T1].[ADDED_WHO]
|
||||
|
||||
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]
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
----Not necessary if replace in sp_executesql works!
|
||||
--SET @FILE_CONTENT_Head_Query = REPLACE(REPLACE(@FILE_CONTENT_Head_Query,'@FILE_DATA_SEPARATOR',''';'''), ';', @FILE_DATA_SEPARATOR)
|
||||
--PRINT '@FILE_CONTENT_Head_Query (processed): ' + @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
|
||||
|
||||
-- Write Headline to Var and file
|
||||
-- Abgeschaltet am 21.01 da die HeadLine nicht in die Datei geschrieben werden soll.
|
||||
SET @FILE_CONTENT = @FILE_CONTENT_Head + @FILE_CONTENT
|
||||
--EXECUTE @OLE_RESULT = sp_OAMethod @FILE_ID,'WriteLine',NULL,@FILE_CONTENT
|
||||
|
||||
-- prepare cursor to write every content line
|
||||
DECLARE CURSOR_WRITE_FILE_CONTENT CURSOR
|
||||
FOR
|
||||
SELECT [FILE_CONTENT_BODY_LINE]
|
||||
FROM @FILE_CONTENT_BODY
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
-- Archive to DB
|
||||
EXECUTE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE_ARCHIV] @JOB_GUID, @windreamDocID, @EXPORT_BOOKING_NUMBER, @FILE_ID, @FILE_NAME, @FILE_CONTENT;
|
||||
|
||||
PRINT 'PROCEDURE - END PRCUST_EXPORT_POSTING_DATA_WRITE_FILE @ ' + CONVERT(varchar(50),GETDATE(),120)
|
||||
PRINT '==============================='
|
||||
|
||||
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
|
||||
RETURN 1
|
||||
END CATCH
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE_ARCHIV] Script Date: 21.03.2024 16:01:04 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE_ARCHIV]
|
||||
@JOB_GUID INT,
|
||||
@windreamDocID BIGINT,
|
||||
@EXPORT_BOOKING_NUMBER BIGINT,
|
||||
@FILE_ID INT = 0,
|
||||
@FILE_NAME VARCHAR(100),
|
||||
@FILE_CONTENT NVARCHAR(MAX),
|
||||
@COMMENT VARCHAR(100) = NULL
|
||||
|
||||
AS
|
||||
BEGIN TRY
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
INSERT INTO [dbo].[TBCUST_EXPORT_POSTING_DATA_FILE_ARCHIV]
|
||||
([JOB_GUID], [DOCID], [EXPORT_BOOKING_NUMBER], [FILE_ID], [FILE_NAME], [FILE_CONTENT], [COMMENT])
|
||||
VALUES (@JOB_GUID, @windreamDocID, @EXPORT_BOOKING_NUMBER, @FILE_ID, @FILE_NAME, @FILE_CONTENT, @COMMENT)
|
||||
|
||||
RETURN 0
|
||||
|
||||
END TRY
|
||||
|
||||
BEGIN CATCH
|
||||
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
|
||||
+ ' - ERROR-MESSAGE: '
|
||||
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
||||
RETURN 1
|
||||
END CATCH
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
USE [DD_ECM]
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] Script Date: 21.03.2024 16:01:30 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG]
|
||||
@JOB_GUID INT,
|
||||
@LOG_TYPE VARCHAR(10) ='INFO',
|
||||
@DESCRIPTION1 VARCHAR(100) = NULL,
|
||||
@DESCRIPTION2 VARCHAR(100) = NULL,
|
||||
@DESCRIPTION3 VARCHAR(100) = NULL,
|
||||
@DESCRIPTION4 VARCHAR(100) = NULL,
|
||||
@DESCRIPTION5 VARCHAR(100) = NULL
|
||||
|
||||
AS
|
||||
BEGIN TRY
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
INSERT INTO [dbo].[TBCUST_EXPORT_POSTING_DATA_JOB_LOG]
|
||||
([JOB_GUID], [LOG_TYPE], [DESCRIPTION1], [DESCRIPTION2], [DESCRIPTION3], [DESCRIPTION4], [DESCRIPTION5])
|
||||
VALUES (@JOB_GUID, @LOG_TYPE, @DESCRIPTION1, @DESCRIPTION2, @DESCRIPTION3, @DESCRIPTION4, @DESCRIPTION5)
|
||||
|
||||
RETURN 0
|
||||
|
||||
END TRY
|
||||
|
||||
BEGIN CATCH
|
||||
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
|
||||
+ ' - ERROR-MESSAGE: '
|
||||
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
||||
RETURN 1
|
||||
END CATCH
|
||||
GO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user