Tuesday, August 5, 2014

API to create Contact Point ID for a Party in Oracle R12 Example

 -- Make Sure you initialize apps and set mo_global.set_policy_context  

PROCEDURE create_contact_point_id (
      p_in_contact_point_type   IN       VARCHAR2,
      p_in_contact_point        IN       VARCHAR2,
      p_in_party_id             IN       VARCHAR2,
      x_out_cont_point_id       OUT      VARCHAR2
   )
   IS
      v_cpr                   hz_contact_point_v2pub.contact_point_rec_type;
      v_edi_rec               hz_contact_point_v2pub.edi_rec_type;
      v_email_rec             hz_contact_point_v2pub.email_rec_type;
      v_phone_rec             hz_contact_point_v2pub.phone_rec_type;
      v_telex_rec             hz_contact_point_v2pub.telex_rec_type;
      v_web_rec               hz_contact_point_v2pub.web_rec_type;
      x_ou_return_status      VARCHAR2 (2000);
      x_ou_msg_count          NUMBER;
      x_ou_contact_point_id   NUMBER;
      x_ou_msg_data           VARCHAR2 (2000);
      x_ou_output_message     VARCHAR2 (2000)                          := ' ';
      v_message               VARCHAR2 (5000);
      v_err_message           VARCHAR2 (5000);
   BEGIN
 

      IF p_in_contact_point_type = 'PHONE'
      THEN
         v_phone_rec.phone_number := p_in_contact_point;
         v_phone_rec.phone_line_type := 'GEN';
      ELSIF p_in_contact_point_type = 'EMAIL'
      THEN
         v_email_rec.email_format := 'MAILTEXT';
         v_email_rec.email_address := p_in_contact_point;
      END IF;

      /* build contact point rec */
      v_cpr.contact_point_id := NULL;
      v_cpr.contact_point_type := p_in_contact_point_type;
      v_cpr.status := 'A';
      v_cpr.owner_table_name := 'HZ_PARTIES';
      v_cpr.owner_table_id := p_in_party_id;
      v_cpr.primary_flag := 'N';
      v_cpr.created_by_module := 'TCA_V2_API';

      /* call api to create rec */
      IF p_in_contact_point IS NOT NULL
      THEN
         hz_contact_point_v2pub.create_contact_point
                                (p_init_msg_list          => fnd_api.g_true,
                                 p_contact_point_rec      => v_cpr,
                                 p_edi_rec                => v_edi_rec,
                                 p_email_rec              => v_email_rec,
                                 p_phone_rec              => v_phone_rec,
                                 p_telex_rec              => v_telex_rec,
                                 p_web_rec                => v_web_rec,
                                 x_contact_point_id       => x_ou_contact_point_id,
                                 x_return_status          => x_ou_return_status,
                                 x_msg_count              => x_ou_msg_count,
                                 x_msg_data               => x_ou_msg_data
                                );
         COMMIT;
         dbms_output.put_line (x_ou_msg_data);
         dbms_output.put_line (x_ou_return_status);
         dbms_output.put_line (x_ou_msg_count);

         IF x_ou_return_status <> 'S'
         THEN
         
            FOR j IN 1 .. x_ou_msg_count
            LOOP
               fnd_msg_pub.get (j, fnd_api.g_false, x_ou_msg_data, v_message);
               v_err_message :=
                     v_err_message
                  || ('Msg' || TO_CHAR (j) || ': ' || x_ou_msg_data);
            END LOOP;

            dbms_output.put_line ('v_err_message: ' || v_err_message);

         ELSE
            x_out_cont_point_id := x_ou_contact_point_id;
         END IF;
      ELSE
         dbms_output.put_line ('No Valid Value for Contact Point Creation: ');
      END IF;
   EXCEPTION
      WHEN OTHERS
      THEN
         dbms_output.put_line (SQLERRM);
   END create_contact_point_id;

0 comments:

Post a Comment