8
0
Files
Skriptentwickung/current/[DD_ECM]-Database/DEX_SQL/[PRDEX_START_PROFILE_EXECUTION].sql
2026-02-24 16:43:48 +01:00

942 lines
115 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
--GO
-- [PRDEX_START_PROFILE_EXECUTION]
-- =================================================================
-- Main procedure to start the DEX
--
-- Returns: INTEGER; 0 = ok; 0 <> not ok
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 01.08.2025 / MK
-- Version Date / Editor: 01.08.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 01.08.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDEX_START_PROFILE_EXECUTION](
@pPROFILE_ID BIGINT, -- GUID from [TBDEX_CFG_PROFILE]
@pTEST_MODE BIT = 1, -- 1 = Enable Test Mode (DEFAULT); 0 = Disable Test Mode
@pASYNC_MODE BIT = NULL, -- NULL = No async processing; 0 = Collect data, but dont process it; 1 = Process collected data
@pBATCH_ID NVARCHAR(25) = NULL, -- OPTIONAL: Set the batch ID, at least four digits. Failsafe will create a timestamp value
@pBATCH_CREATOR NVARCHAR(50) = NULL, -- OPTIONAL: Set the creator of this BATCH / @BATCH_ID
@pLANGUAGE NVARCHAR(10) = NULL, -- OPTIONAL: Set Language if you want to Override setting in Profile table. Failsafe is de_DE
@pLOG_LEVEL NVARCHAR(25) = NULL, -- OPTIONAL: Set 'INFO','WARN' or 'ERROR' to overwrite profile setting. Failsafe is 'INFO'
@pSTART_QUERY NVARCHAR(MAX) = NULL, -- Query name from [TBDEX_CFG_RESOURCES] to find source files, or a query like 'SELECT PROFILE_ID, REFERENCE1, REFERENCE2, REFERENCE3, BATCH_ID, COMMENT, CREATOR, GETDATE() FROM [TABLE]'
@pSTART_QUERY_VAR1 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pSTART_QUERY
@pSTART_QUERY_VAR2 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pSTART_QUERY
@pSTART_QUERY_VAR3 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pSTART_QUERY
@pSTART_QUERY_VAR4 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pSTART_QUERY
@pSTART_QUERY_VAR5 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pSTART_QUERY
@pMAIN_QUERY NVARCHAR(MAX) = NULL, -- Query name from [TBDEX_CFG_RESOURCES] to find source files, or a query like 'SELECT PROFILE_ID, REFERENCE1, REFERENCE2, REFERENCE3, BATCH_ID, COMMENT, CREATOR, GETDATE() FROM [TABLE]'
@pMAIN_QUERY_VAR1 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pMAIN_QUERY
@pMAIN_QUERY_VAR2 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pMAIN_QUERY
@pMAIN_QUERY_VAR3 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pMAIN_QUERY
@pMAIN_QUERY_VAR4 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pMAIN_QUERY
@pMAIN_QUERY_VAR5 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pMAIN_QUERY
@pEND_QUERY NVARCHAR(MAX) = NULL, -- Query name from [TBDEX_CFG_RESOURCES] to find source files, or a query like 'SELECT PROFILE_ID, REFERENCE1, REFERENCE2, REFERENCE3, BATCH_ID, COMMENT, CREATOR, GETDATE() FROM [TABLE]'
@pEND_QUERY_VAR1 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pEND_QUERY
@pEND_QUERY_VAR2 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pEND_QUERY
@pEND_QUERY_VAR3 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pEND_QUERY
@pEND_QUERY_VAR4 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pEND_QUERY
@pEND_QUERY_VAR5 NVARCHAR(50) = NULL, -- OPTIONAL: Set additional doc status, to be replaced in @pEND_QUERY
@pFORCE BIT = 0 -- 1 = Force export for already exported files; 0 = Only data not inserted into Result table will be exported (DEFAULT)
)
AS
BEGIN TRY
SET NOCOUNT ON;
-- declare new vars because of parameter sniffing
DECLARE @PROFILE_ID BIGINT = @pPROFILE_ID,
@TEST_MODE BIT = @pTEST_MODE,
@ASYNC_MODE BIT = @pASYNC_MODE,
@BATCH_ID NVARCHAR(25) = @pBATCH_ID,
@BATCH_CREATOR NVARCHAR(128) = ISNULL(@pBATCH_CREATOR,OBJECT_NAME(@@PROCID)),
@LANGUAGE NVARCHAR(10) = @pLANGUAGE,
@LOG_LEVEL NVARCHAR(25) = UPPER(ISNULL(@pLOG_LEVEL,'INFO')),
@START_QUERY NVARCHAR(MAX) = ISNULL(@pSTART_QUERY,'QUERY_GET_INPUT'),
@START_QUERY_VAR1 NVARCHAR(50) = @pSTART_QUERY_VAR1,
@START_QUERY_VAR2 NVARCHAR(50) = @pSTART_QUERY_VAR2,
@START_QUERY_VAR3 NVARCHAR(50) = @pSTART_QUERY_VAR3,
@START_QUERY_VAR4 NVARCHAR(50) = @pSTART_QUERY_VAR4,
@START_QUERY_VAR5 NVARCHAR(50) = @pSTART_QUERY_VAR5,
@MAIN_QUERY NVARCHAR(MAX) = ISNULL(@pMAIN_QUERY,'QUERY_GET_INPUT_CONTENT'),
@MAIN_QUERY_VAR1 NVARCHAR(50) = @pMAIN_QUERY_VAR1,
@MAIN_QUERY_VAR2 NVARCHAR(50) = @pMAIN_QUERY_VAR2,
@MAIN_QUERY_VAR3 NVARCHAR(50) = @pMAIN_QUERY_VAR3,
@MAIN_QUERY_VAR4 NVARCHAR(50) = @pMAIN_QUERY_VAR4,
@MAIN_QUERY_VAR5 NVARCHAR(50) = @pMAIN_QUERY_VAR5,
@END_QUERY NVARCHAR(MAX) = ISNULL(@pEND_QUERY,'QUERY_SET_OUTPUT_CONTENT'),
@END_QUERY_VAR1 NVARCHAR(50) = @pEND_QUERY_VAR1,
@END_QUERY_VAR2 NVARCHAR(50) = @pEND_QUERY_VAR2,
@END_QUERY_VAR3 NVARCHAR(50) = @pEND_QUERY_VAR3,
@END_QUERY_VAR4 NVARCHAR(50) = @pEND_QUERY_VAR4,
@END_QUERY_VAR5 NVARCHAR(50) = @pEND_QUERY_VAR5,
@FORCE BIT = @pFORCE;
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @ACTIVE_FLAG BIT = 1,
@INACTIVE_FLAG BIT = 0,
@ACTIVE BIT = 0,
@PREPROCESSING_ROW_COUNT SMALLINT = 0,
@POSTPROCESSING_ROW_COUNT SMALLINT = 0,
@TEMP_PROCESS_ROW_COUNT1 SMALLINT = 0,
@TEMP_PROCESS_ROW_COUNT2 SMALLINT = 0,
@DB_VERSION NVARCHAR(25) = NULL,
@PROFILE_NAME NVARCHAR(50) = NULL,
@MANDANTOR NVARCHAR(50) = NULL,
@EXPORT_TYPE NVARCHAR(50) = NULL,
@EXPORT_NUMBER_SCHEMA NVARCHAR(50) = NULL,
@DEFAULT_DATA_SEPARATOR NVARCHAR(10) = NULL,
@FIRST_RUN DATETIME = NULL,
@LAST_RUN DATETIME = NULL,
@LAST_BATCH_ID NVARCHAR(25) = NULL,
@LAST_RESULT NVARCHAR(250) = NULL,
@REFERENCE1 NVARCHAR(150) = NULL,
@REFERENCE2 NVARCHAR(150) = NULL,
@REFERENCE3 NVARCHAR(150) = NULL,
@REFERENCE4 NVARCHAR(150) = NULL,
@REFERENCE5 NVARCHAR(150) = NULL,
@EXTERNAL_REFERENCE1 NVARCHAR(2000) = NULL,
@EXTERNAL_REFERENCE2 NVARCHAR(2000) = NULL,
@EXTERNAL_REFERENCE3 NVARCHAR(2000) = NULL,
@EXTERNAL_REFERENCE4 NVARCHAR(2000) = NULL,
@EXTERNAL_REFERENCE5 NVARCHAR(2000) = NULL,
@TBDEX_TMP_TABLE_SCHEMA SYSNAME = NULL,
@TBDEX_TMP_TABLE_NAME SYSNAME = NULL,
@TBDEX_TMP_TABLE_SCHEMA_AND_NAME NVARCHAR(150) = NULL,
@TBDEX_TMP_TABLE_COLUMNS NVARCHAR(MAX) = NULL,
@TBDEX_TMP_TABLE_DROP_QUERY NVARCHAR(MAX) = NULL,
@TBDEX_TMP_TABLE_CREATE_QUERY NVARCHAR(MAX) = NULL,
@TBDEX_TMP_TABLE_INSERT_QUERY NVARCHAR(MAX) = NULL,
@TBDEX_TMP_TABLE_CONTENT NVARCHAR(MAX) = NULL,
@RETURN_STATUS INT = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = concat('START PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(varchar(50),GETDATE(),120)),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
PRINT '====================================================================================================';
PRINT @RETURN_STATUS_TEXT;
PRINT '';
PRINT 'PARAMETER01 - @PROFILE_ID: ' + CONVERT(NVARCHAR(200),ISNULL(@PROFILE_ID,'<NO-VALUE>'));
PRINT 'PARAMETER02 - @TEST_MODE: ' + CONVERT(NVARCHAR(200),ISNULL(@TEST_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER03 - @ASYNC_MODE: ' + CONVERT(NVARCHAR(200),ISNULL(@ASYNC_MODE,'<NO-VALUE>'));
PRINT 'PARAMETER04 - @BATCH_ID: ' + CONVERT(NVARCHAR(200),ISNULL(@BATCH_ID,'<NO-VALUE>'));
PRINT 'PARAMETER05 - @BATCH_CREATOR: ' + CONVERT(NVARCHAR(200),ISNULL(@BATCH_CREATOR,'<NO-VALUE>'));
PRINT 'PARAMETER06 - @LANGUAGE: ' + CONVERT(NVARCHAR(200),ISNULL(@LANGUAGE,'<NO-VALUE>'));
PRINT 'PARAMETER07 - @LOG_LEVEL: ' + CONVERT(NVARCHAR(200),ISNULL(@LOG_LEVEL,'<NO-VALUE>'));
PRINT 'PARAMETER08 - @START_QUERY: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER09 - @START_QUERY_VAR1: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER10 - @START_QUERY_VAR2: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER11 - @START_QUERY_VAR3: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER12 - @START_QUERY_VAR4: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER13 - @START_QUERY_VAR5: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER14 - @MAIN_QUERY: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER15 - @MAIN_QUERY_VAR1: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER16 - @MAIN_QUERY_VAR2: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER17 - @MAIN_QUERY_VAR3: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER18 - @MAIN_QUERY_VAR4: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER19 - @MAIN_QUERY_VAR5: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER20 - @END_QUERY: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY,'<NO-VALUE>'));
PRINT 'PARAMETER21 - @END_QUERY_VAR1: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR1,'<NO-VALUE>'));
PRINT 'PARAMETER22 - @END_QUERY_VAR2: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR2,'<NO-VALUE>'));
PRINT 'PARAMETER23 - @END_QUERY_VAR3: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR3,'<NO-VALUE>'));
PRINT 'PARAMETER24 - @END_QUERY_VAR4: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR4,'<NO-VALUE>'));
PRINT 'PARAMETER25 - @END_QUERY_VAR5: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR5,'<NO-VALUE>'));
PRINT 'PARAMETER26 - @FORCE: ' + CONVERT(NVARCHAR(200),ISNULL(@FORCE,'<NO-VALUE>'));
PRINT '';
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- system check --======================================================--
EXEC @RETURN_STATUS = [PRDEX_CHECK_SYSTEM] @pPROFILE_ID = @PROFILE_ID,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLOG_LEVEL = @LOG_LEVEL;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_CHECK_SYSTEM]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_CHECK_SYSTEM] found no errors or problems!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===============================================-- Get Profile configuration --================================================--
SELECT TOP 1
@ACTIVE = [ACTIVE],
@PROFILE_NAME = [PROFILE_NAME],
@MANDANTOR = [MANDANTOR],
@EXPORT_TYPE = [EXPORT_TYPE],
@EXPORT_NUMBER_SCHEMA = [EXPORT_NUMBER_SCHEMA],
@DEFAULT_DATA_SEPARATOR = [DEFAULT_DATA_SEPARATOR],
@LOG_LEVEL = [LOG_LEVEL],
@LANGUAGE = [LANGUAGE],
@FIRST_RUN = [FIRST_RUN],
@LAST_RUN = [LAST_RUN],
@LAST_BATCH_ID = [LAST_BATCH_ID],
@LAST_RESULT = [LAST_RESULT]
FROM [VWDEX_PROFILE]
WHERE [GUID] = @PROFILE_ID;
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Check profile basics --==================================================--
IF (convert(NVARCHAR(1),ISNULL(@ACTIVE,0)) <> '1') BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50016;
SET @RETURN_STATUS_TEXT = concat('Check profile configuration!','');
SET @RETURN_ERROR_TEXT = concat('The profile is offline or not found!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('The Profile with ID: ',@PROFILE_ID,', is online and can be processed!');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Check profile settings --=================================================--
IF ((LEN(@PROFILE_NAME) = 0) or (LEN(@MANDANTOR) = 0) or (LEN(@EXPORT_TYPE) = 0) or (LEN(@LANGUAGE) = 0) or (LEN(@LOG_LEVEL) = 0)) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50004;
SET @RETURN_STATUS_TEXT = concat('Check profile configuration!','');
SET @RETURN_ERROR_TEXT = concat('Invalid value in @PROFILE_NAME or @MANDANTOR or @EXPORT_TYPE or @LANGUAGE or @LOG_LEVEL',char(13),
'@PROFILE_NAME: ',ISNULL(CONVERT(NVARCHAR(50),@PROFILE_NAME),'<NO-VALUE>'), char(13),
'@MANDANTOR: ',ISNULL(CONVERT(NVARCHAR(50),@MANDANTOR),'<NO-VALUE>'), char(13),
'@EXPORT_TYPE: ',ISNULL(CONVERT(NVARCHAR(50),@EXPORT_TYPE),'<NO-VALUE>'), char(13),
'@DEFAULT_DATA_SEPARATOR: ',ISNULL(CONVERT(NVARCHAR(50),@DEFAULT_DATA_SEPARATOR),'<NO-VALUE>'), char(13),
'@LOG_LEVEL: ',ISNULL(CONVERT(NVARCHAR(50),@LOG_LEVEL),'<NO-VALUE>'), char(13),
'@LANGUAGE: ',ISNULL(CONVERT(NVARCHAR(50),@LANGUAGE),'<NO-VALUE>'), char(13),
'@FIRST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@FIRST_RUN),'<NO-VALUE>'), char(13),
'@LAST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RUN),'<NO-VALUE>'), char(13),
'@LAST_BATCH_ID: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_BATCH_ID),'<NO-VALUE>'), char(13),
'@LAST_RESULT: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RESULT),'<NO-VALUE>') );
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Found Profile configuration:',char(13),
'@PROFILE_NAME: ',ISNULL(CONVERT(NVARCHAR(50),@PROFILE_NAME),'<NO-VALUE>'), char(13),
'@MANDANTOR: ',ISNULL(CONVERT(NVARCHAR(50),@MANDANTOR),'<NO-VALUE>'), char(13),
'@EXPORT_TYPE: ',ISNULL(CONVERT(NVARCHAR(50),@EXPORT_TYPE),'<NO-VALUE>'), char(13),
'@DEFAULT_DATA_SEPARATOR: ',ISNULL(CONVERT(NVARCHAR(50),@DEFAULT_DATA_SEPARATOR),'<NO-VALUE>'), char(13),
'@LOG_LEVEL: ',ISNULL(CONVERT(NVARCHAR(50),@LOG_LEVEL),'<NO-VALUE>'), char(13),
'@LANGUAGE: ',ISNULL(CONVERT(NVARCHAR(50),@LANGUAGE),'<NO-VALUE>'), char(13),
'@FIRST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@FIRST_RUN),'<NO-VALUE>'), char(13),
'@LAST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RUN),'<NO-VALUE>'), char(13),
'@LAST_BATCH_ID: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_BATCH_ID),'<NO-VALUE>'), char(13),
'@LAST_RESULT: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RESULT),'<NO-VALUE>') );
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Get Next batch ID --====================================================--
SELECT @BATCH_ID = [BATCH_ID] FROM [dbo].[FNDEX_GET_NEXT_BATCH_ID](@PROFILE_ID,@BATCH_ID,@LAST_BATCH_ID);
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Check profile basics --==================================================--
IF (LEN(LTRIM(RTRIM(@BATCH_ID))) < 4) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50023;
SET @RETURN_STATUS_TEXT = concat('Check profile configuration!','');
SET @RETURN_ERROR_TEXT = concat('Valid @BATCH_ID! ','Must be at least 4 chars!');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Given/set BATCH_ID: ',@BATCH_ID);
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--================================================-- Call register procedure --=================================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_REGISTER_PROCESS] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pEXPORT_NUMBER_SCHEMA = @EXPORT_NUMBER_SCHEMA,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_REGISTER_PROCESS]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_REGISTER_PROCESS] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--====================================================-- Run preprocessing --====================================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_RUN_PREPROCESSING] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pMAIN_QUERY = @MAIN_QUERY,
@pMAIN_QUERY_VAR1 = @MAIN_QUERY_VAR1,
@pMAIN_QUERY_VAR2 = @MAIN_QUERY_VAR2,
@pMAIN_QUERY_VAR3 = @MAIN_QUERY_VAR3,
@pMAIN_QUERY_VAR4 = @MAIN_QUERY_VAR4,
@pMAIN_QUERY_VAR5 = @MAIN_QUERY_VAR5,
@pEND_QUERY = @END_QUERY,
@pEND_QUERY_VAR1 = @END_QUERY_VAR1,
@pEND_QUERY_VAR2 = @END_QUERY_VAR2,
@pEND_QUERY_VAR3 = @END_QUERY_VAR3,
@pEND_QUERY_VAR4 = @END_QUERY_VAR4,
@pEND_QUERY_VAR5 = @END_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_RUN_PREPROCESSING]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_RUN_PREPROCESSING] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--==================================================-- Call input procedure --==================================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_GET_INPUT] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_GET_INPUT]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_GET_INPUT] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--================================================-- Get updated process data --=================================================--
SELECT TOP (1) @TBDEX_TMP_TABLE_SCHEMA = LTRIM(RTRIM(ISNULL([TBDEX_TMP_TABLE_SCHEMA],''))),
@TBDEX_TMP_TABLE_NAME = LTRIM(RTRIM(ISNULL([TBDEX_TMP_TABLE_NAME],''))),
@TBDEX_TMP_TABLE_SCHEMA_AND_NAME = LTRIM(RTRIM(ISNULL([TBDEX_TMP_TABLE_SCHEMA_AND_NAME],''))),
@TBDEX_TMP_TABLE_COLUMNS = LTRIM(RTRIM(ISNULL([TBDEX_TMP_TABLE_COLUMNS],''))),
@TBDEX_TMP_TABLE_DROP_QUERY = LTRIM(RTRIM(ISNULL([TBDEX_TMP_TABLE_DROP_QUERY],''))),
@TBDEX_TMP_TABLE_CREATE_QUERY = LTRIM(RTRIM(ISNULL([TBDEX_TMP_TABLE_CREATE_QUERY],'')))
FROM [dbo].[TBDEX_TMP_PROCESS] WITH (SNAPSHOT)
WHERE [PROFILE_ID] = @PROFILE_ID
AND [BATCH_ID] = @BATCH_ID
AND [ADDED_WHO] IN (@BATCH_CREATOR,@MY_PROCEDURE_NAME)
AND [CHANGED_WHO] IN (@BATCH_CREATOR,@MY_PROCEDURE_NAME)
IF (LEN(@TBDEX_TMP_TABLE_SCHEMA) = 0) OR (LEN(@TBDEX_TMP_TABLE_NAME) = 0) OR (LEN(@TBDEX_TMP_TABLE_COLUMNS) = 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = 50010;
SET @RETURN_STATUS_TEXT = concat('Invalid configuration in table [TBDEX_TMP_PROCESS] found!','');
SET @RETURN_ERROR_TEXT = concat('@TBDEX_TMP_TABLE_SCHEMA = ',@TBDEX_TMP_TABLE_SCHEMA,', @TBDEX_TMP_TABLE_NAME = ',@TBDEX_TMP_TABLE_NAME,', @TBDEX_TMP_TABLE_COLUMNS = ',@TBDEX_TMP_TABLE_COLUMNS);
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Configuration in [TBDEX_TMP_PROCESS] seems to be valid!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--================================================-- Exit in case of test mode --================================================--
IF (@TEST_MODE = 1) BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Test run complete! ','Exiting...');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--=================================================-- Generate export numbers --=================================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_SET_EXPORT_NUMBER] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pEXPORT_NUMBER_SCHEMA = @EXPORT_NUMBER_SCHEMA,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_SET_EXPORT_NUMBER]','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_SET_EXPORT_NUMBER] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Main postprocessing --===================================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_RUN_MAINPROCESSING] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pMAIN_QUERY = @MAIN_QUERY,
@pMAIN_QUERY_VAR1 = @MAIN_QUERY_VAR1,
@pMAIN_QUERY_VAR2 = @MAIN_QUERY_VAR2,
@pMAIN_QUERY_VAR3 = @MAIN_QUERY_VAR3,
@pMAIN_QUERY_VAR4 = @MAIN_QUERY_VAR4,
@pMAIN_QUERY_VAR5 = @MAIN_QUERY_VAR5,
@pEND_QUERY = @END_QUERY,
@pEND_QUERY_VAR1 = @END_QUERY_VAR1,
@pEND_QUERY_VAR2 = @END_QUERY_VAR2,
@pEND_QUERY_VAR3 = @END_QUERY_VAR3,
@pEND_QUERY_VAR4 = @END_QUERY_VAR4,
@pEND_QUERY_VAR5 = @END_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR,
@pTBDEX_TMP_TABLE_SCHEMA = @TBDEX_TMP_TABLE_SCHEMA,
@pTBDEX_TMP_TABLE_NAME = @TBDEX_TMP_TABLE_NAME,
@pTBDEX_TMP_TABLE_SCHEMA_AND_NAME = @TBDEX_TMP_TABLE_SCHEMA_AND_NAME,
@pTBDEX_TMP_TABLE_COLUMNS = @TBDEX_TMP_TABLE_COLUMNS,
@pTBDEX_TMP_TABLE_DROP_QUERY = @TBDEX_TMP_TABLE_DROP_QUERY,
@pTBDEX_TMP_TABLE_CREATE_QUERY = @TBDEX_TMP_TABLE_CREATE_QUERY,
@pTBDEX_TMP_TABLE_INSERT_QUERY = @TBDEX_TMP_TABLE_INSERT_QUERY;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_RUN_MAINPROCESSING]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_RUN_MAINPROCESSING] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--=============================================-- Call output content procedure --==============================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_WRITE_OUTPUT] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pMAIN_QUERY = @MAIN_QUERY,
@pMAIN_QUERY_VAR1 = @MAIN_QUERY_VAR1,
@pMAIN_QUERY_VAR2 = @MAIN_QUERY_VAR2,
@pMAIN_QUERY_VAR3 = @MAIN_QUERY_VAR3,
@pMAIN_QUERY_VAR4 = @MAIN_QUERY_VAR4,
@pMAIN_QUERY_VAR5 = @MAIN_QUERY_VAR5,
@pEND_QUERY = @END_QUERY,
@pEND_QUERY_VAR1 = @END_QUERY_VAR1,
@pEND_QUERY_VAR2 = @END_QUERY_VAR2,
@pEND_QUERY_VAR3 = @END_QUERY_VAR3,
@pEND_QUERY_VAR4 = @END_QUERY_VAR4,
@pEND_QUERY_VAR5 = @END_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pEXPORT_NUMBER_SCHEMA = @EXPORT_NUMBER_SCHEMA,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR,
@pTBDEX_TMP_TABLE_SCHEMA = @TBDEX_TMP_TABLE_SCHEMA,
@pTBDEX_TMP_TABLE_NAME = @TBDEX_TMP_TABLE_NAME,
@pTBDEX_TMP_TABLE_COLUMNS = @TBDEX_TMP_TABLE_COLUMNS,
@pTBDEX_TMP_TABLE_DROP_QUERY = @TBDEX_TMP_TABLE_DROP_QUERY,
@pTBDEX_TMP_TABLE_CREATE_QUERY = @TBDEX_TMP_TABLE_CREATE_QUERY,
@pTBDEX_TMP_TABLE_INSERT_QUERY = @TBDEX_TMP_TABLE_INSERT_QUERY;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_WRITE_OUTPUT]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_WRITE_OUTPUT] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--====================================================-- Run postprocessing --===================================================--
EXEC @RETURN_STATUS = [dbo].[PRDEX_RUN_POSTPROCESSING] @pPROFILE_ID = @PROFILE_ID,
@pTEST_MODE = @TEST_MODE,
@pASYNC_MODE = @ASYNC_MODE,
@pBATCH_ID = @BATCH_ID,
@pBATCH_CREATOR = @BATCH_CREATOR,
@pLANGUAGE = @LANGUAGE,
@pLOG_LEVEL = @LOG_LEVEL,
@pSTART_QUERY = @START_QUERY,
@pSTART_QUERY_VAR1 = @START_QUERY_VAR1,
@pSTART_QUERY_VAR2 = @START_QUERY_VAR2,
@pSTART_QUERY_VAR3 = @START_QUERY_VAR3,
@pSTART_QUERY_VAR4 = @START_QUERY_VAR4,
@pSTART_QUERY_VAR5 = @START_QUERY_VAR5,
@pMAIN_QUERY = @MAIN_QUERY,
@pMAIN_QUERY_VAR1 = @MAIN_QUERY_VAR1,
@pMAIN_QUERY_VAR2 = @MAIN_QUERY_VAR2,
@pMAIN_QUERY_VAR3 = @MAIN_QUERY_VAR3,
@pMAIN_QUERY_VAR4 = @MAIN_QUERY_VAR4,
@pMAIN_QUERY_VAR5 = @MAIN_QUERY_VAR5,
@pEND_QUERY = @END_QUERY,
@pEND_QUERY_VAR1 = @END_QUERY_VAR1,
@pEND_QUERY_VAR2 = @END_QUERY_VAR2,
@pEND_QUERY_VAR3 = @END_QUERY_VAR3,
@pEND_QUERY_VAR4 = @END_QUERY_VAR4,
@pEND_QUERY_VAR5 = @END_QUERY_VAR5,
@pFORCE = @FORCE,
@pPROFILE_NAME = @PROFILE_NAME,
@pMANDANTOR = @MANDANTOR,
@pEXPORT_TYPE = @EXPORT_TYPE,
@pDEFAULT_DATA_SEPARATOR = @DEFAULT_DATA_SEPARATOR,
@pTBDEX_TMP_TABLE_SCHEMA = @TBDEX_TMP_TABLE_SCHEMA,
@pTBDEX_TMP_TABLE_NAME = @TBDEX_TMP_TABLE_NAME,
@pTBDEX_TMP_TABLE_COLUMNS = @TBDEX_TMP_TABLE_COLUMNS,
@pTBDEX_TMP_TABLE_DROP_QUERY = @TBDEX_TMP_TABLE_DROP_QUERY,
@pTBDEX_TMP_TABLE_CREATE_QUERY = @TBDEX_TMP_TABLE_CREATE_QUERY,
@pTBDEX_TMP_TABLE_INSERT_QUERY = @TBDEX_TMP_TABLE_INSERT_QUERY;
IF (@RETURN_STATUS <> 0) BEGIN
--====================================================-- exception / error --====================================================--
SET @RETURN_STATUS = @RETURN_STATUS;
SET @RETURN_STATUS_TEXT = concat('Error occurred in [PRDEX_RUN_POSTPROCESSING]!','');
SET @RETURN_ERROR_TEXT = concat('Check previous error text!','');
THROW @RETURN_STATUS,@RETURN_ERROR_TEXT,1;
-----------------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('Procedure [PRDEX_RUN_POSTPROCESSING] worked just fine!','');
SET @RETURN_ERROR_TEXT = concat('','');
PRINT 'INFO: ' + @RETURN_STATUS_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '';
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'INFO', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--====================================================-- exception / error --====================================================--
IF (@@TRANCOUNT > 0) BEGIN
ROLLBACK TRANSACTION;
END;
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Cleaning up --======================================================--
EXEC [dbo].[PRDEX_CLEAN_UP]
@pPROFILE_ID = @PROFILE_ID,
@pBATCH_ID = @BATCH_ID,
@pCLEAR_TEMP_TABLES = 1,
@pCLEAR_LOGS_OLDER_THEN_DAYS = 0,
@pCLEAR_RESULTS_OLDER_THEN_DAYS = 0,
@pLOG_LEVEL = @LOG_LEVEL;
-----------------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat(char(13),'END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
--===================================================-- Log result to table --===================================================--
IF (@LOG_LEVEL in ('INFO','WARN','ERROR')) BEGIN
EXEC [PRDEX_WRITE_LOG] @pLOG_LEVEL = N'ERROR', @pPROFILE_ID = @PROFILE_ID, @pBATCH_ID = @BATCH_ID,
@pREFERENCE1 = @REFERENCE1, @pREFERENCE2 = @REFERENCE2, @pREFERENCE3 = @REFERENCE3,
@pREFERENCE4 = @REFERENCE4, @pREFERENCE5 = @REFERENCE5, @pRETURN_CODE = @RETURN_STATUS,
@pMESSAGE1 = @RETURN_STATUS_TEXT, @pMESSAGE2 = @RETURN_ERROR_TEXT, @pADDED_WHO = @MY_PROCEDURE_NAME;
END;
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;