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; SET XACT_ABORT 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,'')); PRINT 'PARAMETER02 - @TEST_MODE: ' + CONVERT(NVARCHAR(200),ISNULL(@TEST_MODE,'')); PRINT 'PARAMETER03 - @ASYNC_MODE: ' + CONVERT(NVARCHAR(200),ISNULL(@ASYNC_MODE,'')); PRINT 'PARAMETER04 - @BATCH_ID: ' + CONVERT(NVARCHAR(200),ISNULL(@BATCH_ID,'')); PRINT 'PARAMETER05 - @BATCH_CREATOR: ' + CONVERT(NVARCHAR(200),ISNULL(@BATCH_CREATOR,'')); PRINT 'PARAMETER06 - @LANGUAGE: ' + CONVERT(NVARCHAR(200),ISNULL(@LANGUAGE,'')); PRINT 'PARAMETER07 - @LOG_LEVEL: ' + CONVERT(NVARCHAR(200),ISNULL(@LOG_LEVEL,'')); PRINT 'PARAMETER08 - @START_QUERY: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY,'')); PRINT 'PARAMETER09 - @START_QUERY_VAR1: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR1,'')); PRINT 'PARAMETER10 - @START_QUERY_VAR2: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR2,'')); PRINT 'PARAMETER11 - @START_QUERY_VAR3: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR3,'')); PRINT 'PARAMETER12 - @START_QUERY_VAR4: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR4,'')); PRINT 'PARAMETER13 - @START_QUERY_VAR5: ' + CONVERT(NVARCHAR(200),ISNULL(@START_QUERY_VAR5,'')); PRINT 'PARAMETER14 - @MAIN_QUERY: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY,'')); PRINT 'PARAMETER15 - @MAIN_QUERY_VAR1: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR1,'')); PRINT 'PARAMETER16 - @MAIN_QUERY_VAR2: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR2,'')); PRINT 'PARAMETER17 - @MAIN_QUERY_VAR3: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR3,'')); PRINT 'PARAMETER18 - @MAIN_QUERY_VAR4: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR4,'')); PRINT 'PARAMETER19 - @MAIN_QUERY_VAR5: ' + CONVERT(NVARCHAR(200),ISNULL(@MAIN_QUERY_VAR5,'')); PRINT 'PARAMETER20 - @END_QUERY: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY,'')); PRINT 'PARAMETER21 - @END_QUERY_VAR1: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR1,'')); PRINT 'PARAMETER22 - @END_QUERY_VAR2: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR2,'')); PRINT 'PARAMETER23 - @END_QUERY_VAR3: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR3,'')); PRINT 'PARAMETER24 - @END_QUERY_VAR4: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR4,'')); PRINT 'PARAMETER25 - @END_QUERY_VAR5: ' + CONVERT(NVARCHAR(200),ISNULL(@END_QUERY_VAR5,'')); PRINT 'PARAMETER26 - @FORCE: ' + CONVERT(NVARCHAR(200),ISNULL(@FORCE,'')); 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),''), char(13), '@MANDANTOR: ',ISNULL(CONVERT(NVARCHAR(50),@MANDANTOR),''), char(13), '@EXPORT_TYPE: ',ISNULL(CONVERT(NVARCHAR(50),@EXPORT_TYPE),''), char(13), '@DEFAULT_DATA_SEPARATOR: ',ISNULL(CONVERT(NVARCHAR(50),@DEFAULT_DATA_SEPARATOR),''), char(13), '@LOG_LEVEL: ',ISNULL(CONVERT(NVARCHAR(50),@LOG_LEVEL),''), char(13), '@LANGUAGE: ',ISNULL(CONVERT(NVARCHAR(50),@LANGUAGE),''), char(13), '@FIRST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@FIRST_RUN),''), char(13), '@LAST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RUN),''), char(13), '@LAST_BATCH_ID: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_BATCH_ID),''), char(13), '@LAST_RESULT: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RESULT),'') ); 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),''), char(13), '@MANDANTOR: ',ISNULL(CONVERT(NVARCHAR(50),@MANDANTOR),''), char(13), '@EXPORT_TYPE: ',ISNULL(CONVERT(NVARCHAR(50),@EXPORT_TYPE),''), char(13), '@DEFAULT_DATA_SEPARATOR: ',ISNULL(CONVERT(NVARCHAR(50),@DEFAULT_DATA_SEPARATOR),''), char(13), '@LOG_LEVEL: ',ISNULL(CONVERT(NVARCHAR(50),@LOG_LEVEL),''), char(13), '@LANGUAGE: ',ISNULL(CONVERT(NVARCHAR(50),@LANGUAGE),''), char(13), '@FIRST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@FIRST_RUN),''), char(13), '@LAST_RUN: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RUN),''), char(13), '@LAST_BATCH_ID: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_BATCH_ID),''), char(13), '@LAST_RESULT: ',ISNULL(CONVERT(NVARCHAR(50),@LAST_RESULT),'') ); 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;