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