PRCUST_SET_DMS_STATUS_IN_WAWI: Extended target system

This commit is contained in:
KammM 2024-11-19 16:05:43 +01:00
parent ec79e8dcfb
commit c948b5c613

View File

@ -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,'<NONE>');
-----------------------------------------------------------------------------------------------------------------------------
@ -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;