Revision der Schleupen Schnittstelle

- NOLOCKs und FAST_FORWARDs eingebaut
- Arbeitstabelle eingebaut um Überschneidungen der Exportnummern zu verhindern
This commit is contained in:
2024-09-27 19:25:51 +02:00
parent 1ffac8878c
commit de25541233
7 changed files with 713 additions and 73 deletions

View File

@@ -1,20 +1,18 @@
USE [DD_ECM]
GO
Object StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA] Script Date 21.03.2024 155901
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Prozedur - Zentrale Logik zur Erstellung der Schnittstellendatei für Schleupen.
-- Stand MK 04.02.2022
-- 04.02.2022 Änderung des Dateinamensschemas - es wird nun die Buchungsnummer in den Dateinamen geschrieben und nicht mehr die Export Zählernummer
-- 27.11.2021 Erweiterung der Logik, um die Möglichkeit EXPORT_BOOKING_NUMBERs gemischt aus diesem und dem nächsten Jahr (- Unterschiedliche Nummernkreise!) zu erstellen (Basis ist das windream Belegdatum)
-- 31.01.2021 Initial
-- MK // 27.09.2024
-- 27.09.2024 MK Implementierung, um doppelte Nummernvergabe zu verhindern
-- 04.02.2022 MK Änderung des Dateinamensschemas - es wird nun die Buchungsnummer in den Dateinamen geschrieben und nicht mehr die Export Zählernummer
-- 27.11.2021 MK Erweiterung der Logik, um die Möglichkeit "EXPORT_BOOKING_NUMBERs" gemischt aus diesem und dem nächsten Jahr (-> Unterschiedliche Nummernkreise!) zu erstellen (Basis ist das windream Belegdatum)
-- 31.01.2021 MK Initial
---- To run the file export in this procedure, it is n to reconfigure the sql server
-- sp_configure 'show advanced options', 1;
@@ -30,7 +28,7 @@ GO
-- RECONFIGURE WITH OVERRIDE
-- GO
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA]
CREATE OR ALTER PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA]
@JOB_GUID INT,
@windreamDocID BIGINT,
@windreamStatus VARCHAR(20) = 'erledigt',
@@ -39,10 +37,10 @@ AS
PRINT '==============================='
PRINT 'PROCEDURE - START [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT 'PARAMETER1 - @JOB_GUID ' + CONVERT(varchar(50),@JOB_GUID)
PRINT 'PARAMETER2 - @windreamDocID ' + CONVERT(varchar(50),@windreamDocID)
PRINT 'PARAMETER3 - @windreamStatus ' + CONVERT(varchar(50),@windreamStatus)
PRINT 'PARAMETER4 - @windreamExportDate ' + CONVERT(varchar(50),@windreamExportDate)
PRINT 'PARAMETER1 - @JOB_GUID: ' + CONVERT(varchar(50),@JOB_GUID)
PRINT 'PARAMETER2 - @windreamDocID: ' + CONVERT(varchar(50),@windreamDocID)
PRINT 'PARAMETER3 - @windreamStatus: ' + CONVERT(varchar(50),@windreamStatus)
PRINT 'PARAMETER4 - @windreamExportDate: ' + CONVERT(varchar(50),@windreamExportDate)
BEGIN TRY
@@ -65,12 +63,12 @@ BEGIN TRY
--===============================================-- There should be exact one file --===============================================--
(SELECT @FileCount = count()
FROM [windream60].[dbo].[BaseAttributes]
(SELECT @FileCount = count(*)
FROM [windream60].[dbo].[BaseAttributes] (NOLOCK)
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate)
OR ([dwDate04] = '19700101') -- Dummy Value, because PM FinalIndex cannot handle NUll as Result in case of Angehalten or Abgelehnt
OR ([dwDate04] = '19700101') -- Dummy Value, because PM FinalIndex cannot handle NUll as Result in case of "Angehalten" or "Abgelehnt"
OR ([dwDate04] IS NULL)))
IF ((@windreamStatus = 'erledigt') and (@FileCount = 1))
@@ -80,24 +78,23 @@ BEGIN TRY
SELECT @JOB_NAME = [JOB_NAME],
@MANDATOR = [MANDANTOR],
@EXPORT_TYPE = [EXPORT_TYPE]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG] (NOLOCK)
WHERE [GUID] = @JOB_GUID
--=============================================-- Get windream File Indices --=============================================--
SELECT @DocumentDate = [dwDate09] -- = Needed for setting Booking Number
FROM [windream60].[dbo].[BaseAttributes]
FROM [windream60].[dbo].[BaseAttributes] (NOLOCK)
WHERE [dwDocID] = @windreamDocID
--===============================================-- Get File config infos --===============================================--
SELECT @GUID = [GUID],
@EXPORT_BOOKING_NUMBER_BASE = [EXPORT_BOOKING_NUMBER_BASE],
@EXPORT_BOOKING_NUMBER_COUNTER = [EXPORT_BOOKING_NUMBER_COUNTER]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
@EXPORT_BOOKING_NUMBER_BASE = [EXPORT_BOOKING_NUMBER_BASE]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID
--===============================================-- Get and Set Booking Number --===============================================--
IF (@DocumentDate IS NOT NULL)
BEGIN -- If windream Belegdatum is set, take year as base value
BEGIN -- If "windream Belegdatum" is set, take year as base value
SET @DATE_YY = RIGHT(LEFT(@DocumentDate,4),2)
END
ELSE
@@ -107,18 +104,40 @@ BEGIN TRY
----------------------------------------------------------------------------------------------------------------------------------
PRINT 'Searching for existing numbers in temp table...'
IF (SELECT COUNT(*) FROM [TBCUST_EXPORT_POSTING_DATA_FILE_TEMP] (NOLOCK) WHERE [JOB_GUID] = @JOB_GUID AND [ADDED_WHO] = '[PRCUST_EXPORT_POSTING_DATA]') > 0
BEGIN
SELECT TOP 1 @EXPORT_BOOKING_NUMBER_COUNTER = [EXPORT_BOOKING_NUMBER_COUNTER]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_TEMP] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID
AND [ADDED_WHO] = '[PRCUST_EXPORT_POSTING_DATA]'
ORDER BY [EXPORT_BOOKING_NUMBER] DESC
PRINT 'Found value in temp table!'
END
ELSE
BEGIN
SELECT @EXPORT_BOOKING_NUMBER_COUNTER = [EXPORT_BOOKING_NUMBER_COUNTER]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID
PRINT 'Nothing found in temp table using config table!'
END
----------------------------------------------------------------------------------------------------------------------------------
PRINT 'Searching for existing numbers in history table...'
PRINT (convert(varchar(2),@DATE_YY) + '%')
-- Check histroy table if there are numbers with same prefix (= the year)
-- Check history table if there are numbers with same prefix (= the year)
SELECT @EXPORT_BOOKING_NUMBER_MAXCOUNT = MAX(EXPORT_BOOKING_NUMBER)
FROM [DD_ECM].[dbo].[TBCUST_EXPORT_POSTING_DATA_FILE_ARCHIV]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_ARCHIV] (NOLOCK)
WHERE [EXPORT_BOOKING_NUMBER] LIKE (convert(varchar(2),@DATE_YY) + '%')
IF (@EXPORT_BOOKING_NUMBER_MAXCOUNT IS NOT NULL)
BEGIN
PRINT 'Highest number found ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_MAXCOUNT)
PRINT 'Highest number found: ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_MAXCOUNT)
SET @EXPORT_BOOKING_NUMBER = CONVERT(INT,@EXPORT_BOOKING_NUMBER_MAXCOUNT)
SET @EXPORT_BOOKING_NUMBER = CONVERT(INT,@EXPORT_BOOKING_NUMBER)
@@ -135,13 +154,13 @@ BEGIN TRY
END
PRINT ''
PRINT '@EXPORT_BOOKING_NUMBER_BASE ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_BASE)
PRINT '@EXPORT_BOOKING_NUMBER_BASENOW ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_BASE_NOW)
PRINT '@EXPORT_BOOKING_NUMBER_COUNTER ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_COUNTER)
PRINT '@EXPORT_BOOKING_NUMBER_BASE: ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_BASE)
PRINT '@EXPORT_BOOKING_NUMBER_BASENOW: ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_BASE_NOW)
PRINT '@EXPORT_BOOKING_NUMBER_COUNTER: ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_COUNTER)
----------------------------------------------------------------------------------------------------------------------------------
-- If Booking number base (like 2100000) is not the initial value
IF (@EXPORT_BOOKING_NUMBER_BASE @EXPORT_BOOKING_NUMBER_BASE_NOW)
IF (@EXPORT_BOOKING_NUMBER_BASE <> @EXPORT_BOOKING_NUMBER_BASE_NOW)
BEGIN
SET @EXPORT_BOOKING_NUMBER_BASE = @EXPORT_BOOKING_NUMBER_BASE_NOW
Update [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
@@ -149,10 +168,11 @@ BEGIN TRY
WHERE JOB_GUID = @JOB_GUID
END;
PRINT '@EXPORT_BOOKING_NUMBER_BASE (final) ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_BASE)
PRINT '@EXPORT_BOOKING_NUMBER_BASE (final): ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_BASE)
----------------------------------------------------------------------------------------------------------------------------------
SET @EXPORT_BOOKING_NUMBER_COUNTER = convert(bigint,@EXPORT_BOOKING_NUMBER_COUNTER)
IF (@EXPORT_BOOKING_NUMBER_COUNTER = 0) or (@EXPORT_BOOKING_NUMBER_COUNTER is null)
IF (@EXPORT_BOOKING_NUMBER_COUNTER <= 0) or (@EXPORT_BOOKING_NUMBER_COUNTER is null)
BEGIN
SET @EXPORT_BOOKING_NUMBER_COUNTER = 1
Update [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
@@ -169,22 +189,27 @@ BEGIN TRY
WHERE JOB_GUID = @JOB_GUID
END;
PRINT '@EXPORT_BOOKING_NUMBER_COUNTER ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_COUNTER)
PRINT '@EXPORT_BOOKING_NUMBER_COUNTER: ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER_COUNTER)
----------------------------------------------------------------------------------------------------------------------------------
IF (@EXPORT_BOOKING_NUMBER_BASE = 1) and (@EXPORT_BOOKING_NUMBER_COUNTER = 1)
IF (@EXPORT_BOOKING_NUMBER_BASE >= 1) and (@EXPORT_BOOKING_NUMBER_COUNTER >= 1)
BEGIN
SET @EXPORT_BOOKING_NUMBER = convert(bigint,@EXPORT_BOOKING_NUMBER_BASE) + convert(bigint,@EXPORT_BOOKING_NUMBER_COUNTER)
END
ELSE
SET @EXPORT_BOOKING_NUMBER = '9999999';
PRINT '@EXPORT_BOOKING_NUMBER (final) ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER)
PRINT '@EXPORT_BOOKING_NUMBER (final): ' + convert(varchar(100),@EXPORT_BOOKING_NUMBER)
----------------------------------------------------------------------------------------------------------------------------------
--=============================================-- Fill temp table for busy check --=============================================--
INSERT INTO [TBCUST_EXPORT_POSTING_DATA_FILE_TEMP]([JOB_GUID],[DOCID],[EXPORT_BOOKING_NUMBER_COUNTER],[EXPORT_BOOKING_NUMBER],[COMMENT],[ADDED_WHO],[ADDED_WHEN])
VALUES(@JOB_GUID,@windreamDocID,@EXPORT_BOOKING_NUMBER_COUNTER,@EXPORT_BOOKING_NUMBER,NULL,'[PRCUST_EXPORT_POSTING_DATA]',GETDATE())
----------------------------------------------------------------------------------------------------------------------------------
--===============================================-- Fill table with content --===============================================--
INSERT INTO [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT]
([FILE_CONFIG_GUID],
[FILE_CONTENT])
INSERT INTO [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT]([FILE_CONFIG_GUID],[FILE_CONTENT])
SELECT @GUID, [FILE_CONTENT_BODY]
FROM [FNCUST_FORMAT-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN](@JOB_GUID,@EXPORT_BOOKING_NUMBER,@windreamDocID,@windreamStatus,@windreamExportDate)
@@ -196,6 +221,17 @@ BEGIN TRY
PRINT 'PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT '==============================='
--=============================================-- Clear temp table for busy check --=============================================--
DELETE
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_TEMP]
WHERE [JOB_GUID] = @JOB_GUID
AND [DOCID] = @windreamDocID
AND [EXPORT_BOOKING_NUMBER_COUNTER] = @EXPORT_BOOKING_NUMBER_COUNTER
AND [EXPORT_BOOKING_NUMBER] = @EXPORT_BOOKING_NUMBER
AND [ADDED_WHO] = '[PRCUST_EXPORT_POSTING_DATA]'
----------------------------------------------------------------------------------------------------------------------------------
END
ELSE
@@ -203,16 +239,16 @@ BEGIN TRY
PRINT 'No rows in data table found!'
PRINT ''
PRINT 'Please check if File was already exported!'
PRINT '1. Check if windream Date [dwdate04] is set Must be unset or 19700101! (19700101 = 1.1.1970)! '
PRINT '2. Check if windream Status [szText33] is set to erledigt!'
PRINT '3. Check if WF Zahlungsfreigabe der Geschäftsführung [Vektor_Boolean_06] ist set to truewahr, '
PRINT ' have to be falsefalsch!'
PRINT '1. Check if windream Date [dwdate04] is set? Must be unset or 19700101! (19700101 = 1.1.1970)! '
PRINT '2. Check if windream Status [szText33] is set to "erledigt"!'
PRINT '3. Check if WF: Zahlungsfreigabe der Geschäftsführung [Vektor_Boolean_06] ist set to true/wahr, '
PRINT ' have to be false/falsch!'
PRINT ''
PRINT 'PROCEDURE - END [PRCUST_EXPORT_POSTING_DATA] @ ' + CONVERT(varchar(50),GETDATE(),120)
PRINT '==============================='
RETURN 1 -- IF @windreamStatus 'erledigt'
RETURN 1 -- IF @windreamStatus <> 'erledigt'
END
END TRY
@@ -223,12 +259,9 @@ BEGIN CATCH
--FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONTENT]
--WHERE [FILE_CONFIG_GUID] = @GUID
PRINT 'ERROR IN PROCEDURE ' + CONVERT(VARCHAR(50),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE '
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(50),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
--EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] @JOB_GUID, 'File','Procedure PRCUST_EXPORT_POSTING_DATA_CREATE_FILE'--, CONVERT(VARCHAR(30),ERROR_PROCEDURE()), ERROR_MESSAGE
--EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] @JOB_GUID, 'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE'--, CONVERT(VARCHAR(30),ERROR_PROCEDURE()), ERROR_MESSAGE
RETURN 1
END CATCH
GO

View File

@@ -1,16 +1,13 @@
USE [DD_ECM]
GO
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME] Script Date: 21.03.2024 15:59:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME]
CREATE OR ALTER PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_BUILD_FILE_NAME]
@JOB_GUID INT, -- Mandatory Parameter, to build the file name
@EXPORT_BOOKING_NUMBER VARCHAR(50),
@FILE_NAME VARCHAR(50) OUTPUT
@@ -33,7 +30,7 @@ BEGIN TRY
@FILE_NAME_SEPARATOR = [FILE_NAME_SEPARATOR],
@FILE_RUNNING_NUMBER = [FILE_RUNNING_NUMBER],
@FILE_EXTENSION = [FILE_EXTENSION]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID
IF (@EXPORT_BOOKING_NUMBER is null) or (@EXPORT_BOOKING_NUMBER < 0)

View File

@@ -1,15 +1,12 @@
USE [DD_ECM]
GO
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT] Script Date: 21.03.2024 16:00:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT]
CREATE OR ALTER PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_COLLECT_FILE_CONTENT]
@JOB_GUID INT,
@windreamDocID BIGINT,
@windreamStatus VARCHAR(20) = 'erledigt',
@@ -60,7 +57,7 @@ BEGIN TRY
SELECT @JOB_NAME = [JOB_NAME],
@MANDATOR = [MANDANTOR],
@EXPORT_TYPE = [EXPORT_TYPE]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG] (NOLOCK)
WHERE [GUID] = @JOB_GUID
INSERT INTO @WINDREAM_2_SCHLEUPEN ([Belegnummer (X)],
@@ -113,7 +110,7 @@ BEGIN TRY
NULL as [Skontotage 2],
NULL as [Skonto Prozent 2],
NULL as [Nettotage]
FROM [windream60].[dbo].[BaseAttributes]
FROM [windream60].[dbo].[BaseAttributes] (NOLOCK)
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate) OR ([dwDate04] IS NULL))
@@ -138,6 +135,3 @@ BEGIN CATCH
RETURN 1
END CATCH
GO

View File

@@ -1,16 +1,16 @@
USE [DD_ECM]
GO
/****** Object: StoredProcedure [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE] Script Date: 21.03.2024 16:00:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Prozedur welche die bereitsgesammelten Daten abruft und in Folge in eine Datei und ins Archiv schreibt.
-- Stand: MK // 30.01.2021
-- MK // 27.09.2024
-- 27.09.2024 MK NOLOCK und LOCAL FAST_FORWARD eingebaut
-- 30.01.2021 MK Initial
---- To run the file export in this procedure, it is n to reconfigure the sql server
-- sp_configure 'show advanced options', 1;
@@ -26,7 +26,7 @@ GO
-- RECONFIGURE WITH OVERRIDE
-- GO
CREATE PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE]
CREATE OR ALTER PROCEDURE [dbo].[PRCUST_EXPORT_POSTING_DATA_WRITE_FILE]
@JOB_GUID INT,
@windreamDocID BIGINT,
@EXPORT_BOOKING_NUMBER BIGINT
@@ -76,7 +76,7 @@ BEGIN TRY
SELECT @JOB_NAME = [JOB_NAME],
@MANDATOR = [MANDANTOR],
@EXPORT_TYPE = [EXPORT_TYPE]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG] (NOLOCK)
WHERE [GUID] = @JOB_GUID
-- Get export file content
@@ -119,7 +119,7 @@ BEGIN TRY
@FILE_PATH_EXPORT = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_EXPORT]))),
@FILE_PATH_ARCHIV = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_ARCHIV]))),
@FILE_PATH_ERROR = RTRIM(LTRIM(CONVERT(VARCHAR(500),[FILE_PATH_ERROR])))
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG] (NOLOCK)
WHERE [JOB_GUID] = @JOB_GUID
PRINT ' '
@@ -175,7 +175,7 @@ BEGIN TRY
-- prepare cursor to write every content line
DECLARE CURSOR_WRITE_FILE_CONTENT CURSOR
FOR
LOCAL FAST_FORWARD FOR
SELECT [FILE_CONTENT_BODY_LINE]
FROM @FILE_CONTENT_BODY
@@ -201,7 +201,7 @@ BEGIN TRY
-- prepare cursor to delete content lines
DECLARE CURSOR_DELETE_FILE_CONTENT CURSOR
FOR
LOCAL FAST_FORWARD FOR
SELECT [GUID]
FROM @FILE_CONTENT_BODY
@@ -264,6 +264,3 @@ BEGIN CATCH
--EXEC [PRCUST_EXPORT_POSTING_DATA_WRITE_JOB_LOG] @JOB_GUID, 'File:','Procedure: PRCUST_EXPORT_POSTING_DATA_CREATE_FILE'--, CONVERT(VARCHAR(30),ERROR_PROCEDURE()), ERROR_MESSAGE
RETURN 1
END CATCH
GO