Stored Procedures [dbo].[CHECK_UI_METADATA]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
SQL Script
CREATE PROCEDURE [dbo].[CHECK_UI_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),
         @var_table_name nvarchar(32),
         @var_field_name nvarchar(32),
         @var_join_name nvarchar(100),
         @var_class_name nvarchar(100),
         @var_attribute_name nvarchar(100),
         @var_actual_table_name nvarchar(32),
         @var_actual_field_name nvarchar(32),
         @var_data_type int,
         @var_data_size int,
         @var_field_required int,
         @var_primary_key int,
         @var_foreign_key int,
         @var_class_alias nvarchar(100),
         @var_class_template nvarchar(100),
         @var_attribute_alias nvarchar(100),
         @var_attribute_label nvarchar(255),
         @var_relation_type int,
         @var_attribute_type nvarchar(100),
         @var_related_base_attribute nvarchar(100),
         @var_form_id int,
         @var_form_attribute_id int,
         @var_formlet_name nvarchar(255),
         @var_group_in nvarchar(255),
         @var_attribute_path nvarchar(255),
         @var_search_formlet nvarchar(255),
         @var_position int,
         @var_column_index int,
         @var_ascx_path nvarchar(255),
         @var_hlf_navigate_url nvarchar(255),
         @var_duplicate_count int

      /***** 700-799 al_paths errors *****/
      SET @var_err_code = 700

      SET @var_err_message = 'Warning: path_id not used in any personalization table'

      SET @var_err_resolution = 'create personalization records'

      SET @var_err_table_name = 'al_paths'

      SET @var_err_field_name = 'path_id'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *       declare cursor err_records is
      *                           select path_id from al_paths where path_id not in
      *                           (select path_id from al_personalization_all_users)
      *                           and path_id not in
      *                           (select path_id from al_personalization_per_user);
      *                       begin
      *                           open err_records;
      *                           loop
      *                           fetch err_records into var_pk1_field_value;
      *                           exit when err_records%NOTFOUND;
      *                               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(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;
      *
      *   **** 800-899 al_profile_def errors ****
      */

      SET @var_err_code = 800

      SET @var_err_message = 'Warning: profile does not have any assigned pages/webparts'

      SET @var_err_resolution = 'assign pages/webparts to profile'

      SET @var_err_table_name = 'al_profile_def'

      SET @var_err_field_name = 'profile_id'

      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 AL_PROFILE_DEF.PROFILE_ID
               FROM dbo.AL_PROFILE_DEF
               WHERE AL_PROFILE_DEF.PROFILE_ID NOT IN
                  (
                     SELECT AL_LINK_PAGE_WEBPART_PROFILE.PROFILE_ID
                     FROM dbo.AL_LINK_PAGE_WEBPART_PROFILE
                  )

         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 = 801

      SET @var_err_message = 'Warning: profile does not have any assigned form attributes'

      SET @var_err_resolution = 'assign form attributes to profile'

      SET @var_err_table_name = 'al_profile_def'

      SET @var_err_field_name = 'profile_id'

      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 AL_PROFILE_DEF.PROFILE_ID
               FROM dbo.AL_PROFILE_DEF
               WHERE AL_PROFILE_DEF.PROFILE_ID NOT IN
                  (
                     SELECT AL_LINK_FORM_ATTRIBUTE_PROFILE.PROFILE_ID
                     FROM dbo.AL_LINK_FORM_ATTRIBUTE_PROFILE
                  )

         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

      /***** 900-999 al_page_def errors *****/
      SET @var_err_code = 900

      SET @var_err_message = 'Warning: page not linked to any webparts'

      SET @var_err_resolution = 'link page to a webpart'

      SET @var_err_table_name = 'al_page_def'

      SET @var_err_field_name = 'page_id'

      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 AL_PAGE_DEF.PAGE_ID
               FROM dbo.AL_PAGE_DEF
               WHERE AL_PAGE_DEF.PAGE_ID NOT IN
                  (
                     SELECT AL_LINK_PAGE_WEBPART.PAGE_ID
                     FROM dbo.AL_LINK_PAGE_WEBPART
                  )

         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 = 901

      SET @var_err_message = 'page path has incorrect slash'

      SET @var_err_resolution = 'use forwards slashes in page path'

      SET @var_err_table_name = 'al_page_def'

      SET @var_err_field_name = 'page_path'

      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 AL_PAGE_DEF.PAGE_ID, AL_PAGE_DEF.PAGE_PATH
               FROM dbo.AL_PAGE_DEF
               WHERE AL_PAGE_DEF.PAGE_PATH LIKE '%\%'

         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

      /***** 1000-1099 al_webpart_def errors *****/
      SET @var_err_code = 1000

      SET @var_err_message = 'Warning: webpart not linked to any pages'

      SET @var_err_resolution = 'link webpart to a page'

      SET @var_err_table_name = 'al_webpart_def'

      SET @var_err_field_name = 'webpart_id'

      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 AL_WEBPART_DEF.WEBPART_ID
               FROM dbo.AL_WEBPART_DEF
               WHERE AL_WEBPART_DEF.WEBPART_ID NOT IN
                  (
                     SELECT AL_LINK_PAGE_WEBPART.WEBPART_ID
                     FROM dbo.AL_LINK_PAGE_WEBPART
                  )

         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 = 1001

      SET @var_err_message = 'ascx path has incorrect slash'

      SET @var_err_resolution = 'use backwards slashes in ascx path'

      SET @var_err_table_name = 'al_webpart_def'

      SET @var_err_field_name = 'ascx_path'

      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 AL_WEBPART_DEF.WEBPART_ID, AL_WEBPART_DEF.ASCX_PATH
               FROM dbo.AL_WEBPART_DEF
               WHERE AL_WEBPART_DEF.ASCX_PATH LIKE '%/%'

         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

      /***** 1100-1199 al_link_page_webpart errors *****/
      SET @var_err_code = 1100

      SET @var_err_message = 'Warning: page/webpart is not assigned to any profiles'

      SET @var_err_resolution = 'assign page/webpart to a profile'

      SET @var_err_table_name = 'al_link_page_webpart'

      SET @var_err_field_name = 'page_webpart_id'

      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 AL_LINK_PAGE_WEBPART.PAGE_WEBPART_ID
               FROM dbo.AL_LINK_PAGE_WEBPART
               WHERE AL_LINK_PAGE_WEBPART.PAGE_WEBPART_ID NOT IN
                  (
                     SELECT AL_LINK_PAGE_WEBPART_PROFILE.PAGE_WEBPART_ID
                     FROM dbo.AL_LINK_PAGE_WEBPART_PROFILE
                  )

         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

      /***** 1200-1299 al_form_def errors *****/
      SET @var_err_code = 1200

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

      SET @var_err_resolution = 'add attributes to form'

      SET @var_err_table_name = 'al_form_def'

      SET @var_err_field_name = 'form_id'

      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 AL_FORM_DEF.FORM_ID
               FROM dbo.AL_FORM_DEF
               WHERE AL_FORM_DEF.FORM_ID NOT IN
                  (
                     SELECT AL_FORM_ATTRIBUTE_DEF.FORM_ID
                     FROM dbo.AL_FORM_ATTRIBUTE_DEF
                  )

         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 = 1201

      SET @var_err_message = 'dependent params value does not match any attributes'

      SET @var_err_resolution = 'check dependent params attribute value'

      SET @var_err_table_name = 'al_form_def'

      SET @var_err_field_name = 'form_id'

      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 f.FORM_ID, f.DEPENDENT_PARAMS
               FROM
                  dbo.AL_FORM_DEF  AS f
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS a
                     ON a.ATTRIBUTE_NAME = replace(f.DEPENDENT_PARAMS, 'QUERYSTRING:', NULL)
               WHERE
                  f.DEPENDENT_PARAMS LIKE 'QUERYSTRING:%' AND
                  f.DEPENDENT_PARAMS NOT LIKE '%.%' AND
                  a.ATTRIBUTE_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

      /***** 1300-1399 al_form_attribute_def errors *****/
      SET @var_err_code = 1300

      SET @var_err_message = 'Warning: form attribute is not assigned to any profiles'

      SET @var_err_resolution = 'assign form attribute to a profile'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'form_attribute_id'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     LEFT OUTER JOIN dbo.AL_LINK_FORM_ATTRIBUTE_PROFILE  AS l
                     ON l.FORM_ATTRIBUTE_ID = fad.FORM_ATTRIBUTE_ID
               WHERE fad.FORM_ATTRIBUTE_ID IS NOT NULL AND l.FORM_ATTRIBUTE_ID 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_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 = 1301

      SET @var_err_message = 'search_formlet does not exist in al_form_def'

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

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'search_formlet'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.SEARCH_FORMLET
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     LEFT OUTER JOIN dbo.AL_FORM_DEF  AS fd2
                     ON fd2.FORMLET_NAME = fad.SEARCH_FORMLET
               WHERE fad.SEARCH_FORMLET IS NOT NULL AND fd2.FORMLET_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 = 1302

      SET @var_err_message = 'form attribute is a duplicate'

      SET @var_err_resolution = 'remove the duplicate attribute'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_name'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select form_id, attribute_name, attribute_path, class_name, count(0) as duplicate_count
      *                           from al_form_attribute_def
      *                           group by form_id, attribute_name, attribute_path, class_name having count(0) > 1;
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @form_id, @attribute_name, @attribute_path, @class_name, @duplicate_count
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk1_field_value = '(form_id=)'    -- can't retrieve form_attribute_id on this query
      *                           var_pk2_field_value = @form_id    -- use form_id to help identify
      *                           var_err_field_value = @attribute_name
      *                           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
      *                           @form_id, @attribute_name, @attribute_path, @class_name, @duplicate_count
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 1303

      SET @var_err_message = 'Warning: form attribute position is a duplicate within a form'

      SET @var_err_resolution = 'reorder positions'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'position'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *   
      *                       declare cursor err_records is
      *                           select formlet_name, column_index, position, count(0) as duplicate_count
      *                           from al_form_attribute_def fad
      *                           inner join al_form_def fd on fd.form_id = fad.form_id
      *                           where fad.group_in is null
      *                           group by formlet_name, column_index, position having count(0) > 1
      *                           order by formlet_name, column_index, position;
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @formlet_name, @column_index, @position, @duplicate_count
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk2_field_value = @formlet_name
      *                           var_err_field_value = @position
      *                           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
      *                           @formlet_name, @column_index, @position, @duplicate_count
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 1304

      SET @var_err_message = 'Warning: form attribute position is a duplicate within a group'

      SET @var_err_resolution = 'reorder positions'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'position'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL

      
      /*
      *       declare cursor err_records is
      *                           select formlet_name, group_in, position, count(0) as duplicate_count
      *                           from al_form_attribute_def fad
      *                           inner join al_form_def fd on fd.form_id = fad.form_id
      *                           where fad.group_in is not null
      *                           group by formlet_name, group_in, position having count(0) > 1
      *                           order by formlet_name, group_in, position;
      *   
      *                       open err_records
      *                       fetch next from err_records INTO
      *                           @formlet_name, @group_in, @position, @duplicate_count
      *                       while (@@fetch_status <> -1)
      *                       begin
      *                       if (@@fetch_status <> -2)
      *                       begin    
      *                           var_pk2_field_value = @formlet_name
      *                           var_err_field_value = @position
      *                           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
      *                           @formlet_name, @group_in, @position, @duplicate_count
      *                       end
      *                       close err_records
      *                       deallocate err_records
      *
      */

      SET @var_err_code = 1305

      SET @var_err_message = 'Warning: column_index is greater than form columncount'

      SET @var_err_resolution = 'correct column_index or increase columncount'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'column_index'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.COLUMN_INDEX
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.COLUMN_INDEX - 1 > fd.COLUMNCOUNT

         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 = 1306

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

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

      SET @var_err_table_name = 'al_form_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.CLASS_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = fad.CLASS_NAME
               WHERE fad.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, @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 = 1307

      SET @var_err_message = 'class_name does not exist in SWCM class records'

      SET @var_err_resolution = 'correct value, add class record, or check app_filter'

      SET @var_err_table_name = 'al_form_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.CLASS_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     INNER JOIN dbo.AL_APPLICATIONS  AS a
                     ON a.APPLICATION_ID = fd.APPLICATION_ID
                     LEFT OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = fad.CLASS_NAME AND cd.APP_FILTER IN ( 1, 3 )
               WHERE
                  fad.CLASS_NAME IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  a.APPLICATION_NAME = 'SWCM'

         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 = 1308

      SET @var_err_message = 'class_name does not exist in UAPM class records'

      SET @var_err_resolution = 'correct value, add class record, or check app_filter'

      SET @var_err_table_name = 'al_form_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.CLASS_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     INNER JOIN dbo.AL_APPLICATIONS  AS a
                     ON a.APPLICATION_ID = fd.APPLICATION_ID
                     LEFT OUTER JOIN dbo.ARG_CLASS_DEF  AS cd
                     ON cd.CLASS_NAME = fad.CLASS_NAME AND cd.APP_FILTER IN ( 2, 3 )
               WHERE
                  fad.CLASS_NAME IS NOT NULL AND
                  cd.CLASS_NAME IS NULL AND
                  a.APPLICATION_NAME = 'UAPM'

         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 = 1309

      SET @var_err_message = 'attribute_name does not exist in arg_attribute_def'

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

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.ATTRIBUTE_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON fad.CLASS_NAME = ad.CLASS_NAME AND fad.ATTRIBUTE_NAME = ad.ATTRIBUTE_NAME
               WHERE fad.ATTRIBUTE_PATH IS NULL AND ad.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 = 1310

      SET @var_err_message = 'attribute_name does not exist in SWCM attribute records'

      SET @var_err_resolution = 'correct value, add attribute record, or check app_filter'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.ATTRIBUTE_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     INNER JOIN dbo.AL_APPLICATIONS  AS a
                     ON a.APPLICATION_ID = fd.APPLICATION_ID
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON
                        fad.CLASS_NAME = ad.CLASS_NAME AND
                        fad.ATTRIBUTE_NAME = ad.ATTRIBUTE_NAME AND
                        ad.APP_FILTER IN ( 1, 3 )
               WHERE
                  fad.ATTRIBUTE_PATH IS NULL AND
                  ad.ATTRIBUTE_NAME IS NULL AND
                  a.APPLICATION_NAME = 'SWCM'

         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 = 1311

      SET @var_err_message = 'attribute_name does not exist in UAPM attribute records'

      SET @var_err_resolution = 'correct value, add attribute record, or check app_filter'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.ATTRIBUTE_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     INNER JOIN dbo.AL_APPLICATIONS  AS a
                     ON a.APPLICATION_ID = fd.APPLICATION_ID
                     FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON
                        fad.CLASS_NAME = ad.CLASS_NAME AND
                        fad.ATTRIBUTE_NAME = ad.ATTRIBUTE_NAME AND
                        ad.APP_FILTER IN ( 2, 3 )
               WHERE
                  fad.ATTRIBUTE_PATH IS NULL AND
                  ad.ATTRIBUTE_NAME IS NULL AND
                  a.APPLICATION_NAME = 'UAPM'

         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 = 1312

      SET @var_err_message = 'hlf navigate url has incorrect slash'

      SET @var_err_resolution = 'use forwards slashes in hlf navigate url'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'hlf_navigate_url'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.HLF_NAVIGATE_URL
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.HLF_NAVIGATE_URL LIKE '%\%'

         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 = 1313

      SET @var_err_message = 'group_in must be specified when search_formlet is not null'

      SET @var_err_resolution = 'add a group_in value to the record'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'group_in'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.GROUP_IN
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.SEARCH_FORMLET IS NOT NULL AND fad.GROUP_IN 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 = 1314

      SET @var_err_message = 'hlf_navigate_url must be specified when control_type_id := 5'

      SET @var_err_resolution = 'specify hlf_navigate_url values or check control_type_id'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'hlf_navigate_url'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.HLF_NAVIGATE_URL
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.CONTROL_TYPE_ID = 5 AND fad.HLF_NAVIGATE_URL 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 = 1315

      SET @var_err_message = 'hlf_navigate_url_fields must be specified when control_type_id := 5'

      SET @var_err_resolution = 'specify hlf_navigate_url values or check control_type_id'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'hlf_navigate_url_fields'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.HLF_NAVIGATE_URL_FIELDS
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.CONTROL_TYPE_ID = 5 AND fad.HLF_NAVIGATE_URL_FIELDS 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 = 1316

      SET @var_err_message = 'attribute must be primary key field when is_datakey := 1'

      SET @var_err_resolution = 'check attribute and is_datakey values'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.ATTRIBUTE_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON fad.CLASS_NAME = ad.CLASS_NAME AND fad.ATTRIBUTE_NAME = ad.ATTRIBUTE_NAME
                     LEFT OUTER JOIN dbo.ARG_FIELD_DEF  AS f
                     ON f.TABLE_NAME = ad.TABLE_NAME AND f.FIELD_NAME = ad.FIELD_NAME
               WHERE
                  f.FIELD_NAME IS NOT NULL AND
                  f.PRIMARY_KEY <> 1 AND
                  fad.IS_DATAKEY = 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 = 1317

      SET @var_err_message = 'simple attribute in foreign_search_keys must exist in arg_attribute_def'

      SET @var_err_resolution = 'correct foreign_search_keys value'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'foreign_search_keys'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.FOREIGN_SEARCH_KEYS
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad
                     ON ad.ATTRIBUTE_NAME = fad.FOREIGN_SEARCH_KEYS
               WHERE
                  fad.FOREIGN_SEARCH_KEYS IS NOT NULL AND
                  ad.ATTRIBUTE_NAME IS NULL AND
                  fad.FOREIGN_SEARCH_KEYS NOT LIKE '%.%'

         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 = 1318

      SET @var_err_message = 'foreign_display_type cannot be null when control_type_id := 13'

      SET @var_err_resolution = 'specify foreign_display_type or check control_type_id value'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'foreign_display_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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.FOREIGN_DISPLAY_TYPE
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.FOREIGN_DISPLAY_TYPE IS NULL AND fad.CONTROL_TYPE_ID = 13

         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 = 1319

      SET @var_err_message = 'attribute_path must be null when control_type_id := 13'

      SET @var_err_resolution = 'remove attribute_path or check control_type_id value'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_path'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.ATTRIBUTE_PATH
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE fad.ATTRIBUTE_PATH IS NOT NULL AND fad.CONTROL_TYPE_ID = 13

         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 = 1320

      SET @var_err_message = 'foreign key attribute must have its associated id attribute also in the form'

      SET @var_err_resolution = 'add id attribute for foreign key to form'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_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 fad13.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad13.ATTRIBUTE_NAME
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad13
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad13.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad13
                     ON ad13.CLASS_NAME = fad13.CLASS_NAME AND ad13.ATTRIBUTE_NAME = fad13.ATTRIBUTE_NAME
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     ON ad1.CLASS_NAME = ad13.CLASS_NAME AND ad1.ATTRIBUTE_NAME = ad13.RELATED_BASE_ATTRIBUTE
                     LEFT OUTER JOIN dbo.AL_FORM_ATTRIBUTE_DEF  AS fad1
                     ON
                        fad1.CLASS_NAME = ad1.CLASS_NAME AND
                        fad1.ATTRIBUTE_NAME = ad1.ATTRIBUTE_NAME AND
                        fad1.FORM_ID = fad13.FORM_ID
               WHERE
                  fad13.CONTROL_TYPE_ID = 13 AND
                  fad13.ATTRIBUTE_NAME IS NOT NULL AND
                  fad1.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 = 1321

      SET @var_err_message = 'associated id attribute for a foreign key must have a null attribute_path value'

      SET @var_err_resolution = 'check values'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_path'

      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 fad13.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad1.ATTRIBUTE_PATH
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad13
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad13.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad13
                     ON ad13.CLASS_NAME = fad13.CLASS_NAME AND ad13.ATTRIBUTE_NAME = fad13.ATTRIBUTE_NAME
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     ON ad1.CLASS_NAME = ad13.CLASS_NAME AND ad1.ATTRIBUTE_NAME = ad13.RELATED_BASE_ATTRIBUTE
                     LEFT OUTER JOIN dbo.AL_FORM_ATTRIBUTE_DEF  AS fad1
                     ON
                        fad1.CLASS_NAME = ad1.CLASS_NAME AND
                        fad1.ATTRIBUTE_NAME = ad1.ATTRIBUTE_NAME AND
                        fad1.FORM_ID = fad13.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ade
                     ON ade.ATTRIBUTE_NAME = ad13.CLASS_NAME
               WHERE
                  fad13.CONTROL_TYPE_ID = 13 AND
                  fad13.ATTRIBUTE_NAME IS NOT NULL AND
                  fad1.ATTRIBUTE_NAME IS NOT NULL AND
                  fad1.ATTRIBUTE_PATH IS NOT NULL AND
                  (ade.RELATION_TYPE <> 3 OR ade.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 = 1322

      SET @var_err_message = 'associated id attribute for a foreign key must have a null attribute_path value'

      SET @var_err_resolution = 'check values'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'attribute_path'

      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 fad13.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad1.FOREIGN_SEARCH_KEYS
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad13
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad13.FORM_ID
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad13
                     ON ad13.CLASS_NAME = fad13.CLASS_NAME AND ad13.ATTRIBUTE_NAME = fad13.ATTRIBUTE_NAME
                     LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF  AS ad1
                     ON ad1.CLASS_NAME = ad13.CLASS_NAME AND ad1.ATTRIBUTE_NAME = ad13.RELATED_BASE_ATTRIBUTE
                     LEFT OUTER JOIN dbo.AL_FORM_ATTRIBUTE_DEF  AS fad1
                     ON
                        fad1.CLASS_NAME = ad1.CLASS_NAME AND
                        fad1.ATTRIBUTE_NAME = ad1.ATTRIBUTE_NAME AND
                        fad1.FORM_ID = fad13.FORM_ID
               WHERE
                  fad13.CONTROL_TYPE_ID = 13 AND
                  fad13.ATTRIBUTE_NAME IS NOT NULL AND
                  fad1.ATTRIBUTE_NAME IS NOT NULL AND
                  fad1.FOREIGN_SEARCH_KEYS 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 = 1323

      SET @var_err_message = 'foreign_search_keys must be specified if attribute_path is not null'

      SET @var_err_resolution = 'add foreign_search_keys value'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'foreign_search_keys'

      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 fad.FORM_ATTRIBUTE_ID, fd.FORMLET_NAME, fad.FOREIGN_SEARCH_KEYS
               FROM
                  dbo.AL_FORM_ATTRIBUTE_DEF  AS fad
                     INNER JOIN dbo.AL_FORM_DEF  AS fd
                     ON fd.FORM_ID = fad.FORM_ID
               WHERE
                  fad.ATTRIBUTE_PATH IS NOT NULL AND
                  fad.FOREIGN_SEARCH_KEYS IS NULL AND
                  fad.GROUP_IN 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 = 1324

      SET @var_err_message = 'search formlet form does not have foreign search keys in its attributes'

      SET @var_err_resolution = 'add foreign_search_keys to search form'

      SET @var_err_table_name = 'al_form_attribute_def'

      SET @var_err_field_name = 'foreign_search_keys'

      SET @var_pk1_field_value = NULL

      SET @var_pk2_field_value = NULL

      SET @var_err_field_value = NULL
         /*
         *       declare cursor err_records is
         *                           select fad.form_attribute_id, fd.formlet_name, fadGI.foreign_search_keys
         *                           from al_form_attribute_def fad
         *                           inner join al_form_def fd on fd.form_id = fad.form_id
         *                           left outer join al_form_attribute_def fadGI on fadGI.form_id = fad.form_id and fadGI.group_in = fad.group_in
         *                               and fadGI.foreign_search_keys is not null
         *                           left outer join al_form_def fdSF on fdSF.formlet_name = fad.search_formlet
         *                               and fdSF.application_id = fd.application_id
         *                           left outer join al_form_attribute_def fadSF on fadSF.form_id = fdSF.form_id
         *                               and isnull(fadSF.attribute_path,fadSF.attribute_name) = fadGI.foreign_search_keys
         *                           where fad.search_formlet is not null and fadGI.foreign_search_keys is not null and fadSF.attribute_name 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;
         *
         */


   END
GO
Uses
Used By