Saturday, August 7, 2010

SERVICE REQUEST CODE2

CREATE OR REPLACE PACKAGE BODY APPS.xxdc_load_insp_case
IS
/***************************************************************************************************************************/
   /**  NAME:     APPS.XXDC_LOAD_INSP
   /**  PURPOSE:  This is the package to create Load Inspection cases in  DORIIS EBS Ssystem.
   /**
   /**
   /**  REVISIONS:
   /**  Ver        Date         Author           JIRA#/CR#    Description
   /**  ---------  -----------  --------------- ----------    ------------------------------------
   /**  1.0        3/1/2010   B. Sunil KUMAR     2512       Initial Revision
   /**
   /***************************************************************************************************************************/
   FUNCTION get_constant_val (p_constant_name IN VARCHAR2)
      RETURN VARCHAR2
   IS
      v_value   VARCHAR2 (1000);
   BEGIN
      EXECUTE IMMEDIATE    'BEGIN :x := '
                        || gc_pkg
                        || '.'
                        || p_constant_name
                        || '; end;'
                  USING OUT v_value;

      RETURN v_value;
   END;

   PROCEDURE create_case (
      p_init_msg_list         IN              VARCHAR2 := fnd_api.g_false
     ,p_commit                IN              VARCHAR2 := fnd_api.g_false
     ,x_return_status         OUT NOCOPY      VARCHAR2
     ,x_msg_count             OUT NOCOPY      NUMBER
     ,x_msg_data              OUT NOCOPY      VARCHAR2
     ,p_service_request_rec   IN              cs_servicerequest_pub.service_request_rec_type
     ,p_notes_table           IN              cs_servicerequest_pub.notes_table
     ,p_contacts_table        IN              cs_servicerequest_pub.contacts_table
     ,p_auto_assign           IN              VARCHAR2 DEFAULT 'N'
     ,x_sr_create_out_rec     OUT NOCOPY      cs_servicerequest_pub.sr_create_out_rec_type
   )
   IS
      v_prog_unit   VARCHAR (100) := gc_pkg || '.CREATE_CASE';
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );
      cs_servicerequest_pub.create_servicerequest
                              (p_api_version              => 4.0
                              ,p_init_msg_list            => gc_t
                              ,p_commit                   => NVL
                                                                (gc_commit_flag
                                                                ,'F'
                                                                )
                              ,x_return_status            => x_return_status
                              ,x_msg_count                => x_msg_count
                              ,x_msg_data                 => x_msg_data
                              ,p_resp_appl_id             => fnd_global.resp_appl_id
                              ,p_resp_id                  => fnd_global.resp_id
                              ,p_user_id                  => fnd_global.user_id
                              ,p_login_id                 => fnd_global.login_id
                              ,p_org_id                   => fnd_global.org_id
                              ,p_request_id               => NULL
                              ,p_service_request_rec      => p_service_request_rec
                              ,p_notes                    => p_notes_table
                              ,p_contacts                 => p_contacts_table
                              ,p_auto_assign              => gc_n
                              ,p_auto_generate_tasks      => gc_n
                              ,x_sr_create_out_rec        => x_sr_create_out_rec
                              );
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN OTHERS
      THEN
         x_return_status := fnd_api.g_ret_sts_error;
         x_msg_data :=
               'In exception Error - ' || SQLCODE || SUBSTR (SQLERRM, 1, 300);
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
   END create_case;

   PROCEDURE update_case_assosiation (
      p_incident_id      IN              cs_incidents_all_b.incident_id%TYPE
     ,x_return_status    OUT NOCOPY      VARCHAR2
     ,x_msg_count        OUT NOCOPY      NUMBER
     ,x_msg_data         OUT NOCOPY      VARCHAR2
     ,p_contacts_table   IN              cs_servicerequest_pub.contacts_table
   )
   IS
      p_version_number        cs_incidents_all_b.object_version_number%TYPE;
      v_prog_unit             VARCHAR (100)
                                     := gc_pkg || '.UPDATE_CASE_ASSOSIATIONS';
      v_service_request_rec   cs_servicerequest_pub.service_request_rec_type;
      v_notes_table           cs_servicerequest_pub.notes_table;
      x_workflow_process_id   NUMBER;
      x_interaction_id        NUMBER;
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );
      cs_servicerequest_pub.initialize_rec (v_service_request_rec);
      v_notes_table.DELETE;

      SELECT object_version_number
        INTO p_version_number
        FROM cs_incidents_all_b
       WHERE incident_id = p_incident_id;

      cs_servicerequest_pub.update_servicerequest
                              (p_api_version                => 3.0
                              ,p_init_msg_list              => fnd_api.g_true
                              ,p_commit                     => fnd_api.g_false
                              ,x_return_status              => x_return_status
                              ,x_msg_count                  => x_msg_count
                              ,x_msg_data                   => x_msg_data
                              ,p_request_id                 => p_incident_id
                              ,p_request_number             => NULL
                              ,p_audit_comments             => 'Creating assosiations'
                              ,p_object_version_number      => p_version_number
                              ,p_resp_appl_id               => fnd_global.resp_appl_id
                              ,p_resp_id                    => fnd_global.resp_id
                              ,p_last_updated_by            => fnd_global.user_id
                              ,p_last_update_login          => NULL
                              ,p_last_update_date           => SYSDATE
                              ,p_service_request_rec        => v_service_request_rec
                              ,p_notes                      => v_notes_table
                              ,p_contacts                   => p_contacts_table
                              ,p_called_by_workflow         => fnd_api.g_false
                              ,p_workflow_process_id        => NULL
                              ,x_workflow_process_id        => x_workflow_process_id
                              ,x_interaction_id             => x_interaction_id
                              );
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN OTHERS
      THEN
         x_return_status := fnd_api.g_ret_sts_error;
         x_msg_data :=
               'In exception Error - ' || SQLCODE || SUBSTR (SQLERRM, 1, 300);
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
   END update_case_assosiation;

   PROCEDURE create_note (
      p_incident_id       IN              cs_incidents_all_b.incident_id%TYPE
     ,p_note_detail       IN              jtf_notes_tl.notes_detail%TYPE
     ,p_note_enter_date   IN              jtf_notes_tl.creation_date%TYPE
            DEFAULT SYSDATE
     ,gr_return_status    OUT NOCOPY      VARCHAR2
     ,gr_msg_count        OUT NOCOPY      NUMBER
     ,gr_msg_data         OUT NOCOPY      VARCHAR2
     ,p_jtf_note_id       OUT NOCOPY      jtf_notes_tl.jtf_note_id%TYPE
   )
   IS
      v_notes       jtf_notes_tl.notes%TYPE;
      v_note_type   fnd_lookup_values.meaning%TYPE;
      v_prog_unit   VARCHAR (100)                 := gc_pkg || '.CREATE_NOTE';
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );
      v_note_type := 'COMP:COMMENT';         --'Conversion : Load Inspection';
      v_notes := SUBSTR (p_note_detail, 1, 2000);
      jtf_notes_pub.create_note (p_api_version             => 1.0
                                ,p_init_msg_list           => fnd_api.g_false
                                ,p_commit                  => fnd_api.g_false
                                ,x_return_status           => gr_return_status
                                ,x_msg_count               => gr_msg_count
                                ,x_msg_data                => gr_msg_data
                                ,p_org_id                  => fnd_global.org_id
                                ,p_source_object_id        => p_incident_id
                                ,p_source_object_code      => 'SR'
                                ,p_notes                   => v_notes
                                ,p_notes_detail            => p_note_detail
                                ,p_note_status             => 'I'
                                ,p_entered_by              => fnd_global.user_id
                                ,p_entered_date            => p_note_enter_date
                                ,x_jtf_note_id             => p_jtf_note_id
                                ,p_last_update_date        => SYSDATE
                                ,p_last_updated_by         => fnd_global.user_id
                                ,p_creation_date           => SYSDATE
                                ,p_created_by              => fnd_global.user_id
                                ,p_note_type               => v_note_type
                                );
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN OTHERS
      THEN
         gr_return_status := fnd_api.g_ret_sts_error;
         gr_msg_data :=
               'In exception Error - ' || SQLCODE || SUBSTR (SQLERRM, 1, 300);
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
   END create_note;

   PROCEDURE process_case_ext_attrs (
      p_incident_id          IN              NUMBER
     ,p_ext_attr_grp_tbl     IN              cs_servicerequest_pub.ext_attr_grp_tbl_type
     ,p_ext_attr_tbl         IN              cs_servicerequest_pub.ext_attr_tbl_type
     ,x_failed_row_id_list   OUT NOCOPY      VARCHAR2
     ,x_return_status        OUT NOCOPY      VARCHAR2
     ,x_errorcode            OUT NOCOPY      NUMBER
     ,x_msg_count            OUT NOCOPY      NUMBER
     ,x_msg_data             OUT NOCOPY      VARCHAR2
   )
   IS
      v_prog_unit   VARCHAR (100) := gc_pkg || '.PROCESS_CASE_EXT_ATTRS';
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );
      cs_servicerequest_pub.process_sr_ext_attrs
                                (p_api_version             => 1.0
                                ,p_init_msg_list           => gc_t
                                ,p_commit                  => gc_commit_flag
                                ,p_incident_id             => p_incident_id
                                ,p_ext_attr_grp_tbl        => p_ext_attr_grp_tbl
                                ,p_ext_attr_tbl            => p_ext_attr_tbl
                                ,p_modified_by             => fnd_global.user_id
                                ,p_modified_on             => SYSDATE
                                ,x_failed_row_id_list      => x_failed_row_id_list
                                ,x_return_status           => gr_return_status
                                ,x_errorcode               => x_errorcode
                                ,x_msg_count               => gr_msg_count
                                ,x_msg_data                => gr_msg_data
                                );
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       =>    xxd_utils.gc_complete
                                         || 'AFTERAPI IN PRO'
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN OTHERS
      THEN
         gr_return_status := fnd_api.g_ret_sts_error;
         gr_msg_data :=
               'In exception Error - ' || SQLCODE || SUBSTR (SQLERRM, 1, 300);
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
   END process_case_ext_attrs;

   PROCEDURE update_processstatus (p_request_id IN NUMBER)
   IS
      v_prog_unit   VARCHAR (100) := gc_pkg || '.UPDATE_PROCESSSTATUS';

      CURSOR case_status_cur
      IS
         SELECT *
           FROM xxdc_load_insp_case_main xlic
          WHERE process_status IN ('RS', 'RD')
            AND request_id = NVL (p_request_id, request_id);

      CURSOR case_dtl_status_cur
      IS
         SELECT *
           FROM xxdc_load_insp_case_dtl xlicd
          WHERE process_status IN ('RS', 'RD')
            AND request_id = NVL (p_request_id, request_id);

      CURSOR case_note_status_cur
      IS
         SELECT *
           FROM xxdc_load_insp_case_note xlicn
          WHERE process_status IN ('RS', 'RD')
            AND request_id = NVL (p_request_id, request_id);
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );

      FOR case_status_rec IN case_status_cur
      LOOP
         UPDATE xxdc_load_insp_case_dtl xlicd
            SET xlicd.process_status =
                   DECODE (xlicd.process_status
                          ,'RS', 'RS'
                          ,'RD', 'RD'
                          ,case_status_rec.process_status
                          )
               ,last_updated_by = fnd_global.user_id
               ,last_update_date = SYSDATE
          WHERE legacy_id = case_status_rec.legacy_id
            AND request_id = p_request_id;

         UPDATE xxdc_load_insp_case_note xlicn
            SET xlicn.process_status =
                   DECODE (xlicn.process_status
                          ,'RS', 'RS'
                          ,'RD', 'RD'
                          ,case_status_rec.process_status
                          )
               ,last_updated_by = fnd_global.user_id
               ,last_update_date = SYSDATE
          WHERE legacy_id = case_status_rec.legacy_id
            AND request_id = p_request_id;
      END LOOP;

      FOR case_dtl_status_rec IN case_dtl_status_cur
      LOOP
         UPDATE xxdc_load_insp_case_main xlicm
            SET xlicm.process_status =
                   DECODE (xlicm.process_status
                          ,'RS', 'RS'
                          ,'RD', 'RD'
                          ,case_dtl_status_rec.process_status
                          )
               ,last_updated_by = fnd_global.user_id
               ,last_update_date = SYSDATE
          WHERE legacy_id = case_dtl_status_rec.legacy_id
            AND request_id = p_request_id;

         UPDATE xxdc_load_insp_case_note xlicn
            SET xlicn.process_status =
                   DECODE (xlicn.process_status
                          ,'RS', 'RS'
                          ,'RD', 'RD'
                          ,case_dtl_status_rec.process_status
                          )
               ,last_updated_by = fnd_global.user_id
               ,last_update_date = SYSDATE
          WHERE legacy_id = case_dtl_status_rec.legacy_id
            AND request_id = p_request_id;
      END LOOP;

      FOR case_note_status_rec IN case_note_status_cur
      LOOP
         UPDATE xxdc_load_insp_case_main
            SET process_status =
                   DECODE (process_status
                          ,'RS', 'RS'
                          ,'RD', 'RD'
                          ,case_note_status_rec.process_status
                          )
               ,last_updated_by = fnd_global.user_id
               ,last_update_date = SYSDATE
          WHERE legacy_id = case_note_status_rec.legacy_id
            AND request_id = p_request_id;

         --,'RS','RS','RD','RD',
         UPDATE xxdc_load_insp_case_note
            SET process_status =
                   DECODE (process_status
                          ,'RS', 'RS'
                          ,'RD', 'RD'
                          ,case_note_status_rec.process_status
                          )
               ,last_updated_by = fnd_global.user_id
               ,last_update_date = SYSDATE
          WHERE legacy_id = case_note_status_rec.legacy_id
            AND request_id = p_request_id;
      END LOOP;

      UPDATE xxdc_load_insp_case_main
         SET process_status =
                            DECODE (process_status
                                   ,gc_n, 'P'
                                   ,process_status
                                   )
            ,last_updated_by = fnd_global.user_id
            ,last_update_date = SYSDATE
       WHERE request_id = p_request_id;

      UPDATE xxdc_load_insp_case_dtl
         SET process_status =
                            DECODE (process_status
                                   ,gc_n, 'P'
                                   ,process_status
                                   )
            ,last_updated_by = fnd_global.user_id
            ,last_update_date = SYSDATE
       WHERE request_id = p_request_id;

      UPDATE xxdc_load_insp_case_note
         SET process_status =
                            DECODE (process_status
                                   ,gc_n, 'P'
                                   ,process_status
                                   )
            ,last_updated_by = fnd_global.user_id
            ,last_update_date = SYSDATE
       WHERE request_id = p_request_id;

      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN OTHERS
      THEN
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    'sqlerrcode - '
                                            || SQLCODE
                                            || 'sqlerrcode - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
   END update_processstatus;

   PROCEDURE update_case_status (
      p_incident_id                  NUMBER
     -- ,p_incident_status_id                NUMBER
   ,  x_return_status   OUT NOCOPY   VARCHAR2
     ,x_msg_count       OUT NOCOPY   NUMBER
     ,x_msg_data        OUT NOCOPY   VARCHAR2
   )
   IS
      v_prog_unit            VARCHAR (100) := gc_pkg || '.UPDATE_CASE_STATUS';
      v_obj_ver              cs_incidents_all_b.object_version_number%TYPE;
      v_incident_status_id   cs_incidents_all_b.incident_status_id%TYPE;
      x_interaction_id       NUMBER                                   := NULL;
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );

      SELECT object_version_number
        INTO v_obj_ver
        FROM cs_incidents_all_b
       WHERE incident_id = p_incident_id;

      SELECT incident_status_id
        INTO v_incident_status_id
        FROM cs_incident_statuses_vl
       WHERE UPPER (NAME) = gc_case_status_closed
         AND incident_subtype = gc_inc_subtype;

      gr_return_status := NULL;
      gr_msg_count := NULL;
      gr_msg_data := NULL;
      cs_servicerequest_pub.update_status
                                   (p_api_version                => 2.0
                                   ,p_init_msg_list              => fnd_api.g_true
                                   ,p_commit                     => fnd_api.g_false
                                   ,x_return_status              => gr_return_status
                                   ,x_msg_count                  => gr_msg_count
                                   ,x_msg_data                   => gr_msg_data
                                   ,p_resp_appl_id               => fnd_global.resp_appl_id
                                   ,p_resp_id                    => fnd_global.resp_id
                                   ,p_user_id                    => fnd_global.user_id
                                   ,p_login_id                   => NULL
                                   ,p_request_id                 => p_incident_id
                                   ,p_request_number             => NULL
                                   ,p_object_version_number      => v_obj_ver
                                   ,p_status_id                  => v_incident_status_id
                                   ,p_status                     => NULL
                                   ,p_closed_date                => SYSDATE
                                   ,p_audit_comments             => NULL
                                   ,p_called_by_workflow         => NULL
                                   ,p_workflow_process_id        => NULL
                                   ,p_comments                   => NULL
                                   ,p_public_comment_flag        => NULL
                                   ,x_interaction_id             => x_interaction_id
                                   );
      xxd_util_pkg.combine_message (x_msg_count, x_msg_data);
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN OTHERS
      THEN
         x_return_status := fnd_api.g_ret_sts_error;
         x_msg_data :=
               'In exception Error - ' || SQLCODE || SUBSTR (SQLERRM, 1, 300);
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
   END;

   FUNCTION reason_check (p_reason IN VARCHAR2)
      RETURN VARCHAR2
   IS
      v_reason   VARCHAR2 (500) := NULL;
   BEGIN
      SELECT ffv.flex_value
        INTO v_reason
        FROM fnd_flex_values ffv, fnd_flex_value_sets ffvs, ego_attrs_v eav
       WHERE ffvs.flex_value_set_id = ffv.flex_value_set_id
         AND ffvs.flex_value_set_name = eav.value_set_name
         AND ffv.flex_value = p_reason
         AND eav.attr_display_name = gc_reason;

      RETURN v_reason;
   EXCEPTION
      WHEN OTHERS
      THEN
         RETURN NULL;
   END reason_check;

   FUNCTION payment_denied_chk (p_rec_id IN NUMBER)
      RETURN VARCHAR2
   IS
      v_payment_denied   VARCHAR2 (50) := NULL;
   BEGIN
      SELECT payment_denied
        INTO v_payment_denied
        FROM xxdc.xxdc_load_insp_case_dtl
       WHERE TRIM (payment_denied) IN ('Denied Payment', 'Reduced Payment')
         AND rec_id = p_rec_id;

      RETURN v_payment_denied;
   EXCEPTION
      WHEN OTHERS
      THEN
         RETURN NULL;
   END payment_denied_chk;

   FUNCTION get_material_desc (p_material IN VARCHAR2)
      RETURN VARCHAR2
   IS
      v_material_desc   mtl_system_items_b.description%TYPE   := NULL;
   BEGIN
      SELECT msi.description
        INTO v_material_desc
        FROM mtl_system_items msi
            ,mtl_item_categories mic
            ,mtl_categories_b mcb
       WHERE msi.inventory_item_id = mic.inventory_item_id
         AND msi.description = NVL (p_material, 'N')
         AND mic.category_id = mcb.category_id
         AND mcb.segment1 = 'Disbursement'
         AND mcb.segment2 = 'CRVOUT'
         AND msi.enabled_flag = 'Y'
         AND msi.inventory_item_status_code = 'Active';

      RETURN v_material_desc;
   EXCEPTION
      WHEN OTHERS
      THEN
         RETURN NULL;
   END get_material_desc;

   PROCEDURE get_party_info (
      p_account_number   IN       VARCHAR2
     ,p_party_id         OUT      NUMBER
     ,p_party_type       OUT      VARCHAR2
     ,p_account_id       OUT      NUMBER
     ,p_party_site_id    OUT      NUMBER
   )
   IS
      v_prog_unit   VARCHAR (100) := gc_pkg || '.GET_PARTY_INFO';
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );

      SELECT hp.party_id, hp.party_type, hps.party_site_id
            ,hca.cust_account_id
        INTO p_party_id, p_party_type, p_party_site_id
            ,p_account_id
        FROM hz_parties hp, hz_cust_accounts hca, hz_party_sites hps
       WHERE hca.party_id = hp.party_id
         AND hps.party_id = hp.party_id
         AND hps.identifying_address_flag = 'Y'
         AND hca.account_number = p_account_number;

      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         p_party_id := -1;
         p_party_type := NULL;
         p_account_id := -1;
         p_party_site_id := -1;
      WHEN TOO_MANY_ROWS
      THEN
         p_party_id := -2;
         p_party_type := NULL;
         p_account_id := -2;
         p_party_site_id := -2;
      WHEN OTHERS
      THEN
         p_party_id := NULL;
         p_party_type := NULL;
         p_account_id := NULL;
         p_party_site_id := NULL;
   END;

   PROCEDURE get_party_bill_to_info (
      p_account_number      IN       VARCHAR2
     ,p_account_id          OUT      NUMBER
     ,p_party_site_id       OUT      NUMBER
     ,p_party_site_use_id   OUT      NUMBER
   )
   IS
      v_prog_unit   VARCHAR (100) := gc_pkg || '.GET_PARTY_BILL_TO_INFO';
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );

      SELECT ps.party_site_id, pu.party_site_use_id, ca.cust_account_id
        INTO p_party_site_id, p_party_site_use_id, p_account_id
        FROM hz_parties hp
            ,hz_cust_accounts_all ca
            ,hz_party_sites ps
            ,hz_party_site_uses pu
       WHERE ca.account_number = p_account_number
         AND ca.party_id = hp.party_id
         AND ps.party_id = ca.party_id
         AND pu.party_site_id = ps.party_site_id
         AND ps.identifying_address_flag = 'Y'
         AND pu.site_use_type = 'BILL_TO'
         AND pu.primary_per_type = 'Y';

      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         p_party_site_id := -1;
         p_party_site_use_id := -1;
         p_account_id := -1;
      WHEN TOO_MANY_ROWS
      THEN
         p_party_site_id := -2;
         p_party_site_use_id := -2;
         p_account_id := -2;
   END;

   PROCEDURE prevalidation (
      errbuf         OUT      VARCHAR2
     ,retcode        OUT      VARCHAR2
     ,p_debug        IN       VARCHAR2 DEFAULT 'Y'
     ,p_request_id   IN       NUMBER
   )
   AS
/***************************************************************************************************************************/
/**  -----------------------------------------------------------------------------------------
/**            Pre Validation before running the conversion check for validations and configuration settings
/**  ------------------------------------------------------------------------------------------
/***************************************************************************************************************************/
      v_prog_unit   VARCHAR (100) := gc_pkg || '.PREVALIDATION';
   BEGIN
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );
      retcode := 0;
-----------------------------------------------------------------------------------------
-- Pre Validation generic procedure to check for pre-validations and configuration settings
-----------------------------------------------------------------------------------------
      --xxdc_p2_conv_util.gen_pre_validation (gc_conv_id, p_request_id);
      xxdc_p2_conv_util.prevalidation (p_conv_id         => gc_conv_id
                                      ,p_request_id      => p_request_id
                                      ,p_log             => gv_debug_log_clob
                                      ,p_result          => retcode
                                      );
----------------------------------------------------------------------------------------
-- Data Type check staging table data  with target table column data type.
-----------------------------------------------------------------------------------------
      xxdc_p2_conv_util.gen_datatype_validation (gc_conv_id, p_request_id);
      update_processstatus (p_request_id);
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
      xxd_utils.write_stuff (p_type         => fnd_file.LOG
                            ,p_retcode      => retcode
                            ,p_debug        => p_debug
                            ,p_stuff        => gv_debug_log_clob
                            ,p_result       => gv_result
                            );
   EXCEPTION
      WHEN OTHERS
      THEN
         retcode := 2;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
         xxd_utils.write_stuff (p_type         => fnd_file.LOG
                               ,p_retcode      => retcode
                               ,p_debug        => p_debug
                               ,p_stuff        => gv_debug_log_clob
                               ,p_result       => gv_result
                               );
   END;

   PROCEDURE split_data (p_request_id IN NUMBER)
   IS
/***************************************************************************************************************************/
/**  -----------------------------------------------------------------------------------------
/**            Spilt the xxdc_load_insp_stg data to 3 scond stage tables
/**  ------------------------------------------------------------------------------------------
/***************************************************************************************************************************/
      v_prog_unit          VARCHAR (100)           := gc_pkg || '.SPLIT_DATA';
      p_case_date          VARCHAR2 (255);
      p_pr_cert_id         VARCHAR2 (255);
      v_legacy_id          VARCHAR2 (255);
      v_pr_name            VARCHAR2 (255);
      v_item_id            mtl_system_items_b.inventory_item_id%TYPE;
      v_source_file_name   VARCHAR2 (255);
      v_conv_id            NUMBER;
      retcode              NUMBER                                      := 0;
      p_debug              VARCHAR2 (3)                                := 'Y';

-- get the data from staging table according to the passed veriable of one case at a time
      CURSOR load_insp_cur (p_case_date IN VARCHAR2, p_pr_cert_id IN VARCHAR2)
      IS
         SELECT *
           FROM xxdc.xxdc_load_insp_case_stg
          WHERE case_date = p_case_date
            AND pr_cert_id = p_pr_cert_id
            AND request_id = NVL (p_request_id, request_id);

-- cursor to group the data with case_date and pr_cert_id
      CURSOR load_insp_case_cur
      IS
         SELECT   case_date, pr_cert_id
             FROM xxdc.xxdc_load_insp_case_stg
            WHERE request_id = NVL (p_request_id, request_id)
         GROUP BY case_date, pr_cert_id
         ORDER BY pr_cert_id;
   BEGIN
      -- SAVEPOINT stage_data;
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );
      retcode := 0;

--      EXECUTE IMMEDIATE    'delete  xxdc.xxdc_load_insp_case_main where request_id = '
--                        || p_request_id;

      --      EXECUTE IMMEDIATE    'delete  xxdc.xxdc_load_insp_case_dtl where request_id = '
--                        || p_request_id;

      --      EXECUTE IMMEDIATE    'delete  xxdc.xxdc_load_insp_case_note where request_id = '
--                        || p_request_id;
      FOR load_insp_case_rec IN load_insp_case_cur
      LOOP
         SELECT pr_name, source_file_name, conv_id
           INTO v_pr_name, v_source_file_name, v_conv_id
           FROM xxdc.xxdc_load_insp_case_stg
          WHERE case_date = load_insp_case_rec.case_date
            AND pr_cert_id = load_insp_case_rec.pr_cert_id
            AND ROWNUM = 1
            AND request_id = p_request_id;

         p_case_date := load_insp_case_rec.case_date;
         p_pr_cert_id := load_insp_case_rec.pr_cert_id;
         v_legacy_id :=
               load_insp_case_rec.pr_cert_id
            || '-'
            || TO_CHAR (TO_DATE (load_insp_case_rec.case_date
                                ,xxd_utils.gc_dor_dt_format
                                )
                       ,'YYYYMMDD'
                       );

-----------------------------------------------------------------------------------------
-- Insert the values into case header table XXDC_LOAD_INSP_CASE by group the case_date and pr_cert_id
-----------------------------------------------------------------------------------------
         INSERT INTO xxdc.xxdc_load_insp_case_main
                     (source_file_name, conv_id, legacy_id
                     ,action_date
                     ,pr_cert_id, pr_name
                     ,created_by, creation_date, last_updated_by
                     ,last_update_date, request_id, process_status
                     )
              VALUES (v_source_file_name, v_conv_id, v_legacy_id
                     ,load_insp_case_rec.case_date
                     ,load_insp_case_rec.pr_cert_id, v_pr_name
                     ,fnd_global.user_id, SYSDATE, fnd_global.user_id
                     ,SYSDATE, p_request_id, gc_n
                     );

         FOR load_insp_rec IN load_insp_cur (p_case_date, p_pr_cert_id)
         LOOP
-----------------------------------------------------------------------------------------
-- Insert the additinal attribute values into XXDC_LOAD_INSP_CASE_DTL
-----------------------------------------------------------------------------------------
            INSERT INTO xxdc.xxdc_load_insp_case_dtl
                        (rec_id
                        ,source_file_name
                        ,conv_id, legacy_id
                        ,rc_cert_id
                        ,rc_name
                        ,dr6_fsn
                        ,doriis_item_code
                        ,material
                        ,rec_wt
                        ,wt_ticket
                        ,vlp_no
                        ,vlp_state
                        ,trailer_lp
                        ,trailer_state
                        ,roll_off_no
                        ,description
                        ,percent_non_eligible
                        ,payment_denied
                        ,payment_adjusted, created_by
                        ,creation_date, last_updated_by, last_update_date
                        ,request_id, process_status
                        )
                 VALUES (xxdc.xxdc_legacy_id.NEXTVAL
                        ,load_insp_rec.source_file_name
                        ,load_insp_rec.conv_id, v_legacy_id
                        ,load_insp_rec.shipper_id
                        ,load_insp_rec.shipper_name
                        ,load_insp_rec.transaction_number
                        ,load_insp_rec.doriis_item_code
                        ,load_insp_rec.material
                        ,load_insp_rec.received_weight
                        ,load_insp_rec.weight_ticket_number
                        ,load_insp_rec.vehicle_plate
                        ,load_insp_rec.vehicle_plate_state
                        ,load_insp_rec.trailer_plate
                        ,load_insp_rec.trailer_plate_state
                        ,load_insp_rec.roll_off_id
                        ,load_insp_rec.description
                        ,load_insp_rec.pt_non_eligible
                        ,load_insp_rec.payment_denied
                        ,load_insp_rec.payment_adjusted, fnd_global.user_id
                        ,SYSDATE, fnd_global.user_id, SYSDATE
                        ,p_request_id, gc_n
                        );

-----------------------------------------------------------------------------------------
-- Insert the note values into XXDC_LOAD_INSP_CASE_NOTE
-----------------------------------------------------------------------------------------
            INSERT INTO xxdc.xxdc_load_insp_case_note
                        (rec_id
                        ,source_file_name
                        ,conv_id, legacy_id
                        ,dor_rep1, dor_rep2
                        ,pr_rep
                        ,rc_inspection_report
                        ,rc_insp_report_mailed
                        ,notes, created_by, creation_date
                        ,last_updated_by, last_update_date, request_id
                        ,process_status
                        )
                 VALUES (xxdc.xxdc_legacy_id.CURRVAL
                        ,load_insp_rec.source_file_name
                        ,load_insp_rec.conv_id, v_legacy_id
                        ,load_insp_rec.dor_rep1, load_insp_rec.dor_rep2
                        ,load_insp_rec.pr_rep
                        ,load_insp_rec.rc_inspection_report
                        ,load_insp_rec.rc_insp_report_mailed
                        ,load_insp_rec.notes, fnd_global.user_id, SYSDATE
                        ,fnd_global.user_id, SYSDATE, p_request_id
                        ,gc_n
                        );
         END LOOP;
      END LOOP;

      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
      xxd_utils.write_stuff (p_type         => fnd_file.LOG
                            ,p_retcode      => retcode
                            ,p_debug        => p_debug
                            ,p_stuff        => gv_debug_log_clob
                            ,p_result       => gv_result
                            );
   EXCEPTION
      WHEN OTHERS
      THEN
         -- ROLLBACK TO stage_data;
         retcode := 2;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
         xxd_utils.write_stuff (p_type         => fnd_file.LOG
                               ,p_retcode      => retcode
                               ,p_debug        => p_debug
                               ,p_stuff        => gv_debug_log_clob
                               ,p_result       => gv_result
                               );
   END split_data;

   PROCEDURE convert_data (
      errbuf         OUT      VARCHAR2
     ,retcode        OUT      VARCHAR2
     ,p_debug        IN       VARCHAR2 DEFAULT 'Y'
     ,p_request_id   IN       NUMBER
   )
   IS
/***************************************************************************************************************************/
/**  -----------------------------------------------------------------------------------------
/**            Main Program to conversion process after run the split data and pre validation
/**  ------------------------------------------------------------------------------------------
/***************************************************************************************************************************/
      v_incident_type_id             cs_incidents_all_b.incident_type_id%TYPE;
      v_incident_status_id           cs_incidents_all_b.incident_status_id%TYPE;
      v_incident_severity_id         cs_incidents_all_b.incident_severity_id%TYPE;
      v_incident_urgency_id          cs_incidents_all_b.incident_urgency_id%TYPE;
      v_customer_id                  cs_incidents_all_b.customer_id%TYPE;
      v_account_id                   cs_incidents_all_b.account_id%TYPE;
      v_resolution_code              cs_incidents_all_b.resolution_code%TYPE;
      v_problem_code                 cs_incidents_all_b.problem_code%TYPE;
      v_owner_group_id               cs_incidents_all_b.owner_group_id%TYPE;
      v_party_role_type              cs_party_roles_tl.party_role_code%TYPE;
      p_ext_attr_grp_tbl             cs_servicerequest_pub.ext_attr_grp_tbl_type;
      p_ext_attr_tbl                 cs_servicerequest_pub.ext_attr_tbl_type;
      v_twi_attr_group_id            ego_fnd_dsc_flx_ctx_ext.attr_group_id%TYPE
                                                                      := NULL;
      v_source_attr_group_id         ego_fnd_dsc_flx_ctx_ext.attr_group_id%TYPE
                                                                      := NULL;
      v_attr_group_id                ego_fnd_dsc_flx_ctx_ext.application_id%TYPE
                                                                      := NULL;
      v_bill_to_account_id           cs_incidents_all_b.bill_to_account_id%TYPE
                                                                      := NULL;
      v_assosiation_id               NUMBER                              := 0;
      -- t_note                         jtf_notes_tl.notes_detail%TYPE   := NULL;
      v_incident_location_id         cs_incidents_all_b.incident_location_id%TYPE;
      v_party_type                   hz_parties.party_type%TYPE       := NULL;
      v_incident_id                  cs_incidents_all_b.incident_id%TYPE
                                                                      := NULL;
      v_incident_number              cs_incidents_all_b.incident_number%TYPE
                                                                      := NULL;
      v_note_detail                  jtf_notes_tl.notes_detail%TYPE
                                                             := EMPTY_CLOB
                                                                          ();
      v_note_type                    VARCHAR2 (50);
      v_bill_to_party_id             cs_incidents_all_b.bill_to_party_id%TYPE;
      v_jtf_note_contexts_tab_dflt   jtf_notes_pub.jtf_note_contexts_tbl_type;
      v_notes_table                  cs_servicerequest_pub.notes_table;
      v_contacts_table               cs_servicerequest_pub.contacts_table;
      v_ass_contacts_table           cs_servicerequest_pub.contacts_table;
      v_sr_create_out_rec            cs_servicerequest_pub.sr_create_out_rec_type;
      v_service_request_rec          cs_servicerequest_pub.service_request_rec_type;
      v_application_id               NUMBER                              := 0;
      v_party_id                     hz_parties.party_id%TYPE;
      v_party_number                 hz_parties.party_number%TYPE;
      v_party_site_id                hz_party_sites.party_site_id%TYPE;
      v_inc_bill_to_site_id          hz_party_sites.party_site_id%TYPE;
      v_inc_bill_to_site_use_id      hz_party_site_uses.party_site_use_id%TYPE;
      v_party_name                   hz_parties.party_name%TYPE;
      v_cust_account_id              hz_cust_accounts.cust_account_id%TYPE;
      v_mtl_desc                     VARCHAR2 (255);
      x_failed_row_id_list           VARCHAR2 (200)                   := NULL;
      x_errorcode                    NUMBER                              := 0;
      x_msg_index_out                NUMBER;
      v_prog_unit                    VARCHAR (100)
                                                 := gc_pkg || '.CONVERT_DATA';
      i                              NUMBER                              := 0;
      j                              NUMBER                              := 0;
      x_message                      VARCHAR2 (4000);
      v_process_status               VARCHAR2 (1)                     := NULL;
      e_exception                    EXCEPTION;
      e_rollback                     EXCEPTION;
      v_jtf_note_id                  jtf_notes_tl.jtf_note_id%TYPE    := NULL;
      v_payment_denied               xxdc_load_insp_case_dtl.payment_denied%TYPE
                                                                      := NULL;
      v_reason                       xxdc_load_insp_case_dtl.description%TYPE
                                                                      := NULL;
      v_sqlldr_req_id                xxdc_p2_conv_errors.sqlload_request_id%TYPE;

-----------------------------------------------------------------------------------------
-- Main cursor to create the case
-----------------------------------------------------------------------------------------
      CURSOR load_insp_case_cur
      IS
         SELECT *
           FROM xxdc.xxdc_load_insp_case_main
          WHERE ROWNUM < 25
            AND request_id = NVL (p_request_id, request_id)
            AND process_status IN ('P', 'PW', 'E');
               --legacy_id = 'RC4076-20061027'                         -- test

      --
                                     --and process_status in ('P', 'W','RD','RS','S') --test

      --AND request_id = p_request_id
      -- AND process_status = 'P';   --

      --ORDER BY pr_name DESC;

      -- WHERE  legacy_id = 'PR0175-20001019';           --'RC4076-20061027';

      -- WHERE process_status = 'N' AND ROWNUM < 3;              --IN ('RD')
-----------------------------------------------------------------------------------------
-- Cursor to Create the Assosiations
-----------------------------------------------------------------------------------------
      CURSOR load_insp_case_note_cur (p_legacy_id IN VARCHAR2)
      IS
         SELECT xlicd.rc_cert_id, xlicd.dr6_fsn, xlicd.payment_adjusted
               ,xlicn.dor_rep1, xlicn.dor_rep2, xlicn.pr_rep
               ,xlicn.rc_inspection_report, xlicn.rc_insp_report_mailed
               ,xlicn.notes
           FROM xxdc_load_insp_case_dtl xlicd, xxdc_load_insp_case_note xlicn
          WHERE xlicd.rec_id = xlicn.rec_id
            AND xlicn.legacy_id = p_legacy_id
            AND xlicd.legacy_id = p_legacy_id
            AND xlicd.request_id = NVL (p_request_id, xlicd.request_id)
            AND xlicn.request_id = NVL (p_request_id, xlicn.request_id);

      CURSOR load_insp_case_dtl_cur (p_legacy_id IN VARCHAR2)
      IS
         SELECT DISTINCT rc_cert_id
                    FROM xxdc.xxdc_load_insp_case_dtl
                   WHERE legacy_id = p_legacy_id
                     AND request_id = NVL (p_request_id, request_id);

      --AND process_status IN ('RD') ;

      -----------------------------------------------------------------------------------------
-- Cursor to get id for creation of NOTE
-----------------------------------------------------------------------------------------
      CURSOR load_insp_case_dtl_info_cur (p_legacy_id IN VARCHAR2)
      IS
         SELECT *
           FROM xxdc.xxdc_load_insp_case_dtl a
          WHERE legacy_id = p_legacy_id
            AND request_id = NVL (p_request_id, request_id);
   --AND process_status IN ('RD') ;
   BEGIN
      v_sqlldr_req_id := p_request_id;
      retcode := 0;
      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_start
                    ,p_prog_unit      => v_prog_unit
                    );

-----------------------------------------------------------------------------------------
-- case Type Validation
-----------------------------------------------------------------------------------------
      BEGIN
         SELECT incident_type_id
           INTO v_incident_type_id
           FROM cs_incident_types_vl
          WHERE UPPER (NAME) = gc_case_type
            AND incident_subtype = gc_inc_subtype;

         gv_process_msg :=
               'Case Type Id: '
            || v_incident_type_id
            || ' for case type:'
            || gc_case_type;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            v_process_status := 'E';
            gv_process_msg :=
                      'Case type "Comp: Load Inspection" not exist in DORIIS';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END case_type;

-----------------------------------------------------------------------------------------
-- Case Status Validation
-----------------------------------------------------------------------------------------
      BEGIN
         SELECT incident_status_id
           INTO v_incident_status_id
           FROM cs_incident_statuses_vl
          WHERE UPPER (NAME) = gc_case_status_open
            AND incident_subtype = gc_inc_subtype;

         gv_process_msg :=
               'Case Status Id: '
            || v_incident_status_id
            || ' for case Status:'
            || gc_case_status_open;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            gv_process_msg := 'Case Status not exist in DORIIS';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            v_process_status := 'E';
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END case_status;

-----------------------------------------------------------------------------------------
-- Case Severity Validation
-----------------------------------------------------------------------------------------
      BEGIN
         SELECT incident_severity_id
           INTO v_incident_severity_id
           FROM cs_incident_severities_vl
          WHERE UPPER (NAME) = gc_case_severity
            AND incident_subtype = gc_inc_subtype;

         gv_process_msg :=
               'Case severity Id: '
            || v_incident_severity_id
            || ' for case severity:'
            || gc_case_severity;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            gv_process_msg := 'Case severity not exist in DORIIS';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            v_process_status := 'E';
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END case_severity;

-----------------------------------------------------------------------------------------
-- Case Urgency Validation
-----------------------------------------------------------------------------------------
      BEGIN
         SELECT incident_urgency_id
           INTO v_incident_urgency_id
           FROM cs_incident_urgencies_vl
          WHERE UPPER (NAME) = gc_case_urgency;

         gv_process_msg :=
               'Case urgency Id: '
            || v_incident_urgency_id
            || ' for case urgency:'
            || gc_case_urgency;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            gv_process_msg := 'case urgency is not defind in DORIIS';
            v_process_status := 'E';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END case_urgency;

-----------------------------------------------------------------------------------------
-- Case Owner Group Validation
-----------------------------------------------------------------------------------------
      BEGIN
         SELECT GROUP_ID
           INTO v_owner_group_id
           FROM jtf_rs_groups_vl
          WHERE UPPER (group_name) = gc_case_group_name
            AND SYSDATE BETWEEN start_date_active
                            AND NVL (end_date_active, SYSDATE);

         gv_process_msg :=
               'Case Owner Group Id: '
            || v_owner_group_id
            || ' for case owner group name:'
            || gc_case_group_name;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            gv_process_msg :=
                'Case Owner Group "DOR Investigation Group" exists in DORIIS';
            v_process_status := 'E';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END case_owner_group;

       -----------------------------------------------------------------------------------------
-- Assosiation Party Role Validation
-----------------------------------------------------------------------------------------
      BEGIN
         SELECT party_role_code
           INTO v_party_role_type
           FROM cs_party_roles_tl
          WHERE NAME = gc_assosiation_party_role_type;

         gv_process_msg :=
               'Case Assosiate party role type code: '
            || v_party_role_type
            || ' for role type:'
            || gc_assosiation_party_role_type;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            v_process_status := 'E';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END;

      BEGIN
         --- Note Type Validation
         SELECT 1
           INTO i
           FROM fnd_lookup_values
          WHERE lookup_type = gc_note_lookup_type AND meaning = 'COMP:COMMENT';

         --gc_case_note_type;         --' TEST
         gv_process_msg :=
            'Case note type : ' || gc_case_note_type || ' is exists in DORIIS';
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       => gv_process_msg
                       ,p_prog_unit      => v_prog_unit
                       );
      EXCEPTION
         WHEN OTHERS
         THEN
            v_process_status := 'E';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
      END;

-----------------------------------------------------------------------------------------
-- Attribute Group Validation
-----------------------------------------------------------------------------------------
      BEGIN
         v_application_id := NULL;

         SELECT attr_group_id, application_id
           INTO v_twi_attr_group_id, v_application_id
           FROM ego_fnd_dsc_flx_ctx_ext
          WHERE descriptive_flex_context_code = gc_attr_group_name;
      EXCEPTION
         WHEN OTHERS
         THEN
            gv_process_msg :=
                  'Attribute Gruop: '
               || gc_attr_group_name
               || ' not exist in DORIIS';
            v_process_status := 'E';
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    gv_process_msg
                                               || xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
      END arr_group_id;

      BEGIN
         SELECT attr_group_id, application_id
           INTO v_source_attr_group_id, v_application_id
           FROM ego_fnd_dsc_flx_ctx_ext
          WHERE descriptive_flex_context_code = gc_attr_source_group_name;
      EXCEPTION
         WHEN OTHERS
         THEN
            gv_process_msg :=
                  'Source Group type-'
               || gc_attr_source_group_name
               || ' not exist in DORIIS';
            v_process_status := 'E';
            xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       =>    xxd_utils.gc_exception
                                               || v_prog_unit
                                               || ', error: '
                                               || SQLCODE
                                               || ' - '
                                               || SQLERRM
                          ,p_prog_unit      => v_prog_unit
                          );
      END;

      v_resolution_code :=
         xxdc_p2_conv_util.get_inc_resolution_code (v_prog_unit
                                                   ,gc_resolution_type
                                                   );
      v_problem_code :=
         xxdc_p2_conv_util.get_inc_problem_code (v_prog_unit, gc_problem_type);

--      IF v_process_status = 'E'
--      THEN
--         xxd_utils.LOG
--            (p_log_text       => gv_debug_log_clob
--            ,p_new_text       => 'All the setups are not done please check before run conversoin again'
--            ,p_prog_unit      => v_prog_unit
--            );
--      ELSE
      FOR load_insp_case_rec IN load_insp_case_cur
      LOOP
         BEGIN
            gv_process_msg := NULL;
            v_process_status := NULL;
            v_party_id := NULL;
            v_party_site_id := NULL;
            v_cust_account_id := NULL;
            gv_legacy_id := load_insp_case_rec.legacy_id;
            SAVEPOINT new_rec;
            xxd_utils.LOG
                 (p_log_text       => gv_debug_log_clob
                 ,p_new_text       =>    'Start Processing the record Legacy_ID: '
                                      || gv_legacy_id
                 ,p_prog_unit      => v_prog_unit
                 );

            /*
             *Party Info Validation
             */
            BEGIN
               xxdc_p2_conv_util.get_party_info
                         (p_caller               => v_prog_unit
                         ,p_legacy_acct_num      => load_insp_case_rec.pr_cert_id
                         ,p_party_id             => v_party_id
                         ,p_party_type           => v_party_type
                         ,p_account_id           => v_cust_account_id
                         ,p_party_site_id        => v_party_site_id
                         );
--               get_party_info
--                          (p_account_number      => load_insp_case_rec.pr_cert_id
--                          ,p_party_id            => v_party_id
--                          ,p_party_type          => v_party_type
--                          ,p_account_id          => v_party_site_id
--                          ,p_party_site_id       => v_cust_account_id
--                          );
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       =>    ' v_party_id - '
                                                  || v_party_id
                                                  || ' v_party_type - '
                                                  || v_party_type
                                                  || ' v_party_site_id - '
                                                  || v_party_site_id
                                                  || ' v_party_account_id - '
                                                  || v_cust_account_id
                             ,p_prog_unit      => v_prog_unit
                             );
               gv_process_msg :=
                     ' v_party_id - '
                  || v_party_id
                  || ' v_party_type - '
                  || v_party_type
                  || ' v_party_site_id - '
                  || v_party_site_id
                  || ' v_party_account_id - '
                  || v_cust_account_id;
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => gv_process_msg
                             ,p_prog_unit      => v_prog_unit
                             );

               IF v_party_id = -1
               THEN
                  gv_process_msg :=
                        'Pr_cert_id: '
                     || load_insp_case_rec.pr_cert_id
                     || ' does not have any party in DORIIS';
                  RAISE e_exception;
               ELSIF v_party_id = -2
               THEN
                  gv_process_msg :=
                        'Pr_cert_id: '
                     || load_insp_case_rec.pr_cert_id
                     || ' has more than one party in DORIIS';
                  RAISE e_exception;
               END IF;

               xxdc_p2_conv_util.get_bill_to_pt_site_use_id
                          (p_caller                   => v_prog_unit
                          ,p_legacy_acct_num          => load_insp_case_rec.pr_cert_id
                          ,p_bill_to_party_id         => v_bill_to_party_id
                          ,p_cust_acct_id             => v_bill_to_account_id
                          ,p_bill_to_site_id          => v_inc_bill_to_site_id
                          ,p_bill_to_site_use_id      => v_inc_bill_to_site_use_id
                          );
--               get_party_bill_to_info
--                           (p_account_number         => load_insp_case_rec.pr_cert_id
--                           -- ,p_party_id          => v_bill_to_party_id
--               ,            p_account_id             => v_bill_to_account_id
--                           ,p_party_site_id          => v_inc_bill_to_site_id
--                           ,p_party_site_use_id      => v_inc_bill_to_site_use_id
--                           );
               gv_process_msg :=
                     'Bill_to party Details => v_inc_bill_to_site_id - '
                  || v_inc_bill_to_site_id
                  || 'bill Party id '
                  || v_bill_to_party_id
                  || ' v_inc_bill_to_site_use_id - '
                  || v_inc_bill_to_site_use_id;
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => gv_process_msg
                             ,p_prog_unit      => v_prog_unit
                             );

               IF v_inc_bill_to_site_id = -1
               THEN
                  gv_process_msg :=
                        'Pr_cert_id: '
                     || load_insp_case_rec.pr_cert_id
                     || ' does not have Bill to site in DORIIS';
                  RAISE e_exception;
               ELSIF v_inc_bill_to_site_id = -2
               THEN
                  gv_process_msg :=
                        'Pr_cert_id: '
                     || load_insp_case_rec.pr_cert_id
                     || ' has more than one Bill to sites in DORIIS';
                  RAISE e_exception;
               END IF;
            END party_info;

            BEGIN
               gv_process_msg := 'Assingning the values to case record';
               v_service_request_rec.summary :=
                     load_insp_case_rec.pr_cert_id
                  || ' - '
                  || load_insp_case_rec.pr_name;
               v_service_request_rec.request_date := SYSDATE;
               v_service_request_rec.type_id := v_incident_type_id;
               v_service_request_rec.status_id := v_incident_status_id;
               v_service_request_rec.severity_id := v_incident_severity_id;
               v_service_request_rec.urgency_id := v_incident_urgency_id;
               v_service_request_rec.customer_id := v_party_id;
               v_service_request_rec.inventory_org_id := fnd_global.org_id;
               v_service_request_rec.account_id := v_cust_account_id;
               v_service_request_rec.owner_group_id := v_owner_group_id;
               v_service_request_rec.group_type := gc_owner_group_type;
               v_service_request_rec.resolution_code := v_resolution_code;
               v_service_request_rec.problem_code := v_problem_code;
               v_service_request_rec.incident_location_id := v_party_site_id;
               v_service_request_rec.incident_location_type :=
                                                     gc_incident_location_type;
               v_service_request_rec.bill_to_party_id := v_bill_to_party_id;
               -- v_service_request_rec.bill_to_accont_id := v_bill_to_account_id;
               v_service_request_rec.bill_to_site_id := v_inc_bill_to_site_id;
               v_service_request_rec.bill_to_site_use_id :=
                                                     v_inc_bill_to_site_use_id;
               v_service_request_rec.external_reference := gv_legacy_id;
               v_service_request_rec.creation_date := SYSDATE;
               v_service_request_rec.incident_occurred_date :=
                  TO_DATE (load_insp_case_rec.action_date
                          ,xxd_utils.gc_dor_dt_format
                          );
               v_service_request_rec.creation_date := SYSDATE;
               v_service_request_rec.created_by := fnd_global.user_id;
               v_service_request_rec.caller_type := v_party_type;
               v_service_request_rec.request_attribute_15 := gv_legacy_id;
            END;

            /*
            * Calling the Create_case procedure
            */
            v_incident_id := NULL;
            v_incident_number := NULL;
            gr_return_status := NULL;
            gr_msg_data := NULL;
            gr_msg_count := NULL;
            -- if all validations good then process record.
            gv_process_msg := 'Before Calling API to create Case';
            xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                          ,p_new_text       => gv_process_msg
                          ,p_prog_unit      => v_prog_unit
                          );
            create_case (p_init_msg_list            => gc_t
                        ,p_commit                   => NVL (gc_commit_flag
                                                           ,'F'
                                                           )
                        ,x_return_status            => gr_return_status
                        ,x_msg_count                => gr_msg_count
                        ,x_msg_data                 => gr_msg_data
                        ,p_service_request_rec      => v_service_request_rec
                        ,p_notes_table              => v_notes_table
                        ,p_contacts_table           => v_contacts_table
                        ,p_auto_assign              => gc_n
                        ,x_sr_create_out_rec        => v_sr_create_out_rec
                        );
            v_incident_id := v_sr_create_out_rec.request_id;
            v_incident_number := v_sr_create_out_rec.request_number;

            IF    (NVL (gr_return_status, fnd_api.g_ret_sts_error) !=
                                                     fnd_api.g_ret_sts_success
                  )
               OR (NVL (gr_msg_count, 0) > 0)
               OR (NVL (v_incident_number, 'N') = 'N')
            THEN
               ROLLBACK TO new_rec;
               v_process_status := 'E';

               IF (NVL (gr_msg_count, 0) > 0)
               THEN
                  xxd_util_pkg.combine_message (gr_msg_count, gv_process_msg);
               END IF;

               gv_process_msg :=
                     'API return status code: '
                  || gr_return_status
                  || ' when creating a Case for Legacy_ID: '
                  || gv_legacy_id
                  || gv_process_msg;
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => gv_process_msg
                             ,p_prog_unit      => v_prog_unit
                             );
               xxdc_p2_conv_util.gen_ins_upd_error
                                      (gc_conv_id
                                      ,xxdc_p2_conv_util.gc_api_error_rule_id
                                      ,p_request_id
                                      ,gv_legacy_id
                                      ,gv_process_msg
                                      );
            ELSE
               gv_process_msg :=
                     'Case is created for legacy_id '
                  || gv_legacy_id
                  || ' Case_Number : '
                  || v_incident_number;
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => gv_process_msg
                             ,p_prog_unit      => v_prog_unit
                             );
            END IF;

----------------------------------------------------------------------------------------
--  Creating notes to  already created case
------------------------------------------------------------------------------------------
            IF     (NVL (v_incident_id, 0) <> 0)
               AND (NVL (v_process_status, 'N') <> 'E')
            THEN
               v_note_detail := NULL;
               gv_process_msg := 'Note Creating Block ';
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => gv_process_msg
                             ,p_prog_unit      => v_prog_unit
                             );

               FOR load_insp_case_note_rec IN
                  load_insp_case_note_cur (gv_legacy_id)
               LOOP
                  v_note_detail := EMPTY_CLOB;
                  v_note_detail :=
                        'RC CERT ID: '
                     || NVL (load_insp_case_note_rec.rc_cert_id, 'NULL')
                     || ' DR6 FSN: '
                     || NVL (load_insp_case_note_rec.dr6_fsn, 'NULL')
                     || CHR (10)
                     || 'DOR REP1: '
                     || NVL (load_insp_case_note_rec.dor_rep1, 'NULL')
                     || ' DOR REP2: '
                     || NVL (load_insp_case_note_rec.dor_rep2, 'NULL')
                     || CHR (10)
                     || 'PR REP: '
                     || NVL (load_insp_case_note_rec.pr_rep, 'NULL')
                     || CHR (10)
                     || 'PAYMENT ADJUSTED: '
                     || '$ '
                     || NVL (load_insp_case_note_rec.payment_adjusted, 0)
                     || CHR (10)
                     || 'RC INSPECTION REPORT: '
                     || NVL (load_insp_case_note_rec.rc_inspection_report
                            ,'NULL'
                            )
                     || ' RC INSP REPORT MAILED: '
                     || NVL (load_insp_case_note_rec.rc_insp_report_mailed
                            ,'NULL'
                            )
                     || CHR (10)
                     || 'NOTES: '
                     || NVL (load_insp_case_note_rec.notes, 'NULL');
                  gv_process_msg := 'Note:' || v_note_detail;
                  v_jtf_note_id := NULL;
                  gr_return_status := NULL;
                  gr_msg_count := NULL;
                  gr_msg_data := NULL;
                  gv_process_msg := 'Call API to create Note';
                  xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                ,p_new_text       => gv_process_msg
                                ,p_prog_unit      => v_prog_unit
                                );
                  create_note
                     (p_incident_id          => v_incident_id
                     ,p_note_detail          => v_note_detail
                     ,p_note_enter_date      => TO_DATE
                                                   (load_insp_case_rec.action_date
                                                   ,xxd_utils.gc_dor_dt_format
                                                   )
                     ,gr_return_status       => gr_return_status
                     ,gr_msg_count           => gr_msg_count
                     ,gr_msg_data            => gr_msg_data
                     ,p_jtf_note_id          => v_jtf_note_id
                     );

                  IF    (gr_return_status <> fnd_api.g_ret_sts_success)
                     OR (NVL (v_jtf_note_id, 0) = 0)
                     OR (NVL (gr_msg_count, 0) > 0)
                  THEN
                     ROLLBACK TO new_rec;
                     v_process_status := 'E';

                     IF (NVL (gr_msg_count, 0) > 0)
                     THEN
                        xxd_util_pkg.combine_message (gr_msg_count
                                                     ,gv_process_msg
                                                     );
                     END IF;

                     gv_process_msg :=
                           'API return status code: '
                        || gr_return_status
                        || ' when applying note for Case_Number: '
                        || v_incident_number
                        || '. Error message: '
                        || gv_process_msg;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                     xxdc_p2_conv_util.gen_ins_upd_error
                                      (gc_conv_id
                                      ,xxdc_p2_conv_util.gc_api_error_rule_id
                                      ,p_request_id
                                      ,gv_legacy_id
                                      ,gv_process_msg
                                      );
                  ELSE
                     gv_process_msg :=
                           'NOTE was successfully created Note_ID: '
                        || v_jtf_note_id
                        || ' for Case_Number: '
                        || v_incident_number
                        || ' of Legacy_ID: '
                        || gv_legacy_id;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                  END IF;
               END LOOP;
            --END LOOP;
            END IF;

-----------------------------------------------------------------------------------------
-- Creating the Assosiations to already created case
-----------------------------------------------------------------------------------------
            IF     (NVL (v_incident_id, 0) <> 0)
               AND (NVL (v_jtf_note_id, 0) <> 0)
               AND (NVL (v_process_status, 'N') <> 'E')
            THEN
               v_assosiation_id := 0;
               v_ass_contacts_table.DELETE;

               FOR load_insp_dtl_info_rec IN
                  load_insp_case_dtl_cur (gv_legacy_id)
               LOOP
-----------------------------------------------------------------------------------------
-- Party Info for create assosiation
-----------------------------------------------------------------------------------------
                  BEGIN
                     v_party_id := NULL;
                     v_party_type := NULL;
--                        xxdc_p2_conv_util.get_case_party_info
--                           (p_caller => v_prog_unit
--                           ,p_legacy_acct_num      => load_insp_dtl_info_rec.rc_cert_id
--                           ,p_party_id             => v_party_id
--                           ,p_party_type           => v_party_type
--                           ,p_account_id           => v_cust_account_id
--                           ,p_party_site_id        => v_party_site_id
--                           );
                     get_party_info
                        (p_account_number      => load_insp_dtl_info_rec.rc_cert_id
                        ,p_party_id            => v_party_id
                        ,p_party_type          => v_party_type
                        ,p_account_id          => v_cust_account_id
                        ,p_party_site_id       => v_party_site_id
                        );

                     IF v_party_id = -1
                     THEN
                        gv_process_msg :=
                              'Assosiation Party_id is not exist for RC_Cert_ID: '
                           || load_insp_dtl_info_rec.rc_cert_id
                           || ' of Legacy_ID: '
                           || gv_legacy_id;
                        retcode := 1;
                        v_process_status := 'W';
                        xxdc_p2_conv_util.gen_ins_upd_error
                                        (gc_conv_id
                                        ,xxdc_p2_conv_util.gc_warning_rule_id
                                        ,p_request_id
                                        ,gv_legacy_id
                                        ,    gv_process_msg
                                          || xxd_utils.gc_exception
                                          || v_prog_unit
                                          || ', error: '
                                          || SQLCODE
                                          || ' - '
                                          || SQLERRM
                                        );
                        xxd_utils.LOG
                                     (p_log_text       => gv_debug_log_clob
                                     ,p_new_text       =>    gv_process_msg
                                                          || xxd_utils.gc_exception
                                                          || v_prog_unit
                                                          || ', error: '
                                                          || SQLCODE
                                                          || ' - '
                                                          || SQLERRM
                                     ,p_prog_unit      => v_prog_unit
                                     );
                     ELSIF v_party_id = -2
                     THEN
                        RAISE e_exception;
                     ELSE
                        gv_process_msg :=
                              'Creating Assosiation to already Created Case_Number: '
                           || v_incident_number
                           || 'With RC_CERT_ID: '
                           || load_insp_dtl_info_rec.rc_cert_id;
                        xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                      ,p_new_text       => gv_process_msg
                                      ,p_prog_unit      => v_prog_unit
                                      );
                     END IF;
                  END;

-----------------------------------------------------------------------------------------
-- Assign the info to assosiation party Table
-----------------------------------------------------------------------------------------
                  IF     (NVL (v_party_id, 0) NOT IN (-1, -2, 0))
                     AND NVL (v_party_role_type, 'N') <> 'N'
                  THEN
                     gv_process_msg :=
                           'Assosiation Party_id: '
                        || v_party_id
                        || ' with patty_role is: '
                        || v_party_role_type;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                     v_assosiation_id := v_assosiation_id + 1;
                     v_ass_contacts_table (v_assosiation_id).party_id :=
                                                                    v_party_id;
                     v_ass_contacts_table (v_assosiation_id).start_date_active :=
                                                                       SYSDATE;
                     v_ass_contacts_table (v_assosiation_id).contact_type :=
                                                               gc_contact_type;
                     v_ass_contacts_table (v_assosiation_id).party_role_code :=
                                                             v_party_role_type;
                  END IF;
               END LOOP;

-----------------------------------------------------------------------------------------
-- Calling Procedure to create a Assosiation
-----------------------------------------------------------------------------------------
               IF v_ass_contacts_table.COUNT > 0
               THEN
                  gr_return_status := NULL;
                  gr_msg_data := NULL;
                  gr_msg_count := NULL;
                  update_case_assosiation
                                    (p_incident_id         => v_incident_id
                                    ,x_return_status       => gr_return_status
                                    ,x_msg_count           => gr_msg_count
                                    ,x_msg_data            => gr_msg_data
                                    ,p_contacts_table      => v_ass_contacts_table
                                    );

                  IF (   (gr_return_status = fnd_api.g_ret_sts_success)
                      OR (NVL (gr_msg_count, 0) > 0)
                     )
                  THEN
                     gv_process_msg :=
                           'Assosiation Created Successfully for Case_Number: '
                        || v_incident_number
                        || ' of Legacy_ID: '
                        || gv_legacy_id;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                     gr_return_status := NULL;
                     gr_msg_count := NULL;
                     gr_msg_data := NULL;
                  ELSE
                     v_process_status := 'E';

                     IF (NVL (gr_msg_count, 0) > 0)
                     THEN
                        gv_process_msg := NULL;
                        xxd_util_pkg.combine_message (gr_msg_count
                                                     ,gv_process_msg
                                                     );
                     END IF;

                     gv_process_msg :=
                           'API return status code: '
                        || gr_return_status
                        || ' when creating assosiation for Case_Number: '
                        || v_incident_number
                        || ' of Legacy_ID: '
                        || gv_legacy_id
                        || '. Error message: '
                        || gv_process_msg;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                     xxdc_p2_conv_util.gen_ins_upd_error
                                        (gc_conv_id
                                        ,xxdc_p2_conv_util.gc_warning_rule_id
                                        ,p_request_id
                                        ,gv_legacy_id
                                        ,gv_process_msg
                                        );
                  END IF;
               END IF;
            END IF;

-----------------------------------------------------------------------------------------
-- Add the Extensible Attribute Info to CASE
-----------------------------------------------------------------------------------------
            IF     (NVL (v_incident_id, 0) <> 0)
               AND (NVL (v_process_status, 'N') <> 'E')
            THEN
               i := 0;
               j := 0;
               p_ext_attr_grp_tbl.DELETE;
               p_ext_attr_tbl.DELETE;
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => xxd_utils.gc_start
                             ,p_prog_unit      => v_prog_unit
                             );

               FOR load_insp_dtl_info_rec IN
                  load_insp_case_dtl_info_cur (gv_legacy_id)
               LOOP
                  BEGIN
                     i := i + 1;
                     v_reason :=
                            reason_check (load_insp_dtl_info_rec.description);
                     gv_process_msg := ' Reason - ' || v_reason;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                     v_payment_denied :=
                            payment_denied_chk (load_insp_dtl_info_rec.rec_id);
                     gv_process_msg :=
                                      ' Payment Denied - ' || v_payment_denied;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
--                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
--                                   ,p_new_text       =>    'Before att group -'
--                                                        || i
--                                                        || j
--                                   ,p_prog_unit      => v_prog_unit
--                                   );
                     p_ext_attr_grp_tbl (i).row_identifier := i;
                     p_ext_attr_grp_tbl (i).pk_column_1 := v_incident_id;
                     p_ext_attr_grp_tbl (i).object_name := gc_object_name;
                     p_ext_attr_grp_tbl (i).attr_group_id :=
                                                           v_twi_attr_group_id;
                     p_ext_attr_grp_tbl (i).attr_group_type := gc_object_type;
                     p_ext_attr_grp_tbl (i).CONTEXT := v_incident_type_id;
                     p_ext_attr_grp_tbl (i).attr_group_name :=
                                                            gc_attr_group_name;
                     p_ext_attr_grp_tbl (i).attr_group_app_id :=
                                                              v_application_id;
                     p_ext_attr_grp_tbl (i).mapping_req := gc_n;
                     p_ext_attr_grp_tbl (i).operation := gc_att_operation;
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_shipper_id;
                     p_ext_attr_tbl (j).attr_value_str :=
                                   NVL (load_insp_dtl_info_rec.rc_cert_id, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_shipper_name;
                     p_ext_attr_tbl (j).attr_value_str :=
                                      NVL (load_insp_dtl_info_rec.rc_name, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_trx_num;
                     p_ext_attr_tbl (j).attr_value_str :=
                                      NVL (load_insp_dtl_info_rec.dr6_fsn, '');
                     v_mtl_desc :=
                           get_material_desc (load_insp_dtl_info_rec.material);
                     gv_process_msg := ' Material LOV - ' || v_mtl_desc;
                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                   ,p_new_text       => gv_process_msg
                                   ,p_prog_unit      => v_prog_unit
                                   );
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_material;
                     p_ext_attr_tbl (j).attr_value_str := NVL (load_insp_dtl_info_rec.DORIIS_ITEM_CODE, '');
                                                                
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_recvd_wt;
                     p_ext_attr_tbl (j).attr_value_num :=
                        TO_NUMBER
                                (TRIM (REPLACE (load_insp_dtl_info_rec.rec_wt
                                               ,','
                                               ,''
                                               )
                                      )
                                );
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_wt_tic_num;
                     p_ext_attr_tbl (j).attr_value_str :=
                                NVL (load_insp_dtl_info_rec.wt_ticket, '')
                                || j;
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_vehicle_plate;
                     p_ext_attr_tbl (j).attr_value_str :=
                                       NVL (load_insp_dtl_info_rec.vlp_no, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_vehicle_state;
                     p_ext_attr_tbl (j).attr_value_str :=
                                    NVL (load_insp_dtl_info_rec.vlp_state, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_trailer_plate;
                     p_ext_attr_tbl (j).attr_value_str :=
                                   NVL (load_insp_dtl_info_rec.trailer_lp, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_trailer_state;
                     p_ext_attr_tbl (j).attr_value_str :=
                                NVL (load_insp_dtl_info_rec.trailer_state, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_roll_off_id;
                     p_ext_attr_tbl (j).attr_value_str :=
                                  NVL (load_insp_dtl_info_rec.roll_off_no, '');
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_reason;
                     p_ext_attr_tbl (j).attr_value_str := trim(load_insp_dtl_info_rec.description);
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name :=
                                                  gc_att_pt_non_eligible_conts;
                     p_ext_attr_tbl (j).attr_value_num :=
                        TO_NUMBER (load_insp_dtl_info_rec.percent_non_eligible);
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_action_taken;
                     p_ext_attr_tbl (j).attr_value_str := TRIM (load_insp_dtl_info_rec.payment_denied);
                     j := j + 1;
                     p_ext_attr_tbl (j).row_identifier := i;
                     p_ext_attr_tbl (j).attr_name := gc_att_net_wt_adj;
                     p_ext_attr_tbl (j).attr_value_num :=
                        TO_NUMBER
                            (REPLACE (load_insp_dtl_info_rec.payment_adjusted
                                     ,','
                                     ,''
                                     )
                            );
--                     xxd_utils.LOG (p_log_text       => gv_debug_log_clob
--                                   ,p_new_text       =>    'Before att group -'
--                                                        || i
--                                                        || j
--                                   ,p_prog_unit      => v_prog_unit
--                                   );
                  END;
               END LOOP;

               i := i + 1;
               p_ext_attr_grp_tbl (i).row_identifier := i;
               p_ext_attr_grp_tbl (i).pk_column_1 := v_incident_id;
               p_ext_attr_grp_tbl (i).object_name := gc_object_name;
               p_ext_attr_grp_tbl (i).attr_group_id := v_source_attr_group_id;
               p_ext_attr_grp_tbl (i).attr_group_type := gc_object_type;
               p_ext_attr_grp_tbl (i).CONTEXT := -1;
               p_ext_attr_grp_tbl (i).attr_group_name :=
                                                     gc_attr_source_group_name;
               p_ext_attr_grp_tbl (i).attr_group_app_id := v_application_id;
               p_ext_attr_grp_tbl (i).mapping_req := gc_n;
               p_ext_attr_grp_tbl (i).operation := gc_att_operation;
               j := j + 1;
               p_ext_attr_tbl (j).row_identifier := i;
               p_ext_attr_tbl (j).attr_name := gc_att_source;
               ---test
               p_ext_attr_tbl (j).attr_value_str := 'BMDS Referral';
               -- gc_att_source_value
--               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
--                             ,p_new_text       => 'Before att group -' || i
--                                                  || j
--                             ,p_prog_unit      => v_prog_unit
--                             );
               --gc_att_source_value;
               x_failed_row_id_list := NULL;
               gr_return_status := NULL;
               x_errorcode := NULL;
               gr_msg_count := NULL;
               gr_msg_data := NULL;
               process_case_ext_attrs
                                (p_incident_id             => v_incident_id
                                ,p_ext_attr_grp_tbl        => p_ext_attr_grp_tbl
                                ,p_ext_attr_tbl            => p_ext_attr_tbl
                                ,x_failed_row_id_list      => x_failed_row_id_list
                                ,x_return_status           => gr_return_status
                                ,x_errorcode               => x_errorcode
                                ,x_msg_count               => gr_msg_count
                                ,x_msg_data                => gr_msg_data
                                );

               IF (   gr_return_status <> fnd_api.g_ret_sts_success
                   OR NVL (gr_msg_count, 0) > 0
                   OR gr_return_status = 'U'
                  )
               THEN
                  ROLLBACK TO new_rec;
                  v_process_status := 'E';

                  IF (NVL (gr_msg_count, 0) > 0)
                  THEN
                     xxd_util_pkg.combine_message (gr_msg_count
                                                  ,gv_process_msg
                                                  );
                  END IF;

                  gv_process_msg :=
                        'API return status code: '
                     || gr_return_status
                     || ' when creating extensible attributes for Case_Number: '
                     || v_incident_number
                     || '. Error message: '
                     || gv_process_msg;
                  xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                ,p_new_text       => gv_process_msg
                                ,p_prog_unit      => v_prog_unit
                                );
                  xxdc_p2_conv_util.gen_ins_upd_error
                                      (gc_conv_id
                                      ,xxdc_p2_conv_util.gc_api_error_rule_id
                                      ,p_request_id
                                      ,gv_legacy_id
                                      ,gv_process_msg
                                      );
               ELSE
                  gv_process_msg :=
                        'Extensible attributes was successfully created for Case_Number: '
                     || v_incident_number
                     || ' of the Legacy_ID: '
                     || gv_legacy_id;
                  xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                ,p_new_text       => gv_process_msg
                                ,p_prog_unit      => v_prog_unit
                                );
               END IF;
            END IF;

            IF     (NVL (v_incident_id, 0) <> 0)
               AND (NVL (v_process_status, 'N') <> 'E')
            THEN
               gr_return_status := NULL;
               gr_msg_data := NULL;
               gr_msg_count := NULL;
               update_case_status (p_incident_id        => v_incident_id
                                  -- ,p_incident_status_id                NUMBER
               ,                   x_return_status      => gr_return_status
                                  ,x_msg_count          => gr_msg_count
                                  ,x_msg_data           => gr_msg_data
                                  );

               IF (   (gr_return_status = fnd_api.g_ret_sts_success)
                   OR (NVL (gr_msg_count, 0) > 0)
                  )
               THEN
                  gv_process_msg :=
                        'Updated Case Status Successfully for Case_Number: '
                     || v_incident_number
                     || ' of Legacy_ID: '
                     || gv_legacy_id;
                  xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                ,p_new_text       => gv_process_msg
                                ,p_prog_unit      => v_prog_unit
                                );

                  IF NVL (v_process_status, 'N') = 'W'
                  THEN
                     xxd_utils.LOG
                        (p_log_text       => gv_debug_log_clob
                        ,p_new_text       =>    'Case was created with Assosiation worning Case_Number: '
                                             || v_incident_number
                                             || ' of Legacy_ID: '
                                             || gv_legacy_id
                                             || CHR (10)
                                             || '**************************************************************************************************'
                        ,p_prog_unit      => v_prog_unit
                        );

                     UPDATE xxdc_load_insp_case_main
                        SET process_status = 'W'
                           ,last_updated_by = fnd_global.user_id
                           ,last_update_date = SYSDATE
                           ,request_id = fnd_global.conc_request_id
                      WHERE legacy_id = gv_legacy_id
                        AND request_id = NVL (p_request_id, request_id);

                     UPDATE xxdc_load_insp_case_dtl
                        SET process_status = 'W'
                           ,last_updated_by = fnd_global.user_id
                           ,last_update_date = SYSDATE
                           ,request_id = fnd_global.conc_request_id
                      WHERE legacy_id = gv_legacy_id
                        AND request_id = NVL (p_request_id, request_id);

                     UPDATE xxdc_load_insp_case_note
                        SET process_status = 'W'
                           ,last_updated_by = fnd_global.user_id
                           ,last_update_date = SYSDATE
                           ,request_id = fnd_global.conc_request_id
                      WHERE legacy_id = gv_legacy_id
                        AND request_id = NVL (p_request_id, request_id);
                  ELSE
                     UPDATE xxdc_load_insp_case_main
                        SET process_status = 'S'
                           ,last_updated_by = fnd_global.user_id
                           ,last_update_date = SYSDATE
                           ,request_id = fnd_global.conc_request_id
                      WHERE legacy_id = gv_legacy_id
                        AND request_id = NVL (p_request_id, request_id);

                     UPDATE xxdc_load_insp_case_dtl
                        SET process_status = 'S'
                           ,last_updated_by = fnd_global.user_id
                           ,last_update_date = SYSDATE
                           ,request_id = fnd_global.conc_request_id
                      WHERE legacy_id = gv_legacy_id
                        AND request_id = NVL (p_request_id, request_id);

                     UPDATE xxdc_load_insp_case_note
                        SET process_status = 'S'
                           ,last_updated_by = fnd_global.user_id
                           ,last_update_date = SYSDATE
                           ,request_id = fnd_global.conc_request_id
                      WHERE legacy_id = gv_legacy_id
                        AND request_id = NVL (p_request_id, request_id);

                     xxd_utils.LOG
                        (p_log_text       => gv_debug_log_clob
                        ,p_new_text       =>    'Case was created sucessfully Case_Number: '
                                             || v_incident_number
                                             || ' of Legacy_ID: '
                                             || gv_legacy_id
                                             || CHR (10)
                                             || '**************************************************************************************************'
                        ,p_prog_unit      => v_prog_unit
                        );
                     COMMIT;
                  END IF;
               ELSE
                  v_process_status := 'E';
                  ROLLBACK TO new_rec;

                  IF (NVL (gr_msg_count, 0) > 0)
                  THEN
                     gv_process_msg := NULL;
                     xxd_util_pkg.combine_message (gr_msg_count
                                                  ,gv_process_msg
                                                  );
                  END IF;

                  gv_process_msg :=
                        'API return status code: '
                     || gr_return_status
                     || ' when updating a case for Case_Number: '
                     || v_incident_number
                     || ' of Legacy_ID: '
                     || gv_legacy_id
                     || '. Error message: '
                     || gv_process_msg;
                  xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                                ,p_new_text       => gv_process_msg
                                ,p_prog_unit      => v_prog_unit
                                );
                  xxdc_p2_conv_util.gen_ins_upd_error
                                      (gc_conv_id
                                      ,xxdc_p2_conv_util.gc_api_error_rule_id
                                      ,p_request_id
                                      ,gv_legacy_id
                                      ,gv_process_msg
                                      );
               END IF;
            END IF;
         EXCEPTION
            WHEN e_exception
            THEN
               ROLLBACK TO new_rec;
               xxdc_p2_conv_util.gen_ins_upd_error
                                           (gc_conv_id
                                           ,xxdc_p2_conv_util.gc_exp_rule_id
                                           ,p_request_id
                                           ,gv_legacy_id
                                           ,    gv_process_msg
                                             || xxd_utils.gc_exception
                                             || v_prog_unit
                                             || ', error: '
                                             || SQLCODE
                                             || ' - '
                                             || SQLERRM
                                           );
               xxd_utils.LOG
                  (p_log_text       => gv_debug_log_clob
                  ,p_new_text       =>    xxd_utils.gc_exception
                                       || 'Legacy_id: '
                                       || gv_legacy_id
                                       || v_prog_unit
                                       || ', error: '
                                       || SQLCODE
                                       || ' - '
                                       || SQLERRM
                                       || CHR (10)
                                       || '**************************************************************************************************'
                  ,p_prog_unit      => v_prog_unit
                  );
            WHEN OTHERS
            THEN
               ROLLBACK TO new_rec;
               xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                             ,p_new_text       => 'In exception'
                             ,p_prog_unit      => v_prog_unit
                             );
               xxdc_p2_conv_util.gen_ins_upd_error
                                            (gc_conv_id
                                            ,xxdc_p2_conv_util.gc_exp_rule_id
                                            ,p_request_id
                                            ,gv_legacy_id
                                            ,    gv_process_msg
                                              || xxd_utils.gc_exception
                                              || v_prog_unit
                                              || ', error: '
                                              || SQLCODE
                                              || ' - '
                                              || SQLERRM
                                            );
               xxd_utils.LOG
                  (p_log_text       => gv_debug_log_clob
                  ,p_new_text       =>    xxd_utils.gc_exception
                                       || v_prog_unit
                                       || ', error: '
                                       || SQLCODE
                                       || ' - '
                                       || SQLERRM
                                       || CHR (10)
                                       || '**************************************************************************************************'
                  ,p_prog_unit      => v_prog_unit
                  );
         END;
      END LOOP;

      xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                    ,p_new_text       => xxd_utils.gc_complete
                    ,p_prog_unit      => v_prog_unit
                    );
      xxd_utils.write_stuff (p_type         => fnd_file.LOG
                            ,p_retcode      => retcode
                            ,p_debug        => p_debug
                            ,p_stuff        => gv_debug_log_clob
                            ,p_result       => gv_result
                            );
   EXCEPTION
      WHEN OTHERS
      THEN
         ROLLBACK TO new_rec;
         retcode := 2;
         xxd_utils.LOG (p_log_text       => gv_debug_log_clob
                       ,p_new_text       =>    xxd_utils.gc_exception
                                            || v_prog_unit
                                            || ', error: '
                                            || SQLCODE
                                            || ' - '
                                            || SQLERRM
                       ,p_prog_unit      => v_prog_unit
                       );
         xxd_utils.write_stuff (p_type         => fnd_file.LOG
                               ,p_retcode      => retcode
                               ,p_debug        => p_debug
                               ,p_stuff        => gv_debug_log_clob
                               ,p_result       => gv_result
                               );
   END convert_data;
END xxdc_load_insp_case;
/

No comments:

Post a Comment