Stored Procedures [dbo].[CHECK_BUSINESS_METADATA]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
SQL Script
CREATE PROCEDURE [dbo].[CHECK_BUSINESS_METADATA]  
AS
   
   /*
   *   Generated by SQL Server Migration Assistant for Oracle.
   *   Contact ora2sql@microsoft.com or visit http://www.microsoft.com/sql/migration for more information.
   */

   BEGIN

      /* column declarations*/
      DECLARE
         @var_err_code int,
         @var_err_table_name nvarchar(100),
         @var_pk1_field_value nvarchar(100),
         @var_pk2_field_value nvarchar(100),
         @var_err_field_name nvarchar(100),
         @var_err_field_value nvarchar(255),
         @var_err_message nvarchar(255),
         @var_err_resolution nvarchar(255)

      /***** 500-599 arg_class_def errors *****/
      SET @var_err_code = 500

      SET @var_err_message = 'table_name does not exist in arg_table_def'

      SET @var_err_resolution = 'correct field value or add table record'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'table_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd.CLASS_NAME, cd.TABLE_NAME
               FROM
                  dbo.ARG_CLASS_DEF  AS cd
                     FULL OUTER JOIN dbo.ARG_TABLE_DEF  AS td
                     ON td.TABLE_NAME = cd.TABLE_NAME
               WHERE cd.TABLE_NAME IS NOT NULL AND td.TABLE_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 501

      SET @var_err_message = 'class_template does not exist in arg_class_def'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd1.CLASS_NAME, cd1.CLASS_TEMPLATE
               FROM
                  dbo.ARG_CLASS_DEF  AS cd1
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd2
                     ON cd2.CLASS_NAME = cd1.CLASS_TEMPLATE
               WHERE cd1.CLASS_TEMPLATE IS NOT NULL AND cd2.CLASS_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 502

      SET @var_err_message = 'class_template does not exist in SWCM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record or check app filter values'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd1.CLASS_NAME, cd1.CLASS_TEMPLATE
               FROM
                  dbo.ARG_CLASS_DEF  AS cd1
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd2
                     ON cd2.CLASS_NAME = cd1.CLASS_TEMPLATE AND cd2.APP_FILTER IN ( 1, 3 )
               WHERE
                  cd1.CLASS_TEMPLATE IS NOT NULL AND
                  cd2.CLASS_NAME IS NULL AND
                  cd1.APP_FILTER IN ( 1, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 503

      SET @var_err_message = 'class_template does not exist in APM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record or check app filter values'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd1.CLASS_NAME, cd1.CLASS_TEMPLATE
               FROM
                  dbo.ARG_CLASS_DEF  AS cd1
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd2
                     ON cd2.CLASS_NAME = cd1.CLASS_TEMPLATE AND cd2.APP_FILTER IN ( 2, 3 )
               WHERE
                  cd1.CLASS_TEMPLATE IS NOT NULL AND
                  cd2.CLASS_NAME IS NULL AND
                  cd1.APP_FILTER IN ( 2, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 504

      SET @var_err_message = 'Warning: class does not have any attributes defined'

      SET @var_err_resolution = 'add attribute records for class'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_def'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd.CLASS_NAME
               FROM
                  dbo.ARG_CLASS_DEF  AS cd
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON ad.CLASS_NAME = cd.CLASS_NAME
               WHERE
                  cd.CLASS_NAME IS NOT NULL AND
                  ad.CLASS_NAME IS NULL AND
                  cd.CLASS_TEMPLATE IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_WARNINGS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 505

      SET @var_err_message = 'Warning: class does not have any SWCM attributes defined'

      SET @var_err_resolution = 'add attribute records for class or check app_filter'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_def'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd.CLASS_NAME
               FROM
                  dbo.ARG_CLASS_DEF  AS cd
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON ad.CLASS_NAME = cd.CLASS_NAME AND ad.APP_FILTER IN ( 1, 3 )
               WHERE
                  cd.CLASS_NAME IS NOT NULL AND
                  ad.CLASS_NAME IS NULL AND
                  cd.CLASS_TEMPLATE IS NULL AND
                  cd.APP_FILTER IN ( 1, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_WARNINGS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 506

      SET @var_err_message = 'Warning: class does not have any APM attributes defined'

      SET @var_err_resolution = 'add attribute records for class or check app_filter'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_def'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT cd.CLASS_NAME
               FROM
                  dbo.ARG_CLASS_DEF  AS cd
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON ad.CLASS_NAME = cd.CLASS_NAME AND ad.APP_FILTER IN ( 2, 3 )
               WHERE
                  cd.CLASS_NAME IS NOT NULL AND
                  ad.CLASS_NAME IS NULL AND
                  cd.CLASS_TEMPLATE IS NULL AND
                  cd.APP_FILTER IN ( 2, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_WARNINGS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 507

      SET @var_err_message = 'Warning: class alias is duplicate'

      SET @var_err_resolution = 'change class alias to remove duplicate'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_alias'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *    ???
      *                       declare cursor err_records is
      *                           select class_alias, count(0) as duplicate_count
      *                           from arg_class_def
      *                           group by class_alias having count(0) > 1;
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_alias, @duplicate_count
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = str(@duplicate_count) + ' records'
      *                           var_err_field_value = @class_alias
      *                           insert into arg_metadata_warnings (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_alias, @duplicate_count
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 508

      SET @var_err_message = 'table_name (class) or class_template (subclass) must be specified'

      SET @var_err_resolution = 'add table_name (class) or class_template (subclass)'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'table_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_CLASS_DEF.CLASS_NAME, ARG_CLASS_DEF.TABLE_NAME
               FROM dbo.ARG_CLASS_DEF
               WHERE ARG_CLASS_DEF.TABLE_NAME IS NULL AND ARG_CLASS_DEF.CLASS_TEMPLATE IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 509

      SET @var_err_message = 'table_name (class) and class_template (subclass) cannot both be specified'

      SET @var_err_resolution = 'remove table_name (class) or class_template (subclass)'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_CLASS_DEF.CLASS_NAME, ARG_CLASS_DEF.CLASS_TEMPLATE
               FROM dbo.ARG_CLASS_DEF
               WHERE ARG_CLASS_DEF.TABLE_NAME IS NOT NULL AND ARG_CLASS_DEF.CLASS_TEMPLATE IS NOT NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 510

      SET @var_err_message = 'app_filter is required for class record'

      SET @var_err_resolution = 'specify app_filter value'

      SET @var_err_table_name = 'arg_class_def'

      SET @var_err_field_name = 'app_filter'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_CLASS_DEF.CLASS_NAME, ARG_CLASS_DEF.APP_FILTER
               FROM dbo.ARG_CLASS_DEF
               WHERE ARG_CLASS_DEF.APP_FILTER = 0 OR ARG_CLASS_DEF.APP_FILTER IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_WARNINGS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      /***** 600-699 arg_attribute_def errors *****/
      SET @var_err_code = 600

      SET @var_err_message = 'class_name not defined in arg_class_def'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'class_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_NAME
               WHERE ad.CLASS_NAME IS NOT NULL AND cd.CLASS_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 601

      SET @var_err_message = 'class_name not defined in SWCM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'class_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_NAME AND cd.APP_FILTER IN ( 1, 3 )
               WHERE
                  ad.CLASS_NAME IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  ad.APP_FILTER IN ( 1, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 602

      SET @var_err_message = 'class_name not defined in APM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'class_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_NAME AND cd.APP_FILTER IN ( 2, 3 )
               WHERE
                  ad.CLASS_NAME IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  ad.APP_FILTER IN ( 2, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 603

      SET @var_err_message = 'table_name not defined in arg_table_def'

      SET @var_err_resolution = 'correct field value or add table record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'table_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.TABLE_NAME
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_TABLE_DEF  AS td
                     ON td.TABLE_NAME = ad.TABLE_NAME
               WHERE ad.TABLE_NAME IS NOT NULL AND td.TABLE_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 604

      SET @var_err_message = 'field_name not defined in arg_field_def'

      SET @var_err_resolution = 'correct field value or add field record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'field_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.FIELD_NAME
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_FIELD_DEF  AS fd
                     ON fd.TABLE_NAME = ad.TABLE_NAME AND fd.FIELD_NAME = ad.FIELD_NAME
               WHERE ad.FIELD_NAME IS NOT NULL AND fd.FIELD_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 605

      SET @var_err_message = 'attribute_type not defined in arg_class_def'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_type'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.ATTRIBUTE_TYPE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.ATTRIBUTE_TYPE
               WHERE ad.ATTRIBUTE_TYPE IS NOT NULL AND cd.CLASS_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 606

      SET @var_err_message = 'attribute_type not defined in SWCM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_type'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.ATTRIBUTE_TYPE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.ATTRIBUTE_TYPE AND cd.APP_FILTER IN ( 1, 3 )
               WHERE
                  ad.ATTRIBUTE_TYPE IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  ad.APP_FILTER IN ( 1, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 607

      SET @var_err_message = 'attribute_type not defined in APM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_type'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.ATTRIBUTE_TYPE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.ATTRIBUTE_TYPE AND cd.APP_FILTER IN ( 2, 3 )
               WHERE
                  ad.ATTRIBUTE_TYPE IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  ad.APP_FILTER IN ( 2, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 608

      SET @var_err_message = 'join_name not defined in arg_join_def'

      SET @var_err_resolution = 'correct field value or add join records'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'join_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.JOIN_NAME
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_JOIN_DEF  AS jd
                     ON jd.JOIN_NAME = ad.JOIN_NAME
               WHERE ad.JOIN_NAME IS NOT NULL AND jd.JOIN_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 609

      SET @var_err_message = 'class_template not defined in arg_class_def'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.CLASS_TEMPLATE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_TEMPLATE
               WHERE ad.CLASS_TEMPLATE IS NOT NULL AND cd.CLASS_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 610

      SET @var_err_message = 'class_template not defined in SWCM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.CLASS_TEMPLATE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_TEMPLATE AND cd.APP_FILTER IN ( 1, 3 )
               WHERE
                  ad.CLASS_TEMPLATE IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  ad.APP_FILTER IN ( 1, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 611

      SET @var_err_message = 'class_template not defined in APM arg_class_def records'

      SET @var_err_resolution = 'correct field value or add class record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'class_template'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.CLASS_TEMPLATE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     FULL OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_TEMPLATE AND cd.APP_FILTER IN ( 2, 3 )
               WHERE
                  ad.CLASS_TEMPLATE IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  ad.APP_FILTER IN ( 2, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 612

      SET @var_err_message = 'control_object not defined in arg_controls'

      SET @var_err_resolution = 'correct field value or add control record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'control_object'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.CONTROL_OBJECT
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE ARG_ATTRIBUTE_DEF.CONTROL_OBJECT NOT IN
                  (
                     SELECT ARG_CONTROLS.CNOBJECT
                     FROM dbo.ARG_CONTROLS
                  ) AND ARG_ATTRIBUTE_DEF.CONTROL_OBJECT IS NOT NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 613

      SET @var_err_message = 'control_name not defined in arg_controls'

      SET @var_err_resolution = 'correct field value or add control record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'control_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.CONTROL_NAME
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE ARG_ATTRIBUTE_DEF.CONTROL_NAME NOT IN
                  (
                     SELECT ARG_CONTROLS.CNNAME
                     FROM dbo.ARG_CONTROLS
                  ) AND ARG_ATTRIBUTE_DEF.CONTROL_NAME IS NOT NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 614

      SET @var_err_message = 'related_base_attribute not defined in arg_attribute_def'

      SET @var_err_resolution = 'correct field value or add attribute record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'related_base_attribute'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad1.CLASS_NAME, ad1.ATTRIBUTE_NAME, ad1.RELATED_BASE_ATTRIBUTE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad2
                     ON ad2.CLASS_NAME = ad1.CLASS_NAME AND ad2.ATTRIBUTE_NAME = ad1.RELATED_BASE_ATTRIBUTE
               WHERE ad1.RELATED_BASE_ATTRIBUTE IS NOT NULL AND ad2.ATTRIBUTE_NAME IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 615

      SET @var_err_message = 'related_base_attribute not defined in SWCM arg_attribute_def records'

      SET @var_err_resolution = 'correct field value or add attribute record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'related_base_attribute'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad1.CLASS_NAME, ad1.ATTRIBUTE_NAME, ad1.RELATED_BASE_ATTRIBUTE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad2
                     ON
                        ad2.CLASS_NAME = ad1.CLASS_NAME AND
                        ad2.ATTRIBUTE_NAME = ad1.RELATED_BASE_ATTRIBUTE AND
                        ad2.APP_FILTER IN ( 1, 3 )
               WHERE
                  ad1.RELATED_BASE_ATTRIBUTE IS NOT NULL AND
                  ad2.ATTRIBUTE_NAME IS NULL AND
                  ad1.APP_FILTER IN ( 1, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 616

      SET @var_err_message = 'related_base_attribute not defined in APM arg_attribute_def records'

      SET @var_err_resolution = 'correct field value or add attribute record'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'related_base_attribute'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad1.CLASS_NAME, ad1.ATTRIBUTE_NAME, ad1.RELATED_BASE_ATTRIBUTE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad2
                     ON
                        ad2.CLASS_NAME = ad1.CLASS_NAME AND
                        ad2.ATTRIBUTE_NAME = ad1.RELATED_BASE_ATTRIBUTE AND
                        ad2.APP_FILTER IN ( 2, 3 )
               WHERE
                  ad1.RELATED_BASE_ATTRIBUTE IS NOT NULL AND
                  ad2.ATTRIBUTE_NAME IS NULL AND
                  ad1.APP_FILTER IN ( 2, 3 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 617

      SET @var_err_message = 'attribute label is blank'

      SET @var_err_resolution = 'add attribute label'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_label'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_LABEL
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE ARG_ATTRIBUTE_DEF.ATTRIBUTE_LABEL IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 618

      SET @var_err_message = 'Warning: attribute label is duplicate within class'

      SET @var_err_resolution = 'change attribute labels to remove duplicate'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_label'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_label, count(0) as duplicate_count
      *                           from arg_attribute_def
      *                           group by class_name, attribute_label
      *                           having count(0) > 1;
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_label, @duplicate_count
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = @class_name
      *                           var_pk2_field_value = str(@duplicate_count) + ' records'
      *                           var_err_field_value = @attribute_label
      *                           insert into arg_metadata_warnings (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_label, @duplicate_count
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 619

      SET @var_err_message = 'Warning: attribute alias is duplicate'

      SET @var_err_resolution = 'change attribute alias to remove duplicate'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_alias'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_alias, count(0) as duplicate_count
      *                           from arg_attribute_def
      *                           group by class_name, attribute_alias having count(0) > 1;
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_alias, @duplicate_count
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = str(@duplicate_count) + ' records'
      *                           var_err_field_value = @attribute_alias
      *                           insert into arg_metadata_warnings (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_alias, @duplicate_count
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 620

      SET @var_err_message = 'table_name and field_name are required for the base attribute of a class'

      SET @var_err_resolution = 'add values or check relation type for attribute'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = NULL

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_name, table_name, field_name from arg_attribute_def
      *                           where class_name in (select class_name from arg_class_def where table_name is not null)
      *                           and relation_type = 0
      *                           and (table_name is null or field_name is null);
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @table_name, @field_name
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = @class_name
      *                           var_pk2_field_value = @attribute_name
      *                           var_err_field_name = ' '
      *                           var_err_field_value = ' '
      *   
      *                           if @table_name is null
      *                           begin
      *                               var_err_field_name = 'table_name'
      *                               var_err_field_value = 'null'
      *                           end
      *   
      *                           if @field_name is null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'field_name'
      *                               var_err_field_value = @err_field_value + 'null'
      *                           end
      *   
      *                           -- logic
      *                           insert into arg_metadata_errors (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @table_name, @field_name
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 621

      SET @var_err_message = 'attribute_type, join_name, class_template and related_base_attribute must be null for the base attribute of a class'

      SET @var_err_resolution = 'remove values or check relation type'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = NULL

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_name,
      *                           attribute_type, join_name, class_template, related_base_attribute from arg_attribute_def
      *                           where class_name in (select class_name from arg_class_def where table_name is not null)
      *                           and relation_type = 0
      *                           and (attribute_type is not null or join_name is not null or class_template is not null
      *                           or related_base_attribute is not null);
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @attribute_type, @join_name, @class_template, @related_base_attribute
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = @class_name
      *                           var_pk2_field_value = @attribute_name
      *                           var_err_field_name = ' '
      *                           var_err_field_value = ' '
      *   
      *                           if @attribute_type is not null
      *                           begin
      *                               var_err_field_name = 'attribute_type'
      *                               var_err_field_value = @attribute_type
      *                           end
      *   
      *                           if @join_name is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'join_name'
      *                               var_err_field_value = @err_field_value + @join_name
      *                           end
      *   
      *                           if @class_template is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'class_template'
      *                               var_err_field_value = @err_field_value + @class_template
      *                           end
      *   
      *                           if @related_base_attribute is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'related_base_attribute'
      *                               var_err_field_value = @err_field_value + @related_base_attribute
      *                           end
      *   
      *                           insert into arg_metadata_errors (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @attribute_type, @join_name, @class_template, @related_base_attribute
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 622

      SET @var_err_message = 'table_name, field_name and class_template must be null for a sibling or child attribute of a class'

      SET @var_err_resolution = 'remove values or check relation type'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = NULL

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_name,
      *                           table_name, field_name, class_template from arg_attribute_def
      *                           where class_name in (select class_name from arg_class_def where table_name is not null)
      *                           and (relation_type = 1 or relation_type = 2)
      *                           and (table_name is not null or field_name is not null or class_template is not null);
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @table_name, @field_name, @class_template
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = @class_name
      *                           var_pk2_field_value = @attribute_name
      *                           var_err_field_name = ' '
      *                           var_err_field_value = ' '
      *   
      *                           if @table_name is not null
      *                           begin
      *                               var_err_field_name = 'table_name'
      *                               var_err_field_value = @table_name
      *                           end
      *   
      *                           if @field_name is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'field_name'
      *                               var_err_field_value = @err_field_value + @field_name
      *                           end
      *   
      *                           if @class_template is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'class_template'
      *                               var_err_field_value = @err_field_value + @class_template
      *                           end
      *   
      *                           insert into arg_metadata_errors (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @table_name, @field_name, @class_template
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 623

      SET @var_err_message = 'attribute_type and join_name are required for a sibling or child attribute of a class'

      SET @var_err_resolution = 'add values or check relation type'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = NULL

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_name, attribute_type, join_name from arg_attribute_def
      *                           where class_name in (select class_name from arg_class_def where table_name is not null)
      *                           and (relation_type = 1 or relation_type = 2)
      *                           and (attribute_type is null or join_name is null);
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @attribute_type, @join_name
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = @class_name
      *                           var_pk2_field_value = @attribute_name
      *                           var_err_field_name = ' '
      *                           var_err_field_value = ' '
      *   
      *                           if @attribute_type is null
      *                           begin
      *                               var_err_field_name = 'attribute_type'
      *                               var_err_field_value = 'null'
      *                           end
      *   
      *                           if @join_name is null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'join_name'
      *                               var_err_field_value = @err_field_value + 'null'
      *                           end
      *   
      *                           insert into arg_metadata_errors (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @attribute_type, @join_name
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 624

      SET @var_err_message = 'related_base_attribute is required for a sibling attribute of a class'

      SET @var_err_resolution = 'add value or check relation type'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'related_base_attribute'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.RELATED_BASE_ATTRIBUTE
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE
                  ARG_ATTRIBUTE_DEF.CLASS_NAME IN
                  (
                     SELECT ARG_CLASS_DEF.CLASS_NAME
                     FROM dbo.ARG_CLASS_DEF
                     WHERE ARG_CLASS_DEF.TABLE_NAME IS NOT NULL
                  ) AND
                  ARG_ATTRIBUTE_DEF.RELATION_TYPE = 1 AND
                  (ARG_ATTRIBUTE_DEF.RELATED_BASE_ATTRIBUTE IS NULL)

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 625

      SET @var_err_message = 'related_base_attribute must be null for a child attribute of a class'

      SET @var_err_resolution = 'remove value or check relation type'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'related_base_attribute'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.RELATED_BASE_ATTRIBUTE
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE
                  ARG_ATTRIBUTE_DEF.CLASS_NAME IN
                  (
                     SELECT ARG_CLASS_DEF.CLASS_NAME
                     FROM dbo.ARG_CLASS_DEF
                     WHERE ARG_CLASS_DEF.TABLE_NAME IS NOT NULL
                  ) AND
                  ARG_ATTRIBUTE_DEF.RELATION_TYPE = 2 AND
                  (ARG_ATTRIBUTE_DEF.RELATED_BASE_ATTRIBUTE IS NOT NULL)

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 626

      SET @var_err_message = 'relation_type is required for the attribute of a class'

      SET @var_err_resolution = 'add value or check relation type'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'relation_type'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.RELATION_TYPE
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE ARG_ATTRIBUTE_DEF.CLASS_NAME IN
                  (
                     SELECT ARG_CLASS_DEF.CLASS_NAME
                     FROM dbo.ARG_CLASS_DEF
                     WHERE ARG_CLASS_DEF.TABLE_NAME IS NOT NULL
                  ) AND ARG_ATTRIBUTE_DEF.RELATION_TYPE IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 627

      SET @var_err_message = 'relation_type, table_name, field_name, join_name and related_base_attribute must be null for the attribute of a subclass'

      SET @var_err_resolution = 'remove values'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = NULL

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select class_name, attribute_name,
      *                           relation_type, table_name, field_name, join_name, related_base_attribute from arg_attribute_def
      *                           where class_name in (select class_name from arg_class_def where class_template is not null)
      *                           and (relation_type is not null or table_name is not null or field_name is not null
      *                           or join_name is not null or related_base_attribute is not null);
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @relation_type, @table_name, @field_name, @join_name, @related_base_attribute
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *   
      *                           var_pk1_field_value = @class_name
      *                           var_pk2_field_value = @attribute_name
      *                           var_err_field_name = ' '
      *                           var_err_field_value = ' '
      *   
      *                           if @relation_type is not null
      *                           begin
      *                               var_err_field_name = 'relation_type'
      *                               var_err_field_value = @relation_type
      *                           end
      *   
      *                           if @table_name is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'table_name'
      *                               var_err_field_value = @err_field_value + @table_name
      *                           end
      *   
      *                           if @field_name is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'field_name'
      *                               var_err_field_value = @err_field_value + @field_name
      *                           end
      *   
      *                           if @join_name is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'join_name'
      *                               var_err_field_value = @err_field_value + @join_name
      *                           end
      *   
      *                           if @related_base_attribute is not null
      *                           begin
      *                               if len(@err_field_name) > 0
      *                                   var_err_field_name = @err_field_name + ','
      *                               if len(@err_field_value) > 0
      *                                   var_err_field_value = @err_field_value + ','
      *                               var_err_field_name = @err_field_name + 'related_base_attribute'
      *                               var_err_field_value = @err_field_value + @related_base_attribute
      *                           end
      *   
      *                           insert into arg_metadata_errors (
      *                               err_code, err_table_name, pk1_field_value, pk2_field_value,
      *                               err_field_name, err_field_value, err_message, err_resolution
      *                               ) values(
      *                               @err_code, @err_table_name, @pk1_field_value, @pk2_field_value,
      *                               @err_field_name, @err_field_value, @err_message, @err_resolution
      *                               )
      *                       end
      *                       fetch next from err_records INTO
      *                           @class_name, @attribute_name, @relation_type, @table_name, @field_name, @join_name, @related_base_attribute
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 628

      SET @var_err_message = 'attribute_type must be null for the base attribute of a subclass'

      SET @var_err_resolution = 'remove value'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_type'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad1.CLASS_NAME, ad1.ATTRIBUTE_NAME, ad1.ATTRIBUTE_TYPE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     INNER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad2
                     ON ad2.CLASS_NAME = ad1.CLASS_TEMPLATE AND ad2.ATTRIBUTE_NAME = ad1.ATTRIBUTE_NAME
               WHERE
                  ad1.CLASS_NAME IN
                  (
                     SELECT ARG_CLASS_DEF.CLASS_NAME
                     FROM dbo.ARG_CLASS_DEF
                     WHERE ARG_CLASS_DEF.CLASS_TEMPLATE IS NOT NULL
                  ) AND
                  ad2.RELATION_TYPE = 0 AND
                  ad1.ATTRIBUTE_TYPE IS NOT NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 629

      SET @var_err_message = 'attribute_type is required for a sibling or child attribute of a subclass'

      SET @var_err_resolution = 'add value'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'attribute_type'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad1.CLASS_NAME, ad1.ATTRIBUTE_NAME, ad1.ATTRIBUTE_TYPE
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     INNER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad2
                     ON ad2.CLASS_NAME = ad1.CLASS_TEMPLATE AND ad2.ATTRIBUTE_NAME = ad1.ATTRIBUTE_NAME
               WHERE
                  ad1.CLASS_NAME IN
                  (
                     SELECT ARG_CLASS_DEF.CLASS_NAME
                     FROM dbo.ARG_CLASS_DEF
                     WHERE ARG_CLASS_DEF.CLASS_TEMPLATE IS NOT NULL
                  ) AND
                  ad2.RELATION_TYPE <> 0 AND
                  ad1.ATTRIBUTE_TYPE IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      
      /*
      *    no longer a rule in Anderson
      *                       var_err_code         := 630;
      *                       var_err_message     := 'hierarchy is required for attribute record';
      *                       var_err_resolution     := 'specify hierarchy value (use 0 instead of null)';
      *                       var_err_table_name     := 'arg_attribute_def';
      *                       var_err_field_name     := 'hierarchy';
      *                       var_pk1_field_value     := null;
      *                       var_pk2_field_value     := null;
      *                       var_err_field_value     := null;
      *                       declare cursor err_records is
      *                           select class_name, attribute_name, hierarchy from arg_attribute_def
      *                           where hierarchy is null;
      *                       begin
      *                           open err_records;
      *                           loop
      *                           fetch err_records into var_pk1_field_value,var_pk2_field_value,var_err_field_value;
      *                           exit when err_records%NOTFOUND;
      *                               insert into arg_metadata_errors (err_code,err_table_name,pk1_field_value,pk2_field_value,err_field_name,err_field_value,err_message,err_resolution)
      *                               values(var_err_code,var_err_table_name,var_pk1_field_value,var_pk2_field_value,var_err_field_name,var_err_field_value,var_err_message,var_err_resolution);
      *                           end loop;
      *                           close err_records;
      *                       end;
      *
      */

      SET @var_err_code = 631

      SET @var_err_message = 'app_filter is required for attribute record'

      SET @var_err_resolution = 'specify app_filter value '

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'app_filter'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ARG_ATTRIBUTE_DEF.CLASS_NAME, ARG_ATTRIBUTE_DEF.ATTRIBUTE_NAME, ARG_ATTRIBUTE_DEF.APP_FILTER
               FROM dbo.ARG_ATTRIBUTE_DEF
               WHERE ARG_ATTRIBUTE_DEF.APP_FILTER = 0 OR ARG_ATTRIBUTE_DEF.APP_FILTER IS NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_WARNINGS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 632

      SET @var_err_message = 'SWCM attribute belongs to UAPM class'

      SET @var_err_resolution = 'check app_filter values for the class and attributes'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'app_filter'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.APP_FILTER
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     INNER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_NAME
               WHERE ad.APP_FILTER IN ( 1, 3 ) AND cd.APP_FILTER IN (  2 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 633

      SET @var_err_message = 'UAPM attribute belongs to SWCM class'

      SET @var_err_resolution = 'check app_filter values for the class and attributes'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'app_filter'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.APP_FILTER
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     INNER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_NAME
               WHERE ad.APP_FILTER IN ( 2, 3 ) AND cd.APP_FILTER IN (  1 )

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 634

      SET @var_err_message = 'attributes within a class must point to the table of the class'

      SET @var_err_resolution = 'correct table value of attribute or remove attribute from the class'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'table_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.ATTRIBUTE_NAME, ad.TABLE_NAME AS attribute_table
               FROM
                  dbo.ARG_ATTRIBUTE_DEF  AS ad
                     INNER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = ad.CLASS_NAME
               WHERE ad.TABLE_NAME <> cd.TABLE_NAME AND ad.TABLE_NAME IS NOT NULL

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

      SET @var_err_code = 635

      SET @var_err_message = 'within a class two different attributes cannot map to the same field name'

      SET @var_err_resolution = 'correct field value of attribute or remove duplicate attribute from the class'

      SET @var_err_table_name = 'arg_attribute_def'

      SET @var_err_field_name = 'field_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      BEGIN

         DECLARE
             err_records CURSOR LOCAL FOR
               SELECT ad.CLASS_NAME, ad.TABLE_NAME, ad.FIELD_NAME
               FROM dbo.ARG_ATTRIBUTE_DEF  AS ad
               WHERE ad.TABLE_NAME IS NOT NULL AND ad.FIELD_NAME IS NOT NULL
               GROUP BY ad.CLASS_NAME, ad.TABLE_NAME, ad.FIELD_NAME
               HAVING count_big(0) > 1

         OPEN err_records

         WHILE 1 = 1
         
            BEGIN

               FETCH err_records
                   INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value

               /*
               *   SSMA warning messages:
               *   O2SS0113: The value of @@FETCH_STATUS might be changed by previous FETCH operations on other cursors, if the cursors are used simultaneously.
               */


               IF @@FETCH_STATUS <> 0
                  BREAK

               INSERT dbo.ARG_METADATA_ERRORS(
                  ERR_CODE,
                  ERR_TABLE_NAME,
                  PK1_FIELD_VALUE,
                  PK2_FIELD_VALUE,
                  ERR_FIELD_NAME,
                  ERR_FIELD_VALUE,
                  ERR_MESSAGE,
                  ERR_RESOLUTION)
                  VALUES (
                     @var_err_code,
                     @var_err_table_name,
                     @var_pk1_field_value,
                     @var_pk2_field_value,
                     @var_err_field_name,
                     @var_err_field_value,
                     @var_err_message,
                     @var_err_resolution)

            END

         CLOSE err_records

         DEALLOCATE err_records

      END

   END
GO
Uses
Used By