diff --git a/DD-VMP02-DB01/SQL-Server/Prozeduren/[PRCUST_SET_DMS_STATUS_IN_WAWI].sql b/DD-VMP02-DB01/SQL-Server/Prozeduren/[PRCUST_SET_DMS_STATUS_IN_WAWI].sql index fdac5de..cb99b2f 100644 --- a/DD-VMP02-DB01/SQL-Server/Prozeduren/[PRCUST_SET_DMS_STATUS_IN_WAWI].sql +++ b/DD-VMP02-DB01/SQL-Server/Prozeduren/[PRCUST_SET_DMS_STATUS_IN_WAWI].sql @@ -22,22 +22,24 @@ SET QUOTED_IDENTIFIER ON GO CREATE OR ALTER PROCEDURE [PRCUST_SET_DMS_STATUS_IN_WAWI]( - @pTARGETDB VARCHAR(256) = '[DD_CWLDATEN_DDVP]', - @pTARGETSCHEMA VARCHAR(256) = '[dbo]', - @pTARGETTABLE VARCHAR(256) = '[t025]', - @pTARGETDBCOLUMN VARCHAR(256) = '[c069]', - @pDOCTYPE VARCHAR(256) = 'Eingangsrechnung', - @pDOCNR VARCHAR(256), - @pDMSSTATUS VARCHAR(256), - @pOVERWRITE BIT = 0, - @pLOGLEVEL VARCHAR(25) = 'ERROR' + @pTARGETSYSTEM VARCHAR(256) = 'WINLINE', -- Give target system: WINLINE or JTL-WAWI + @pTARGETDB VARCHAR(256) = '[DD_CWLDATEN_DDVP]', -- Give target DB name (without schema!) + @pTARGETSCHEMA VARCHAR(256) = '[dbo]', -- Give target DB schema + @pTARGETTABLE VARCHAR(256) = '[t025]', -- Give target DB table + @pTARGETDBCOLUMN VARCHAR(256) = '[c069]', -- Give target DB column + @pDOCTYPE VARCHAR(256) = 'Ausgangsrechnung', -- Give doctype: Ausgangsangebot, Ausgangsauftrag, Ausgangslieferschein, Ausgangsrechnung + @pDOCNR VARCHAR(256), -- Give docnr, like 'ARE-20234187' or 'AANG-20241060' + @pDMSSTATUS VARCHAR(256), -- Give text to write in @pTARGETDBCOLUMN + @pOVERWRITE BIT = 0, -- Set overwrite for @pTARGETDBCOLUMN: 0 = concat; 1 = overwrite + @pLOGLEVEL VARCHAR(25) = 'ERROR' -- Set Loglevel to be written to table [TBCUST_SET_DMS_STATUS_IN_WAWI_LOG] ) AS BEGIN TRY SET NOCOUNT ON; - DECLARE @TARGETDB VARCHAR(256) = @pTARGETDB, + DECLARE @TARGETSYSTEM VARCHAR(256) = @pTARGETSYSTEM, + @TARGETDB VARCHAR(256) = @pTARGETDB, @TARGETSCHEMA VARCHAR(256) = @pTARGETSCHEMA, @TARGETTABLE VARCHAR(256) = @pTARGETTABLE, @TARGETDBCOLUMN VARCHAR(256) = @pTARGETDBCOLUMN, @@ -54,15 +56,16 @@ BEGIN TRY PRINT '===============================' PRINT 'PROCEDURE - START [PRCUST_SET_DMS_STATUS_IN_WAWI] @ ' + CONVERT(varchar(50),GETDATE(),120); - PRINT 'PARAMETER1 - @TARGETDB: ' + CONVERT(VARCHAR(256),@TARGETDB); - PRINT 'PARAMETER2 - @TARGETSCHEMA: ' + CONVERT(VARCHAR(256),@TARGETSCHEMA); - PRINT 'PARAMETER3 - @TARGETTABLE: ' + CONVERT(VARCHAR(256),@TARGETTABLE); - PRINT 'PARAMETER4 - @TARGETDBCOLUMN: ' + CONVERT(VARCHAR(256),@TARGETDBCOLUMN); - PRINT 'PARAMETER5 - @DOCTYPE: ' + CONVERT(VARCHAR(256),@DOCTYPE); - PRINT 'PARAMETER6 - @DOCNR: ' + CONVERT(VARCHAR(256),@DOCNR); - PRINT 'PARAMETER7 - @DMSSTATUS: ' + CONVERT(VARCHAR(256),@DMSSTATUS); - PRINT 'PARAMETER8 - @OVERWRITE: ' + CONVERT(VARCHAR(1),@OVERWRITE); - PRINT 'PARAMETER9 - @LOGLEVEL: ' + CONVERT(VARCHAR(25),@LOGLEVEL); + PRINT 'PARAMETER1 - @TARGETSYSTEM: ' + CONVERT(VARCHAR(256),@TARGETSYSTEM); + PRINT 'PARAMETER2 - @TARGETDB: ' + CONVERT(VARCHAR(256),@TARGETDB); + PRINT 'PARAMETER3 - @TARGETSCHEMA: ' + CONVERT(VARCHAR(256),@TARGETSCHEMA); + PRINT 'PARAMETER4 - @TARGETTABLE: ' + CONVERT(VARCHAR(256),@TARGETTABLE); + PRINT 'PARAMETER5 - @TARGETDBCOLUMN: ' + CONVERT(VARCHAR(256),@TARGETDBCOLUMN); + PRINT 'PARAMETER6 - @DOCTYPE: ' + CONVERT(VARCHAR(256),@DOCTYPE); + PRINT 'PARAMETER7 - @DOCNR: ' + CONVERT(VARCHAR(256),@DOCNR); + PRINT 'PARAMETER8 - @DMSSTATUS: ' + CONVERT(VARCHAR(256),@DMSSTATUS); + PRINT 'PARAMETER9 - @OVERWRITE: ' + CONVERT(VARCHAR(1),@OVERWRITE); + PRINT 'PARAMETER10 - @LOGLEVEL: ' + CONVERT(VARCHAR(25),@LOGLEVEL); --==============================================-- Prepare the log table --================================================-- IF (@LOGLEVEL is not NULL) @@ -102,17 +105,26 @@ BEGIN TRY ----------------------------------------------------------------------------------------------------------------------------- --==============================================-- Determ doctype column --================================================-- - SET @DOCTYPECOLUMN = CASE - WHEN @DOCTYPE = 'Eingangsangebot' - THEN '[c043]' - WHEN @DOCTYPE = 'Eingangsauftrag' - THEN '[c044]' - WHEN @DOCTYPE = 'Eingangslieferschein' - THEN '[c045]' - WHEN @DOCTYPE = 'Eingangsrechnung' - THEN '[c055]' - ELSE NULL - END; + IF (@TARGETSYSTEM = 'WINLINE') + BEGIN + SET @DOCTYPECOLUMN = CASE + WHEN @DOCTYPE = 'Ausgangsangebot' + THEN '[c043]' + WHEN @DOCTYPE = 'Ausgangsauftrag' + THEN '[c044]' + WHEN @DOCTYPE = 'Ausgangslieferschein' + THEN '[c045]' + WHEN @DOCTYPE = 'Ausgangsrechnung' + THEN '[c055]' + ELSE NULL + END; + END; + ELSE + BEGIN + PRINT 'Currently only WINLINE is available!' + SET @DOCTYPECOLUMN = NULL + END; + PRINT ''; PRINT 'Determ @DOCTYPECOLUMN: ' + ISNULL(@DOCTYPECOLUMN,''); ----------------------------------------------------------------------------------------------------------------------------- @@ -132,7 +144,7 @@ BEGIN TRY BEGIN PRINT 'Found: ' + CONVERT(VARCHAR(25),@DOCCOUNT) + ' doc to update!' - SET @SQLCommand = N'SELECT @DOCCOUNT = count(*) FROM ' + @TARGETDB + '.' + @TARGETSCHEMA + '.' + @TARGETTABLE + ' WHERE ' + @DOCTYPECOLUMN + ' = ''' + @DOCNR + ''' AND ' + @TARGETDBCOLUMN + ' IS NOT NULL'; + SET @SQLCommand = N'SELECT @DOCCOUNT = count(*) FROM ' + @TARGETDB + '.' + @TARGETSCHEMA + '.' + @TARGETTABLE + ' WHERE ' + @DOCTYPECOLUMN + ' = ''' + @DOCNR + ''' AND ' + @TARGETDBCOLUMN + ' IS NOT NULL AND ' + @TARGETDBCOLUMN + ' <> ''' + @DMSSTATUS + ''''; PRINT 'Build "DMS Text" Query @SQLCommand: ' + @SQLCommand EXEC @return_status = sp_executesql @SQLCommand,N'@DOCCOUNT INT OUTPUT', @DOCCOUNT OUTPUT; @@ -205,6 +217,8 @@ BEGIN TRY END TRY BEGIN CATCH + PRINT 'ERROR: ' + ERROR_MESSAGE() + -- Handle any errors that occur during the process. SELECT ERROR_MESSAGE() AS ErrorMessage;