DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_CONTACT_POINT_BO_PUB

Source


1 PACKAGE BODY hz_contact_point_bo_pub AS
2 /*$Header: ARHBCPBB.pls 120.14 2006/05/18 22:23:28 acng noship $ */
3 
4   -- PRIVATE PROCEDURE assign_phone_rec
5   --
6   -- DESCRIPTION
7   --     Assign attribute value from phone business object to plsql record.
8   --
9   -- ARGUMENTS
10   --   IN:
11   --     p_phone_obj          Phone business object.
12   --     p_owner_table_id     Owner table Id.
13   --     p_owner_table_name   Owner table name.
14   --     p_cp_id              Contact point Id.
15   --     p_cp_os              Contact point original system.
16   --     p_cp_osr             Contact point original system reference.
17   --     p_cp_type            Contact point type.
18   --     p_created_by_module  Created by module.
19   --   IN/OUT:
20   --     px_phone_rec         Phone plsql record.
21   --     px_contact_point_rec Contact point plsql record.
22   --
23   -- NOTES
24   --
25   -- MODIFICATION HISTORY
26   --
27   --   14-DEC-2004    Arnold Ng          Created.
28 
29   PROCEDURE assign_phone_rec(
30     p_phone_obj                  IN            HZ_PHONE_CP_BO,
31     p_owner_table_id             IN            NUMBER,
32     p_owner_table_name           IN            VARCHAR2,
33     p_cp_id                      IN            NUMBER,
34     p_cp_os                      IN            VARCHAR2,
35     p_cp_osr                     IN            VARCHAR2,
36     p_cp_type                    IN            VARCHAR2,
37     p_create_or_update           IN            VARCHAR2 := 'C',
38     px_phone_rec                 IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE,
39     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
40   );
41 
42   -- PRIVATE PROCEDURE assign_telex_rec
43   --
44   -- DESCRIPTION
45   --     Assign attribute value from telex business object to plsql record.
46   --
47   -- ARGUMENTS
48   --   IN:
49   --     p_telex_obj          Telex business object.
50   --     p_owner_table_id     Owner table Id.
51   --     p_owner_table_name   Owner table name.
52   --     p_cp_id              Contact point Id.
53   --     p_cp_os              Contact point original system.
54   --     p_cp_osr             Contact point original system reference.
55   --     p_cp_type            Contact point type.
56   --     p_created_by_module  Created by module.
57   --   IN/OUT:
58   --     px_telex_rec         Telex plsql record.
59   --     px_contact_point_rec Contact point plsql record.
60   --
61   -- NOTES
62   --
63   -- MODIFICATION HISTORY
64   --
65   --   14-DEC-2004    Arnold Ng          Created.
66 
67   PROCEDURE assign_telex_rec(
68     p_telex_obj                  IN            HZ_TELEX_CP_BO,
69     p_owner_table_id             IN            NUMBER,
70     p_owner_table_name           IN            VARCHAR2,
71     p_cp_id                      IN            NUMBER,
72     p_cp_os                      IN            VARCHAR2,
73     p_cp_osr                     IN            VARCHAR2,
74     p_cp_type                    IN            VARCHAR2,
75     p_create_or_update           IN            VARCHAR2 := 'C',
76     px_telex_rec                 IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.TELEX_REC_TYPE,
77     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
78   );
79 
80   -- PRIVATE PROCEDURE assign_email_rec
81   --
82   -- DESCRIPTION
83   --     Assign attribute value from email business object to plsql record.
84   --
85   -- ARGUMENTS
86   --   IN:
87   --     p_email_obj          Email business object.
88   --     p_owner_table_id     Owner table Id.
89   --     p_owner_table_name   Owner table name.
90   --     p_cp_id              Contact point Id.
91   --     p_cp_os              Contact point original system.
92   --     p_cp_osr             Contact point original system reference.
93   --     p_cp_type            Contact point type.
94   --     p_created_by_module  Created by module.
95   --   IN/OUT:
96   --     px_email_rec         Email plsql record.
97   --     px_contact_point_rec Contact point plsql record.
98   --
99   -- NOTES
100   --
101   -- MODIFICATION HISTORY
102   --
103   --   14-DEC-2004    Arnold Ng          Created.
104 
105   PROCEDURE assign_email_rec(
106     p_email_obj                  IN            HZ_EMAIL_CP_BO,
107     p_owner_table_id             IN            NUMBER,
108     p_owner_table_name           IN            VARCHAR2,
109     p_cp_id                      IN            NUMBER,
110     p_cp_os                      IN            VARCHAR2,
111     p_cp_osr                     IN            VARCHAR2,
112     p_cp_type                    IN            VARCHAR2,
113     p_create_or_update           IN            VARCHAR2 := 'C',
114     px_email_rec                 IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE,
115     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
116   );
117 
118   -- PRIVATE PROCEDURE assign_web_rec
119   --
120   -- DESCRIPTION
121   --     Assign attribute value from web business object to plsql record.
122   --
123   -- ARGUMENTS
124   --   IN:
125   --     p_web_obj            Web business object.
126   --     p_owner_table_id     Owner table Id.
127   --     p_owner_table_name   Owner table name.
128   --     p_cp_id              Contact point Id.
129   --     p_cp_os              Contact point original system.
130   --     p_cp_osr             Contact point original system reference.
131   --     p_cp_type            Contact point type.
132   --     p_created_by_module  Created by module.
133   --   IN/OUT:
134   --     px_web_rec           Web plsql record.
135   --     px_contact_point_rec Contact point plsql record.
136   --
137   -- NOTES
138   --
139   -- MODIFICATION HISTORY
140   --
141   --   14-DEC-2004    Arnold Ng          Created.
142 
143   PROCEDURE assign_web_rec(
144     p_web_obj                    IN            HZ_WEB_CP_BO,
145     p_owner_table_id             IN            NUMBER,
146     p_owner_table_name           IN            VARCHAR2,
147     p_cp_id                      IN            NUMBER,
148     p_cp_os                      IN            VARCHAR2,
149     p_cp_osr                     IN            VARCHAR2,
150     p_cp_type                    IN            VARCHAR2,
151     p_create_or_update           IN            VARCHAR2 := 'C',
152     px_web_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.WEB_REC_TYPE,
153     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
154   );
155 
156   -- PRIVATE PROCEDURE assign_edi_rec
157   --
158   -- DESCRIPTION
159   --     Assign attribute value from edi business object to plsql record.
160   --
161   -- ARGUMENTS
162   --   IN:
163   --     p_edi_obj            EDI business object.
164   --     p_owner_table_id     Owner table Id.
165   --     p_owner_table_name   Owner table name.
166   --     p_cp_id              Contact point Id.
167   --     p_cp_os              Contact point original system.
168   --     p_cp_osr             Contact point original system reference.
169   --     p_cp_type            Contact point type.
170   --     p_created_by_module  Created by module.
171   --   IN/OUT:
172   --     px_edi_rec           EDI plsql record.
173   --     px_contact_point_rec Contact point plsql record.
174   --
175   -- NOTES
176   --
177   -- MODIFICATION HISTORY
178   --
179   --   14-DEC-2004    Arnold Ng          Created.
180 
181   PROCEDURE assign_edi_rec(
182     p_edi_obj                    IN            HZ_EDI_CP_BO,
183     p_owner_table_id             IN            NUMBER,
184     p_owner_table_name           IN            VARCHAR2,
185     p_cp_id                      IN            NUMBER,
186     p_cp_os                      IN            VARCHAR2,
187     p_cp_osr                     IN            VARCHAR2,
188     p_cp_type                    IN            VARCHAR2,
189     p_create_or_update           IN            VARCHAR2 := 'C',
190     px_edi_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.EDI_REC_TYPE,
191     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
192   );
193 
194   -- PRIVATE PROCEDURE assign_eft_rec
195   --
196   -- DESCRIPTION
197   --     Assign attribute value from eft business object to plsql record.
198   --
199   -- ARGUMENTS
200   --   IN:
201   --     p_eft_obj            EFT business object.
202   --     p_owner_table_id     Owner table Id.
203   --     p_owner_table_name   Owner table name.
204   --     p_cp_id              Contact point Id.
205   --     p_cp_os              Contact point original system.
206   --     p_cp_osr             Contact point original system reference.
207   --     p_cp_type            Contact point type.
208   --     p_created_by_module  Created by module.
209   --   IN/OUT:
210   --     px_eft_rec           EFT plsql record.
211   --     px_contact_point_rec Contact point plsql record.
212   --
213   -- NOTES
214   --
215   -- MODIFICATION HISTORY
216   --
217   --   14-DEC-2004    Arnold Ng          Created.
218 
219   PROCEDURE assign_eft_rec(
220     p_eft_obj                    IN            HZ_EFT_CP_BO,
221     p_owner_table_id             IN            NUMBER,
222     p_owner_table_name           IN            VARCHAR2,
223     p_cp_id                      IN            NUMBER,
224     p_cp_os                      IN            VARCHAR2,
225     p_cp_osr                     IN            VARCHAR2,
226     p_cp_type                    IN            VARCHAR2,
227     p_create_or_update           IN            VARCHAR2 := 'C',
228     px_eft_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.EFT_REC_TYPE,
229     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
230   );
231 
232   -- PRIVATE PROCEDURE assign_sms_rec
233   --
234   -- DESCRIPTION
235   --     Assign attribute value from sms business object to plsql record.
236   --
237   -- ARGUMENTS
238   --   IN:
239   --     p_sms_obj            SMS business object.
240   --     p_owner_table_id     Owner table Id.
241   --     p_owner_table_name   Owner table name.
242   --     p_cp_id              Contact point Id.
243   --     p_cp_os              Contact point original system.
244   --     p_cp_osr             Contact point original system reference.
245   --     p_cp_type            Contact point type.
246   --     p_created_by_module  Created by module.
247   --   IN/OUT:
248   --     px_sms_rec           SMS plsql record.
249   --     px_contact_point_rec Contact point plsql record.
250   --
251   -- NOTES
252   --
253   -- MODIFICATION HISTORY
254   --
255   --   14-DEC-2004    Arnold Ng          Created.
256 
257   PROCEDURE assign_sms_rec(
258     p_sms_obj                    IN            HZ_SMS_CP_BO,
259     p_owner_table_id             IN            NUMBER,
260     p_owner_table_name           IN            VARCHAR2,
261     p_cp_id                      IN            NUMBER,
262     p_cp_os                      IN            VARCHAR2,
263     p_cp_osr                     IN            VARCHAR2,
264     p_cp_type                    IN            VARCHAR2,
265     p_create_or_update           IN            VARCHAR2 := 'C',
266     px_sms_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE,
267     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
268   );
269 
270   -- PROCEDURE create_phone_bo
271   --
272   -- DESCRIPTION
273   --     Create a logical phone contact point.
274   PROCEDURE create_phone_bo(
275     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
276     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
277     p_phone_obj           IN            HZ_PHONE_CP_BO,
278     p_created_by_module   IN            VARCHAR2,
279     x_return_status       OUT NOCOPY    VARCHAR2,
280     x_msg_count           OUT NOCOPY    NUMBER,
281     x_msg_data            OUT NOCOPY    VARCHAR2,
282     x_phone_id            OUT NOCOPY    NUMBER,
286     px_parent_os          IN OUT NOCOPY VARCHAR2,
283     x_phone_os            OUT NOCOPY    VARCHAR2,
284     x_phone_osr           OUT NOCOPY    VARCHAR2,
285     px_parent_id          IN OUT NOCOPY NUMBER,
287     px_parent_osr         IN OUT NOCOPY VARCHAR2,
288     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
289   ) IS
290     l_phone_obj           HZ_PHONE_CP_BO;
291   BEGIN
292     l_phone_obj := p_phone_obj;
293     do_create_contact_point (
294       p_init_msg_list      => p_init_msg_list,
295       p_validate_bo_flag   => p_validate_bo_flag,
296       p_cp_id              => l_phone_obj.phone_id,
297       p_cp_os              => l_phone_obj.orig_system,
298       p_cp_osr             => l_phone_obj.orig_system_reference,
299       p_phone_obj          => l_phone_obj,
300       p_email_obj          => NULL,
301       p_telex_obj          => NULL,
302       p_web_obj            => NULL,
303       p_edi_obj            => NULL,
304       p_eft_obj            => NULL,
305       p_sms_obj            => NULL,
306       p_cp_pref_objs       => l_phone_obj.contact_pref_objs,
307       p_cp_type            => 'PHONE',
308       p_created_by_module  => p_created_by_module,
309       p_obj_source         => null,
310       x_return_status      => x_return_status,
311       x_msg_count          => x_msg_count,
312       x_msg_data           => x_msg_data,
313       x_cp_id              => x_phone_id,
314       x_cp_os              => x_phone_os,
315       x_cp_osr             => x_phone_osr,
316       px_parent_id         => px_parent_id,
317       px_parent_os         => px_parent_os,
318       px_parent_osr        => px_parent_osr,
319       px_parent_obj_type   => px_parent_obj_type
320     );
321   END create_phone_bo;
322 
323   PROCEDURE create_phone_bo(
324     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
325     p_phone_obj           IN            HZ_PHONE_CP_BO,
326     p_created_by_module   IN            VARCHAR2,
327     p_obj_source          IN            VARCHAR2 := null,
328     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
329     x_return_status       OUT NOCOPY    VARCHAR2,
330     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
331     x_return_obj          OUT NOCOPY    HZ_PHONE_CP_BO,
332     x_phone_id            OUT NOCOPY    NUMBER,
333     x_phone_os            OUT NOCOPY    VARCHAR2,
334     x_phone_osr           OUT NOCOPY    VARCHAR2,
335     px_parent_id          IN OUT NOCOPY NUMBER,
336     px_parent_os          IN OUT NOCOPY VARCHAR2,
337     px_parent_osr         IN OUT NOCOPY VARCHAR2,
338     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
339   ) IS
340     l_msg_count           NUMBER;
341     l_msg_data            VARCHAR2(2000);
342     l_phone_obj           HZ_PHONE_CP_BO;
343   BEGIN
344     l_phone_obj := p_phone_obj;
345     do_create_contact_point (
346       p_init_msg_list      => fnd_api.g_true,
347       p_validate_bo_flag   => p_validate_bo_flag,
348       p_cp_id              => l_phone_obj.phone_id,
349       p_cp_os              => l_phone_obj.orig_system,
350       p_cp_osr             => l_phone_obj.orig_system_reference,
351       p_phone_obj          => l_phone_obj,
352       p_email_obj          => NULL,
353       p_telex_obj          => NULL,
354       p_web_obj            => NULL,
355       p_edi_obj            => NULL,
356       p_eft_obj            => NULL,
357       p_sms_obj            => NULL,
358       p_cp_pref_objs       => l_phone_obj.contact_pref_objs,
359       p_cp_type            => 'PHONE',
360       p_created_by_module  => p_created_by_module,
361       p_obj_source         => p_obj_source,
362       x_return_status      => x_return_status,
363       x_msg_count          => l_msg_count,
364       x_msg_data           => l_msg_data,
365       x_cp_id              => x_phone_id,
366       x_cp_os              => x_phone_os,
367       x_cp_osr             => x_phone_osr,
368       px_parent_id         => px_parent_id,
369       px_parent_os         => px_parent_os,
370       px_parent_osr        => px_parent_osr,
371       px_parent_obj_type   => px_parent_obj_type
372     );
373     l_phone_obj.phone_id := x_phone_id;
374     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
375                     x_return_status   => x_return_status,
376                     x_msg_count       => l_msg_count,
377                     x_msg_data        => l_msg_data);
378     IF FND_API.to_Boolean(p_return_obj_flag) THEN
379       x_return_obj := l_phone_obj;
380     END IF;
381   END create_phone_bo;
382 
383   -- PROCEDURE create_telex_bo
384   --
385   -- DESCRIPTION
386   --     Create a logical telex contact point.
387   PROCEDURE create_telex_bo(
388     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
389     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
390     p_telex_obj           IN            HZ_TELEX_CP_BO,
391     p_created_by_module   IN            VARCHAR2,
392     x_return_status       OUT NOCOPY    VARCHAR2,
393     x_msg_count           OUT NOCOPY    NUMBER,
394     x_msg_data            OUT NOCOPY    VARCHAR2,
395     x_telex_id            OUT NOCOPY    NUMBER,
396     x_telex_os            OUT NOCOPY    VARCHAR2,
397     x_telex_osr           OUT NOCOPY    VARCHAR2,
398     px_parent_id          IN OUT NOCOPY NUMBER,
399     px_parent_os          IN OUT NOCOPY VARCHAR2,
400     px_parent_osr         IN OUT NOCOPY VARCHAR2,
401     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
402   ) IS
403     l_telex_obj           HZ_TELEX_CP_BO;
404   BEGIN
405     l_telex_obj := p_telex_obj;
406     do_create_contact_point (
407       p_init_msg_list      => p_init_msg_list,
408       p_validate_bo_flag   => p_validate_bo_flag,
409       p_cp_id              => l_telex_obj.telex_id,
413       p_email_obj          => NULL,
410       p_cp_os              => l_telex_obj.orig_system,
411       p_cp_osr             => l_telex_obj.orig_system_reference,
412       p_phone_obj          => NULL,
414       p_telex_obj          => l_telex_obj,
415       p_web_obj            => NULL,
416       p_edi_obj            => NULL,
417       p_eft_obj            => NULL,
418       p_sms_obj            => NULL,
419       p_cp_pref_objs       => l_telex_obj.contact_pref_objs,
420       p_cp_type            => 'TLX',
421       p_created_by_module  => p_created_by_module,
422       p_obj_source         => null,
423       x_return_status      => x_return_status,
424       x_msg_count          => x_msg_count,
425       x_msg_data           => x_msg_data,
426       x_cp_id              => x_telex_id,
427       x_cp_os              => x_telex_os,
428       x_cp_osr             => x_telex_osr,
429       px_parent_id         => px_parent_id,
430       px_parent_os         => px_parent_os,
431       px_parent_osr        => px_parent_osr,
432       px_parent_obj_type   => px_parent_obj_type
433     );
434   END create_telex_bo;
435 
436   PROCEDURE create_telex_bo(
437     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
438     p_telex_obj           IN            HZ_TELEX_CP_BO,
439     p_created_by_module   IN            VARCHAR2,
440     p_obj_source          IN            VARCHAR2 := null,
441     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
442     x_return_status       OUT NOCOPY    VARCHAR2,
443     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
444     x_return_obj          OUT NOCOPY    HZ_TELEX_CP_BO,
445     x_telex_id            OUT NOCOPY    NUMBER,
446     x_telex_os            OUT NOCOPY    VARCHAR2,
447     x_telex_osr           OUT NOCOPY    VARCHAR2,
448     px_parent_id          IN OUT NOCOPY NUMBER,
449     px_parent_os          IN OUT NOCOPY VARCHAR2,
450     px_parent_osr         IN OUT NOCOPY VARCHAR2,
451     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
452   ) IS
453     l_msg_data            VARCHAR2(2000);
454     l_msg_count           NUMBER;
455     l_telex_obj           HZ_TELEX_CP_BO;
456   BEGIN
457     l_telex_obj := p_telex_obj;
458     do_create_contact_point (
459       p_init_msg_list      => fnd_api.g_true,
460       p_validate_bo_flag   => p_validate_bo_flag,
461       p_cp_id              => l_telex_obj.telex_id,
462       p_cp_os              => l_telex_obj.orig_system,
463       p_cp_osr             => l_telex_obj.orig_system_reference,
464       p_phone_obj          => NULL,
465       p_email_obj          => NULL,
466       p_telex_obj          => l_telex_obj,
467       p_web_obj            => NULL,
468       p_edi_obj            => NULL,
469       p_eft_obj            => NULL,
470       p_sms_obj            => NULL,
471       p_cp_pref_objs       => l_telex_obj.contact_pref_objs,
472       p_cp_type            => 'TLX',
473       p_created_by_module  => p_created_by_module,
474       p_obj_source         => p_obj_source,
475       x_return_status      => x_return_status,
476       x_msg_count          => l_msg_count,
477       x_msg_data           => l_msg_data,
478       x_cp_id              => x_telex_id,
479       x_cp_os              => x_telex_os,
480       x_cp_osr             => x_telex_osr,
481       px_parent_id         => px_parent_id,
482       px_parent_os         => px_parent_os,
483       px_parent_osr        => px_parent_osr,
484       px_parent_obj_type   => px_parent_obj_type
485     );
486     l_telex_obj.telex_id := x_telex_id;
487     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
488                     x_return_status   => x_return_status,
489                     x_msg_count       => l_msg_count,
490                     x_msg_data        => l_msg_data);
491     IF FND_API.to_Boolean(p_return_obj_flag) THEN
492       x_return_obj := l_telex_obj;
493     END IF;
494   END create_telex_bo;
495 
496   -- PROCEDURE create_email_bo
497   --
498   -- DESCRIPTION
499   --     Create a logical email contact point.
500   PROCEDURE create_email_bo(
501     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
502     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
503     p_email_obj           IN            HZ_EMAIL_CP_BO,
504     p_created_by_module   IN            VARCHAR2,
505     x_return_status       OUT NOCOPY    VARCHAR2,
506     x_msg_count           OUT NOCOPY    NUMBER,
507     x_msg_data            OUT NOCOPY    VARCHAR2,
508     x_email_id            OUT NOCOPY    NUMBER,
509     x_email_os            OUT NOCOPY    VARCHAR2,
510     x_email_osr           OUT NOCOPY    VARCHAR2,
511     px_parent_id          IN OUT NOCOPY NUMBER,
512     px_parent_os          IN OUT NOCOPY VARCHAR2,
513     px_parent_osr         IN OUT NOCOPY VARCHAR2,
514     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
515   ) IS
516     l_email_obj           HZ_EMAIL_CP_BO;
517   BEGIN
518     l_email_obj := p_email_obj;
519     do_create_contact_point (
520       p_init_msg_list      => p_init_msg_list,
521       p_validate_bo_flag   => p_validate_bo_flag,
522       p_cp_id              => l_email_obj.email_id,
523       p_cp_os              => l_email_obj.orig_system,
524       p_cp_osr             => l_email_obj.orig_system_reference,
525       p_phone_obj          => NULL,
526       p_email_obj          => l_email_obj,
527       p_telex_obj          => NULL,
528       p_web_obj            => NULL,
529       p_edi_obj            => NULL,
530       p_eft_obj            => NULL,
531       p_sms_obj            => NULL,
532       p_cp_pref_objs       => l_email_obj.contact_pref_objs,
533       p_cp_type            => 'EMAIL',
534       p_created_by_module  => p_created_by_module,
535       p_obj_source         => null,
536       x_return_status      => x_return_status,
540       x_cp_os              => x_email_os,
537       x_msg_count          => x_msg_count,
538       x_msg_data           => x_msg_data,
539       x_cp_id              => x_email_id,
541       x_cp_osr             => x_email_osr,
542       px_parent_id         => px_parent_id,
543       px_parent_os         => px_parent_os,
544       px_parent_osr        => px_parent_osr,
545       px_parent_obj_type   => px_parent_obj_type);
546   END create_email_bo;
547 
548   PROCEDURE create_email_bo(
549     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
550     p_email_obj           IN            HZ_EMAIL_CP_BO,
551     p_created_by_module   IN            VARCHAR2,
552     p_obj_source          IN            VARCHAR2 := null,
553     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
554     x_return_status       OUT NOCOPY    VARCHAR2,
555     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
556     x_return_obj          OUT NOCOPY    HZ_EMAIL_CP_BO,
557     x_email_id            OUT NOCOPY    NUMBER,
558     x_email_os            OUT NOCOPY    VARCHAR2,
559     x_email_osr           OUT NOCOPY    VARCHAR2,
560     px_parent_id          IN OUT NOCOPY NUMBER,
561     px_parent_os          IN OUT NOCOPY VARCHAR2,
562     px_parent_osr         IN OUT NOCOPY VARCHAR2,
563     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
564   ) IS
565     l_msg_data            VARCHAR2(2000);
566     l_msg_count           NUMBER;
567     l_email_obj           HZ_EMAIL_CP_BO;
568   BEGIN
569     l_email_obj := p_email_obj;
570     do_create_contact_point (
571       p_init_msg_list      => fnd_api.g_true,
572       p_validate_bo_flag   => p_validate_bo_flag,
573       p_cp_id              => l_email_obj.email_id,
574       p_cp_os              => l_email_obj.orig_system,
575       p_cp_osr             => l_email_obj.orig_system_reference,
576       p_phone_obj          => NULL,
577       p_email_obj          => l_email_obj,
578       p_telex_obj          => NULL,
579       p_web_obj            => NULL,
580       p_edi_obj            => NULL,
581       p_eft_obj            => NULL,
582       p_sms_obj            => NULL,
583       p_cp_pref_objs       => l_email_obj.contact_pref_objs,
584       p_cp_type            => 'EMAIL',
585       p_created_by_module  => p_created_by_module,
586       p_obj_source         => p_obj_source,
587       x_return_status      => x_return_status,
588       x_msg_count          => l_msg_count,
589       x_msg_data           => l_msg_data,
590       x_cp_id              => x_email_id,
591       x_cp_os              => x_email_os,
592       x_cp_osr             => x_email_osr,
593       px_parent_id         => px_parent_id,
594       px_parent_os         => px_parent_os,
595       px_parent_osr        => px_parent_osr,
596       px_parent_obj_type   => px_parent_obj_type);
597     l_email_obj.email_id := x_email_id;
598     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
599                     x_return_status   => x_return_status,
600                     x_msg_count       => l_msg_count,
601                     x_msg_data        => l_msg_data);
602     IF FND_API.to_Boolean(p_return_obj_flag) THEN
603       x_return_obj := l_email_obj;
604     END IF;
605   END create_email_bo;
606 
607   -- PROCEDURE create_web_bo
608   --
609   -- DESCRIPTION
610   --     Create a logical web contact point.
611   PROCEDURE create_web_bo(
612     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
613     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
614     p_web_obj             IN            HZ_WEB_CP_BO,
615     p_created_by_module   IN            VARCHAR2,
616     x_return_status       OUT NOCOPY    VARCHAR2,
617     x_msg_count           OUT NOCOPY    NUMBER,
618     x_msg_data            OUT NOCOPY    VARCHAR2,
619     x_web_id              OUT NOCOPY    NUMBER,
620     x_web_os              OUT NOCOPY    VARCHAR2,
621     x_web_osr             OUT NOCOPY    VARCHAR2,
622     px_parent_id          IN OUT NOCOPY NUMBER,
623     px_parent_os          IN OUT NOCOPY VARCHAR2,
624     px_parent_osr         IN OUT NOCOPY VARCHAR2,
625     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
626   ) IS
627     l_web_obj             HZ_WEB_CP_BO;
628   BEGIN
629     l_web_obj := p_web_obj;
630     do_create_contact_point (
631       p_init_msg_list      => p_init_msg_list,
632       p_validate_bo_flag   => p_validate_bo_flag,
633       p_cp_id              => l_web_obj.web_id,
634       p_cp_os              => l_web_obj.orig_system,
635       p_cp_osr             => l_web_obj.orig_system_reference,
636       p_phone_obj          => NULL,
637       p_email_obj          => NULL,
638       p_telex_obj          => NULL,
639       p_web_obj            => l_web_obj,
640       p_edi_obj            => NULL,
641       p_eft_obj            => NULL,
642       p_sms_obj            => NULL,
643       p_cp_pref_objs       => l_web_obj.contact_pref_objs,
644       p_cp_type            => 'WEB',
645       p_created_by_module  => p_created_by_module,
646       p_obj_source         => null,
647       x_return_status      => x_return_status,
648       x_msg_count          => x_msg_count,
649       x_msg_data           => x_msg_data,
650       x_cp_id              => x_web_id,
651       x_cp_os              => x_web_os,
652       x_cp_osr             => x_web_osr,
653       px_parent_id         => px_parent_id,
654       px_parent_os         => px_parent_os,
655       px_parent_osr        => px_parent_osr,
656       px_parent_obj_type   => px_parent_obj_type);
657   END create_web_bo;
658 
659   PROCEDURE create_web_bo(
660     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
661     p_web_obj             IN            HZ_WEB_CP_BO,
662     p_created_by_module   IN            VARCHAR2,
666     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
663     p_obj_source          IN            VARCHAR2 := null,
664     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
665     x_return_status       OUT NOCOPY    VARCHAR2,
667     x_return_obj          OUT NOCOPY    HZ_WEB_CP_BO,
668     x_web_id              OUT NOCOPY    NUMBER,
669     x_web_os              OUT NOCOPY    VARCHAR2,
670     x_web_osr             OUT NOCOPY    VARCHAR2,
671     px_parent_id          IN OUT NOCOPY NUMBER,
672     px_parent_os          IN OUT NOCOPY VARCHAR2,
673     px_parent_osr         IN OUT NOCOPY VARCHAR2,
674     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
675   ) IS
676     l_msg_data            VARCHAR2(2000);
677     l_msg_count           NUMBER;
678     l_web_obj             HZ_WEB_CP_BO;
679   BEGIN
680     l_web_obj := p_web_obj;
681     do_create_contact_point (
682       p_init_msg_list      => fnd_api.g_true,
683       p_validate_bo_flag   => p_validate_bo_flag,
684       p_cp_id              => l_web_obj.web_id,
685       p_cp_os              => l_web_obj.orig_system,
686       p_cp_osr             => l_web_obj.orig_system_reference,
687       p_phone_obj          => NULL,
688       p_email_obj          => NULL,
689       p_telex_obj          => NULL,
690       p_web_obj            => l_web_obj,
691       p_edi_obj            => NULL,
692       p_eft_obj            => NULL,
693       p_sms_obj            => NULL,
694       p_cp_pref_objs       => l_web_obj.contact_pref_objs,
695       p_cp_type            => 'WEB',
696       p_created_by_module  => p_created_by_module,
697       p_obj_source         => p_obj_source,
698       x_return_status      => x_return_status,
699       x_msg_count          => l_msg_count,
700       x_msg_data           => l_msg_data,
701       x_cp_id              => x_web_id,
702       x_cp_os              => x_web_os,
703       x_cp_osr             => x_web_osr,
704       px_parent_id         => px_parent_id,
705       px_parent_os         => px_parent_os,
706       px_parent_osr        => px_parent_osr,
707       px_parent_obj_type   => px_parent_obj_type);
708     l_web_obj.web_id := x_web_id;
709     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
710                     x_return_status   => x_return_status,
711                     x_msg_count       => l_msg_count,
712                     x_msg_data        => l_msg_data);
713     IF FND_API.to_Boolean(p_return_obj_flag) THEN
714       x_return_obj := l_web_obj;
715     END IF;
716   END create_web_bo;
717 
718   -- PROCEDURE create_edi_bo
719   --
720   -- DESCRIPTION
721   --     Create a logical edi contact point.
722   PROCEDURE create_edi_bo(
723     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
724     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
725     p_edi_obj             IN            HZ_EDI_CP_BO,
726     p_created_by_module   IN            VARCHAR2,
727     x_return_status       OUT NOCOPY    VARCHAR2,
728     x_msg_count           OUT NOCOPY    NUMBER,
729     x_msg_data            OUT NOCOPY    VARCHAR2,
730     x_edi_id              OUT NOCOPY    NUMBER,
731     x_edi_os              OUT NOCOPY    VARCHAR2,
732     x_edi_osr             OUT NOCOPY    VARCHAR2,
733     px_parent_id          IN OUT NOCOPY NUMBER,
734     px_parent_os          IN OUT NOCOPY VARCHAR2,
735     px_parent_osr         IN OUT NOCOPY VARCHAR2,
736     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
737   ) IS
738     l_edi_obj             HZ_EDI_CP_BO;
739   BEGIN
740     l_edi_obj := p_edi_obj;
741     do_create_contact_point (
742       p_init_msg_list      => p_init_msg_list,
743       p_validate_bo_flag   => p_validate_bo_flag,
744       p_cp_id              => l_edi_obj.edi_id,
745       p_cp_os              => l_edi_obj.orig_system,
746       p_cp_osr             => l_edi_obj.orig_system_reference,
747       p_phone_obj          => NULL,
748       p_email_obj          => NULL,
749       p_telex_obj          => NULL,
750       p_web_obj            => NULL,
751       p_edi_obj            => l_edi_obj,
752       p_eft_obj            => NULL,
753       p_sms_obj            => NULL,
754       p_cp_pref_objs       => l_edi_obj.contact_pref_objs,
755       p_cp_type            => 'EDI',
756       p_created_by_module  => p_created_by_module,
757       p_obj_source         => null,
758       x_return_status      => x_return_status,
759       x_msg_count          => x_msg_count,
760       x_msg_data           => x_msg_data,
761       x_cp_id              => x_edi_id,
762       x_cp_os              => x_edi_os,
763       x_cp_osr             => x_edi_osr,
764       px_parent_id         => px_parent_id,
765       px_parent_os         => px_parent_os,
766       px_parent_osr        => px_parent_osr,
767       px_parent_obj_type   => px_parent_obj_type);
768   END create_edi_bo;
769 
770   PROCEDURE create_edi_bo(
771     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
772     p_edi_obj             IN            HZ_EDI_CP_BO,
773     p_created_by_module   IN            VARCHAR2,
774     p_obj_source          IN            VARCHAR2 := null,
775     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
776     x_return_status       OUT NOCOPY    VARCHAR2,
777     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
778     x_return_obj          OUT NOCOPY    HZ_EDI_CP_BO,
779     x_edi_id              OUT NOCOPY    NUMBER,
780     x_edi_os              OUT NOCOPY    VARCHAR2,
781     x_edi_osr             OUT NOCOPY    VARCHAR2,
782     px_parent_id          IN OUT NOCOPY NUMBER,
783     px_parent_os          IN OUT NOCOPY VARCHAR2,
784     px_parent_osr         IN OUT NOCOPY VARCHAR2,
785     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
786   ) IS
787     l_msg_data            VARCHAR2(2000);
788     l_msg_count           NUMBER;
792     do_create_contact_point (
789     l_edi_obj             HZ_EDI_CP_BO;
790   BEGIN
791     l_edi_obj := p_edi_obj;
793       p_init_msg_list      => fnd_api.g_true,
794       p_validate_bo_flag   => p_validate_bo_flag,
795       p_cp_id              => l_edi_obj.edi_id,
796       p_cp_os              => l_edi_obj.orig_system,
797       p_cp_osr             => l_edi_obj.orig_system_reference,
798       p_phone_obj          => NULL,
799       p_email_obj          => NULL,
800       p_telex_obj          => NULL,
801       p_web_obj            => NULL,
802       p_edi_obj            => l_edi_obj,
803       p_eft_obj            => NULL,
804       p_sms_obj            => NULL,
805       p_cp_pref_objs       => l_edi_obj.contact_pref_objs,
806       p_cp_type            => 'EDI',
807       p_created_by_module  => p_created_by_module,
808       p_obj_source         => p_obj_source,
809       x_return_status      => x_return_status,
810       x_msg_count          => l_msg_count,
811       x_msg_data           => l_msg_data,
812       x_cp_id              => x_edi_id,
813       x_cp_os              => x_edi_os,
814       x_cp_osr             => x_edi_osr,
815       px_parent_id         => px_parent_id,
816       px_parent_os         => px_parent_os,
817       px_parent_osr        => px_parent_osr,
818       px_parent_obj_type   => px_parent_obj_type);
819     l_edi_obj.edi_id := x_edi_id;
820     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
821                     x_return_status   => x_return_status,
822                     x_msg_count       => l_msg_count,
823                     x_msg_data        => l_msg_data);
824     IF FND_API.to_Boolean(p_return_obj_flag) THEN
825       x_return_obj := l_edi_obj;
826     END IF;
827   END create_edi_bo;
828 
829   -- PROCEDURE create_eft_bo
830   --
831   -- DESCRIPTION
832   --     Create a logical eft contact point.
833   PROCEDURE create_eft_bo(
834     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
835     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
836     p_eft_obj             IN            HZ_EFT_CP_BO,
837     p_created_by_module   IN            VARCHAR2,
838     x_return_status       OUT NOCOPY    VARCHAR2,
839     x_msg_count           OUT NOCOPY    NUMBER,
840     x_msg_data            OUT NOCOPY    VARCHAR2,
841     x_eft_id              OUT NOCOPY    NUMBER,
842     x_eft_os              OUT NOCOPY    VARCHAR2,
843     x_eft_osr             OUT NOCOPY    VARCHAR2,
844     px_parent_id          IN OUT NOCOPY NUMBER,
845     px_parent_os          IN OUT NOCOPY VARCHAR2,
846     px_parent_osr         IN OUT NOCOPY VARCHAR2,
847     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
848   ) IS
849     l_eft_obj             HZ_EFT_CP_BO;
850   BEGIN
851     l_eft_obj := p_eft_obj;
852     do_create_contact_point (
853       p_init_msg_list      => p_init_msg_list,
854       p_validate_bo_flag   => p_validate_bo_flag,
855       p_cp_id              => l_eft_obj.eft_id,
856       p_cp_os              => l_eft_obj.orig_system,
857       p_cp_osr             => l_eft_obj.orig_system_reference,
858       p_phone_obj          => NULL,
859       p_email_obj          => NULL,
860       p_telex_obj          => NULL,
861       p_web_obj            => NULL,
862       p_edi_obj            => NULL,
863       p_eft_obj            => l_eft_obj,
864       p_sms_obj            => NULL,
865       p_cp_pref_objs       => l_eft_obj.contact_pref_objs,
866       p_cp_type            => 'EFT',
867       p_created_by_module  => p_created_by_module,
868       p_obj_source         => null,
869       x_return_status      => x_return_status,
870       x_msg_count          => x_msg_count,
871       x_msg_data           => x_msg_data,
872       x_cp_id              => x_eft_id,
873       x_cp_os              => x_eft_os,
874       x_cp_osr             => x_eft_osr,
875       px_parent_id         => px_parent_id,
876       px_parent_os         => px_parent_os,
877       px_parent_osr        => px_parent_osr,
878       px_parent_obj_type   => px_parent_obj_type);
879   END create_eft_bo;
880 
881   PROCEDURE create_eft_bo(
882     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
883     p_eft_obj             IN            HZ_EFT_CP_BO,
884     p_created_by_module   IN            VARCHAR2,
885     p_obj_source          IN            VARCHAR2 := null,
886     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
887     x_return_status       OUT NOCOPY    VARCHAR2,
888     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
889     x_return_obj          OUT NOCOPY    HZ_EFT_CP_BO,
890     x_eft_id              OUT NOCOPY    NUMBER,
891     x_eft_os              OUT NOCOPY    VARCHAR2,
892     x_eft_osr             OUT NOCOPY    VARCHAR2,
893     px_parent_id          IN OUT NOCOPY NUMBER,
894     px_parent_os          IN OUT NOCOPY VARCHAR2,
895     px_parent_osr         IN OUT NOCOPY VARCHAR2,
896     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
897   ) IS
898     l_msg_data            VARCHAR2(2000);
899     l_msg_count           NUMBER;
900     l_eft_obj             HZ_EFT_CP_BO;
901   BEGIN
902     l_eft_obj := p_eft_obj;
903     do_create_contact_point (
904       p_init_msg_list      => fnd_api.g_true,
905       p_validate_bo_flag   => p_validate_bo_flag,
906       p_cp_id              => l_eft_obj.eft_id,
907       p_cp_os              => l_eft_obj.orig_system,
908       p_cp_osr             => l_eft_obj.orig_system_reference,
909       p_phone_obj          => NULL,
910       p_email_obj          => NULL,
911       p_telex_obj          => NULL,
912       p_web_obj            => NULL,
913       p_edi_obj            => NULL,
914       p_eft_obj            => l_eft_obj,
915       p_sms_obj            => NULL,
916       p_cp_pref_objs       => l_eft_obj.contact_pref_objs,
920       x_return_status      => x_return_status,
917       p_cp_type            => 'EFT',
918       p_created_by_module  => p_created_by_module,
919       p_obj_source         => p_obj_source,
921       x_msg_count          => l_msg_count,
922       x_msg_data           => l_msg_data,
923       x_cp_id              => x_eft_id,
924       x_cp_os              => x_eft_os,
925       x_cp_osr             => x_eft_osr,
926       px_parent_id         => px_parent_id,
927       px_parent_os         => px_parent_os,
928       px_parent_osr        => px_parent_osr,
929       px_parent_obj_type   => px_parent_obj_type);
930     l_eft_obj.eft_id := x_eft_id;
931     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
932                     x_return_status   => x_return_status,
933                     x_msg_count       => l_msg_count,
934                     x_msg_data        => l_msg_data);
935     IF FND_API.to_Boolean(p_return_obj_flag) THEN
936       x_return_obj := l_eft_obj;
937     END IF;
938   END create_eft_bo;
939 
940   -- PROCEDURE create_sms_bo
941   --
942   -- DESCRIPTION
943   --     Create a logical sms contact point.
944   PROCEDURE create_sms_bo(
945     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
946     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
947     p_sms_obj             IN            HZ_SMS_CP_BO,
948     p_created_by_module   IN            VARCHAR2,
949     x_return_status       OUT NOCOPY    VARCHAR2,
950     x_msg_count           OUT NOCOPY    NUMBER,
951     x_msg_data            OUT NOCOPY    VARCHAR2,
952     x_sms_id              OUT NOCOPY    NUMBER,
953     x_sms_os              OUT NOCOPY    VARCHAR2,
954     x_sms_osr             OUT NOCOPY    VARCHAR2,
955     px_parent_id          IN OUT NOCOPY NUMBER,
956     px_parent_os          IN OUT NOCOPY VARCHAR2,
957     px_parent_osr         IN OUT NOCOPY VARCHAR2,
958     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
959   ) IS
960     l_sms_obj             HZ_SMS_CP_BO;
961   BEGIN
962     l_sms_obj := p_sms_obj;
963     do_create_contact_point (
964       p_init_msg_list      => p_init_msg_list,
965       p_validate_bo_flag   => p_validate_bo_flag,
966       p_cp_id              => l_sms_obj.sms_id,
967       p_cp_os              => l_sms_obj.orig_system,
968       p_cp_osr             => l_sms_obj.orig_system_reference,
969       p_phone_obj          => NULL,
970       p_email_obj          => NULL,
971       p_telex_obj          => NULL,
972       p_web_obj            => NULL,
973       p_edi_obj            => NULL,
974       p_eft_obj            => NULL,
975       p_sms_obj            => l_sms_obj,
976       p_cp_pref_objs       => l_sms_obj.contact_pref_objs,
977       p_cp_type            => 'SMS',
978       p_created_by_module  => p_created_by_module,
979       p_obj_source         => null,
980       x_return_status      => x_return_status,
981       x_msg_count          => x_msg_count,
982       x_msg_data           => x_msg_data,
983       x_cp_id              => x_sms_id,
984       x_cp_os              => x_sms_os,
985       x_cp_osr             => x_sms_osr,
986       px_parent_id         => px_parent_id,
987       px_parent_os         => px_parent_os,
988       px_parent_osr        => px_parent_osr,
989       px_parent_obj_type   => px_parent_obj_type);
990   END create_sms_bo;
991 
992   PROCEDURE create_sms_bo(
993     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
994     p_sms_obj             IN            HZ_SMS_CP_BO,
995     p_created_by_module   IN            VARCHAR2,
996     p_obj_source          IN            VARCHAR2 := null,
997     p_return_obj_flag         IN            VARCHAr2 := fnd_api.g_true,
998     x_return_status       OUT NOCOPY    VARCHAR2,
999     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
1000     x_return_obj          OUT NOCOPY    HZ_SMS_CP_BO,
1001     x_sms_id              OUT NOCOPY    NUMBER,
1002     x_sms_os              OUT NOCOPY    VARCHAR2,
1003     x_sms_osr             OUT NOCOPY    VARCHAR2,
1004     px_parent_id          IN OUT NOCOPY NUMBER,
1005     px_parent_os          IN OUT NOCOPY VARCHAR2,
1006     px_parent_osr         IN OUT NOCOPY VARCHAR2,
1007     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
1008   ) IS
1009     l_msg_data             VARCHAR2(2000);
1010     l_msg_count            NUMBER;
1011     l_sms_obj              HZ_SMS_CP_BO;
1012   BEGIN
1013     l_sms_obj := p_sms_obj;
1014     do_create_contact_point (
1015       p_init_msg_list      => fnd_api.g_true,
1016       p_validate_bo_flag   => p_validate_bo_flag,
1017       p_cp_id              => l_sms_obj.sms_id,
1018       p_cp_os              => l_sms_obj.orig_system,
1019       p_cp_osr             => l_sms_obj.orig_system_reference,
1020       p_phone_obj          => NULL,
1021       p_email_obj          => NULL,
1022       p_telex_obj          => NULL,
1023       p_web_obj            => NULL,
1024       p_edi_obj            => NULL,
1025       p_eft_obj            => NULL,
1026       p_sms_obj            => l_sms_obj,
1027       p_cp_pref_objs       => l_sms_obj.contact_pref_objs,
1028       p_cp_type            => 'SMS',
1029       p_created_by_module  => p_created_by_module,
1030       p_obj_source         => p_obj_source,
1031       x_return_status      => x_return_status,
1032       x_msg_count          => l_msg_count,
1033       x_msg_data           => l_msg_data,
1034       x_cp_id              => x_sms_id,
1035       x_cp_os              => x_sms_os,
1036       x_cp_osr             => x_sms_osr,
1037       px_parent_id         => px_parent_id,
1038       px_parent_os         => px_parent_os,
1039       px_parent_osr        => px_parent_osr,
1040       px_parent_obj_type   => px_parent_obj_type);
1041     l_sms_obj.sms_id := x_sms_id;
1042     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1046     IF FND_API.to_Boolean(p_return_obj_flag) THEN
1043                     x_return_status   => x_return_status,
1044                     x_msg_count       => l_msg_count,
1045                     x_msg_data        => l_msg_data);
1047       x_return_obj := l_sms_obj;
1048     END IF;
1049   END create_sms_bo;
1050 
1051   -- PRIVATE PROCEDURE assign_phone_rec
1052   --
1053   -- DESCRIPTION
1054   --     Assign attribute value from phone business object to plsql record.
1055   --
1056   -- ARGUMENTS
1057   --   IN:
1058   --     p_phone_obj          Phone business object.
1059   --     p_owner_table_id     Owner table Id.
1060   --     p_owner_table_name   Owner table name.
1061   --     p_cp_id              Contact point Id.
1062   --     p_cp_os              Contact point original system.
1063   --     p_cp_osr             Contact point original system reference.
1064   --     p_cp_type            Contact point type.
1065   --     p_created_by_module  Created by module.
1066   --   IN/OUT:
1067   --     px_phone_rec         Phone plsql record.
1068   --     px_contact_point_rec Contact point plsql record.
1069   --
1070   -- NOTES
1071   --
1072   -- MODIFICATION HISTORY
1073   --
1074   --   14-DEC-2004    Arnold Ng          Created.
1075 
1076   PROCEDURE assign_phone_rec(
1077     p_phone_obj                  IN            HZ_PHONE_CP_BO,
1078     p_owner_table_id             IN            NUMBER,
1079     p_owner_table_name           IN            VARCHAR2,
1080     p_cp_id                      IN            NUMBER,
1081     p_cp_os                      IN            VARCHAR2,
1082     p_cp_osr                     IN            VARCHAR2,
1083     p_cp_type                    IN            VARCHAR2,
1084     p_create_or_update           IN            VARCHAR2 := 'C',
1085     px_phone_rec                 IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE,
1086     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1087   ) IS
1088   BEGIN
1089     px_contact_point_rec.contact_point_id       := p_cp_id;
1090     px_contact_point_rec.contact_point_type     := p_cp_type;
1091     IF(p_phone_obj.status IN ('A','I')) THEN
1092       px_contact_point_rec.status               := p_phone_obj.status;
1093     ELSE
1094       px_contact_point_rec.status               := NULL;
1095     END IF;
1096     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1097     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1098     IF(p_phone_obj.primary_flag in ('Y','N')) THEN
1099       px_contact_point_rec.primary_flag         := p_phone_obj.primary_flag;
1100     ELSE
1101       px_contact_point_rec.primary_flag         := NULL;
1102     END IF;
1103     px_contact_point_rec.attribute_category     := p_phone_obj.attribute_category;
1104     px_contact_point_rec.attribute1             := p_phone_obj.attribute1;
1105     px_contact_point_rec.attribute2             := p_phone_obj.attribute2;
1106     px_contact_point_rec.attribute3             := p_phone_obj.attribute3;
1107     px_contact_point_rec.attribute4             := p_phone_obj.attribute4;
1108     px_contact_point_rec.attribute5             := p_phone_obj.attribute5;
1109     px_contact_point_rec.attribute6             := p_phone_obj.attribute6;
1110     px_contact_point_rec.attribute7             := p_phone_obj.attribute7;
1111     px_contact_point_rec.attribute8             := p_phone_obj.attribute8;
1112     px_contact_point_rec.attribute9             := p_phone_obj.attribute9;
1113     px_contact_point_rec.attribute10            := p_phone_obj.attribute10;
1114     px_contact_point_rec.attribute11            := p_phone_obj.attribute11;
1115     px_contact_point_rec.attribute12            := p_phone_obj.attribute12;
1116     px_contact_point_rec.attribute13            := p_phone_obj.attribute13;
1117     px_contact_point_rec.attribute14            := p_phone_obj.attribute14;
1118     px_contact_point_rec.attribute15            := p_phone_obj.attribute15;
1119     px_contact_point_rec.attribute16            := p_phone_obj.attribute16;
1120     px_contact_point_rec.attribute17            := p_phone_obj.attribute17;
1121     px_contact_point_rec.attribute18            := p_phone_obj.attribute18;
1122     px_contact_point_rec.attribute19            := p_phone_obj.attribute19;
1123     px_contact_point_rec.attribute20            := p_phone_obj.attribute20;
1124     px_contact_point_rec.contact_point_purpose  := p_phone_obj.contact_point_purpose;
1125     px_contact_point_rec.primary_by_purpose     := p_phone_obj.primary_by_purpose;
1126     IF(p_create_or_update = 'C') THEN
1127       px_contact_point_rec.orig_system            := p_cp_os;
1128       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1129       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1130     END IF;
1131     px_contact_point_rec.actual_content_source  := p_phone_obj.actual_content_source;
1132     px_phone_rec.phone_calling_calendar := p_phone_obj.phone_calling_calendar;
1133     px_phone_rec.last_contact_dt_time   := p_phone_obj.last_contact_dt_time;
1134     px_phone_rec.timezone_id            := p_phone_obj.timezone_id;
1135     px_phone_rec.phone_area_code        := p_phone_obj.phone_area_code;
1136     px_phone_rec.phone_country_code     := p_phone_obj.phone_country_code;
1137     px_phone_rec.phone_number           := p_phone_obj.phone_number;
1138     px_phone_rec.phone_extension        := p_phone_obj.phone_extension;
1139     px_phone_rec.phone_line_type        := p_phone_obj.phone_line_type;
1140     px_phone_rec.raw_phone_number       := p_phone_obj.raw_phone_number;
1141   END assign_phone_rec;
1142 
1143   -- PRIVATE PROCEDURE assign_telex_rec
1144   --
1145   -- DESCRIPTION
1146   --     Assign attribute value from telex business object to plsql record.
1147   --
1148   -- ARGUMENTS
1149   --   IN:
1150   --     p_telex_obj          Telex business object.
1151   --     p_owner_table_id     Owner table Id.
1152   --     p_owner_table_name   Owner table name.
1153   --     p_cp_id              Contact point Id.
1157   --     p_created_by_module  Created by module.
1154   --     p_cp_os              Contact point original system.
1155   --     p_cp_osr             Contact point original system reference.
1156   --     p_cp_type            Contact point type.
1158   --   IN/OUT:
1159   --     px_telex_rec         Telex plsql record.
1160   --     px_contact_point_rec Contact point plsql record.
1161   --
1162   -- NOTES
1163   --
1164   -- MODIFICATION HISTORY
1165   --
1166   --   14-DEC-2004    Arnold Ng          Created.
1167 
1168   PROCEDURE assign_telex_rec(
1169     p_telex_obj                  IN            HZ_TELEX_CP_BO,
1170     p_owner_table_id             IN            NUMBER,
1171     p_owner_table_name           IN            VARCHAR2,
1172     p_cp_id                      IN            NUMBER,
1173     p_cp_os                      IN            VARCHAR2,
1174     p_cp_osr                     IN            VARCHAR2,
1175     p_cp_type                    IN            VARCHAR2,
1176     p_create_or_update           IN            VARCHAR2 := 'C',
1177     px_telex_rec                 IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.TELEX_REC_TYPE,
1178     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1179   ) IS
1180   BEGIN
1181     px_contact_point_rec.contact_point_id       := p_cp_id;
1182     px_contact_point_rec.contact_point_type     := p_cp_type;
1183     IF(p_telex_obj.status in ('A','I')) THEN
1184       px_contact_point_rec.status               := p_telex_obj.status;
1185     ELSE
1186       px_contact_point_rec.status               := NULL;
1187     END IF;
1188     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1189     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1190     IF(p_telex_obj.primary_flag in ('Y','N')) THEN
1191       px_contact_point_rec.primary_flag           := p_telex_obj.primary_flag;
1192     ELSE
1193       px_contact_point_rec.primary_flag           := NULL;
1194     END IF;
1195     px_contact_point_rec.attribute_category     := p_telex_obj.attribute_category;
1196     px_contact_point_rec.attribute1             := p_telex_obj.attribute1;
1197     px_contact_point_rec.attribute2             := p_telex_obj.attribute2;
1198     px_contact_point_rec.attribute3             := p_telex_obj.attribute3;
1199     px_contact_point_rec.attribute4             := p_telex_obj.attribute4;
1200     px_contact_point_rec.attribute5             := p_telex_obj.attribute5;
1201     px_contact_point_rec.attribute6             := p_telex_obj.attribute6;
1202     px_contact_point_rec.attribute7             := p_telex_obj.attribute7;
1203     px_contact_point_rec.attribute8             := p_telex_obj.attribute8;
1204     px_contact_point_rec.attribute9             := p_telex_obj.attribute9;
1205     px_contact_point_rec.attribute10            := p_telex_obj.attribute10;
1206     px_contact_point_rec.attribute11            := p_telex_obj.attribute11;
1207     px_contact_point_rec.attribute12            := p_telex_obj.attribute12;
1208     px_contact_point_rec.attribute13            := p_telex_obj.attribute13;
1209     px_contact_point_rec.attribute14            := p_telex_obj.attribute14;
1210     px_contact_point_rec.attribute15            := p_telex_obj.attribute15;
1211     px_contact_point_rec.attribute16            := p_telex_obj.attribute16;
1212     px_contact_point_rec.attribute17            := p_telex_obj.attribute17;
1213     px_contact_point_rec.attribute18            := p_telex_obj.attribute18;
1214     px_contact_point_rec.attribute19            := p_telex_obj.attribute19;
1215     px_contact_point_rec.attribute20            := p_telex_obj.attribute20;
1216     px_contact_point_rec.contact_point_purpose  := p_telex_obj.contact_point_purpose;
1217     px_contact_point_rec.primary_by_purpose     := p_telex_obj.primary_by_purpose;
1218     IF(p_create_or_update = 'C') THEN
1219       px_contact_point_rec.orig_system            := p_cp_os;
1220       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1221       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1222     END IF;
1223     px_contact_point_rec.actual_content_source  := p_telex_obj.actual_content_source;
1224     px_telex_rec.telex_number                   := p_telex_obj.telex_number;
1225   END assign_telex_rec;
1226 
1227   -- PRIVATE PROCEDURE assign_email_rec
1228   --
1229   -- DESCRIPTION
1230   --     Assign attribute value from email business object to plsql record.
1231   --
1232   -- ARGUMENTS
1233   --   IN:
1234   --     p_email_obj          Email business object.
1235   --     p_owner_table_id     Owner table Id.
1236   --     p_owner_table_name   Owner table name.
1237   --     p_cp_id              Contact point Id.
1238   --     p_cp_os              Contact point original system.
1239   --     p_cp_osr             Contact point original system reference.
1240   --     p_cp_type            Contact point type.
1241   --     p_created_by_module  Created by module.
1242   --   IN/OUT:
1243   --     px_email_rec         Email plsql record.
1244   --     px_contact_point_rec Contact point plsql record.
1245   --
1246   -- NOTES
1247   --
1248   -- MODIFICATION HISTORY
1249   --
1250   --   14-DEC-2004    Arnold Ng          Created.
1251 
1252   PROCEDURE assign_email_rec(
1253     p_email_obj                  IN            HZ_EMAIL_CP_BO,
1254     p_owner_table_id             IN            NUMBER,
1255     p_owner_table_name           IN            VARCHAR2,
1256     p_cp_id                      IN            NUMBER,
1257     p_cp_os                      IN            VARCHAR2,
1258     p_cp_osr                     IN            VARCHAR2,
1259     p_cp_type                    IN            VARCHAR2,
1260     p_create_or_update           IN            VARCHAR2 := 'C',
1261     px_email_rec                 IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE,
1262     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1263   ) IS
1264   BEGIN
1265     px_contact_point_rec.contact_point_id       := p_cp_id;
1269     ELSE
1266     px_contact_point_rec.contact_point_type     := p_cp_type;
1267     IF(p_email_obj.status in ('A','I')) THEN
1268       px_contact_point_rec.status               := p_email_obj.status;
1270       px_contact_point_rec.status               := NULL;
1271     END IF;
1272     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1273     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1274     IF(p_email_obj.primary_flag in ('Y','N')) THEN
1275       px_contact_point_rec.primary_flag           := p_email_obj.primary_flag;
1276     ELSE
1277       px_contact_point_rec.primary_flag           := NULL;
1278     END IF;
1279     px_contact_point_rec.attribute_category     := p_email_obj.attribute_category;
1280     px_contact_point_rec.attribute1             := p_email_obj.attribute1;
1281     px_contact_point_rec.attribute2             := p_email_obj.attribute2;
1282     px_contact_point_rec.attribute3             := p_email_obj.attribute3;
1283     px_contact_point_rec.attribute4             := p_email_obj.attribute4;
1284     px_contact_point_rec.attribute5             := p_email_obj.attribute5;
1285     px_contact_point_rec.attribute6             := p_email_obj.attribute6;
1286     px_contact_point_rec.attribute7             := p_email_obj.attribute7;
1287     px_contact_point_rec.attribute8             := p_email_obj.attribute8;
1288     px_contact_point_rec.attribute9             := p_email_obj.attribute9;
1289     px_contact_point_rec.attribute10            := p_email_obj.attribute10;
1290     px_contact_point_rec.attribute11            := p_email_obj.attribute11;
1291     px_contact_point_rec.attribute12            := p_email_obj.attribute12;
1292     px_contact_point_rec.attribute13            := p_email_obj.attribute13;
1293     px_contact_point_rec.attribute14            := p_email_obj.attribute14;
1294     px_contact_point_rec.attribute15            := p_email_obj.attribute15;
1295     px_contact_point_rec.attribute16            := p_email_obj.attribute16;
1296     px_contact_point_rec.attribute17            := p_email_obj.attribute17;
1297     px_contact_point_rec.attribute18            := p_email_obj.attribute18;
1298     px_contact_point_rec.attribute19            := p_email_obj.attribute19;
1299     px_contact_point_rec.attribute20            := p_email_obj.attribute20;
1300     px_contact_point_rec.contact_point_purpose  := p_email_obj.contact_point_purpose;
1301     px_contact_point_rec.primary_by_purpose     := p_email_obj.primary_by_purpose;
1302     IF(p_create_or_update = 'C') THEN
1303       px_contact_point_rec.orig_system            := p_cp_os;
1304       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1305       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1306     END IF;
1307     px_contact_point_rec.actual_content_source  := p_email_obj.actual_content_source;
1308     px_email_rec.email_format  := p_email_obj.email_format;
1309     px_email_rec.email_address := p_email_obj.email_address;
1310   END assign_email_rec;
1311 
1312   -- PRIVATE PROCEDURE assign_web_rec
1313   --
1314   -- DESCRIPTION
1315   --     Assign attribute value from web business object to plsql record.
1316   --
1317   -- ARGUMENTS
1318   --   IN:
1319   --     p_web_obj            Web business object.
1320   --     p_owner_table_id     Owner table Id.
1321   --     p_owner_table_name   Owner table name.
1322   --     p_cp_id              Contact point Id.
1323   --     p_cp_os              Contact point original system.
1324   --     p_cp_osr             Contact point original system reference.
1325   --     p_cp_type            Contact point type.
1326   --     p_created_by_module  Created by module.
1327   --   IN/OUT:
1328   --     px_web_rec           Web plsql record.
1329   --     px_contact_point_rec Contact point plsql record.
1330   --
1331   -- NOTES
1332   --
1333   -- MODIFICATION HISTORY
1334   --
1335   --   14-DEC-2004    Arnold Ng          Created.
1336 
1337   PROCEDURE assign_web_rec(
1338     p_web_obj                    IN            HZ_WEB_CP_BO,
1339     p_owner_table_id             IN            NUMBER,
1340     p_owner_table_name           IN            VARCHAR2,
1341     p_cp_id                      IN            NUMBER,
1342     p_cp_os                      IN            VARCHAR2,
1343     p_cp_osr                     IN            VARCHAR2,
1344     p_cp_type                    IN            VARCHAR2,
1345     p_create_or_update           IN            VARCHAR2 := 'C',
1346     px_web_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.WEB_REC_TYPE,
1347     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1348   ) IS
1349   BEGIN
1350     px_contact_point_rec.contact_point_id       := p_cp_id;
1351     px_contact_point_rec.contact_point_type     := p_cp_type;
1352     IF(p_web_obj.status in ('A','I')) THEN
1353       px_contact_point_rec.status               := p_web_obj.status;
1354     ELSE
1355       px_contact_point_rec.status               := NULL;
1356     END IF;
1357     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1358     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1359     IF(p_web_obj.primary_flag in ('Y','N')) THEN
1360       px_contact_point_rec.primary_flag           := p_web_obj.primary_flag;
1361     ELSE
1362       px_contact_point_rec.primary_flag           := NULL;
1363     END IF;
1364     px_contact_point_rec.attribute_category     := p_web_obj.attribute_category;
1365     px_contact_point_rec.attribute1             := p_web_obj.attribute1;
1366     px_contact_point_rec.attribute2             := p_web_obj.attribute2;
1367     px_contact_point_rec.attribute3             := p_web_obj.attribute3;
1368     px_contact_point_rec.attribute4             := p_web_obj.attribute4;
1369     px_contact_point_rec.attribute5             := p_web_obj.attribute5;
1370     px_contact_point_rec.attribute6             := p_web_obj.attribute6;
1371     px_contact_point_rec.attribute7             := p_web_obj.attribute7;
1372     px_contact_point_rec.attribute8             := p_web_obj.attribute8;
1376     px_contact_point_rec.attribute12            := p_web_obj.attribute12;
1373     px_contact_point_rec.attribute9             := p_web_obj.attribute9;
1374     px_contact_point_rec.attribute10            := p_web_obj.attribute10;
1375     px_contact_point_rec.attribute11            := p_web_obj.attribute11;
1377     px_contact_point_rec.attribute13            := p_web_obj.attribute13;
1378     px_contact_point_rec.attribute14            := p_web_obj.attribute14;
1379     px_contact_point_rec.attribute15            := p_web_obj.attribute15;
1380     px_contact_point_rec.attribute16            := p_web_obj.attribute16;
1381     px_contact_point_rec.attribute17            := p_web_obj.attribute17;
1382     px_contact_point_rec.attribute18            := p_web_obj.attribute18;
1383     px_contact_point_rec.attribute19            := p_web_obj.attribute19;
1384     px_contact_point_rec.attribute20            := p_web_obj.attribute20;
1385     px_contact_point_rec.contact_point_purpose  := p_web_obj.contact_point_purpose;
1386     px_contact_point_rec.primary_by_purpose     := p_web_obj.primary_by_purpose;
1387     IF(p_create_or_update = 'C') THEN
1388       px_contact_point_rec.orig_system            := p_cp_os;
1389       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1390       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1391     END IF;
1392     px_contact_point_rec.actual_content_source  := p_web_obj.actual_content_source;
1393     px_web_rec.web_type        := p_web_obj.web_type;
1394     px_web_rec.url             := p_web_obj.url;
1395   END assign_web_rec;
1396 
1397   -- PRIVATE PROCEDURE assign_edi_rec
1398   --
1399   -- DESCRIPTION
1400   --     Assign attribute value from edi business object to plsql record.
1401   --
1402   -- ARGUMENTS
1403   --   IN:
1404   --     p_edi_obj            EDI business object.
1405   --     p_owner_table_id     Owner table Id.
1406   --     p_owner_table_name   Owner table name.
1407   --     p_cp_id              Contact point Id.
1408   --     p_cp_os              Contact point original system.
1409   --     p_cp_osr             Contact point original system reference.
1410   --     p_cp_type            Contact point type.
1411   --     p_created_by_module  Created by module.
1412   --   IN/OUT:
1413   --     px_edi_rec           EDI plsql record.
1414   --     px_contact_point_rec Contact point plsql record.
1415   --
1416   -- NOTES
1417   --
1418   -- MODIFICATION HISTORY
1419   --
1420   --   14-DEC-2004    Arnold Ng          Created.
1421 
1422   PROCEDURE assign_edi_rec(
1423     p_edi_obj                    IN            HZ_EDI_CP_BO,
1424     p_owner_table_id             IN            NUMBER,
1425     p_owner_table_name           IN            VARCHAR2,
1426     p_cp_id                      IN            NUMBER,
1427     p_cp_os                      IN            VARCHAR2,
1428     p_cp_osr                     IN            VARCHAR2,
1429     p_cp_type                    IN            VARCHAR2,
1430     p_create_or_update           IN            VARCHAR2 := 'C',
1431     px_edi_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.EDI_REC_TYPE,
1432     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1433   ) IS
1434   BEGIN
1435     px_contact_point_rec.contact_point_id       := p_cp_id;
1436     px_contact_point_rec.contact_point_type     := p_cp_type;
1437     IF(p_edi_obj.status in ('A','I')) THEN
1438       px_contact_point_rec.status               := p_edi_obj.status;
1439     ELSE
1440       px_contact_point_rec.status               := NULL;
1441     END IF;
1442     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1443     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1444     IF(p_edi_obj.primary_flag in ('Y','N')) THEN
1445       px_contact_point_rec.primary_flag           := p_edi_obj.primary_flag;
1446     ELSE
1447       px_contact_point_rec.primary_flag           := NULL;
1448     END IF;
1449     px_contact_point_rec.attribute_category     := p_edi_obj.attribute_category;
1450     px_contact_point_rec.attribute1             := p_edi_obj.attribute1;
1451     px_contact_point_rec.attribute2             := p_edi_obj.attribute2;
1452     px_contact_point_rec.attribute3             := p_edi_obj.attribute3;
1453     px_contact_point_rec.attribute4             := p_edi_obj.attribute4;
1454     px_contact_point_rec.attribute5             := p_edi_obj.attribute5;
1455     px_contact_point_rec.attribute6             := p_edi_obj.attribute6;
1456     px_contact_point_rec.attribute7             := p_edi_obj.attribute7;
1457     px_contact_point_rec.attribute8             := p_edi_obj.attribute8;
1458     px_contact_point_rec.attribute9             := p_edi_obj.attribute9;
1459     px_contact_point_rec.attribute10            := p_edi_obj.attribute10;
1460     px_contact_point_rec.attribute11            := p_edi_obj.attribute11;
1461     px_contact_point_rec.attribute12            := p_edi_obj.attribute12;
1462     px_contact_point_rec.attribute13            := p_edi_obj.attribute13;
1463     px_contact_point_rec.attribute14            := p_edi_obj.attribute14;
1464     px_contact_point_rec.attribute15            := p_edi_obj.attribute15;
1465     px_contact_point_rec.attribute16            := p_edi_obj.attribute16;
1466     px_contact_point_rec.attribute17            := p_edi_obj.attribute17;
1467     px_contact_point_rec.attribute18            := p_edi_obj.attribute18;
1468     px_contact_point_rec.attribute19            := p_edi_obj.attribute19;
1469     px_contact_point_rec.attribute20            := p_edi_obj.attribute20;
1470     px_contact_point_rec.contact_point_purpose  := p_edi_obj.contact_point_purpose;
1471     px_contact_point_rec.primary_by_purpose     := p_edi_obj.primary_by_purpose;
1472     IF(p_create_or_update = 'C') THEN
1473       px_contact_point_rec.orig_system            := p_cp_os;
1474       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1475       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1476     END IF;
1480     px_edi_rec.edi_payment_method         := p_edi_obj.edi_payment_method;
1477     px_contact_point_rec.actual_content_source  := p_edi_obj.actual_content_source;
1478     px_edi_rec.edi_transaction_handling   := p_edi_obj.edi_transaction_handling;
1479     px_edi_rec.edi_id_number              := p_edi_obj.edi_id_number;
1481     px_edi_rec.edi_payment_format         := p_edi_obj.edi_payment_format;
1482     px_edi_rec.edi_remittance_method      := p_edi_obj.edi_remittance_method;
1483     px_edi_rec.edi_remittance_instruction := p_edi_obj.edi_remittance_instruction;
1484     px_edi_rec.edi_tp_header_id           := p_edi_obj.edi_tp_header_id;
1485     px_edi_rec.edi_ece_tp_location_code   := p_edi_obj.edi_ece_tp_location_code;
1486   END assign_edi_rec;
1487 
1488   -- PRIVATE PROCEDURE assign_eft_rec
1489   --
1490   -- DESCRIPTION
1491   --     Assign attribute value from eft business object to plsql record.
1492   --
1493   -- ARGUMENTS
1494   --   IN:
1495   --     p_eft_obj            EFT business object.
1496   --     p_owner_table_id     Owner table Id.
1497   --     p_owner_table_name   Owner table name.
1498   --     p_cp_id              Contact point Id.
1499   --     p_cp_os              Contact point original system.
1500   --     p_cp_osr             Contact point original system reference.
1501   --     p_cp_type            Contact point type.
1502   --     p_created_by_module  Created by module.
1503   --   IN/OUT:
1504   --     px_eft_rec           EFT plsql record.
1505   --     px_contact_point_rec Contact point plsql record.
1506   --
1507   -- NOTES
1508   --
1509   -- MODIFICATION HISTORY
1510   --
1511   --   14-DEC-2004    Arnold Ng          Created.
1512 
1513   PROCEDURE assign_eft_rec(
1514     p_eft_obj                    IN            HZ_EFT_CP_BO,
1515     p_owner_table_id             IN            NUMBER,
1516     p_owner_table_name           IN            VARCHAR2,
1517     p_cp_id                      IN            NUMBER,
1518     p_cp_os                      IN            VARCHAR2,
1519     p_cp_osr                     IN            VARCHAR2,
1520     p_cp_type                    IN            VARCHAR2,
1521     p_create_or_update           IN            VARCHAR2 := 'C',
1522     px_eft_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.EFT_REC_TYPE,
1523     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1524   ) IS
1525   BEGIN
1526     px_contact_point_rec.contact_point_id       := p_cp_id;
1527     px_contact_point_rec.contact_point_type     := p_cp_type;
1528     IF(p_eft_obj.status in ('A','I')) THEN
1529       px_contact_point_rec.status               := p_eft_obj.status;
1530     ELSE
1531       px_contact_point_rec.status               := NULL;
1532     END IF;
1533     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1534     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1535     IF(p_eft_obj.primary_flag in ('Y','N')) THEN
1536       px_contact_point_rec.primary_flag           := p_eft_obj.primary_flag;
1537     ELSE
1538       px_contact_point_rec.primary_flag           := NULL;
1539     END IF;
1540     px_contact_point_rec.attribute_category     := p_eft_obj.attribute_category;
1541     px_contact_point_rec.attribute1             := p_eft_obj.attribute1;
1542     px_contact_point_rec.attribute2             := p_eft_obj.attribute2;
1543     px_contact_point_rec.attribute3             := p_eft_obj.attribute3;
1544     px_contact_point_rec.attribute4             := p_eft_obj.attribute4;
1545     px_contact_point_rec.attribute5             := p_eft_obj.attribute5;
1546     px_contact_point_rec.attribute6             := p_eft_obj.attribute6;
1547     px_contact_point_rec.attribute7             := p_eft_obj.attribute7;
1548     px_contact_point_rec.attribute8             := p_eft_obj.attribute8;
1549     px_contact_point_rec.attribute9             := p_eft_obj.attribute9;
1550     px_contact_point_rec.attribute10            := p_eft_obj.attribute10;
1551     px_contact_point_rec.attribute11            := p_eft_obj.attribute11;
1552     px_contact_point_rec.attribute12            := p_eft_obj.attribute12;
1553     px_contact_point_rec.attribute13            := p_eft_obj.attribute13;
1554     px_contact_point_rec.attribute14            := p_eft_obj.attribute14;
1555     px_contact_point_rec.attribute15            := p_eft_obj.attribute15;
1556     px_contact_point_rec.attribute16            := p_eft_obj.attribute16;
1557     px_contact_point_rec.attribute17            := p_eft_obj.attribute17;
1558     px_contact_point_rec.attribute18            := p_eft_obj.attribute18;
1559     px_contact_point_rec.attribute19            := p_eft_obj.attribute19;
1560     px_contact_point_rec.attribute20            := p_eft_obj.attribute20;
1561     px_contact_point_rec.contact_point_purpose  := p_eft_obj.contact_point_purpose;
1562     px_contact_point_rec.primary_by_purpose     := p_eft_obj.primary_by_purpose;
1563     IF(p_create_or_update = 'C') THEN
1564       px_contact_point_rec.orig_system            := p_cp_os;
1565       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1566       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1567     END IF;
1568     px_contact_point_rec.actual_content_source  := p_eft_obj.actual_content_source;
1569     px_eft_rec.eft_transmission_program_id := p_eft_obj.eft_transmission_program_id;
1570     px_eft_rec.eft_printing_program_id     := p_eft_obj.eft_printing_program_id;
1571     px_eft_rec.eft_user_number             := p_eft_obj.eft_user_number;
1572     px_eft_rec.eft_swift_code              := p_eft_obj.eft_swift_code;
1573   END assign_eft_rec;
1574 
1575   -- PRIVATE PROCEDURE assign_sms_rec
1576   --
1577   -- DESCRIPTION
1578   --     Assign attribute value from sms business object to plsql record.
1579   --
1580   -- ARGUMENTS
1581   --   IN:
1582   --     p_sms_obj            SMS business object.
1583   --     p_owner_table_id     Owner table Id.
1584   --     p_owner_table_name   Owner table name.
1585   --     p_cp_id              Contact point Id.
1589   --     p_created_by_module  Created by module.
1586   --     p_cp_os              Contact point original system.
1587   --     p_cp_osr             Contact point original system reference.
1588   --     p_cp_type            Contact point type.
1590   --   IN/OUT:
1591   --     px_sms_rec           SMS plsql record.
1592   --     px_contact_point_rec Contact point plsql record.
1593   --
1594   -- NOTES
1595   --
1596   -- MODIFICATION HISTORY
1597   --
1598   --   14-DEC-2004    Arnold Ng          Created.
1599 
1600   PROCEDURE assign_sms_rec(
1601     p_sms_obj                    IN            HZ_SMS_CP_BO,
1602     p_owner_table_id             IN            NUMBER,
1603     p_owner_table_name           IN            VARCHAR2,
1604     p_cp_id                      IN            NUMBER,
1605     p_cp_os                      IN            VARCHAR2,
1606     p_cp_osr                     IN            VARCHAR2,
1607     p_cp_type                    IN            VARCHAR2,
1608     p_create_or_update           IN            VARCHAR2 := 'C',
1609     px_sms_rec                   IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE,
1610     px_contact_point_rec         IN OUT NOCOPY HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE
1611   ) IS
1612   BEGIN
1613     px_contact_point_rec.contact_point_id       := p_cp_id;
1614     px_contact_point_rec.contact_point_type     := p_cp_type;
1615     IF(p_sms_obj.status in ('A','I')) THEN
1616       px_contact_point_rec.status               := p_sms_obj.status;
1617     ELSE
1618       px_contact_point_rec.status               := NULL;
1619     END IF;
1620     px_contact_point_rec.owner_table_name       := p_owner_table_name;
1621     px_contact_point_rec.owner_table_id         := p_owner_table_id;
1622     IF(p_sms_obj.primary_flag in ('Y','N')) THEN
1623       px_contact_point_rec.primary_flag           := p_sms_obj.primary_flag;
1624     ELSE
1625       px_contact_point_rec.primary_flag           := NULL;
1626     END IF;
1627     px_contact_point_rec.attribute_category     := p_sms_obj.attribute_category;
1628     px_contact_point_rec.attribute1             := p_sms_obj.attribute1;
1629     px_contact_point_rec.attribute2             := p_sms_obj.attribute2;
1630     px_contact_point_rec.attribute3             := p_sms_obj.attribute3;
1631     px_contact_point_rec.attribute4             := p_sms_obj.attribute4;
1632     px_contact_point_rec.attribute5             := p_sms_obj.attribute5;
1633     px_contact_point_rec.attribute6             := p_sms_obj.attribute6;
1634     px_contact_point_rec.attribute7             := p_sms_obj.attribute7;
1635     px_contact_point_rec.attribute8             := p_sms_obj.attribute8;
1636     px_contact_point_rec.attribute9             := p_sms_obj.attribute9;
1637     px_contact_point_rec.attribute10            := p_sms_obj.attribute10;
1638     px_contact_point_rec.attribute11            := p_sms_obj.attribute11;
1639     px_contact_point_rec.attribute12            := p_sms_obj.attribute12;
1640     px_contact_point_rec.attribute13            := p_sms_obj.attribute13;
1641     px_contact_point_rec.attribute14            := p_sms_obj.attribute14;
1642     px_contact_point_rec.attribute15            := p_sms_obj.attribute15;
1643     px_contact_point_rec.attribute16            := p_sms_obj.attribute16;
1644     px_contact_point_rec.attribute17            := p_sms_obj.attribute17;
1645     px_contact_point_rec.attribute18            := p_sms_obj.attribute18;
1646     px_contact_point_rec.attribute19            := p_sms_obj.attribute19;
1647     px_contact_point_rec.attribute20            := p_sms_obj.attribute20;
1648     px_contact_point_rec.contact_point_purpose  := p_sms_obj.contact_point_purpose;
1649     px_contact_point_rec.primary_by_purpose     := p_sms_obj.primary_by_purpose;
1650     IF(p_create_or_update = 'C') THEN
1651       px_contact_point_rec.orig_system            := p_cp_os;
1652       px_contact_point_rec.orig_system_reference  := p_cp_osr;
1653       px_contact_point_rec.created_by_module      := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1654     END IF;
1655     px_contact_point_rec.actual_content_source  := p_sms_obj.actual_content_source;
1656     px_sms_rec.phone_calling_calendar := p_sms_obj.phone_calling_calendar;
1657     px_sms_rec.last_contact_dt_time   := p_sms_obj.last_contact_dt_time;
1658     px_sms_rec.timezone_id            := p_sms_obj.timezone_id;
1659     px_sms_rec.phone_area_code        := p_sms_obj.phone_area_code;
1660     px_sms_rec.phone_country_code     := p_sms_obj.phone_country_code;
1661     px_sms_rec.phone_number           := p_sms_obj.phone_number;
1662     px_sms_rec.phone_extension        := p_sms_obj.phone_extension;
1663     px_sms_rec.phone_line_type        := p_sms_obj.phone_line_type;
1664     px_sms_rec.raw_phone_number       := p_sms_obj.raw_phone_number;
1665   END assign_sms_rec;
1666 
1667   -- PRIVATE PROCEDURE do_create_contact_point
1668   --
1669   -- DESCRIPTION
1670   --     Create contact point.
1671   PROCEDURE do_create_contact_point(
1672     p_init_msg_list                   IN     VARCHAR2 := FND_API.G_FALSE,
1673     p_validate_bo_flag                IN     VARCHAR2 := FND_API.G_TRUE,
1674     p_cp_id                           IN     NUMBER,
1675     p_cp_os                           IN     VARCHAR2,
1676     p_cp_osr                          IN     VARCHAR2,
1677     p_phone_obj                       IN HZ_PHONE_CP_BO,
1678     p_email_obj                       IN HZ_EMAIL_CP_BO,
1679     p_telex_obj                       IN HZ_TELEX_CP_BO,
1680     p_web_obj                         IN HZ_WEB_CP_BO,
1681     p_edi_obj                         IN HZ_EDI_CP_BO,
1682     p_eft_obj                         IN HZ_EFT_CP_BO,
1683     p_sms_obj                         IN HZ_SMS_CP_BO,
1684     p_cp_pref_objs                    IN OUT NOCOPY    HZ_CONTACT_PREF_OBJ_TBL,
1685     p_cp_type                         IN     VARCHAR2,
1686     p_created_by_module               IN     VARCHAR2,
1687     p_obj_source                      IN     VARCHAR2 := null,
1688     x_return_status                   OUT    NOCOPY VARCHAR2,
1689     x_msg_count                       OUT    NOCOPY NUMBER,
1693     x_cp_osr                          OUT    NOCOPY VARCHAR2,
1690     x_msg_data                        OUT    NOCOPY VARCHAR2,
1691     x_cp_id                           OUT    NOCOPY NUMBER,
1692     x_cp_os                           OUT    NOCOPY VARCHAR2,
1694     px_parent_id                      IN OUT NOCOPY NUMBER,
1695     px_parent_os                      IN OUT NOCOPY VARCHAR2,
1696     px_parent_osr                     IN OUT NOCOPY VARCHAR2,
1697     px_parent_obj_type                IN OUT NOCOPY VARCHAR2
1698   ) IS
1699     l_debug_prefix             VARCHAR2(30);
1700     l_contact_point_rec        HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE;
1701     l_phone_rec                HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
1702     l_email_rec                HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE;
1703     l_telex_rec                HZ_CONTACT_POINT_V2PUB.TELEX_REC_TYPE;
1704     l_web_rec                  HZ_CONTACT_POINT_V2PUB.WEB_REC_TYPE;
1705     l_edi_rec                  HZ_CONTACT_POINT_V2PUB.EDI_REC_TYPE;
1706     l_eft_rec                  HZ_CONTACT_POINT_V2PUB.EFT_REC_TYPE;
1707     l_sms_rec                  HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
1708     l_contact_pref_rec         HZ_CONTACT_PREFERENCE_V2PUB.CONTACT_PREFERENCE_REC_TYPE;
1709     l_contact_pref_id          NUMBER;
1710     l_owner_table_name         VARCHAR2(30);
1711     l_valid_obj                BOOLEAN;
1712     l_bus_object               HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
1713   BEGIN
1714     -- Standard start of API savepoint
1715     SAVEPOINT do_create_contact_point_pub;
1716 
1717     -- initialize API return status to success.
1718     x_return_status := FND_API.G_RET_STS_SUCCESS;
1719 
1720     -- Initialize message list if p_init_msg_list is set to TRUE
1721     IF FND_API.to_Boolean(p_init_msg_list) THEN
1722       FND_MSG_PUB.initialize;
1723     END IF;
1724 
1725     -- initialize Global variable to indicate the caller of V2API is from BO API
1726     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
1727     IF(p_created_by_module IS NULL) THEN
1728       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
1729     ELSE
1730       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
1731     END IF;
1732 
1733     -- Debug info.
1734     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1735         hz_utility_v2pub.debug(p_message=>'do_create_contact_point(+)',
1736                                p_prefix=>l_debug_prefix,
1737                                p_msg_level=>fnd_log.level_procedure);
1738     END IF;
1739 
1740     -- Base on p_validate_bo_flag, check completeness of business object
1741     IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
1742       HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
1743         p_bus_object_code         => p_cp_type,
1744         x_bus_object              => l_bus_object
1745       );
1746 
1747       l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_cp_bo_comp(
1748         p_phone_objs        => HZ_PHONE_CP_BO_TBL(p_phone_obj),
1749         p_email_objs        => HZ_EMAIL_CP_BO_TBL(p_email_obj),
1750         p_telex_objs        => HZ_TELEX_CP_BO_TBL(p_telex_obj),
1751         p_web_objs          => HZ_WEB_CP_BO_TBL(p_web_obj),
1752         p_edi_objs          => HZ_EDI_CP_BO_TBL(p_edi_obj),
1753         p_eft_objs          => HZ_EFT_CP_BO_TBL(p_eft_obj),
1754         p_sms_objs          => HZ_SMS_CP_BO_TBL(p_sms_obj),
1755         p_bus_object        => l_bus_object
1756       );
1757 
1758       IF NOT(l_valid_obj) THEN
1759         RAISE fnd_api.g_exc_error;
1760       END IF;
1761     END IF;
1762 
1763     -- check pass in parent_id and parent_os/parent_osr
1764     hz_registry_validate_bo_pvt.validate_parent_id(
1765       px_parent_id      => px_parent_id,
1766       px_parent_os      => px_parent_os,
1767       px_parent_osr     => px_parent_osr,
1768       p_parent_obj_type => px_parent_obj_type,
1769       x_return_status   => x_return_status,
1770       x_msg_count       => x_msg_count,
1771       x_msg_data        => x_msg_data);
1772 
1773     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1774       RAISE fnd_api.g_exc_error;
1775     END IF;
1776 
1777     -- get owner table name of contact point, contact point id and os+osr
1778     l_owner_table_name := HZ_REGISTRY_VALIDATE_BO_PVT.get_owner_table_name(p_obj_type => px_parent_obj_type);
1779     x_cp_id := p_cp_id;
1780     x_cp_os := p_cp_os;
1781     x_cp_osr := p_cp_osr;
1782 
1783     -- check if pass in contact_point_id and/or os+osr
1784     hz_registry_validate_bo_pvt.validate_ssm_id(
1785       px_id              => x_cp_id,
1786       px_os              => x_cp_os,
1787       px_osr             => x_cp_osr,
1788       p_obj_type         => p_cp_type,
1789       p_create_or_update => 'C',
1790       x_return_status    => x_return_status,
1791       x_msg_count        => x_msg_count,
1792       x_msg_data         => x_msg_data);
1793 
1794     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1795       RAISE fnd_api.g_exc_error;
1796     END IF;
1797 
1798     -- Base on contact point type, assign record and then call v2pub api
1799     IF(p_cp_type = 'PHONE') THEN
1800       assign_phone_rec(
1801         p_phone_obj => p_phone_obj,
1802         p_owner_table_id => px_parent_id,
1803         p_owner_table_name => l_owner_table_name,
1804         p_cp_id => x_cp_id,
1805         p_cp_os => x_cp_os,
1806         p_cp_osr => x_cp_osr,
1807         p_cp_type => p_cp_type,
1808         px_phone_rec => l_phone_rec,
1809         px_contact_point_rec => l_contact_point_rec
1810       );
1811 
1812       HZ_CONTACT_POINT_V2PUB.create_phone_contact_point(
1813         p_contact_point_rec         => l_contact_point_rec,
1814         p_phone_rec                 => l_phone_rec,
1815         x_contact_point_id          => x_cp_id,
1816         x_return_status             => x_return_status,
1817         x_msg_count                 => x_msg_count,
1821       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1818         x_msg_data                  => x_msg_data
1819       );
1820 
1822         RAISE fnd_api.g_exc_error;
1823       END IF;
1824     ELSIF(p_cp_type = 'EMAIL') THEN
1825       assign_email_rec(
1826         p_email_obj => p_email_obj,
1827         p_owner_table_id => px_parent_id,
1828         p_owner_table_name => l_owner_table_name,
1829         p_cp_id => x_cp_id,
1830         p_cp_os => x_cp_os,
1831         p_cp_osr => x_cp_osr,
1832         p_cp_type => p_cp_type,
1833         px_email_rec => l_email_rec,
1834         px_contact_point_rec => l_contact_point_rec
1835       );
1836 
1837       HZ_CONTACT_POINT_V2PUB.create_email_contact_point(
1838         p_contact_point_rec         => l_contact_point_rec,
1839         p_email_rec                 => l_email_rec,
1840         x_contact_point_id          => x_cp_id,
1841         x_return_status             => x_return_status,
1842         x_msg_count                 => x_msg_count,
1843         x_msg_data                  => x_msg_data
1844       );
1845 
1846       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1847         RAISE fnd_api.g_exc_error;
1848       END IF;
1849     ELSIF(p_cp_type = 'TLX') THEN
1850       assign_telex_rec(
1851         p_telex_obj => p_telex_obj,
1852         p_owner_table_id => px_parent_id,
1853         p_owner_table_name => l_owner_table_name,
1854         p_cp_id => x_cp_id,
1855         p_cp_os => x_cp_os,
1856         p_cp_osr => x_cp_osr,
1857         p_cp_type => p_cp_type,
1858         px_telex_rec => l_telex_rec,
1859         px_contact_point_rec => l_contact_point_rec
1860       );
1861 
1862       HZ_CONTACT_POINT_V2PUB.create_telex_contact_point(
1863         p_contact_point_rec         => l_contact_point_rec,
1864         p_telex_rec                 => l_telex_rec,
1865         x_contact_point_id          => x_cp_id,
1866         x_return_status             => x_return_status,
1867         x_msg_count                 => x_msg_count,
1868         x_msg_data                  => x_msg_data
1869       );
1870 
1871       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1872         RAISE fnd_api.g_exc_error;
1873       END IF;
1874     ELSIF(p_cp_type = 'WEB') THEN
1875       assign_web_rec(
1876         p_web_obj => p_web_obj,
1877         p_owner_table_id => px_parent_id,
1878         p_owner_table_name => l_owner_table_name,
1879         p_cp_id => x_cp_id,
1880         p_cp_os => x_cp_os,
1881         p_cp_osr => x_cp_osr,
1882         p_cp_type => p_cp_type,
1883         px_web_rec => l_web_rec,
1884         px_contact_point_rec => l_contact_point_rec
1885       );
1886 
1887       HZ_CONTACT_POINT_V2PUB.create_web_contact_point(
1888         p_contact_point_rec         => l_contact_point_rec,
1889         p_web_rec                   => l_web_rec,
1890         x_contact_point_id          => x_cp_id,
1891         x_return_status             => x_return_status,
1892         x_msg_count                 => x_msg_count,
1893         x_msg_data                  => x_msg_data
1894       );
1895 
1896       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1897         RAISE fnd_api.g_exc_error;
1898       END IF;
1899     ELSIF(p_cp_type = 'EDI') THEN
1900       assign_edi_rec(
1901         p_edi_obj => p_edi_obj,
1902         p_owner_table_id => px_parent_id,
1903         p_owner_table_name => l_owner_table_name,
1904         p_cp_id => x_cp_id,
1905         p_cp_os => x_cp_os,
1906         p_cp_osr => x_cp_osr,
1907         p_cp_type => p_cp_type,
1908         px_edi_rec => l_edi_rec,
1909         px_contact_point_rec => l_contact_point_rec
1910       );
1911 
1912       HZ_CONTACT_POINT_V2PUB.create_edi_contact_point(
1913         p_contact_point_rec         => l_contact_point_rec,
1914         p_edi_rec                   => l_edi_rec,
1915         x_contact_point_id          => x_cp_id,
1916         x_return_status             => x_return_status,
1917         x_msg_count                 => x_msg_count,
1918         x_msg_data                  => x_msg_data
1919       );
1920 
1921       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1922         RAISE fnd_api.g_exc_error;
1923       END IF;
1924     ELSIF(p_cp_type = 'EFT') THEN
1925       assign_eft_rec(
1926         p_eft_obj => p_eft_obj,
1927         p_owner_table_id => px_parent_id,
1928         p_owner_table_name => l_owner_table_name,
1929         p_cp_id => x_cp_id,
1930         p_cp_os => x_cp_os,
1931         p_cp_osr => x_cp_osr,
1932         p_cp_type => p_cp_type,
1933         px_eft_rec => l_eft_rec,
1934         px_contact_point_rec => l_contact_point_rec
1935       );
1936 
1937       HZ_CONTACT_POINT_V2PUB.create_eft_contact_point(
1938         p_contact_point_rec         => l_contact_point_rec,
1939         p_eft_rec                   => l_eft_rec,
1940         x_contact_point_id          => x_cp_id,
1941         x_return_status             => x_return_status,
1942         x_msg_count                 => x_msg_count,
1943         x_msg_data                  => x_msg_data
1944       );
1945 
1946       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1947         RAISE fnd_api.g_exc_error;
1948       END IF;
1949     ELSIF(p_cp_type = 'SMS') THEN
1950       assign_sms_rec(
1951         p_sms_obj => p_sms_obj,
1952         p_owner_table_id => px_parent_id,
1953         p_owner_table_name => l_owner_table_name,
1954         p_cp_id => x_cp_id,
1955         p_cp_os => x_cp_os,
1956         p_cp_osr => x_cp_osr,
1957         p_cp_type => p_cp_type,
1958         px_sms_rec => l_sms_rec,
1959         px_contact_point_rec => l_contact_point_rec
1960       );
1961 
1962       HZ_CONTACT_POINT_V2PUB.create_phone_contact_point(
1966         x_return_status             => x_return_status,
1963         p_contact_point_rec         => l_contact_point_rec,
1964         p_phone_rec                 => l_sms_rec,
1965         x_contact_point_id          => x_cp_id,
1967         x_msg_count                 => x_msg_count,
1968         x_msg_data                  => x_msg_data
1969       );
1970 
1971       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1972         RAISE fnd_api.g_exc_error;
1973       END IF;
1974     END IF;
1975 
1976     IF((p_cp_pref_objs IS NOT NULL) AND (p_cp_pref_objs.COUNT > 0)) THEN
1977       -- create contact preferences
1978       HZ_CONTACT_PREFERENCE_BO_PVT.create_contact_preferences(
1979         p_cp_pref_objs           => p_cp_pref_objs,
1980         p_contact_level_table_id => x_cp_id,
1981         p_contact_level_table    => 'HZ_CONTACT_POINTS',
1982         x_return_status          => x_return_status,
1983         x_msg_count              => x_msg_count,
1984         x_msg_data               => x_msg_data
1985       );
1986     END IF;
1987 
1988     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1989       RAISE fnd_api.g_exc_error;
1990     END IF;
1991 
1992     -- reset Global variable
1993     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1994     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1995 
1996     -- Debug info.
1997     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1998          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1999                                p_msg_data=>x_msg_data,
2000                                p_msg_type=>'WARNING',
2001                                p_msg_level=>fnd_log.level_exception);
2002     END IF;
2003     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2004         hz_utility_v2pub.debug(p_message=>'do_create_contact_point(-)',
2005                                p_prefix=>l_debug_prefix,
2006                                p_msg_level=>fnd_log.level_procedure);
2007     END IF;
2008 
2009   EXCEPTION
2010     WHEN fnd_api.g_exc_error THEN
2011       ROLLBACK TO do_create_contact_point_pub;
2012 
2013       -- reset Global variable
2014       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2015       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2016 
2017       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2018       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
2019       FND_MSG_PUB.ADD;
2020 
2021       x_return_status := fnd_api.g_ret_sts_error;
2022 
2023       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2024                                 p_count => x_msg_count,
2025                                 p_data  => x_msg_data);
2026 
2027       -- Debug info.
2028       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2029         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2030                                p_msg_data=>x_msg_data,
2031                                p_msg_type=>'ERROR',
2032                                p_msg_level=>fnd_log.level_error);
2033       END IF;
2034       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2035         hz_utility_v2pub.debug(p_message=>'do_create_contact_point (-)',
2036                                p_prefix=>l_debug_prefix,
2037                                p_msg_level=>fnd_log.level_procedure);
2038       END IF;
2039 
2040     WHEN fnd_api.g_exc_unexpected_error THEN
2041       ROLLBACK TO do_create_contact_point_pub;
2042 
2043       -- reset Global variable
2044       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2045       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2046 
2047       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2048       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
2049       FND_MSG_PUB.ADD;
2050 
2051       x_return_status := fnd_api.g_ret_sts_unexp_error;
2052 
2053       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2054                                 p_count => x_msg_count,
2055                                 p_data  => x_msg_data);
2056 
2057       -- Debug info.
2058       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2059         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2060                                p_msg_data=>x_msg_data,
2061                                p_msg_type=>'UNEXPECTED ERROR',
2062                                p_msg_level=>fnd_log.level_error);
2063       END IF;
2064       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2065         hz_utility_v2pub.debug(p_message=>'do_create_contact_point (-)',
2066                                p_prefix=>l_debug_prefix,
2067                                p_msg_level=>fnd_log.level_procedure);
2068       END IF;
2069 
2070     WHEN OTHERS THEN
2071       ROLLBACK TO do_create_contact_point_pub;
2072 
2073       -- reset Global variable
2074       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2075       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2076 
2077       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2078       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
2079       FND_MSG_PUB.ADD;
2080 
2081       x_return_status := fnd_api.g_ret_sts_unexp_error;
2082 
2083       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2084       fnd_message.set_token('ERROR' ,SQLERRM);
2085       fnd_msg_pub.add;
2086 
2087       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2088                                 p_count => x_msg_count,
2089                                 p_data  => x_msg_data);
2090 
2091       -- Debug info.
2092       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2093         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2094                                p_msg_data=>x_msg_data,
2095                                p_msg_type=>'SQL ERROR',
2099         hz_utility_v2pub.debug(p_message=>'do_create_contact_point (-)',
2096                                p_msg_level=>fnd_log.level_error);
2097       END IF;
2098       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2100                                p_prefix=>l_debug_prefix,
2101                                p_msg_level=>fnd_log.level_procedure);
2102       END IF;
2103   END do_create_contact_point;
2104 
2105   -- PROCEDURE update_phone_bo
2106   --
2107   -- DESCRIPTION
2108   --     Update a logical phone contact point.
2109   PROCEDURE update_phone_bo(
2110     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2111     p_phone_obj           IN            HZ_PHONE_CP_BO,
2112     p_created_by_module   IN            VARCHAR2,
2113     x_return_status       OUT NOCOPY    VARCHAR2,
2114     x_msg_count           OUT NOCOPY    NUMBER,
2115     x_msg_data            OUT NOCOPY    VARCHAR2,
2116     x_phone_id            OUT NOCOPY    NUMBER,
2117     x_phone_os            OUT NOCOPY    VARCHAR2,
2118     x_phone_osr           OUT NOCOPY    VARCHAR2
2119   )IS
2120     l_phone_obj           HZ_PHONE_CP_BO;
2121   BEGIN
2122     l_phone_obj := p_phone_obj;
2123     do_update_contact_point (
2124       p_init_msg_list      => p_init_msg_list,
2125       p_cp_id              => p_phone_obj.phone_id,
2126       p_cp_os              => l_phone_obj.orig_system,
2127       p_cp_osr             => l_phone_obj.orig_system_reference,
2128       p_phone_obj          => l_phone_obj,
2129       p_email_obj          => NULL,
2130       p_telex_obj          => NULL,
2131       p_web_obj            => NULL,
2132       p_edi_obj            => NULL,
2133       p_eft_obj            => NULL,
2134       p_sms_obj            => NULL,
2135       p_cp_pref_objs       => l_phone_obj.contact_pref_objs,
2136       p_cp_type            => 'PHONE',
2137       p_created_by_module  => p_created_by_module,
2138       p_obj_source         => NULL,
2139       x_return_status      => x_return_status,
2140       x_msg_count          => x_msg_count,
2141       x_msg_data           => x_msg_data,
2142       x_cp_id              => x_phone_id,
2143       x_cp_os              => x_phone_os,
2144       x_cp_osr             => x_phone_osr,
2145       p_parent_os          => NULL );
2146   END update_phone_bo;
2147 
2148   PROCEDURE update_phone_bo(
2149     p_phone_obj           IN            HZ_PHONE_CP_BO,
2150     p_created_by_module   IN            VARCHAR2,
2151     p_obj_source          IN            VARCHAR2 := null,
2152     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2153     x_return_status       OUT NOCOPY    VARCHAR2,
2154     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2155     x_return_obj          OUT NOCOPY    HZ_PHONE_CP_BO,
2156     x_phone_id            OUT NOCOPY    NUMBER,
2157     x_phone_os            OUT NOCOPY    VARCHAR2,
2158     x_phone_osr           OUT NOCOPY    VARCHAR2
2159   )IS
2160     l_msg_data            VARCHAR2(2000);
2161     l_msg_count           NUMBER;
2162     l_phone_obj           HZ_PHONE_CP_BO;
2163   BEGIN
2164     l_phone_obj := p_phone_obj;
2165     do_update_contact_point (
2166       p_init_msg_list      => fnd_api.g_true,
2167       p_cp_id              => l_phone_obj.phone_id,
2168       p_cp_os              => l_phone_obj.orig_system,
2169       p_cp_osr             => l_phone_obj.orig_system_reference,
2170       p_phone_obj          => l_phone_obj,
2171       p_email_obj          => NULL,
2172       p_telex_obj          => NULL,
2173       p_web_obj            => NULL,
2174       p_edi_obj            => NULL,
2175       p_eft_obj            => NULL,
2176       p_sms_obj            => NULL,
2177       p_cp_pref_objs       => l_phone_obj.contact_pref_objs,
2178       p_cp_type            => 'PHONE',
2179       p_created_by_module  => p_created_by_module,
2180       x_return_status      => x_return_status,
2181       x_msg_count          => l_msg_count,
2182       x_msg_data           => l_msg_data,
2183       x_cp_id              => x_phone_id,
2184       x_cp_os              => x_phone_os,
2185       x_cp_osr             => x_phone_osr,
2186       p_parent_os          => NULL );
2187     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2188                     x_return_status   => x_return_status,
2189                     x_msg_count       => l_msg_count,
2190                     x_msg_data        => l_msg_data);
2191     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2192       x_return_obj := l_phone_obj;
2193     END IF;
2194   END update_phone_bo;
2195 
2196   -- PROCEDURE update_telex_bo
2197   --
2198   -- DESCRIPTION
2199   --     Update a logical telex contact point.
2200   PROCEDURE update_telex_bo(
2201     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2202     p_telex_obj           IN            HZ_TELEX_CP_BO,
2203     p_created_by_module   IN            VARCHAR2,
2204     x_return_status       OUT NOCOPY    VARCHAR2,
2205     x_msg_count           OUT NOCOPY    NUMBER,
2206     x_msg_data            OUT NOCOPY    VARCHAR2,
2207     x_telex_id            OUT NOCOPY    NUMBER,
2208     x_telex_os            OUT NOCOPY    VARCHAR2,
2209     x_telex_osr           OUT NOCOPY    VARCHAR2
2210   )IS
2211     l_telex_obj           HZ_TELEX_CP_BO;
2212   BEGIN
2213     l_telex_obj := p_telex_obj;
2214     do_update_contact_point (
2215       p_init_msg_list      => p_init_msg_list,
2216       p_cp_id              => l_telex_obj.telex_id,
2217       p_cp_os              => l_telex_obj.orig_system,
2218       p_cp_osr             => l_telex_obj.orig_system_reference,
2219       p_phone_obj          => NULL,
2220       p_email_obj          => NULL,
2221       p_telex_obj          => l_telex_obj,
2222       p_web_obj            => NULL,
2223       p_edi_obj            => NULL,
2224       p_eft_obj            => NULL,
2225       p_sms_obj            => NULL,
2229       p_obj_source         => NULL,
2226       p_cp_pref_objs       => l_telex_obj.contact_pref_objs,
2227       p_cp_type            => 'TLX',
2228       p_created_by_module  => p_created_by_module,
2230       x_return_status      => x_return_status,
2231       x_msg_count          => x_msg_count,
2232       x_msg_data           => x_msg_data,
2233       x_cp_id              => x_telex_id,
2234       x_cp_os              => x_telex_os,
2235       x_cp_osr             => x_telex_osr,
2236       p_parent_os          => NULL );
2237   END update_telex_bo;
2238 
2239   PROCEDURE update_telex_bo(
2240     p_telex_obj           IN            HZ_TELEX_CP_BO,
2241     p_created_by_module   IN            VARCHAR2,
2242     p_obj_source          IN            VARCHAR2 := null,
2243     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2244     x_return_status       OUT NOCOPY    VARCHAR2,
2245     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2246     x_return_obj          OUT NOCOPY    HZ_TELEX_CP_BO,
2247     x_telex_id            OUT NOCOPY    NUMBER,
2248     x_telex_os            OUT NOCOPY    VARCHAR2,
2249     x_telex_osr           OUT NOCOPY    VARCHAR2
2250   )IS
2251     l_msg_count           NUMBER;
2252     l_msg_data            VARCHAR2(2000);
2253     l_telex_obj           HZ_TELEX_CP_BO;
2254   BEGIN
2255     l_telex_obj := p_telex_obj;
2256     do_update_contact_point (
2257       p_init_msg_list      => fnd_api.g_true,
2258       p_cp_id              => l_telex_obj.telex_id,
2259       p_cp_os              => l_telex_obj.orig_system,
2260       p_cp_osr             => l_telex_obj.orig_system_reference,
2261       p_phone_obj          => NULL,
2262       p_email_obj          => NULL,
2263       p_telex_obj          => l_telex_obj,
2264       p_web_obj            => NULL,
2265       p_edi_obj            => NULL,
2266       p_eft_obj            => NULL,
2267       p_sms_obj            => NULL,
2268       p_cp_pref_objs       => l_telex_obj.contact_pref_objs,
2269       p_cp_type            => 'TLX',
2270       p_created_by_module  => p_created_by_module,
2271       x_return_status      => x_return_status,
2272       x_msg_count          => l_msg_count,
2273       x_msg_data           => l_msg_data,
2274       x_cp_id              => x_telex_id,
2275       x_cp_os              => x_telex_os,
2276       x_cp_osr             => x_telex_osr,
2277       p_parent_os          => NULL );
2278     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2279                     x_return_status   => x_return_status,
2280                     x_msg_count       => l_msg_count,
2281                     x_msg_data        => l_msg_data);
2282     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2283       x_return_obj := l_telex_obj;
2284     END IF;
2285   END update_telex_bo;
2286 
2287   -- PROCEDURE update_email_bo
2288   --
2289   -- DESCRIPTION
2290   --     Update a logical email contact point.
2291   PROCEDURE update_email_bo(
2292     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2293     p_email_obj           IN            HZ_EMAIL_CP_BO,
2294     p_created_by_module   IN            VARCHAR2,
2295     x_return_status       OUT NOCOPY    VARCHAR2,
2296     x_msg_count           OUT NOCOPY    NUMBER,
2297     x_msg_data            OUT NOCOPY    VARCHAR2,
2298     x_email_id            OUT NOCOPY    NUMBER,
2299     x_email_os            OUT NOCOPY    VARCHAR2,
2300     x_email_osr           OUT NOCOPY    VARCHAR2
2301   )IS
2302     l_email_obj           HZ_EMAIL_CP_BO;
2303   BEGIN
2304     l_email_obj := p_email_obj;
2305     do_update_contact_point (
2306       p_init_msg_list      => p_init_msg_list,
2307       p_cp_id              => l_email_obj.email_id,
2308       p_cp_os              => l_email_obj.orig_system,
2309       p_cp_osr             => l_email_obj.orig_system_reference,
2310       p_phone_obj          => NULL,
2311       p_email_obj          => l_email_obj,
2312       p_telex_obj          => NULL,
2313       p_web_obj            => NULL,
2314       p_edi_obj            => NULL,
2315       p_eft_obj            => NULL,
2316       p_sms_obj            => NULL,
2317       p_cp_pref_objs       => l_email_obj.contact_pref_objs,
2318       p_cp_type            => 'EMAIL',
2319       p_created_by_module  => p_created_by_module,
2320       p_obj_source         => NULL,
2321       x_return_status      => x_return_status,
2322       x_msg_count          => x_msg_count,
2323       x_msg_data           => x_msg_data,
2324       x_cp_id              => x_email_id,
2325       x_cp_os              => x_email_os,
2326       x_cp_osr             => x_email_osr,
2327       p_parent_os          => NULL );
2328   END update_email_bo;
2329 
2330   PROCEDURE update_email_bo(
2331     p_email_obj           IN            HZ_EMAIL_CP_BO,
2332     p_created_by_module   IN            VARCHAR2,
2333     p_obj_source          IN            VARCHAR2 := null,
2334     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2335     x_return_status       OUT NOCOPY    VARCHAR2,
2336     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2337     x_return_obj          OUT NOCOPY    HZ_EMAIL_CP_BO,
2338     x_email_id            OUT NOCOPY    NUMBER,
2339     x_email_os            OUT NOCOPY    VARCHAR2,
2340     x_email_osr           OUT NOCOPY    VARCHAR2
2341   )IS
2342     l_msg_data            VARCHAR2(2000);
2343     l_msg_count           NUMBER;
2344     l_email_obj           HZ_EMAIL_CP_BO;
2345   BEGIN
2346     l_email_obj := p_email_obj;
2347     do_update_contact_point (
2348       p_init_msg_list      => fnd_api.g_true,
2349       p_cp_id              => l_email_obj.email_id,
2350       p_cp_os              => l_email_obj.orig_system,
2351       p_cp_osr             => l_email_obj.orig_system_reference,
2352       p_phone_obj          => NULL,
2353       p_email_obj          => l_email_obj,
2354       p_telex_obj          => NULL,
2358       p_sms_obj            => NULL,
2355       p_web_obj            => NULL,
2356       p_edi_obj            => NULL,
2357       p_eft_obj            => NULL,
2359       p_cp_pref_objs       => l_email_obj.contact_pref_objs,
2360       p_cp_type            => 'EMAIL',
2361       p_created_by_module  => p_created_by_module,
2362       x_return_status      => x_return_status,
2363       x_msg_count          => l_msg_count,
2364       x_msg_data           => l_msg_data,
2365       x_cp_id              => x_email_id,
2366       x_cp_os              => x_email_os,
2367       x_cp_osr             => x_email_osr,
2368       p_parent_os          => NULL );
2369     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2370                     x_return_status   => x_return_status,
2371                     x_msg_count       => l_msg_count,
2372                     x_msg_data        => l_msg_data);
2373     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2374       x_return_obj := l_email_obj;
2375     END IF;
2376   END update_email_bo;
2377 
2378   -- PROCEDURE update_web_bo
2379   --
2380   -- DESCRIPTION
2381   --     Update a logical web contact point.
2382   PROCEDURE update_web_bo(
2383     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2384     p_web_obj             IN            HZ_WEB_CP_BO,
2385     p_created_by_module   IN            VARCHAR2,
2386     x_return_status       OUT NOCOPY    VARCHAR2,
2387     x_msg_count           OUT NOCOPY    NUMBER,
2388     x_msg_data            OUT NOCOPY    VARCHAR2,
2389     x_web_id              OUT NOCOPY    NUMBER,
2390     x_web_os              OUT NOCOPY    VARCHAR2,
2391     x_web_osr             OUT NOCOPY    VARCHAR2
2392   )IS
2393     l_web_obj             HZ_WEB_CP_BO;
2394   BEGIN
2395     l_web_obj := p_web_obj;
2396     do_update_contact_point (
2397       p_init_msg_list      => p_init_msg_list,
2398       p_cp_id              => l_web_obj.web_id,
2399       p_cp_os              => l_web_obj.orig_system,
2400       p_cp_osr             => l_web_obj.orig_system_reference,
2401       p_phone_obj          => NULL,
2402       p_email_obj          => NULL,
2403       p_telex_obj          => NULL,
2404       p_web_obj            => l_web_obj,
2405       p_edi_obj            => NULL,
2406       p_eft_obj            => NULL,
2407       p_sms_obj            => NULL,
2408       p_cp_pref_objs       => l_web_obj.contact_pref_objs,
2409       p_cp_type            => 'WEB',
2410       p_created_by_module  => p_created_by_module,
2411       p_obj_source         => NULL,
2412       x_return_status      => x_return_status,
2413       x_msg_count          => x_msg_count,
2414       x_msg_data           => x_msg_data,
2415       x_cp_id              => x_web_id,
2416       x_cp_os              => x_web_os,
2417       x_cp_osr             => x_web_osr,
2418       p_parent_os          => NULL );
2419   END update_web_bo;
2420 
2421   PROCEDURE update_web_bo(
2422     p_web_obj             IN            HZ_WEB_CP_BO,
2423     p_created_by_module   IN            VARCHAR2,
2424     p_obj_source          IN            VARCHAR2 := null,
2425     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2426     x_return_status       OUT NOCOPY    VARCHAR2,
2427     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2428     x_return_obj          OUT NOCOPY    HZ_WEB_CP_BO,
2429     x_web_id              OUT NOCOPY    NUMBER,
2430     x_web_os              OUT NOCOPY    VARCHAR2,
2431     x_web_osr             OUT NOCOPY    VARCHAR2
2432   )IS
2433     l_msg_data            VARCHAR2(2000);
2434     l_msg_count           NUMBER;
2435     l_web_obj             HZ_WEB_CP_BO;
2436   BEGIN
2437     l_web_obj := p_web_obj;
2438     do_update_contact_point (
2439       p_init_msg_list      => fnd_api.g_true,
2440       p_cp_id              => l_web_obj.web_id,
2441       p_cp_os              => l_web_obj.orig_system,
2442       p_cp_osr             => l_web_obj.orig_system_reference,
2443       p_phone_obj          => NULL,
2444       p_email_obj          => NULL,
2445       p_telex_obj          => NULL,
2446       p_web_obj            => l_web_obj,
2447       p_edi_obj            => NULL,
2448       p_eft_obj            => NULL,
2449       p_sms_obj            => NULL,
2450       p_cp_pref_objs       => l_web_obj.contact_pref_objs,
2451       p_cp_type            => 'WEB',
2452       p_created_by_module  => p_created_by_module,
2453       x_return_status      => x_return_status,
2454       x_msg_count          => l_msg_count,
2455       x_msg_data           => l_msg_data,
2456       x_cp_id              => x_web_id,
2457       x_cp_os              => x_web_os,
2458       x_cp_osr             => x_web_osr,
2459       p_parent_os          => NULL );
2460     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2461                     x_return_status   => x_return_status,
2462                     x_msg_count       => l_msg_count,
2463                     x_msg_data        => l_msg_data);
2464     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2465       x_return_obj := l_web_obj;
2466     END IF;
2467   END update_web_bo;
2468 
2469   -- PROCEDURE update_edi_bo
2470   --
2471   -- DESCRIPTION
2472   --     Update a logical edi contact point.
2473   PROCEDURE update_edi_bo(
2474     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2475     p_edi_obj             IN            HZ_EDI_CP_BO,
2476     p_created_by_module   IN            VARCHAR2,
2477     x_return_status       OUT NOCOPY    VARCHAR2,
2478     x_msg_count           OUT NOCOPY    NUMBER,
2479     x_msg_data            OUT NOCOPY    VARCHAR2,
2480     x_edi_id              OUT NOCOPY    NUMBER,
2481     x_edi_os              OUT NOCOPY    VARCHAR2,
2482     x_edi_osr             OUT NOCOPY    VARCHAR2
2483   )IS
2484     l_edi_obj             HZ_EDI_CP_BO;
2485   BEGIN
2486     l_edi_obj := p_edi_obj;
2490       p_cp_os              => l_edi_obj.orig_system,
2487     do_update_contact_point (
2488       p_init_msg_list      => p_init_msg_list,
2489       p_cp_id              => l_edi_obj.edi_id,
2491       p_cp_osr             => l_edi_obj.orig_system_reference,
2492       p_phone_obj          => NULL,
2493       p_email_obj          => NULL,
2494       p_telex_obj          => NULL,
2495       p_web_obj            => NULL,
2496       p_edi_obj            => l_edi_obj,
2497       p_eft_obj            => NULL,
2498       p_sms_obj            => NULL,
2499       p_cp_pref_objs       => l_edi_obj.contact_pref_objs,
2500       p_cp_type            => 'EDI',
2501       p_created_by_module  => p_created_by_module,
2502       p_obj_source         => NULL,
2503       x_return_status      => x_return_status,
2504       x_msg_count          => x_msg_count,
2505       x_msg_data           => x_msg_data,
2506       x_cp_id              => x_edi_id,
2507       x_cp_os              => x_edi_os,
2508       x_cp_osr             => x_edi_osr,
2509       p_parent_os          => NULL );
2510   END update_edi_bo;
2511 
2512   PROCEDURE update_edi_bo(
2513     p_edi_obj             IN            HZ_EDI_CP_BO,
2514     p_created_by_module   IN            VARCHAR2,
2515     p_obj_source          IN            VARCHAR2 := null,
2516     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2517     x_return_status       OUT NOCOPY    VARCHAR2,
2518     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2519     x_return_obj          OUT NOCOPY    HZ_EDI_CP_BO,
2520     x_edi_id              OUT NOCOPY    NUMBER,
2521     x_edi_os              OUT NOCOPY    VARCHAR2,
2522     x_edi_osr             OUT NOCOPY    VARCHAR2
2523   )IS
2524     l_msg_data            VARCHAR2(2000);
2525     l_msg_count           NUMBER;
2526     l_edi_obj             HZ_EDI_CP_BO;
2527   BEGIN
2528     l_edi_obj := p_edi_obj;
2529     do_update_contact_point (
2530       p_init_msg_list      => fnd_api.g_true,
2531       p_cp_id              => l_edi_obj.edi_id,
2532       p_cp_os              => l_edi_obj.orig_system,
2533       p_cp_osr             => l_edi_obj.orig_system_reference,
2534       p_phone_obj          => NULL,
2535       p_email_obj          => NULL,
2536       p_telex_obj          => NULL,
2537       p_web_obj            => NULL,
2538       p_edi_obj            => l_edi_obj,
2539       p_eft_obj            => NULL,
2540       p_sms_obj            => NULL,
2541       p_cp_pref_objs       => l_edi_obj.contact_pref_objs,
2542       p_cp_type            => 'EDI',
2543       p_created_by_module  => p_created_by_module,
2544       x_return_status      => x_return_status,
2545       x_msg_count          => l_msg_count,
2546       x_msg_data           => l_msg_data,
2547       x_cp_id              => x_edi_id,
2548       x_cp_os              => x_edi_os,
2549       x_cp_osr             => x_edi_osr,
2550       p_parent_os          => NULL );
2551     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2552                     x_return_status   => x_return_status,
2553                     x_msg_count       => l_msg_count,
2554                     x_msg_data        => l_msg_data);
2555     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2556       x_return_obj := l_edi_obj;
2557     END IF;
2558   END update_edi_bo;
2559 
2560   -- PROCEDURE update_eft_bo
2561   --
2562   -- DESCRIPTION
2563   --     Update a logical eft contact point.
2564   PROCEDURE update_eft_bo(
2565     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2566     p_eft_obj             IN            HZ_EFT_CP_BO,
2567     p_created_by_module   IN            VARCHAR2,
2568     x_return_status       OUT NOCOPY    VARCHAR2,
2569     x_msg_count           OUT NOCOPY    NUMBER,
2570     x_msg_data            OUT NOCOPY    VARCHAR2,
2571     x_eft_id              OUT NOCOPY    NUMBER,
2572     x_eft_os              OUT NOCOPY    VARCHAR2,
2573     x_eft_osr             OUT NOCOPY    VARCHAR2
2574   )IS
2575     l_eft_obj             HZ_EFT_CP_BO;
2576   BEGIN
2577     l_eft_obj := p_eft_obj;
2578     do_update_contact_point (
2579       p_init_msg_list      => p_init_msg_list,
2580       p_cp_id              => l_eft_obj.eft_id,
2581       p_cp_os              => l_eft_obj.orig_system,
2582       p_cp_osr             => l_eft_obj.orig_system_reference,
2583       p_phone_obj          => NULL,
2584       p_email_obj          => NULL,
2585       p_telex_obj          => NULL,
2586       p_web_obj            => NULL,
2587       p_edi_obj            => NULL,
2588       p_eft_obj            => l_eft_obj,
2589       p_sms_obj            => NULL,
2590       p_cp_pref_objs       => l_eft_obj.contact_pref_objs,
2591       p_cp_type            => 'EFT',
2592       p_created_by_module  => p_created_by_module,
2593       p_obj_source         => NULL,
2594       x_return_status      => x_return_status,
2595       x_msg_count          => x_msg_count,
2596       x_msg_data           => x_msg_data,
2597       x_cp_id              => x_eft_id,
2598       x_cp_os              => x_eft_os,
2599       x_cp_osr             => x_eft_osr,
2600       p_parent_os          => NULL );
2601   END update_eft_bo;
2602 
2603   PROCEDURE update_eft_bo(
2604     p_eft_obj             IN            HZ_EFT_CP_BO,
2605     p_created_by_module   IN            VARCHAR2,
2606     p_obj_source          IN            VARCHAR2 := null,
2607     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2608     x_return_status       OUT NOCOPY    VARCHAR2,
2609     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2610     x_return_obj          OUT NOCOPY    HZ_EFT_CP_BO,
2611     x_eft_id              OUT NOCOPY    NUMBER,
2612     x_eft_os              OUT NOCOPY    VARCHAR2,
2613     x_eft_osr             OUT NOCOPY    VARCHAR2
2614   )IS
2615     l_msg_data            VARCHAR2(2000);
2616     l_msg_count           NUMBER;
2620     do_update_contact_point (
2617     l_eft_obj             HZ_EFT_CP_BO;
2618   BEGIN
2619     l_eft_obj := p_eft_obj;
2621       p_init_msg_list      => fnd_api.g_true,
2622       p_cp_id              => l_eft_obj.eft_id,
2623       p_cp_os              => l_eft_obj.orig_system,
2624       p_cp_osr             => l_eft_obj.orig_system_reference,
2625       p_phone_obj          => NULL,
2626       p_email_obj          => NULL,
2627       p_telex_obj          => NULL,
2628       p_web_obj            => NULL,
2629       p_edi_obj            => NULL,
2630       p_eft_obj            => l_eft_obj,
2631       p_sms_obj            => NULL,
2632       p_cp_pref_objs       => l_eft_obj.contact_pref_objs,
2633       p_cp_type            => 'EFT',
2634       p_created_by_module  => p_created_by_module,
2635       x_return_status      => x_return_status,
2636       x_msg_count          => l_msg_count,
2637       x_msg_data           => l_msg_data,
2638       x_cp_id              => x_eft_id,
2639       x_cp_os              => x_eft_os,
2640       x_cp_osr             => x_eft_osr,
2641       p_parent_os          => NULL );
2642     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2643                     x_return_status   => x_return_status,
2644                     x_msg_count       => l_msg_count,
2645                     x_msg_data        => l_msg_data);
2646     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2647       x_return_obj := l_eft_obj;
2648     END IF;
2649   END update_eft_bo;
2650 
2651   -- PROCEDURE update_sms_bo
2652   --
2653   -- DESCRIPTION
2654   --     Update a logical sms contact point.
2655   PROCEDURE update_sms_bo(
2656     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2657     p_sms_obj             IN            HZ_SMS_CP_BO,
2658     p_created_by_module   IN            VARCHAR2,
2659     x_return_status       OUT NOCOPY    VARCHAR2,
2660     x_msg_count           OUT NOCOPY    NUMBER,
2661     x_msg_data            OUT NOCOPY    VARCHAR2,
2662     x_sms_id              OUT NOCOPY    NUMBER,
2663     x_sms_os              OUT NOCOPY    VARCHAR2,
2664     x_sms_osr             OUT NOCOPY    VARCHAR2
2665   )IS
2666     l_sms_obj             HZ_SMS_CP_BO;
2667   BEGIN
2668     l_sms_obj := p_sms_obj;
2669     do_update_contact_point (
2670       p_init_msg_list      => p_init_msg_list,
2671       p_cp_id              => l_sms_obj.sms_id,
2672       p_cp_os              => l_sms_obj.orig_system,
2673       p_cp_osr             => l_sms_obj.orig_system_reference,
2674       p_phone_obj          => NULL,
2675       p_email_obj          => NULL,
2676       p_telex_obj          => NULL,
2677       p_web_obj            => NULL,
2678       p_edi_obj            => NULL,
2679       p_eft_obj            => NULL,
2680       p_sms_obj            => l_sms_obj,
2681       p_cp_pref_objs       => l_sms_obj.contact_pref_objs,
2682       p_cp_type            => 'SMS',
2683       p_created_by_module  => p_created_by_module,
2684       p_obj_source         => NULL,
2685       x_return_status      => x_return_status,
2686       x_msg_count          => x_msg_count,
2687       x_msg_data           => x_msg_data,
2688       x_cp_id              => x_sms_id,
2689       x_cp_os              => x_sms_os,
2690       x_cp_osr             => x_sms_osr,
2691       p_parent_os          => NULL );
2692   END update_sms_bo;
2693 
2694   PROCEDURE update_sms_bo(
2695     p_sms_obj             IN            HZ_SMS_CP_BO,
2696     p_created_by_module   IN            VARCHAR2,
2697     p_obj_source          IN            VARCHAR2 := null,
2698     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2699     x_return_status       OUT NOCOPY    VARCHAR2,
2700     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2701     x_return_obj          OUT NOCOPY    HZ_SMS_CP_BO,
2702     x_sms_id              OUT NOCOPY    NUMBER,
2703     x_sms_os              OUT NOCOPY    VARCHAR2,
2704     x_sms_osr             OUT NOCOPY    VARCHAR2
2705   )IS
2706     l_msg_data            VARCHAR2(2000);
2707     l_msg_count           NUMBER;
2708     l_sms_obj             HZ_SMS_CP_BO;
2709   BEGIN
2710     l_sms_obj := p_sms_obj;
2711     do_update_contact_point (
2712       p_init_msg_list      => fnd_api.g_true,
2713       p_cp_id              => l_sms_obj.sms_id,
2714       p_cp_os              => l_sms_obj.orig_system,
2715       p_cp_osr             => l_sms_obj.orig_system_reference,
2716       p_phone_obj          => NULL,
2717       p_email_obj          => NULL,
2718       p_telex_obj          => NULL,
2719       p_web_obj            => NULL,
2720       p_edi_obj            => NULL,
2721       p_eft_obj            => NULL,
2722       p_sms_obj            => l_sms_obj,
2723       p_cp_pref_objs       => l_sms_obj.contact_pref_objs,
2724       p_cp_type            => 'SMS',
2725       p_created_by_module  => p_created_by_module,
2726       x_return_status      => x_return_status,
2727       x_msg_count          => l_msg_count,
2728       x_msg_data           => l_msg_data,
2729       x_cp_id              => x_sms_id,
2730       x_cp_os              => x_sms_os,
2731       x_cp_osr             => x_sms_osr,
2732       p_parent_os          => NULL );
2733     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2734                     x_return_status   => x_return_status,
2735                     x_msg_count       => l_msg_count,
2736                     x_msg_data        => l_msg_data);
2737     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2738       x_return_obj := l_sms_obj;
2739     END IF;
2740   END update_sms_bo;
2741 
2742   -- PRIVATE PROCEDURE do_update_contact_point
2743   --
2744   -- DESCRIPTION
2745   --     Update contact point.
2746   PROCEDURE do_update_contact_point (
2747     p_init_msg_list                   IN     VARCHAR2:= FND_API.G_FALSE,
2748     p_cp_id                           IN     NUMBER,
2752     p_email_obj                       IN HZ_EMAIL_CP_BO,
2749     p_cp_os                           IN     VARCHAR2,
2750     p_cp_osr                          IN     VARCHAR2,
2751     p_phone_obj                       IN HZ_PHONE_CP_BO,
2753     p_telex_obj                       IN HZ_TELEX_CP_BO,
2754     p_web_obj                         IN HZ_WEB_CP_BO,
2755     p_edi_obj                         IN HZ_EDI_CP_BO,
2756     p_eft_obj                         IN HZ_EFT_CP_BO,
2757     p_sms_obj                         IN HZ_SMS_CP_BO,
2758     p_cp_pref_objs                    IN OUT NOCOPY    HZ_CONTACT_PREF_OBJ_TBL,
2759     p_cp_type                         IN     VARCHAR2,
2760     p_created_by_module               IN     VARCHAR2,
2761     p_obj_source                      IN     VARCHAR2 := null,
2762     x_return_status                   OUT    NOCOPY VARCHAR2,
2763     x_msg_count                       OUT    NOCOPY NUMBER,
2764     x_msg_data                        OUT    NOCOPY VARCHAR2,
2765     x_cp_id                           OUT    NOCOPY NUMBER,
2766     x_cp_os                           OUT    NOCOPY VARCHAR2,
2767     x_cp_osr                          OUT    NOCOPY VARCHAR2,
2768     p_parent_os                       IN     VARCHAR2
2769   ) IS
2770     l_debug_prefix             VARCHAR2(30);
2771     l_contact_point_rec        HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE;
2772     l_phone_rec                HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
2773     l_email_rec                HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE;
2774     l_telex_rec                HZ_CONTACT_POINT_V2PUB.TELEX_REC_TYPE;
2775     l_web_rec                  HZ_CONTACT_POINT_V2PUB.WEB_REC_TYPE;
2776     l_edi_rec                  HZ_CONTACT_POINT_V2PUB.EDI_REC_TYPE;
2777     l_eft_rec                  HZ_CONTACT_POINT_V2PUB.EFT_REC_TYPE;
2778     l_sms_rec                  HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
2779     l_contact_pref_rec         HZ_CONTACT_PREFERENCE_V2PUB.CONTACT_PREFERENCE_REC_TYPE;
2780     l_contact_pref_id          NUMBER;
2781     l_ovn                      NUMBER;
2782     l_owner_table_id           NUMBER;
2783     l_owner_table_name         VARCHAR2(30);
2784     l_create_update_flag       VARCHAR2(1);
2785     l_os                       VARCHAR2(30);
2786     l_osr                      VARCHAR2(255);
2787     l_orig_sys_reference_rec   HZ_ORIG_SYSTEM_REF_PUB.ORIG_SYS_REFERENCE_REC_TYPE;
2788 
2789     CURSOR get_ovn(l_contact_point_id  NUMBER) IS
2790     SELECT object_version_number, owner_table_id, owner_table_name
2791     FROM HZ_CONTACT_POINTS
2792     WHERE contact_point_id = l_contact_point_id;
2793 
2794   BEGIN
2795     -- Standard start of API savepoint
2796     SAVEPOINT do_update_contact_point_pub;
2797 
2798     -- initialize API return status to success.
2799     x_return_status := FND_API.G_RET_STS_SUCCESS;
2800 
2801     -- Initialize message list if p_init_msg_list is set to TRUE
2802     IF FND_API.to_Boolean(p_init_msg_list) THEN
2803       FND_MSG_PUB.initialize;
2804     END IF;
2805 
2806     -- initialize Global variable
2807     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
2808     IF(p_created_by_module IS NULL) THEN
2809       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
2810     ELSE
2811       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
2812     END IF;
2813 
2814     -- Debug info.
2815     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2816         hz_utility_v2pub.debug(p_message=>'do_update_contact_point (+)',
2817                                p_prefix=>l_debug_prefix,
2818                                p_msg_level=>fnd_log.level_procedure);
2819     END IF;
2820 
2821     -- get contact point id and os+osr
2822     x_cp_id := p_cp_id;
2823     x_cp_os := p_cp_os;
2824     x_cp_osr := p_cp_osr;
2825 
2826     -- check if pass in contact_point_id and ssm is valid for update
2827     hz_registry_validate_bo_pvt.validate_ssm_id(
2828       px_id              => x_cp_id,
2829       px_os              => x_cp_os,
2830       px_osr             => x_cp_osr,
2831       p_obj_type         => p_cp_type,
2832       p_create_or_update => 'U',
2833       x_return_status    => x_return_status,
2834       x_msg_count        => x_msg_count,
2835       x_msg_data         => x_msg_data);
2836 
2837     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2838       RAISE FND_API.G_EXC_ERROR;
2839     END IF;
2840 
2841     OPEN get_ovn(x_cp_id);
2842     FETCH get_ovn INTO l_ovn, l_owner_table_id, l_owner_table_name;
2843     CLOSE get_ovn;
2844 
2845     -- step 2) call update contact point
2846     -- Assign contact point type record, call contact point v2pub update api
2847     IF(p_cp_type = 'PHONE') THEN
2848       assign_phone_rec(
2849         p_phone_obj          => p_phone_obj,
2850         p_owner_table_id     => l_owner_table_id,
2851         p_owner_table_name   => l_owner_table_name,
2852         p_cp_id              => x_cp_id,
2853         p_cp_os              => x_cp_os,
2854         p_cp_osr             => x_cp_osr,
2855         p_cp_type            => p_cp_type,
2856         p_create_or_update   => 'U',
2857         px_phone_rec         => l_phone_rec,
2858         px_contact_point_rec => l_contact_point_rec
2859       );
2860 
2861       HZ_CONTACT_POINT_V2PUB.update_phone_contact_point(
2862         p_contact_point_rec         => l_contact_point_rec,
2863         p_phone_rec                 => l_phone_rec,
2864         p_object_version_number     => l_ovn,
2865         x_return_status             => x_return_status,
2866         x_msg_count                 => x_msg_count,
2867         x_msg_data                  => x_msg_data
2868       );
2869 
2870       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2871         RAISE FND_API.G_EXC_ERROR;
2872       END IF;
2873     ELSIF(p_cp_type = 'EMAIL') THEN
2874       assign_email_rec(
2875         p_email_obj          => p_email_obj,
2879         p_cp_os              => x_cp_os,
2876         p_owner_table_id     => l_owner_table_id,
2877         p_owner_table_name   => l_owner_table_name,
2878         p_cp_id              => x_cp_id,
2880         p_cp_osr             => x_cp_osr,
2881         p_cp_type            => p_cp_type,
2882         p_create_or_update   => 'U',
2883         px_email_rec         => l_email_rec,
2884         px_contact_point_rec => l_contact_point_rec
2885       );
2886 
2887       HZ_CONTACT_POINT_V2PUB.update_email_contact_point(
2888         p_contact_point_rec         => l_contact_point_rec,
2889         p_email_rec                 => l_email_rec,
2890         p_object_version_number     => l_ovn,
2891         x_return_status             => x_return_status,
2892         x_msg_count                 => x_msg_count,
2893         x_msg_data                  => x_msg_data
2894       );
2895 
2896       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2897         RAISE FND_API.G_EXC_ERROR;
2898       END IF;
2899     ELSIF(p_cp_type = 'TLX') THEN
2900       assign_telex_rec(
2901         p_telex_obj          => p_telex_obj,
2902         p_owner_table_id     => l_owner_table_id,
2903         p_owner_table_name   => l_owner_table_name,
2904         p_cp_id              => x_cp_id,
2905         p_cp_os              => x_cp_os,
2906         p_cp_osr             => x_cp_osr,
2907         p_cp_type            => p_cp_type,
2908         p_create_or_update   => 'U',
2909         px_telex_rec         => l_telex_rec,
2910         px_contact_point_rec => l_contact_point_rec
2911       );
2912 
2913       HZ_CONTACT_POINT_V2PUB.update_telex_contact_point(
2914         p_contact_point_rec         => l_contact_point_rec,
2915         p_telex_rec                 => l_telex_rec,
2916         p_object_version_number     => l_ovn,
2917         x_return_status             => x_return_status,
2918         x_msg_count                 => x_msg_count,
2919         x_msg_data                  => x_msg_data
2920       );
2921 
2922       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2923         RAISE FND_API.G_EXC_ERROR;
2924       END IF;
2925     ELSIF(p_cp_type = 'WEB') THEN
2926       assign_web_rec(
2927         p_web_obj            => p_web_obj,
2928         p_owner_table_id     => l_owner_table_id,
2929         p_owner_table_name   => l_owner_table_name,
2930         p_cp_id              => x_cp_id,
2931         p_cp_os              => x_cp_os,
2932         p_cp_osr             => x_cp_osr,
2933         p_cp_type            => p_cp_type,
2934         p_create_or_update   => 'U',
2935         px_web_rec           => l_web_rec,
2936         px_contact_point_rec => l_contact_point_rec
2937       );
2938 
2939       HZ_CONTACT_POINT_V2PUB.update_web_contact_point(
2940         p_contact_point_rec         => l_contact_point_rec,
2941         p_web_rec                   => l_web_rec,
2942         p_object_version_number     => l_ovn,
2943         x_return_status             => x_return_status,
2944         x_msg_count                 => x_msg_count,
2945         x_msg_data                  => x_msg_data
2946       );
2947 
2948       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2949         RAISE FND_API.G_EXC_ERROR;
2950       END IF;
2951     ELSIF(p_cp_type = 'EDI') THEN
2952       assign_edi_rec(
2953         p_edi_obj            => p_edi_obj,
2954         p_owner_table_id     => l_owner_table_id,
2955         p_owner_table_name   => l_owner_table_name,
2956         p_cp_id              => x_cp_id,
2957         p_cp_os              => x_cp_os,
2958         p_cp_osr             => x_cp_osr,
2959         p_cp_type            => p_cp_type,
2960         p_create_or_update   => 'U',
2961         px_edi_rec           => l_edi_rec,
2962         px_contact_point_rec => l_contact_point_rec
2963       );
2964 
2965       HZ_CONTACT_POINT_V2PUB.update_edi_contact_point(
2966         p_contact_point_rec         => l_contact_point_rec,
2967         p_edi_rec                   => l_edi_rec,
2968         p_object_version_number     => l_ovn,
2969         x_return_status             => x_return_status,
2970         x_msg_count                 => x_msg_count,
2971         x_msg_data                  => x_msg_data
2972       );
2973 
2974       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2975         RAISE FND_API.G_EXC_ERROR;
2976       END IF;
2977     ELSIF(p_cp_type = 'EFT') THEN
2978       assign_eft_rec(
2979         p_eft_obj            => p_eft_obj,
2980         p_owner_table_id     => l_owner_table_id,
2981         p_owner_table_name   => l_owner_table_name,
2982         p_cp_id              => x_cp_id,
2983         p_cp_os              => x_cp_os,
2984         p_cp_osr             => x_cp_osr,
2985         p_cp_type            => p_cp_type,
2986         p_create_or_update   => 'U',
2987         px_eft_rec           => l_eft_rec,
2988         px_contact_point_rec => l_contact_point_rec
2989       );
2990 
2991       HZ_CONTACT_POINT_V2PUB.update_eft_contact_point(
2992         p_contact_point_rec         => l_contact_point_rec,
2993         p_eft_rec                   => l_eft_rec,
2994         p_object_version_number     => l_ovn,
2995         x_return_status             => x_return_status,
2996         x_msg_count                 => x_msg_count,
2997         x_msg_data                  => x_msg_data
2998       );
2999 
3000       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3001         RAISE FND_API.G_EXC_ERROR;
3002       END IF;
3003     ELSIF(p_cp_type = 'SMS') THEN
3004       assign_sms_rec(
3005         p_sms_obj            => p_sms_obj,
3006         p_owner_table_id     => l_owner_table_id,
3007         p_owner_table_name   => l_owner_table_name,
3008         p_cp_id              => x_cp_id,
3009         p_cp_os              => x_cp_os,
3010         p_cp_osr             => x_cp_osr,
3014         px_contact_point_rec => l_contact_point_rec
3011         p_cp_type            => p_cp_type,
3012         p_create_or_update   => 'U',
3013         px_sms_rec           => l_sms_rec,
3015       );
3016 
3017       HZ_CONTACT_POINT_V2PUB.update_phone_contact_point(
3018         p_contact_point_rec         => l_contact_point_rec,
3019         p_phone_rec                 => l_sms_rec,
3020         p_object_version_number     => l_ovn,
3021         x_return_status             => x_return_status,
3022         x_msg_count                 => x_msg_count,
3023         x_msg_data                  => x_msg_data
3024       );
3025 
3026       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3027         RAISE FND_API.G_EXC_ERROR;
3028       END IF;
3029     END IF;
3030 
3031     IF((p_cp_pref_objs IS NOT NULL) AND (p_cp_pref_objs.COUNT > 0)) THEN
3032       -- create or update contact preferences
3033       HZ_CONTACT_PREFERENCE_BO_PVT.save_contact_preferences(
3034         p_cp_pref_objs           => p_cp_pref_objs,
3035         p_contact_level_table_id => x_cp_id,
3036         p_contact_level_table    => 'HZ_CONTACT_POINTS',
3037         x_return_status          => x_return_status,
3038         x_msg_count              => x_msg_count,
3039         x_msg_data               => x_msg_data
3040       );
3041     END IF;
3042 
3043     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3044       RAISE FND_API.G_EXC_ERROR;
3045     END IF;
3046 
3047     -- reset Global variable
3048     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3049     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3050 
3051     -- Debug info.
3052     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3053          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3054                                p_msg_data=>x_msg_data,
3055                                p_msg_type=>'WARNING',
3056                                p_msg_level=>fnd_log.level_exception);
3057     END IF;
3058     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3059         hz_utility_v2pub.debug(p_message=>'update_logical_cp(-)',
3060                                p_prefix=>l_debug_prefix,
3061                                p_msg_level=>fnd_log.level_procedure);
3062     END IF;
3063 
3064   EXCEPTION
3065     WHEN fnd_api.g_exc_error THEN
3066       ROLLBACK TO do_update_contact_point_pub;
3067 
3068       -- reset Global variable
3069       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3070       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3071 
3072       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3073       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
3074       FND_MSG_PUB.ADD;
3075 
3076       x_return_status := fnd_api.g_ret_sts_error;
3077 
3078       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3079                                 p_count => x_msg_count,
3080                                 p_data  => x_msg_data);
3081 
3082       -- Debug info.
3083       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3084         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3085                                p_msg_data=>x_msg_data,
3086                                p_msg_type=>'ERROR',
3087                                p_msg_level=>fnd_log.level_error);
3088       END IF;
3089       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3090         hz_utility_v2pub.debug(p_message=>'do_update_contact_point (-)',
3091                                p_prefix=>l_debug_prefix,
3092                                p_msg_level=>fnd_log.level_procedure);
3093       END IF;
3094 
3095     WHEN fnd_api.g_exc_unexpected_error THEN
3096       ROLLBACK TO do_update_contact_point_pub;
3097 
3098       -- reset Global variable
3099       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3100       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3101 
3102       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3103       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
3104       FND_MSG_PUB.ADD;
3105 
3106       x_return_status := fnd_api.g_ret_sts_unexp_error;
3107 
3108       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3109                                 p_count => x_msg_count,
3110                                 p_data  => x_msg_data);
3111 
3112       -- Debug info.
3113       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3114         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3115                                p_msg_data=>x_msg_data,
3116                                p_msg_type=>'UNEXPECTED ERROR',
3117                                p_msg_level=>fnd_log.level_error);
3118       END IF;
3119       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3120         hz_utility_v2pub.debug(p_message=>'do_update_contact_point (-)',
3121                                p_prefix=>l_debug_prefix,
3122                                p_msg_level=>fnd_log.level_procedure);
3123       END IF;
3124 
3125     WHEN OTHERS THEN
3126       ROLLBACK TO do_update_contact_point_pub;
3127 
3128       -- reset Global variable
3129       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3130       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3131 
3132       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3133       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
3134       FND_MSG_PUB.ADD;
3135 
3136       x_return_status := fnd_api.g_ret_sts_unexp_error;
3137 
3138       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3139       fnd_message.set_token('ERROR' ,SQLERRM);
3140       fnd_msg_pub.add;
3141 
3142       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3143                                 p_count => x_msg_count,
3144                                 p_data  => x_msg_data);
3145 
3146       -- Debug info.
3150                                p_msg_type=>'SQL ERROR',
3147       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3148         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3149                                p_msg_data=>x_msg_data,
3151                                p_msg_level=>fnd_log.level_error);
3152       END IF;
3153       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3154         hz_utility_v2pub.debug(p_message=>'do_update_contact_point (-)',
3155                                p_prefix=>l_debug_prefix,
3156                                p_msg_level=>fnd_log.level_procedure);
3157       END IF;
3158   END do_update_contact_point;
3159 
3160   -- PROCEDURE save_phone_bo
3161   --
3162   -- DESCRIPTION
3163   --     Create or update a logical phone contact point.
3164   PROCEDURE save_phone_bo(
3165     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3166     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3167     p_phone_obj           IN            HZ_PHONE_CP_BO,
3168     p_created_by_module   IN            VARCHAR2,
3169     x_return_status       OUT NOCOPY    VARCHAR2,
3170     x_msg_count           OUT NOCOPY    NUMBER,
3171     x_msg_data            OUT NOCOPY    VARCHAR2,
3172     x_phone_id            OUT NOCOPY    NUMBER,
3173     x_phone_os            OUT NOCOPY    VARCHAR2,
3174     x_phone_osr           OUT NOCOPY    VARCHAR2,
3175     px_parent_id          IN OUT NOCOPY NUMBER,
3176     px_parent_os          IN OUT NOCOPY VARCHAR2,
3177     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3178     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3179   ) IS
3180     l_phone_obj           HZ_PHONE_CP_BO;
3181   BEGIN
3182     l_phone_obj := p_phone_obj;
3183     do_save_contact_point (
3184       p_init_msg_list      => p_init_msg_list,
3185       p_validate_bo_flag   => p_validate_bo_flag,
3186       p_cp_id              => l_phone_obj.phone_id,
3187       p_cp_os              => l_phone_obj.orig_system,
3188       p_cp_osr             => l_phone_obj.orig_system_reference,
3189       p_phone_obj          => l_phone_obj,
3190       p_email_obj          => NULL,
3191       p_telex_obj          => NULL,
3192       p_web_obj            => NULL,
3193       p_edi_obj            => NULL,
3194       p_eft_obj            => NULL,
3195       p_sms_obj            => NULL,
3196       p_cp_pref_objs       => l_phone_obj.contact_pref_objs,
3197       p_cp_type            => 'PHONE',
3198       p_created_by_module  => p_created_by_module,
3199       p_obj_source         => NULL,
3200       x_return_status      => x_return_status,
3201       x_msg_count          => x_msg_count,
3202       x_msg_data           => x_msg_data,
3203       x_cp_id              => x_phone_id,
3204       x_cp_os              => x_phone_os,
3205       x_cp_osr             => x_phone_osr,
3206       px_parent_id         => px_parent_id,
3207       px_parent_os         => px_parent_os,
3208       px_parent_osr        => px_parent_osr,
3209       px_parent_obj_type   => px_parent_obj_type
3210     );
3211   END save_phone_bo;
3212 
3213   PROCEDURE save_phone_bo(
3214     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3215     p_phone_obj           IN            HZ_PHONE_CP_BO,
3216     p_created_by_module   IN            VARCHAR2,
3217     p_obj_source          IN            VARCHAR2 := null,
3218     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3219     x_return_status       OUT NOCOPY    VARCHAR2,
3220     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3221     x_return_obj          OUT NOCOPY    HZ_PHONE_CP_BO,
3222     x_phone_id            OUT NOCOPY    NUMBER,
3223     x_phone_os            OUT NOCOPY    VARCHAR2,
3224     x_phone_osr           OUT NOCOPY    VARCHAR2,
3225     px_parent_id          IN OUT NOCOPY NUMBER,
3226     px_parent_os          IN OUT NOCOPY VARCHAR2,
3227     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3228     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3229   ) IS
3230     l_msg_data            VARCHAR2(2000);
3231     l_msg_count           NUMBER;
3232     l_phone_obj           HZ_PHONE_CP_BO;
3233   BEGIN
3234     l_phone_obj := p_phone_obj;
3235     do_save_contact_point (
3236       p_init_msg_list      => fnd_api.g_true,
3237       p_validate_bo_flag   => p_validate_bo_flag,
3238       p_cp_id              => l_phone_obj.phone_id,
3239       p_cp_os              => l_phone_obj.orig_system,
3240       p_cp_osr             => l_phone_obj.orig_system_reference,
3241       p_phone_obj          => l_phone_obj,
3242       p_email_obj          => NULL,
3243       p_telex_obj          => NULL,
3244       p_web_obj            => NULL,
3245       p_edi_obj            => NULL,
3246       p_eft_obj            => NULL,
3247       p_sms_obj            => NULL,
3248       p_cp_pref_objs       => l_phone_obj.contact_pref_objs,
3249       p_cp_type            => 'PHONE',
3250       p_created_by_module  => p_created_by_module,
3251       p_obj_source         => p_obj_source,
3252       x_return_status      => x_return_status,
3253       x_msg_count          => l_msg_count,
3254       x_msg_data           => l_msg_data,
3255       x_cp_id              => x_phone_id,
3256       x_cp_os              => x_phone_os,
3257       x_cp_osr             => x_phone_osr,
3258       px_parent_id         => px_parent_id,
3259       px_parent_os         => px_parent_os,
3260       px_parent_osr        => px_parent_osr,
3261       px_parent_obj_type   => px_parent_obj_type
3262     );
3263     l_phone_obj.phone_id := x_phone_id;
3264     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3265                     x_return_status   => x_return_status,
3266                     x_msg_count       => l_msg_count,
3267                     x_msg_data        => l_msg_data);
3268     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3269       x_return_obj := l_phone_obj;
3270     END IF;
3271   END save_phone_bo;
3275   -- DESCRIPTION
3272 
3273   -- PROCEDURE save_email_bo
3274   --
3276   --     Create or update a logical email contact point.
3277   PROCEDURE save_email_bo(
3278     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3279     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3280     p_email_obj           IN            HZ_EMAIL_CP_BO,
3281     p_created_by_module   IN            VARCHAR2,
3282     x_return_status       OUT NOCOPY    VARCHAR2,
3283     x_msg_count           OUT NOCOPY    NUMBER,
3284     x_msg_data            OUT NOCOPY    VARCHAR2,
3285     x_email_id            OUT NOCOPY    NUMBER,
3286     x_email_os            OUT NOCOPY    VARCHAR2,
3287     x_email_osr           OUT NOCOPY    VARCHAR2,
3288     px_parent_id          IN OUT NOCOPY NUMBER,
3289     px_parent_os          IN OUT NOCOPY VARCHAR2,
3290     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3291     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3292   ) IS
3293     l_email_obj           HZ_EMAIL_CP_BO;
3294   BEGIN
3295     l_email_obj := p_email_obj;
3296     do_save_contact_point (
3297       p_init_msg_list      => p_init_msg_list,
3298       p_validate_bo_flag   => p_validate_bo_flag,
3299       p_cp_id              => l_email_obj.email_id,
3300       p_cp_os              => l_email_obj.orig_system,
3301       p_cp_osr             => l_email_obj.orig_system_reference,
3302       p_phone_obj          => NULL,
3303       p_email_obj          => l_email_obj,
3304       p_telex_obj          => NULL,
3305       p_web_obj            => NULL,
3306       p_edi_obj            => NULL,
3307       p_eft_obj            => NULL,
3308       p_sms_obj            => NULL,
3309       p_cp_pref_objs       => l_email_obj.contact_pref_objs,
3310       p_cp_type            => 'EMAIL',
3311       p_created_by_module  => p_created_by_module,
3312       p_obj_source         => NULL,
3313       x_return_status      => x_return_status,
3314       x_msg_count          => x_msg_count,
3315       x_msg_data           => x_msg_data,
3316       x_cp_id              => x_email_id,
3317       x_cp_os              => x_email_os,
3318       x_cp_osr             => x_email_osr,
3319       px_parent_id         => px_parent_id,
3320       px_parent_os         => px_parent_os,
3321       px_parent_osr        => px_parent_osr,
3322       px_parent_obj_type   => px_parent_obj_type
3323     );
3324   END save_email_bo;
3325 
3326   PROCEDURE save_email_bo(
3327     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3328     p_email_obj           IN            HZ_EMAIL_CP_BO,
3329     p_created_by_module   IN            VARCHAR2,
3330     p_obj_source          IN            VARCHAR2 := null,
3331     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3332     x_return_status       OUT NOCOPY    VARCHAR2,
3333     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3334     x_return_obj          OUT NOCOPY    HZ_EMAIL_CP_BO,
3335     x_email_id            OUT NOCOPY    NUMBER,
3336     x_email_os            OUT NOCOPY    VARCHAR2,
3337     x_email_osr           OUT NOCOPY    VARCHAR2,
3338     px_parent_id          IN OUT NOCOPY NUMBER,
3339     px_parent_os          IN OUT NOCOPY VARCHAR2,
3340     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3341     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3342   ) IS
3343     l_msg_data            VARCHAR2(2000);
3344     l_msg_count           NUMBER;
3345     l_email_obj           HZ_EMAIL_CP_BO;
3346   BEGIN
3347     l_email_obj := p_email_obj;
3348     do_save_contact_point (
3349       p_init_msg_list      => fnd_api.g_true,
3350       p_validate_bo_flag   => p_validate_bo_flag,
3351       p_cp_id              => l_email_obj.email_id,
3352       p_cp_os              => l_email_obj.orig_system,
3353       p_cp_osr             => l_email_obj.orig_system_reference,
3354       p_phone_obj          => NULL,
3355       p_email_obj          => l_email_obj,
3356       p_telex_obj          => NULL,
3357       p_web_obj            => NULL,
3358       p_edi_obj            => NULL,
3359       p_eft_obj            => NULL,
3360       p_sms_obj            => NULL,
3361       p_cp_pref_objs       => l_email_obj.contact_pref_objs,
3362       p_cp_type            => 'EMAIL',
3363       p_created_by_module  => p_created_by_module,
3364       p_obj_source         => p_obj_source,
3365       x_return_status      => x_return_status,
3366       x_msg_count          => l_msg_count,
3367       x_msg_data           => l_msg_data,
3368       x_cp_id              => x_email_id,
3369       x_cp_os              => x_email_os,
3370       x_cp_osr             => x_email_osr,
3371       px_parent_id         => px_parent_id,
3372       px_parent_os         => px_parent_os,
3373       px_parent_osr        => px_parent_osr,
3374       px_parent_obj_type   => px_parent_obj_type
3375     );
3376     l_email_obj.email_id := x_email_id;
3377     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3378                     x_return_status   => x_return_status,
3379                     x_msg_count       => l_msg_count,
3380                     x_msg_data        => l_msg_data);
3381     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3382       x_return_obj := l_email_obj;
3383     END IF;
3384   END save_email_bo;
3385 
3386   -- PROCEDURE save_telex_bo
3387   --
3388   -- DESCRIPTION
3389   --     Create or update a logical telex contact point.
3390   PROCEDURE save_telex_bo(
3391     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3392     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3393     p_telex_obj           IN            HZ_TELEX_CP_BO,
3394     p_created_by_module   IN            VARCHAR2,
3395     x_return_status       OUT NOCOPY    VARCHAR2,
3396     x_msg_count           OUT NOCOPY    NUMBER,
3397     x_msg_data            OUT NOCOPY    VARCHAR2,
3398     x_telex_id            OUT NOCOPY    NUMBER,
3402     px_parent_os          IN OUT NOCOPY VARCHAR2,
3399     x_telex_os            OUT NOCOPY    VARCHAR2,
3400     x_telex_osr           OUT NOCOPY    VARCHAR2,
3401     px_parent_id          IN OUT NOCOPY NUMBER,
3403     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3404     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3405   ) IS
3406     l_telex_obj           HZ_TELEX_CP_BO;
3407   BEGIN
3408     l_telex_obj := p_telex_obj;
3409     do_save_contact_point (
3410       p_init_msg_list      => p_init_msg_list,
3411       p_validate_bo_flag   => p_validate_bo_flag,
3412       p_cp_id              => l_telex_obj.telex_id,
3413       p_cp_os              => l_telex_obj.orig_system,
3414       p_cp_osr             => l_telex_obj.orig_system_reference,
3415       p_phone_obj          => NULL,
3416       p_email_obj          => NULL,
3417       p_telex_obj          => l_telex_obj,
3418       p_web_obj            => NULL,
3419       p_edi_obj            => NULL,
3420       p_eft_obj            => NULL,
3421       p_sms_obj            => NULL,
3422       p_cp_pref_objs       => l_telex_obj.contact_pref_objs,
3423       p_cp_type            => 'TLX',
3424       p_created_by_module  => p_created_by_module,
3425       p_obj_source         => NULL,
3426       x_return_status      => x_return_status,
3427       x_msg_count          => x_msg_count,
3428       x_msg_data           => x_msg_data,
3429       x_cp_id              => x_telex_id,
3430       x_cp_os              => x_telex_os,
3431       x_cp_osr             => x_telex_osr,
3432       px_parent_id         => px_parent_id,
3433       px_parent_os         => px_parent_os,
3434       px_parent_osr        => px_parent_osr,
3435       px_parent_obj_type   => px_parent_obj_type
3436     );
3437   END save_telex_bo;
3438 
3439   PROCEDURE save_telex_bo(
3440     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3441     p_telex_obj           IN            HZ_TELEX_CP_BO,
3442     p_created_by_module   IN            VARCHAR2,
3443     p_obj_source          IN            VARCHAR2 := null,
3444     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3445     x_return_status       OUT NOCOPY    VARCHAR2,
3446     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3447     x_return_obj          OUT NOCOPY    HZ_TELEX_CP_BO,
3448     x_telex_id            OUT NOCOPY    NUMBER,
3449     x_telex_os            OUT NOCOPY    VARCHAR2,
3450     x_telex_osr           OUT NOCOPY    VARCHAR2,
3451     px_parent_id          IN OUT NOCOPY NUMBER,
3452     px_parent_os          IN OUT NOCOPY VARCHAR2,
3453     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3454     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3455   ) IS
3456     l_msg_data            VARCHAR2(2000);
3457     l_msg_count           NUMBER;
3458     l_telex_obj           HZ_TELEX_CP_BO;
3459   BEGIN
3460     l_telex_obj := p_telex_obj;
3461     do_save_contact_point (
3462       p_init_msg_list      => fnd_api.g_true,
3463       p_validate_bo_flag   => p_validate_bo_flag,
3464       p_cp_id              => l_telex_obj.telex_id,
3465       p_cp_os              => l_telex_obj.orig_system,
3466       p_cp_osr             => l_telex_obj.orig_system_reference,
3467       p_phone_obj          => NULL,
3468       p_email_obj          => NULL,
3469       p_telex_obj          => l_telex_obj,
3470       p_web_obj            => NULL,
3471       p_edi_obj            => NULL,
3472       p_eft_obj            => NULL,
3473       p_sms_obj            => NULL,
3474       p_cp_pref_objs       => l_telex_obj.contact_pref_objs,
3475       p_cp_type            => 'TLX',
3476       p_created_by_module  => p_created_by_module,
3477       p_obj_source         => p_obj_source,
3478       x_return_status      => x_return_status,
3479       x_msg_count          => l_msg_count,
3480       x_msg_data           => l_msg_data,
3481       x_cp_id              => x_telex_id,
3482       x_cp_os              => x_telex_os,
3483       x_cp_osr             => x_telex_osr,
3484       px_parent_id         => px_parent_id,
3485       px_parent_os         => px_parent_os,
3486       px_parent_osr        => px_parent_osr,
3487       px_parent_obj_type   => px_parent_obj_type
3488     );
3489     l_telex_obj.telex_id := x_telex_id;
3490     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3491                     x_return_status   => x_return_status,
3492                     x_msg_count       => l_msg_count,
3493                     x_msg_data        => l_msg_data);
3494     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3495       x_return_obj := l_telex_obj;
3496     END IF;
3497   END save_telex_bo;
3498 
3499   -- PROCEDURE save_web_bo
3500   --
3501   -- DESCRIPTION
3502   --     Create or update a logical web contact point.
3503   PROCEDURE save_web_bo(
3504     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3505     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3506     p_web_obj             IN            HZ_WEB_CP_BO,
3507     p_created_by_module   IN            VARCHAR2,
3508     x_return_status       OUT NOCOPY    VARCHAR2,
3509     x_msg_count           OUT NOCOPY    NUMBER,
3510     x_msg_data            OUT NOCOPY    VARCHAR2,
3511     x_web_id              OUT NOCOPY    NUMBER,
3512     x_web_os              OUT NOCOPY    VARCHAR2,
3513     x_web_osr             OUT NOCOPY    VARCHAR2,
3514     px_parent_id          IN OUT NOCOPY NUMBER,
3515     px_parent_os          IN OUT NOCOPY VARCHAR2,
3516     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3517     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3518   ) IS
3519     l_web_obj             HZ_WEB_CP_BO;
3520   BEGIN
3521     l_web_obj := p_web_obj;
3522     do_save_contact_point (
3523       p_init_msg_list      => p_init_msg_list,
3524       p_validate_bo_flag   => p_validate_bo_flag,
3525       p_cp_id              => l_web_obj.web_id,
3526       p_cp_os              => l_web_obj.orig_system,
3530       p_telex_obj          => NULL,
3527       p_cp_osr             => l_web_obj.orig_system_reference,
3528       p_phone_obj          => NULL,
3529       p_email_obj          => NULL,
3531       p_web_obj            => l_web_obj,
3532       p_edi_obj            => NULL,
3533       p_eft_obj            => NULL,
3534       p_sms_obj            => NULL,
3535       p_cp_pref_objs       => l_web_obj.contact_pref_objs,
3536       p_cp_type            => 'WEB',
3537       p_created_by_module  => p_created_by_module,
3538       p_obj_source         => NULL,
3539       x_return_status      => x_return_status,
3540       x_msg_count          => x_msg_count,
3541       x_msg_data           => x_msg_data,
3542       x_cp_id              => x_web_id,
3543       x_cp_os              => x_web_os,
3544       x_cp_osr             => x_web_osr,
3545       px_parent_id         => px_parent_id,
3546       px_parent_os         => px_parent_os,
3547       px_parent_osr        => px_parent_osr,
3548       px_parent_obj_type   => px_parent_obj_type
3549     );
3550   END save_web_bo;
3551 
3552   PROCEDURE save_web_bo(
3553     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3554     p_web_obj             IN            HZ_WEB_CP_BO,
3555     p_created_by_module   IN            VARCHAR2,
3556     p_obj_source          IN            VARCHAR2 := null,
3557     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3558     x_return_status       OUT NOCOPY    VARCHAR2,
3559     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3560     x_return_obj          OUT NOCOPY    HZ_WEB_CP_BO,
3561     x_web_id              OUT NOCOPY    NUMBER,
3562     x_web_os              OUT NOCOPY    VARCHAR2,
3563     x_web_osr             OUT NOCOPY    VARCHAR2,
3564     px_parent_id          IN OUT NOCOPY NUMBER,
3565     px_parent_os          IN OUT NOCOPY VARCHAR2,
3566     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3567     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3568   ) IS
3569     l_msg_data            VARCHAR2(2000);
3570     l_msg_count           NUMBER;
3571     l_web_obj             HZ_WEB_CP_BO;
3572   BEGIN
3573     l_web_obj := p_web_obj;
3574     do_save_contact_point (
3575       p_init_msg_list      => fnd_api.g_true,
3576       p_validate_bo_flag   => p_validate_bo_flag,
3577       p_cp_id              => l_web_obj.web_id,
3578       p_cp_os              => l_web_obj.orig_system,
3579       p_cp_osr             => l_web_obj.orig_system_reference,
3580       p_phone_obj          => NULL,
3581       p_email_obj          => NULL,
3582       p_telex_obj          => NULL,
3583       p_web_obj            => l_web_obj,
3584       p_edi_obj            => NULL,
3585       p_eft_obj            => NULL,
3586       p_sms_obj            => NULL,
3587       p_cp_pref_objs       => l_web_obj.contact_pref_objs,
3588       p_cp_type            => 'WEB',
3589       p_created_by_module  => p_created_by_module,
3590       p_obj_source         => p_obj_source,
3591       x_return_status      => x_return_status,
3592       x_msg_count          => l_msg_count,
3593       x_msg_data           => l_msg_data,
3594       x_cp_id              => x_web_id,
3595       x_cp_os              => x_web_os,
3596       x_cp_osr             => x_web_osr,
3597       px_parent_id         => px_parent_id,
3598       px_parent_os         => px_parent_os,
3599       px_parent_osr        => px_parent_osr,
3600       px_parent_obj_type   => px_parent_obj_type
3601     );
3602     l_web_obj.web_id := x_web_id;
3603     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3604                     x_return_status   => x_return_status,
3605                     x_msg_count       => l_msg_count,
3606                     x_msg_data        => l_msg_data);
3607     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3608       x_return_obj := l_web_obj;
3609     END IF;
3610   END save_web_bo;
3611 
3612   -- PROCEDURE save_edi_bo
3613   --
3614   -- DESCRIPTION
3615   --     Create or update a logical edi contact point.
3616   PROCEDURE save_edi_bo(
3617     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3618     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3619     p_edi_obj             IN            HZ_EDI_CP_BO,
3620     p_created_by_module   IN            VARCHAR2,
3621     x_return_status       OUT NOCOPY    VARCHAR2,
3622     x_msg_count           OUT NOCOPY    NUMBER,
3623     x_msg_data            OUT NOCOPY    VARCHAR2,
3624     x_edi_id              OUT NOCOPY    NUMBER,
3625     x_edi_os              OUT NOCOPY    VARCHAR2,
3626     x_edi_osr             OUT NOCOPY    VARCHAR2,
3627     px_parent_id          IN OUT NOCOPY NUMBER,
3628     px_parent_os          IN OUT NOCOPY VARCHAR2,
3629     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3630     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3631   ) IS
3632     l_edi_obj             HZ_EDI_CP_BO;
3633   BEGIN
3634     l_edi_obj := p_edi_obj;
3635     do_save_contact_point (
3636       p_init_msg_list      => p_init_msg_list,
3637       p_validate_bo_flag   => p_validate_bo_flag,
3638       p_cp_id              => l_edi_obj.edi_id,
3639       p_cp_os              => l_edi_obj.orig_system,
3640       p_cp_osr             => l_edi_obj.orig_system_reference,
3641       p_phone_obj          => NULL,
3642       p_email_obj          => NULL,
3643       p_telex_obj          => NULL,
3644       p_web_obj            => NULL,
3645       p_edi_obj            => l_edi_obj,
3646       p_eft_obj            => NULL,
3647       p_sms_obj            => NULL,
3648       p_cp_pref_objs       => l_edi_obj.contact_pref_objs,
3649       p_cp_type            => 'EDI',
3650       p_created_by_module  => p_created_by_module,
3651       p_obj_source         => NULL,
3652       x_return_status      => x_return_status,
3653       x_msg_count          => x_msg_count,
3654       x_msg_data           => x_msg_data,
3655       x_cp_id              => x_edi_id,
3659       px_parent_os         => px_parent_os,
3656       x_cp_os              => x_edi_os,
3657       x_cp_osr             => x_edi_osr,
3658       px_parent_id         => px_parent_id,
3660       px_parent_osr        => px_parent_osr,
3661       px_parent_obj_type   => px_parent_obj_type
3662     );
3663   END save_edi_bo;
3664 
3665   PROCEDURE save_edi_bo(
3666     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3667     p_edi_obj             IN            HZ_EDI_CP_BO,
3668     p_created_by_module   IN            VARCHAR2,
3669     p_obj_source          IN            VARCHAR2 := null,
3670     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3671     x_return_status       OUT NOCOPY    VARCHAR2,
3672     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3673     x_return_obj          OUT NOCOPY    HZ_EDI_CP_BO,
3674     x_edi_id              OUT NOCOPY    NUMBER,
3675     x_edi_os              OUT NOCOPY    VARCHAR2,
3676     x_edi_osr             OUT NOCOPY    VARCHAR2,
3677     px_parent_id          IN OUT NOCOPY NUMBER,
3678     px_parent_os          IN OUT NOCOPY VARCHAR2,
3679     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3680     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3681   ) IS
3682     l_msg_data            VARCHAR2(2000);
3683     l_msg_count           NUMBER;
3684     l_edi_obj             HZ_EDI_CP_BO;
3685   BEGIN
3686     l_edi_obj := p_edi_obj;
3687     do_save_contact_point (
3688       p_init_msg_list      => fnd_api.g_true,
3689       p_validate_bo_flag   => p_validate_bo_flag,
3690       p_cp_id              => l_edi_obj.edi_id,
3691       p_cp_os              => l_edi_obj.orig_system,
3692       p_cp_osr             => l_edi_obj.orig_system_reference,
3693       p_phone_obj          => NULL,
3694       p_email_obj          => NULL,
3695       p_telex_obj          => NULL,
3696       p_web_obj            => NULL,
3697       p_edi_obj            => l_edi_obj,
3698       p_eft_obj            => NULL,
3699       p_sms_obj            => NULL,
3700       p_cp_pref_objs       => l_edi_obj.contact_pref_objs,
3701       p_cp_type            => 'EDI',
3702       p_created_by_module  => p_created_by_module,
3703       p_obj_source         => p_obj_source,
3704       x_return_status      => x_return_status,
3705       x_msg_count          => l_msg_count,
3706       x_msg_data           => l_msg_data,
3707       x_cp_id              => x_edi_id,
3708       x_cp_os              => x_edi_os,
3709       x_cp_osr             => x_edi_osr,
3710       px_parent_id         => px_parent_id,
3711       px_parent_os         => px_parent_os,
3712       px_parent_osr        => px_parent_osr,
3713       px_parent_obj_type   => px_parent_obj_type
3714     );
3715     l_edi_obj.edi_id := x_edi_id;
3716     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3717                     x_return_status   => x_return_status,
3718                     x_msg_count       => l_msg_count,
3719                     x_msg_data        => l_msg_data);
3720     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3721       x_return_obj := l_edi_obj;
3722     END IF;
3723   END save_edi_bo;
3724 
3725   -- PROCEDURE save_eft_bo
3726   --
3727   -- DESCRIPTION
3728   --     Create or update a logical eft contact point.
3729   PROCEDURE save_eft_bo(
3730     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3731     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3732     p_eft_obj             IN            HZ_EFT_CP_BO,
3733     p_created_by_module   IN            VARCHAR2,
3734     x_return_status       OUT NOCOPY    VARCHAR2,
3735     x_msg_count           OUT NOCOPY    NUMBER,
3736     x_msg_data            OUT NOCOPY    VARCHAR2,
3737     x_eft_id              OUT NOCOPY    NUMBER,
3738     x_eft_os              OUT NOCOPY    VARCHAR2,
3739     x_eft_osr             OUT NOCOPY    VARCHAR2,
3740     px_parent_id          IN OUT NOCOPY NUMBER,
3741     px_parent_os          IN OUT NOCOPY VARCHAR2,
3742     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3743     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3744   ) IS
3745     l_eft_obj             HZ_EFT_CP_BO;
3746   BEGIN
3747     l_eft_obj := p_eft_obj;
3748     do_save_contact_point (
3749       p_init_msg_list      => p_init_msg_list,
3750       p_validate_bo_flag   => p_validate_bo_flag,
3751       p_cp_id              => l_eft_obj.eft_id,
3752       p_cp_os              => l_eft_obj.orig_system,
3753       p_cp_osr             => l_eft_obj.orig_system_reference,
3754       p_phone_obj          => NULL,
3755       p_email_obj          => NULL,
3756       p_telex_obj          => NULL,
3757       p_web_obj            => NULL,
3758       p_edi_obj            => NULL,
3759       p_eft_obj            => l_eft_obj,
3760       p_sms_obj            => NULL,
3761       p_cp_pref_objs       => l_eft_obj.contact_pref_objs,
3762       p_cp_type            => 'EFT',
3763       p_created_by_module  => p_created_by_module,
3764       p_obj_source         => NULL,
3765       x_return_status      => x_return_status,
3766       x_msg_count          => x_msg_count,
3767       x_msg_data           => x_msg_data,
3768       x_cp_id              => x_eft_id,
3769       x_cp_os              => x_eft_os,
3770       x_cp_osr             => x_eft_osr,
3771       px_parent_id         => px_parent_id,
3772       px_parent_os         => px_parent_os,
3773       px_parent_osr        => px_parent_osr,
3774       px_parent_obj_type   => px_parent_obj_type
3775     );
3776   END save_eft_bo;
3777 
3778   PROCEDURE save_eft_bo(
3779     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3780     p_eft_obj             IN            HZ_EFT_CP_BO,
3781     p_created_by_module   IN            VARCHAR2,
3782     p_obj_source          IN            VARCHAR2 := null,
3783     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3784     x_return_status       OUT NOCOPY    VARCHAR2,
3788     x_eft_os              OUT NOCOPY    VARCHAR2,
3785     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3786     x_return_obj          OUT NOCOPY    HZ_EFT_CP_BO,
3787     x_eft_id              OUT NOCOPY    NUMBER,
3789     x_eft_osr             OUT NOCOPY    VARCHAR2,
3790     px_parent_id          IN OUT NOCOPY NUMBER,
3791     px_parent_os          IN OUT NOCOPY VARCHAR2,
3792     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3793     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3794   ) IS
3795     l_msg_data            VARCHAR2(2000);
3796     l_msg_count           NUMBER;
3797     l_eft_obj             HZ_EFT_CP_BO;
3798   BEGIN
3799     l_eft_obj := p_eft_obj;
3800     do_save_contact_point (
3801       p_init_msg_list      => fnd_api.g_true,
3802       p_validate_bo_flag   => p_validate_bo_flag,
3803       p_cp_id              => l_eft_obj.eft_id,
3804       p_cp_os              => l_eft_obj.orig_system,
3805       p_cp_osr             => l_eft_obj.orig_system_reference,
3806       p_phone_obj          => NULL,
3807       p_email_obj          => NULL,
3808       p_telex_obj          => NULL,
3809       p_web_obj            => NULL,
3810       p_edi_obj            => NULL,
3811       p_eft_obj            => l_eft_obj,
3812       p_sms_obj            => NULL,
3813       p_cp_pref_objs       => l_eft_obj.contact_pref_objs,
3814       p_cp_type            => 'EFT',
3815       p_created_by_module  => p_created_by_module,
3816       p_obj_source         => p_obj_source,
3817       x_return_status      => x_return_status,
3818       x_msg_count          => l_msg_count,
3819       x_msg_data           => l_msg_data,
3820       x_cp_id              => x_eft_id,
3821       x_cp_os              => x_eft_os,
3822       x_cp_osr             => x_eft_osr,
3823       px_parent_id         => px_parent_id,
3824       px_parent_os         => px_parent_os,
3825       px_parent_osr        => px_parent_osr,
3826       px_parent_obj_type   => px_parent_obj_type
3827     );
3828     l_eft_obj.eft_id := x_eft_id;
3829     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3830                     x_return_status   => x_return_status,
3831                     x_msg_count       => l_msg_count,
3832                     x_msg_data        => l_msg_data);
3833     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3834       x_return_obj := l_eft_obj;
3835     END IF;
3836   END save_eft_bo;
3837 
3838   -- PROCEDURE save_sms_bo
3839   --
3840   -- DESCRIPTION
3841   --     Create or update a logical sms contact point.
3842   PROCEDURE save_sms_bo(
3843     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3844     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3845     p_sms_obj             IN            HZ_SMS_CP_BO,
3846     p_created_by_module   IN            VARCHAR2,
3847     x_return_status       OUT NOCOPY    VARCHAR2,
3848     x_msg_count           OUT NOCOPY    NUMBER,
3849     x_msg_data            OUT NOCOPY    VARCHAR2,
3850     x_sms_id              OUT NOCOPY    NUMBER,
3851     x_sms_os              OUT NOCOPY    VARCHAR2,
3852     x_sms_osr             OUT NOCOPY    VARCHAR2,
3853     px_parent_id          IN OUT NOCOPY NUMBER,
3854     px_parent_os          IN OUT NOCOPY VARCHAR2,
3855     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3856     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3857   ) IS
3858     l_sms_obj             HZ_SMS_CP_BO;
3859   BEGIN
3860     l_sms_obj := p_sms_obj;
3861     do_save_contact_point (
3862       p_init_msg_list      => p_init_msg_list,
3863       p_validate_bo_flag   => p_validate_bo_flag,
3864       p_cp_id              => l_sms_obj.sms_id,
3865       p_cp_os              => l_sms_obj.orig_system,
3866       p_cp_osr             => l_sms_obj.orig_system_reference,
3867       p_phone_obj          => NULL,
3868       p_email_obj          => NULL,
3869       p_telex_obj          => NULL,
3870       p_web_obj            => NULL,
3871       p_edi_obj            => NULL,
3872       p_eft_obj            => NULL,
3873       p_sms_obj            => l_sms_obj,
3874       p_cp_pref_objs       => l_sms_obj.contact_pref_objs,
3875       p_cp_type            => 'SMS',
3876       p_created_by_module  => p_created_by_module,
3877       p_obj_source         => NULL,
3878       x_return_status      => x_return_status,
3879       x_msg_count          => x_msg_count,
3880       x_msg_data           => x_msg_data,
3881       x_cp_id              => x_sms_id,
3882       x_cp_os              => x_sms_os,
3883       x_cp_osr             => x_sms_osr,
3884       px_parent_id         => px_parent_id,
3885       px_parent_os         => px_parent_os,
3886       px_parent_osr        => px_parent_osr,
3887       px_parent_obj_type   => px_parent_obj_type
3888     );
3889   END save_sms_bo;
3890 
3891   PROCEDURE save_sms_bo(
3892     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3893     p_sms_obj             IN            HZ_SMS_CP_BO,
3894     p_created_by_module   IN            VARCHAR2,
3895     p_obj_source          IN            VARCHAR2 := null,
3896     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3897     x_return_status       OUT NOCOPY    VARCHAR2,
3898     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3899     x_return_obj          OUT NOCOPY    HZ_SMS_CP_BO,
3900     x_sms_id              OUT NOCOPY    NUMBER,
3901     x_sms_os              OUT NOCOPY    VARCHAR2,
3902     x_sms_osr             OUT NOCOPY    VARCHAR2,
3903     px_parent_id          IN OUT NOCOPY NUMBER,
3904     px_parent_os          IN OUT NOCOPY VARCHAR2,
3905     px_parent_osr         IN OUT NOCOPY VARCHAR2,
3906     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
3907   ) IS
3908     l_msg_data            VARCHAR2(2000);
3909     l_msg_count           NUMBER;
3910     l_sms_obj             HZ_SMS_CP_BO;
3911   BEGIN
3912     l_sms_obj := p_sms_obj;
3913     do_save_contact_point (
3917       p_cp_os              => l_sms_obj.orig_system,
3914       p_init_msg_list      => fnd_api.g_true,
3915       p_validate_bo_flag   => p_validate_bo_flag,
3916       p_cp_id              => l_sms_obj.sms_id,
3918       p_cp_osr             => l_sms_obj.orig_system_reference,
3919       p_phone_obj          => NULL,
3920       p_email_obj          => NULL,
3921       p_telex_obj          => NULL,
3922       p_web_obj            => NULL,
3923       p_edi_obj            => NULL,
3924       p_eft_obj            => NULL,
3925       p_sms_obj            => l_sms_obj,
3926       p_cp_pref_objs       => l_sms_obj.contact_pref_objs,
3927       p_cp_type            => 'SMS',
3928       p_created_by_module  => p_created_by_module,
3929       p_obj_source         => p_obj_source,
3930       x_return_status      => x_return_status,
3931       x_msg_count          => l_msg_count,
3932       x_msg_data           => l_msg_data,
3933       x_cp_id              => x_sms_id,
3934       x_cp_os              => x_sms_os,
3935       x_cp_osr             => x_sms_osr,
3936       px_parent_id         => px_parent_id,
3937       px_parent_os         => px_parent_os,
3938       px_parent_osr        => px_parent_osr,
3939       px_parent_obj_type   => px_parent_obj_type
3940     );
3941     l_sms_obj.sms_id := x_sms_id;
3942     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3943                     x_return_status   => x_return_status,
3944                     x_msg_count       => l_msg_count,
3945                     x_msg_data        => l_msg_data);
3946     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3947       x_return_obj := l_sms_obj;
3948     END IF;
3949   END save_sms_bo;
3950 
3951   -- PRIVATE PROCEDURE do_save_contact_point
3952   --
3953   -- DESCRIPTION
3954   --     Save contact point.
3955   PROCEDURE do_save_contact_point (
3956     p_init_msg_list              IN     VARCHAR2:= FND_API.G_FALSE,
3957     p_validate_bo_flag           IN     VARCHAR2 := fnd_api.g_true,
3958     p_cp_id                      IN     NUMBER,
3959     p_cp_os                      IN     VARCHAR2,
3960     p_cp_osr                     IN     VARCHAR2,
3961     p_phone_obj                  IN HZ_PHONE_CP_BO,
3962     p_email_obj                  IN HZ_EMAIL_CP_BO,
3963     p_telex_obj                  IN HZ_TELEX_CP_BO,
3964     p_web_obj                    IN HZ_WEB_CP_BO,
3965     p_edi_obj                    IN HZ_EDI_CP_BO,
3966     p_eft_obj                    IN HZ_EFT_CP_BO,
3967     p_sms_obj                    IN HZ_SMS_CP_BO,
3968     p_cp_pref_objs               IN OUT NOCOPY    HZ_CONTACT_PREF_OBJ_TBL,
3969     p_cp_type                    IN     VARCHAR2,
3970     p_created_by_module          IN     VARCHAR2,
3971     p_obj_source                 IN     VARCHAR2 := null,
3972     x_return_status              OUT    NOCOPY VARCHAR2,
3973     x_msg_count                  OUT    NOCOPY NUMBER,
3974     x_msg_data                   OUT    NOCOPY VARCHAR2,
3975     x_cp_id                      OUT    NOCOPY NUMBER,
3976     x_cp_os                      OUT    NOCOPY VARCHAR2,
3977     x_cp_osr                     OUT    NOCOPY VARCHAR2,
3978     px_parent_id                 IN OUT NOCOPY NUMBER,
3979     px_parent_os                 IN OUT NOCOPY VARCHAR2,
3980     px_parent_osr                IN OUT NOCOPY VARCHAR2,
3981     px_parent_obj_type           IN OUT NOCOPY VARCHAR2
3982   ) IS
3983     l_return_status            VARCHAR2(30);
3984     l_msg_count                NUMBER;
3985     l_msg_data                 VARCHAR2(2000);
3986     l_create_update_flag       VARCHAR2(1);
3987     l_debug_prefix             VARCHAR2(30);
3988     l_parent_table             VARCHAR2(30);
3989   BEGIN
3990     -- initialize API return status to success.
3991     x_return_status := FND_API.G_RET_STS_SUCCESS;
3992 
3993     -- Initialize message list if p_init_msg_list is set to TRUE
3994     IF FND_API.to_Boolean(p_init_msg_list) THEN
3995       FND_MSG_PUB.initialize;
3996     END IF;
3997 
3998     -- Debug info.
3999     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4000         hz_utility_v2pub.debug(p_message=>'do_save_contact_point(+)',
4001                                p_prefix=>l_debug_prefix,
4002                                p_msg_level=>fnd_log.level_procedure);
4003     END IF;
4004 
4005     -- initialize Global variable
4006     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
4007     IF(p_created_by_module IS NULL) THEN
4008       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
4009     ELSE
4010       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
4011     END IF;
4012 
4013     -- get contact point id and os+osr
4014     x_cp_id := p_cp_id;
4015     x_cp_os := p_cp_os;
4016     x_cp_osr := p_cp_osr;
4017 
4018     -- check root business object to determine that it should be
4019     -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
4020     l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
4021                               p_entity_id      => x_cp_id,
4022                               p_entity_os      => x_cp_os,
4023                               p_entity_osr     => x_cp_osr,
4024                               p_entity_type    => 'HZ_CONTACT_POINTS',
4025                               p_cp_type        => p_cp_type,
4026                               p_parent_id      => px_parent_id,
4027                               p_parent_obj_type => px_parent_obj_type);
4028 
4029     IF(l_create_update_flag = 'E') THEN
4030       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
4031       FND_MESSAGE.SET_TOKEN('OBJECT', p_cp_type);
4032       FND_MSG_PUB.ADD;
4033       RAISE FND_API.G_EXC_ERROR;
4034     END IF;
4035 
4036     -- base on different contact point type to pass in different object
4037     -- and call create or update
4038     CASE
4039       WHEN p_cp_type = 'PHONE' THEN
4040         IF(l_create_update_flag = 'C') THEN
4044             p_cp_os              => p_cp_os,
4041           do_create_contact_point (
4042             p_validate_bo_flag   => p_validate_bo_flag,
4043             p_cp_id              => p_cp_id,
4045             p_cp_osr             => p_cp_osr,
4046             p_phone_obj          => p_phone_obj,
4047             p_email_obj          => NULL,
4048             p_telex_obj          => NULL,
4049             p_web_obj            => NULL,
4050             p_edi_obj            => NULL,
4051             p_eft_obj            => NULL,
4052             p_sms_obj            => NULL,
4053             p_cp_pref_objs       => p_cp_pref_objs,
4054             p_cp_type            => p_cp_type,
4055             p_created_by_module  => p_created_by_module,
4056             p_obj_source         => p_obj_source,
4057             x_return_status      => x_return_status,
4058             x_msg_count          => x_msg_count,
4059             x_msg_data           => x_msg_data,
4060             x_cp_id              => x_cp_id,
4061             x_cp_os              => x_cp_os,
4062             x_cp_osr             => x_cp_osr,
4063             px_parent_id         => px_parent_id,
4064             px_parent_os         => px_parent_os,
4065             px_parent_osr        => px_parent_osr,
4066             px_parent_obj_type   => px_parent_obj_type
4067           );
4068         ELSIF(l_create_update_flag = 'U') THEN
4069           do_update_contact_point (
4070             p_cp_id              => p_cp_id,
4071             p_cp_os              => p_cp_os,
4072             p_cp_osr             => p_cp_osr,
4073             p_phone_obj          => p_phone_obj,
4074             p_email_obj          => NULL,
4075             p_telex_obj          => NULL,
4076             p_web_obj            => NULL,
4077             p_edi_obj            => NULL,
4078             p_eft_obj            => NULL,
4079             p_sms_obj            => NULL,
4080             p_cp_pref_objs       => p_cp_pref_objs,
4081             p_cp_type            => p_cp_type,
4082             p_created_by_module  => p_created_by_module,
4083             p_obj_source         => p_obj_source,
4084             x_return_status      => x_return_status,
4085             x_msg_count          => x_msg_count,
4086             x_msg_data           => x_msg_data,
4087             x_cp_id              => x_cp_id,
4088             x_cp_os              => x_cp_os,
4089             x_cp_osr             => x_cp_osr,
4090             p_parent_os          => px_parent_os);
4091         ELSE
4092           RAISE FND_API.G_EXC_ERROR;
4093         END IF;
4094       WHEN p_cp_type = 'EMAIL' THEN
4095         IF(l_create_update_flag = 'C') THEN
4096           do_create_contact_point (
4097             p_validate_bo_flag   => p_validate_bo_flag,
4098             p_cp_id              => p_cp_id,
4099             p_cp_os              => p_cp_os,
4100             p_cp_osr             => p_cp_osr,
4101             p_phone_obj          => NULL,
4102             p_email_obj          => p_email_obj,
4103             p_telex_obj          => NULL,
4104             p_web_obj            => NULL,
4105             p_edi_obj            => NULL,
4106             p_eft_obj            => NULL,
4107             p_sms_obj            => NULL,
4108             p_cp_pref_objs       => p_cp_pref_objs,
4109             p_cp_type            => p_cp_type,
4110             p_created_by_module  => p_created_by_module,
4111             p_obj_source         => p_obj_source,
4112             x_return_status      => x_return_status,
4113             x_msg_count          => x_msg_count,
4114             x_msg_data           => x_msg_data,
4115             x_cp_id              => x_cp_id,
4116             x_cp_os              => x_cp_os,
4117             x_cp_osr             => x_cp_osr,
4118             px_parent_id         => px_parent_id,
4119             px_parent_os         => px_parent_os,
4120             px_parent_osr        => px_parent_osr,
4121             px_parent_obj_type   => px_parent_obj_type
4122           );
4123         ELSIF(l_create_update_flag = 'U') THEN
4124           do_update_contact_point (
4125             p_cp_id              => p_cp_id,
4126             p_cp_os              => p_cp_os,
4127             p_cp_osr             => p_cp_osr,
4128             p_phone_obj          => NULL,
4129             p_email_obj          => p_email_obj,
4130             p_telex_obj          => NULL,
4131             p_web_obj            => NULL,
4132             p_edi_obj            => NULL,
4133             p_eft_obj            => NULL,
4134             p_sms_obj            => NULL,
4135             p_cp_pref_objs       => p_cp_pref_objs,
4136             p_cp_type            => p_cp_type,
4137             p_created_by_module  => p_created_by_module,
4138             p_obj_source         => p_obj_source,
4139             x_return_status      => x_return_status,
4140             x_msg_count          => x_msg_count,
4141             x_msg_data           => x_msg_data,
4142             x_cp_id              => x_cp_id,
4143             x_cp_os              => x_cp_os,
4144             x_cp_osr             => x_cp_osr,
4145             p_parent_os          => px_parent_os);
4146         ELSE
4147           RAISE FND_API.G_EXC_ERROR;
4148         END IF;
4149       WHEN p_cp_type = 'TLX' THEN
4150         IF(l_create_update_flag = 'C') THEN
4151           do_create_contact_point (
4152             p_validate_bo_flag   => p_validate_bo_flag,
4153             p_cp_id              => p_cp_id,
4154             p_cp_os              => p_cp_os,
4155             p_cp_osr             => p_cp_osr,
4156             p_phone_obj          => NULL,
4157             p_email_obj          => NULL,
4158             p_telex_obj          => p_telex_obj,
4159             p_web_obj            => NULL,
4160             p_edi_obj            => NULL,
4161             p_eft_obj            => NULL,
4162             p_sms_obj            => NULL,
4166             p_obj_source         => p_obj_source,
4163             p_cp_pref_objs       => p_cp_pref_objs,
4164             p_cp_type            => p_cp_type,
4165             p_created_by_module  => p_created_by_module,
4167             x_return_status      => x_return_status,
4168             x_msg_count          => x_msg_count,
4169             x_msg_data           => x_msg_data,
4170             x_cp_id              => x_cp_id,
4171             x_cp_os              => x_cp_os,
4172             x_cp_osr             => x_cp_osr,
4173             px_parent_id         => px_parent_id,
4174             px_parent_os         => px_parent_os,
4175             px_parent_osr        => px_parent_osr,
4176             px_parent_obj_type   => px_parent_obj_type
4177           );
4178         ELSIF(l_create_update_flag = 'U') THEN
4179           do_update_contact_point (
4180             p_cp_id              => p_cp_id,
4181             p_cp_os              => p_cp_os,
4182             p_cp_osr             => p_cp_osr,
4183             p_phone_obj          => NULL,
4184             p_email_obj          => NULL,
4185             p_telex_obj          => p_telex_obj,
4186             p_web_obj            => NULL,
4187             p_edi_obj            => NULL,
4188             p_eft_obj            => NULL,
4189             p_sms_obj            => NULL,
4190             p_cp_pref_objs       => p_cp_pref_objs,
4191             p_cp_type            => p_cp_type,
4192             p_created_by_module  => p_created_by_module,
4193             p_obj_source         => p_obj_source,
4194             x_return_status      => x_return_status,
4195             x_msg_count          => x_msg_count,
4196             x_msg_data           => x_msg_data,
4197             x_cp_id              => x_cp_id,
4198             x_cp_os              => x_cp_os,
4199             x_cp_osr             => x_cp_osr,
4200             p_parent_os          => px_parent_os);
4201         ELSE
4202           RAISE FND_API.G_EXC_ERROR;
4203         END IF;
4204       WHEN p_cp_type = 'WEB' THEN
4205         IF(l_create_update_flag = 'C') THEN
4206           do_create_contact_point (
4207             p_validate_bo_flag   => p_validate_bo_flag,
4208             p_cp_id              => p_cp_id,
4209             p_cp_os              => p_cp_os,
4210             p_cp_osr             => p_cp_osr,
4211             p_phone_obj          => NULL,
4212             p_email_obj          => NULL,
4213             p_telex_obj          => NULL,
4214             p_web_obj            => p_web_obj,
4215             p_edi_obj            => NULL,
4216             p_eft_obj            => NULL,
4217             p_sms_obj            => NULL,
4218             p_cp_pref_objs       => p_cp_pref_objs,
4219             p_cp_type            => p_cp_type,
4220             p_created_by_module  => p_created_by_module,
4221             p_obj_source         => p_obj_source,
4222             x_return_status      => x_return_status,
4223             x_msg_count          => x_msg_count,
4224             x_msg_data           => x_msg_data,
4225             x_cp_id              => x_cp_id,
4226             x_cp_os              => x_cp_os,
4227             x_cp_osr             => x_cp_osr,
4228             px_parent_id         => px_parent_id,
4229             px_parent_os         => px_parent_os,
4230             px_parent_osr        => px_parent_osr,
4231             px_parent_obj_type   => px_parent_obj_type
4232           );
4233         ELSIF(l_create_update_flag = 'U') THEN
4234           do_update_contact_point (
4235             p_cp_id              => p_cp_id,
4236             p_cp_os              => p_cp_os,
4237             p_cp_osr             => p_cp_osr,
4238             p_phone_obj          => NULL,
4239             p_email_obj          => NULL,
4240             p_telex_obj          => NULL,
4241             p_web_obj            => p_web_obj,
4242             p_edi_obj            => NULL,
4243             p_eft_obj            => NULL,
4244             p_sms_obj            => NULL,
4245             p_cp_pref_objs       => p_cp_pref_objs,
4246             p_cp_type            => p_cp_type,
4247             p_created_by_module  => p_created_by_module,
4248             p_obj_source         => p_obj_source,
4249             x_return_status      => x_return_status,
4250             x_msg_count          => x_msg_count,
4251             x_msg_data           => x_msg_data,
4252             x_cp_id              => x_cp_id,
4253             x_cp_os              => x_cp_os,
4254             x_cp_osr             => x_cp_osr,
4255             p_parent_os          => px_parent_os);
4256         ELSE
4257           RAISE FND_API.G_EXC_ERROR;
4258         END IF;
4259       WHEN p_cp_type = 'EDI' THEN
4260         IF(l_create_update_flag = 'C') THEN
4261           do_create_contact_point (
4262             p_validate_bo_flag   => p_validate_bo_flag,
4263             p_cp_id              => p_cp_id,
4264             p_cp_os              => p_cp_os,
4265             p_cp_osr             => p_cp_osr,
4266             p_phone_obj          => NULL,
4267             p_email_obj          => NULL,
4268             p_telex_obj          => NULL,
4269             p_web_obj            => NULL,
4270             p_edi_obj            => p_edi_obj,
4271             p_eft_obj            => NULL,
4272             p_sms_obj            => NULL,
4273             p_cp_pref_objs       => p_cp_pref_objs,
4274             p_cp_type            => p_cp_type,
4275             p_created_by_module  => p_created_by_module,
4276             p_obj_source         => p_obj_source,
4277             x_return_status      => x_return_status,
4278             x_msg_count          => x_msg_count,
4279             x_msg_data           => x_msg_data,
4280             x_cp_id              => x_cp_id,
4281             x_cp_os              => x_cp_os,
4282             x_cp_osr             => x_cp_osr,
4283             px_parent_id         => px_parent_id,
4287           );
4284             px_parent_os         => px_parent_os,
4285             px_parent_osr        => px_parent_osr,
4286             px_parent_obj_type   => px_parent_obj_type
4288         ELSIF(l_create_update_flag = 'U') THEN
4289           do_update_contact_point (
4290             p_cp_id              => p_cp_id,
4291             p_cp_os              => p_cp_os,
4292             p_cp_osr             => p_cp_osr,
4293             p_phone_obj          => NULL,
4294             p_email_obj          => NULL,
4295             p_telex_obj          => NULL,
4296             p_web_obj            => NULL,
4297             p_edi_obj            => p_edi_obj,
4298             p_eft_obj            => NULL,
4299             p_sms_obj            => NULL,
4300             p_cp_pref_objs       => p_cp_pref_objs,
4301             p_cp_type            => p_cp_type,
4302             p_created_by_module  => p_created_by_module,
4303             p_obj_source         => p_obj_source,
4304             x_return_status      => x_return_status,
4305             x_msg_count          => x_msg_count,
4306             x_msg_data           => x_msg_data,
4307             x_cp_id              => x_cp_id,
4308             x_cp_os              => x_cp_os,
4309             x_cp_osr             => x_cp_osr,
4310             p_parent_os          => px_parent_os);
4311         ELSE
4312           RAISE FND_API.G_EXC_ERROR;
4313         END IF;
4314       WHEN p_cp_type = 'EFT' THEN
4315         IF(l_create_update_flag = 'C') THEN
4316           do_create_contact_point (
4317             p_validate_bo_flag   => p_validate_bo_flag,
4318             p_cp_id              => p_cp_id,
4319             p_cp_os              => p_cp_os,
4320             p_cp_osr             => p_cp_osr,
4321             p_phone_obj          => NULL,
4322             p_email_obj          => NULL,
4323             p_telex_obj          => NULL,
4324             p_web_obj            => NULL,
4325             p_edi_obj            => NULL,
4326             p_eft_obj            => p_eft_obj,
4327             p_sms_obj            => NULL,
4328             p_cp_pref_objs       => p_cp_pref_objs,
4329             p_cp_type            => p_cp_type,
4330             p_created_by_module  => p_created_by_module,
4331             p_obj_source         => p_obj_source,
4332             x_return_status      => x_return_status,
4333             x_msg_count          => x_msg_count,
4334             x_msg_data           => x_msg_data,
4335             x_cp_id              => x_cp_id,
4336             x_cp_os              => x_cp_os,
4337             x_cp_osr             => x_cp_osr,
4338             px_parent_id         => px_parent_id,
4339             px_parent_os         => px_parent_os,
4340             px_parent_osr        => px_parent_osr,
4341             px_parent_obj_type   => px_parent_obj_type
4342           );
4343         ELSIF(l_create_update_flag = 'U') THEN
4344           do_update_contact_point (
4345             p_cp_id              => p_cp_id,
4346             p_cp_os              => p_cp_os,
4347             p_cp_osr             => p_cp_osr,
4348             p_phone_obj          => NULL,
4349             p_email_obj          => NULL,
4350             p_telex_obj          => NULL,
4351             p_web_obj            => NULL,
4352             p_edi_obj            => NULL,
4353             p_eft_obj            => p_eft_obj,
4354             p_sms_obj            => NULL,
4355             p_cp_pref_objs       => p_cp_pref_objs,
4356             p_cp_type            => p_cp_type,
4357             p_created_by_module  => p_created_by_module,
4358             p_obj_source         => p_obj_source,
4359             x_return_status      => x_return_status,
4360             x_msg_count          => x_msg_count,
4361             x_msg_data           => x_msg_data,
4362             x_cp_id              => x_cp_id,
4363             x_cp_os              => x_cp_os,
4364             x_cp_osr             => x_cp_osr,
4365             p_parent_os          => px_parent_os);
4366         ELSE
4367           RAISE FND_API.G_EXC_ERROR;
4368         END IF;
4369       WHEN p_cp_type = 'SMS' THEN
4370         IF(l_create_update_flag = 'C') THEN
4371           do_create_contact_point (
4372             p_validate_bo_flag   => p_validate_bo_flag,
4373             p_cp_id              => p_cp_id,
4374             p_cp_os              => p_cp_os,
4375             p_cp_osr             => p_cp_osr,
4376             p_phone_obj          => NULL,
4377             p_email_obj          => NULL,
4378             p_telex_obj          => NULL,
4379             p_web_obj            => NULL,
4380             p_edi_obj            => NULL,
4381             p_eft_obj            => NULL,
4382             p_sms_obj            => p_sms_obj,
4383             p_cp_pref_objs       => p_cp_pref_objs,
4384             p_cp_type            => p_cp_type,
4385             p_created_by_module  => p_created_by_module,
4386             p_obj_source         => p_obj_source,
4387             x_return_status      => x_return_status,
4388             x_msg_count          => x_msg_count,
4389             x_msg_data           => x_msg_data,
4390             x_cp_id              => x_cp_id,
4391             x_cp_os              => x_cp_os,
4392             x_cp_osr             => x_cp_osr,
4393             px_parent_id         => px_parent_id,
4394             px_parent_os         => px_parent_os,
4395             px_parent_osr        => px_parent_osr,
4396             px_parent_obj_type   => px_parent_obj_type
4397           );
4398         ELSIF(l_create_update_flag = 'U') THEN
4399           do_update_contact_point (
4400             p_cp_id              => p_cp_id,
4401             p_cp_os              => p_cp_os,
4402             p_cp_osr             => p_cp_osr,
4403             p_phone_obj          => NULL,
4404             p_email_obj          => NULL,
4405             p_telex_obj          => NULL,
4406             p_web_obj            => NULL,
4410             p_cp_pref_objs       => p_cp_pref_objs,
4407             p_edi_obj            => NULL,
4408             p_eft_obj            => NULL,
4409             p_sms_obj            => p_sms_obj,
4411             p_cp_type            => p_cp_type,
4412             p_created_by_module  => p_created_by_module,
4413             p_obj_source         => p_obj_source,
4414             x_return_status      => x_return_status,
4415             x_msg_count          => x_msg_count,
4416             x_msg_data           => x_msg_data,
4417             x_cp_id              => x_cp_id,
4418             x_cp_os              => x_cp_os,
4419             x_cp_osr             => x_cp_osr,
4420             p_parent_os          => px_parent_os);
4421         ELSE
4422           RAISE FND_API.G_EXC_ERROR;
4423         END IF;
4424     END CASE;
4425 
4426     IF(x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
4427       RAISE FND_API.G_EXC_ERROR;
4428     END IF;
4429 
4430     -- reset Global variable
4431     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
4432     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
4433 
4434     -- Debug info.
4435     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4436          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4437                                p_msg_data=>x_msg_data,
4438                                p_msg_type=>'WARNING',
4439                                p_msg_level=>fnd_log.level_exception);
4440     END IF;
4441     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4442         hz_utility_v2pub.debug(p_message=>'do_save_contact_point(-)',
4443                                p_prefix=>l_debug_prefix,
4444                                p_msg_level=>fnd_log.level_procedure);
4445     END IF;
4446 
4447   EXCEPTION
4448     WHEN fnd_api.g_exc_error THEN
4449       -- reset Global variable
4450       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
4451       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
4452 
4453       x_return_status := fnd_api.g_ret_sts_error;
4454 
4455       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4456                                 p_count => x_msg_count,
4457                                 p_data  => x_msg_data);
4458 
4459       -- Debug info.
4460       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4461         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4462                                p_msg_data=>x_msg_data,
4463                                p_msg_type=>'ERROR',
4464                                p_msg_level=>fnd_log.level_error);
4465       END IF;
4466       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4467         hz_utility_v2pub.debug(p_message=>'do_save_contact_point(-)',
4468                                p_prefix=>l_debug_prefix,
4469                                p_msg_level=>fnd_log.level_procedure);
4470       END IF;
4471 
4472     WHEN fnd_api.g_exc_unexpected_error THEN
4473       -- reset Global variable
4474       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
4475       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
4476 
4477       x_return_status := fnd_api.g_ret_sts_unexp_error;
4478 
4479       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4480                                 p_count => x_msg_count,
4481                                 p_data  => x_msg_data);
4482 
4483       -- Debug info.
4484       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4485         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4486                                p_msg_data=>x_msg_data,
4487                                p_msg_type=>'UNEXPECTED ERROR',
4488                                p_msg_level=>fnd_log.level_error);
4489       END IF;
4490       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4491         hz_utility_v2pub.debug(p_message=>'do_save_contact_point(-)',
4492                                p_prefix=>l_debug_prefix,
4493                                p_msg_level=>fnd_log.level_procedure);
4494       END IF;
4495     WHEN OTHERS THEN
4496       -- reset Global variable
4497       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
4498       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
4499 
4500       x_return_status := fnd_api.g_ret_sts_unexp_error;
4501 
4502       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4503       fnd_message.set_token('ERROR' ,SQLERRM);
4504       fnd_msg_pub.add;
4505 
4506       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4507                                 p_count => x_msg_count,
4508                                 p_data  => x_msg_data);
4509 
4510       -- Debug info.
4511       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4512         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4513                                p_msg_data=>x_msg_data,
4514                                p_msg_type=>'SQL ERROR',
4515                                p_msg_level=>fnd_log.level_error);
4516       END IF;
4517       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4518         hz_utility_v2pub.debug(p_message=>'do_save_contact_point(-)',
4519                                p_prefix=>l_debug_prefix,
4520                                p_msg_level=>fnd_log.level_procedure);
4521       END IF;
4522   END do_save_contact_point;
4523 
4524 /*
4525 The Get Contact Point API Procedures are retrieval services that return a full Contact Point business object of the type specified.
4526 The user identifies a particular Contact Point business object using the TCA identifier and/or the objects Source System information.
4527 Upon proper validation of the object, the full Contact Point business object is returned. The object consists of all data included
4528 within the Contact Point business object, at all embedded levels. This includes the set of all data stored in the TCA tables for
4529 each embedded entity.
4530 
4534 Embedded BO	    Mandatory	Multiple Logical API Procedure		Comments
4531 To retrieve the appropriate embedded entities within the Contact Point business objects, the Get procedure returns all records for the
4532 particular object from these TCA entity tables.
4533 
4535 
4536 Contact Point		Y	N	HZ_CONTACT_POINTS
4537 Contact Preference	N	Y	HZ_CONTACT_PREFERENCES
4538 
4539 */
4540 
4541 
4542   PROCEDURE get_phone_bo (
4543 	p_phone_id			IN	NUMBER,
4544 	p_phone_os			IN	VARCHAR2,
4545 	p_phone_osr			IN	VARCHAR2,
4546 	x_phone_obj			OUT NOCOPY	HZ_PHONE_CP_BO,
4547 	x_return_status		OUT NOCOPY	VARCHAR2,
4548 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
4549   ) IS
4550     l_msg_data               VARCHAR2(2000);
4551     l_msg_count              NUMBER;
4552   BEGIN
4553     get_phone_bo (
4554 	p_init_msg_list	=> FND_API.G_TRUE,
4555 	p_phone_id	=> p_phone_id,
4556 	p_phone_os	=> p_phone_os,
4557 	p_phone_osr	=> p_phone_osr,
4558 	x_phone_obj	=> x_phone_obj,
4559 	x_return_status	=> x_return_status,
4560 	x_msg_count	=> l_msg_count,
4561 	x_msg_data	=> l_msg_data
4562     );
4563     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
4564                     x_return_status   => x_return_status,
4565                     x_msg_count       => l_msg_count,
4566                     x_msg_data        => l_msg_data);
4567   END get_phone_bo;
4568 
4569   --------------------------------------
4570   --
4571   -- PROCEDURE get_phone_bo
4572   --
4573   -- DESCRIPTION
4574   --     Get a logical phone.
4575   --
4576   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
4577   --
4578   -- ARGUMENTS
4579   --   IN:
4580   --     p_init_msg_list      Initialize message stack if it is set to
4581   --     p_phone_id         phone ID.If this id passed in, return only one phone obj.
4582   --     p_phone_os           phone orig system.
4583   --     p_phone_osr          phone orig system reference.
4584   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
4585   --   OUT:
4586   --     x_phone_obj         Logical phone record.
4587   --     x_return_status      Return status after the call. The status can
4588   --                          be fnd_api.g_ret_sts_success (success),
4589   --                          fnd_api.g_ret_sts_error (error),
4590   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
4591   --     x_msg_count          Number of messages in message stack.
4592   --     x_msg_data           Message text if x_msg_count is 1.
4593   --
4594   -- NOTES
4595   --
4596   -- MODIFICATION HISTORY
4597   --
4598   --
4599   --   30-May-2005   AWU                Created.
4600   --
4601 
4602 
4603 PROCEDURE get_phone_bo (
4604 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
4605 	p_phone_id			IN	NUMBER,
4606 	p_phone_os			IN	VARCHAR2,
4607 	p_phone_osr			IN	VARCHAR2,
4608 	x_phone_obj			OUT NOCOPY	HZ_PHONE_CP_BO,
4609 	x_return_status		OUT NOCOPY	VARCHAR2,
4610 	x_msg_count			OUT NOCOPY	NUMBER,
4611 	x_msg_data			OUT NOCOPY	VARCHAR2
4612   ) is
4613  l_debug_prefix              VARCHAR2(30) := '';
4614 
4615   l_phone_id  number;
4616   l_phone_os  varchar2(30);
4617   l_phone_osr varchar2(255);
4618   l_phone_objs HZ_PHONE_CP_BO_TBL;
4619 BEGIN
4620 
4621 	-- initialize API return status to success.
4622     	x_return_status := FND_API.G_RET_STS_SUCCESS;
4623 
4624     	-- Initialize message list if p_init_msg_list is set to TRUE
4625     	IF FND_API.to_Boolean(p_init_msg_list) THEN
4626       		FND_MSG_PUB.initialize;
4627     	END IF;
4628 
4629 
4630 	-- Debug info.
4631         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4632         	hz_utility_v2pub.debug(p_message=>'hz_phone_bo_pub.get_phone_bo(+)',
4633                                p_prefix=>l_debug_prefix,
4634                                p_msg_level=>fnd_log.level_procedure);
4635     	END IF;
4636 
4637     	-- check if pass in contact_point_id and/or os+osr
4638     	-- extraction validation logic is same as update
4639 
4640     	l_phone_id := p_phone_id;
4641     	l_phone_os := p_phone_os;
4642     	l_phone_osr := p_phone_osr;
4643 
4644     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
4645       		px_id              => l_phone_id,
4646       		px_os              => l_phone_os,
4647       		px_osr             => l_phone_osr,
4648       		p_obj_type         => 'PHONE',
4649       		x_return_status    => x_return_status,
4650       		x_msg_count        => x_msg_count,
4651       		x_msg_data         => x_msg_data);
4652 
4653     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4654       		RAISE fnd_api.g_exc_error;
4655    	 END IF;
4656 
4657 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_phone_bos
4658 		(p_init_msg_list => fnd_api.g_false,
4659 		 p_phone_id => l_phone_id,
4660 		 p_parent_id => NULL,
4661  		 p_parent_table_name  => NULL,
4662 		 p_action_type => NULL,
4663 		 x_phone_objs => l_phone_objs,
4664 		 x_return_status => x_return_status,
4665 		 x_msg_count => x_msg_count,
4666 		 x_msg_data => x_msg_data);
4667 
4668 	x_phone_obj := l_phone_objs(1);
4669 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4670       		RAISE FND_API.G_EXC_ERROR;
4671     	END IF;
4672 
4673 
4674 	-- Debug info.
4675     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4676          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4677                                p_msg_data=>x_msg_data,
4678                                p_msg_type=>'WARNING',
4679                                p_msg_level=>fnd_log.level_exception);
4680     	END IF;
4681 
4682     	-- Debug info.
4683         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4687     	END IF;
4684         	hz_utility_v2pub.debug(p_message=>'hz_phone_bo_pub.get_phone_bo (-)',
4685                                p_prefix=>l_debug_prefix,
4686                                p_msg_level=>fnd_log.level_procedure);
4688 
4689 
4690  EXCEPTION
4691 
4692   WHEN fnd_api.g_exc_error THEN
4693       x_return_status := fnd_api.g_ret_sts_error;
4694 
4695       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4696                                 p_count => x_msg_count,
4697                                 p_data  => x_msg_data);
4698 
4699       -- Debug info.
4700       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4701         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4702                                p_msg_data=>x_msg_data,
4703                                p_msg_type=>'ERROR',
4704                                p_msg_level=>fnd_log.level_error);
4705       END IF;
4706       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4707         hz_utility_v2pub.debug(p_message=>'hz_phone_bo_pub.get_phone_bo (-)',
4708                                p_prefix=>l_debug_prefix,
4709                                p_msg_level=>fnd_log.level_procedure);
4710       END IF;
4711     WHEN fnd_api.g_exc_unexpected_error THEN
4712       x_return_status := fnd_api.g_ret_sts_unexp_error;
4713 
4714       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4715                                 p_count => x_msg_count,
4716                                 p_data  => x_msg_data);
4717 
4718       -- Debug info.
4719       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4720         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4721                                p_msg_data=>x_msg_data,
4722                                p_msg_type=>'UNEXPECTED ERROR',
4723                                p_msg_level=>fnd_log.level_error);
4724       END IF;
4725       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4726         hz_utility_v2pub.debug(p_message=>'hz_phone_bo_pub.get_phone_bo (-)',
4727                                p_prefix=>l_debug_prefix,
4728                                p_msg_level=>fnd_log.level_procedure);
4729       END IF;
4730     WHEN OTHERS THEN
4731       x_return_status := fnd_api.g_ret_sts_unexp_error;
4732 
4733       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4734       fnd_message.set_token('ERROR' ,SQLERRM);
4735       fnd_msg_pub.add;
4736 
4737       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4738                                 p_count => x_msg_count,
4739                                 p_data  => x_msg_data);
4740 
4741       -- Debug info.
4742       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4743         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4744                                p_msg_data=>x_msg_data,
4745                                p_msg_type=>'SQL ERROR',
4746                                p_msg_level=>fnd_log.level_error);
4747       END IF;
4748       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4749         hz_utility_v2pub.debug(p_message=>'hz_phone_bo_pub.get_phone_bo (-)',
4750                                p_prefix=>l_debug_prefix,
4751                                p_msg_level=>fnd_log.level_procedure);
4752       END IF;
4753 
4754 end;
4755 
4756   PROCEDURE get_telex_bo (
4757 	p_telex_id			IN	NUMBER,
4758 	p_telex_os			IN	VARCHAR2,
4759 	p_telex_osr			IN	VARCHAR2,
4760 	x_telex_obj			OUT NOCOPY	HZ_TELEX_CP_BO,
4761 	x_return_status		OUT NOCOPY	VARCHAR2,
4762 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
4763   ) is
4764     l_msg_data           VARCHAR2(2000);
4765     l_msg_count          NUMBER;
4766   BEGIN
4767     get_telex_bo (
4768 	p_init_msg_list	=> FND_API.G_TRUE,
4769 	p_telex_id	=> p_telex_id,
4770 	p_telex_os	=> p_telex_os,
4771 	p_telex_osr	=> p_telex_osr,
4772 	x_telex_obj	=> x_telex_obj,
4773 	x_return_status	=> x_return_status,
4774 	x_msg_count	=> l_msg_count,
4775 	x_msg_data	=> l_msg_data);
4776     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
4777                     x_return_status   => x_return_status,
4778                     x_msg_count       => l_msg_count,
4779                     x_msg_data        => l_msg_data);
4780   END get_telex_bo;
4781 
4782  --------------------------------------
4783   --
4784   -- PROCEDURE get_telex_bo
4785   --
4786   -- DESCRIPTION
4787   --     Get a logical telex.
4788   --
4789   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
4790   --
4791   -- ARGUMENTS
4792   --   IN:
4793   --     p_init_msg_list      Initialize message stack if it is set to
4794   --     p_telex_id         telex ID.If this id passed in, return only one telex obj.
4795   --     p_telex_os           telex orig system.
4796   --     p_telex_osr          telex orig system reference.
4797   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
4798   --   OUT:
4799   --     x_telex_obj         Logical telex record.
4800   --     x_return_status      Return status after the call. The status can
4801   --                          be fnd_api.g_ret_sts_success (success),
4802   --                          fnd_api.g_ret_sts_error (error),
4803   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
4804   --     x_msg_count          Number of messages in message stack.
4805   --     x_msg_data           Message text if x_msg_count is 1.
4806   --
4807   -- NOTES
4808   --
4809   -- MODIFICATION HISTORY
4810   --
4811   --
4812   --   30-May-2005   AWU                Created.
4813   --
4814 
4815 
4816 PROCEDURE get_telex_bo (
4817 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
4818 	p_telex_id			IN	NUMBER,
4819 	p_telex_os			IN	VARCHAR2,
4820 	p_telex_osr			IN	VARCHAR2,
4824 	x_msg_data			OUT NOCOPY	VARCHAR2
4821 	x_telex_obj			OUT NOCOPY	HZ_TELEX_CP_BO,
4822 	x_return_status		OUT NOCOPY	VARCHAR2,
4823 	x_msg_count			OUT NOCOPY	NUMBER,
4825   ) is
4826  l_debug_prefix              VARCHAR2(30) := '';
4827 
4828   l_telex_id  number;
4829   l_telex_os  varchar2(30);
4830   l_telex_osr varchar2(255);
4831   l_telex_objs HZ_TELEX_CP_BO_TBL;
4832 BEGIN
4833 
4834 	-- initialize API return status to success.
4835     	x_return_status := FND_API.G_RET_STS_SUCCESS;
4836 
4837     	-- Initialize message list if p_init_msg_list is set to TRUE
4838     	IF FND_API.to_Boolean(p_init_msg_list) THEN
4839       		FND_MSG_PUB.initialize;
4840     	END IF;
4841 
4842 
4843 	-- Debug info.
4844         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4845         	hz_utility_v2pub.debug(p_message=>'hz_telex_bo_pub.get_telex_bo(+)',
4846                                p_prefix=>l_debug_prefix,
4847                                p_msg_level=>fnd_log.level_procedure);
4848     	END IF;
4849 
4850     	-- check if pass in contact_point_id and/or os+osr
4851     	-- extraction validation logic is same as update
4852 
4853     	l_telex_id := p_telex_id;
4854     	l_telex_os := p_telex_os;
4855     	l_telex_osr := p_telex_osr;
4856 
4857     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
4858       		px_id              => l_telex_id,
4859       		px_os              => l_telex_os,
4860       		px_osr             => l_telex_osr,
4861       		p_obj_type         => 'TLX',
4862       		x_return_status    => x_return_status,
4863       		x_msg_count        => x_msg_count,
4864       		x_msg_data         => x_msg_data);
4865 
4866     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4867       		RAISE fnd_api.g_exc_error;
4868    	 END IF;
4869 
4870 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_telex_bos
4871 		(p_init_msg_list => fnd_api.g_false,
4872 		 p_telex_id => l_telex_id,
4873 		 p_parent_id => NULL,
4874  		 p_parent_table_name  => NULL,
4875 		 p_action_type => NULL,
4876 		 x_telex_objs => l_telex_objs,
4877 		 x_return_status => x_return_status,
4878 		 x_msg_count => x_msg_count,
4879 		 x_msg_data => x_msg_data);
4880 
4881 	x_telex_obj := l_telex_objs(1);
4882 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4883       		RAISE FND_API.G_EXC_ERROR;
4884     	END IF;
4885 
4886 
4887 	-- Debug info.
4888     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4889          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4890                                p_msg_data=>x_msg_data,
4891                                p_msg_type=>'WARNING',
4892                                p_msg_level=>fnd_log.level_exception);
4893     	END IF;
4894 
4895     	-- Debug info.
4896         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4897         	hz_utility_v2pub.debug(p_message=>'hz_telex_bo_pub.get_telex_bo (-)',
4898                                p_prefix=>l_debug_prefix,
4899                                p_msg_level=>fnd_log.level_procedure);
4900     	END IF;
4901 
4902 
4903  EXCEPTION
4904 
4905   WHEN fnd_api.g_exc_error THEN
4906       x_return_status := fnd_api.g_ret_sts_error;
4907 
4908       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4909                                 p_count => x_msg_count,
4910                                 p_data  => x_msg_data);
4911 
4912       -- Debug info.
4913       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4914         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4915                                p_msg_data=>x_msg_data,
4916                                p_msg_type=>'ERROR',
4917                                p_msg_level=>fnd_log.level_error);
4918       END IF;
4919       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4920         hz_utility_v2pub.debug(p_message=>'hz_telex_bo_pub.get_telex_bo (-)',
4921                                p_prefix=>l_debug_prefix,
4922                                p_msg_level=>fnd_log.level_procedure);
4923       END IF;
4924     WHEN fnd_api.g_exc_unexpected_error THEN
4925       x_return_status := fnd_api.g_ret_sts_unexp_error;
4926 
4927       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4928                                 p_count => x_msg_count,
4929                                 p_data  => x_msg_data);
4930 
4931       -- Debug info.
4932       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4933         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4934                                p_msg_data=>x_msg_data,
4935                                p_msg_type=>'UNEXPECTED ERROR',
4936                                p_msg_level=>fnd_log.level_error);
4937       END IF;
4938       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4939         hz_utility_v2pub.debug(p_message=>'hz_telex_bo_pub.get_telex_bo (-)',
4940                                p_prefix=>l_debug_prefix,
4941                                p_msg_level=>fnd_log.level_procedure);
4942       END IF;
4943     WHEN OTHERS THEN
4944       x_return_status := fnd_api.g_ret_sts_unexp_error;
4945 
4946       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4947       fnd_message.set_token('ERROR' ,SQLERRM);
4948       fnd_msg_pub.add;
4949 
4950       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4951                                 p_count => x_msg_count,
4952                                 p_data  => x_msg_data);
4953 
4954       -- Debug info.
4955       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4956         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4957                                p_msg_data=>x_msg_data,
4958                                p_msg_type=>'SQL ERROR',
4962         hz_utility_v2pub.debug(p_message=>'hz_telex_bo_pub.get_telex_bo (-)',
4959                                p_msg_level=>fnd_log.level_error);
4960       END IF;
4961       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4963                                p_prefix=>l_debug_prefix,
4964                                p_msg_level=>fnd_log.level_procedure);
4965       END IF;
4966 
4967 end;
4968 
4969   PROCEDURE get_email_bo (
4970 	p_email_id			IN	NUMBER,
4971 	p_email_os			IN	VARCHAR2,
4972 	p_email_osr			IN	VARCHAR2,
4973 	x_email_obj			OUT NOCOPY	HZ_EMAIL_CP_BO,
4974 	x_return_status		OUT NOCOPY	VARCHAR2,
4975 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
4976   ) IS
4977     l_msg_data          VARCHAR2(2000);
4978     l_msg_count         NUMBER;
4979   BEGIN
4980     get_email_bo (
4981 	p_init_msg_list	=> FND_API.G_TRUE,
4982 	p_email_id	=> p_email_id,
4983 	p_email_os	=> p_email_os,
4984 	p_email_osr	=> p_email_osr,
4985 	x_email_obj	=> x_email_obj,
4986 	x_return_status	=> x_return_status,
4987 	x_msg_count	=> l_msg_count,
4988 	x_msg_data	=> l_msg_data);
4989     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
4990                     x_return_status   => x_return_status,
4991                     x_msg_count       => l_msg_count,
4992                     x_msg_data        => l_msg_data);
4993   END get_email_bo;
4994 
4995  --------------------------------------
4996   --
4997   -- PROCEDURE get_email_bo
4998   --
4999   -- DESCRIPTION
5000   --     Get a logical email.
5001   --
5002   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
5003   --
5004   -- ARGUMENTS
5005   --   IN:
5006   --     p_init_msg_list      Initialize message stack if it is set to
5007   --     p_email_id         email ID.If this id passed in, return only one email obj.
5008   --     p_email_os           email orig system.
5009   --     p_email_osr          email orig system reference.
5010   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
5011   --   OUT:
5012   --     x_email_obj         Logical email record.
5013   --     x_return_status      Return status after the call. The status can
5014   --                          be fnd_api.g_ret_sts_success (success),
5015   --                          fnd_api.g_ret_sts_error (error),
5016   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
5017   --     x_msg_count          Number of messages in message stack.
5018   --     x_msg_data           Message text if x_msg_count is 1.
5019   --
5020   -- NOTES
5021   --
5022   -- MODIFICATION HISTORY
5023   --
5024   --
5025   --   30-May-2005   AWU                Created.
5026   --
5027 
5028 
5029 PROCEDURE get_email_bo (
5030 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
5031 	p_email_id			IN	NUMBER,
5032 	p_email_os			IN	VARCHAR2,
5033 	p_email_osr			IN	VARCHAR2,
5034 	x_email_obj			OUT NOCOPY	HZ_EMAIL_CP_BO,
5035 	x_return_status		OUT NOCOPY	VARCHAR2,
5036 	x_msg_count			OUT NOCOPY	NUMBER,
5037 	x_msg_data			OUT NOCOPY	VARCHAR2
5038   ) is
5039  l_debug_prefix              VARCHAR2(30) := '';
5040 
5041   l_email_id  number;
5042   l_email_os  varchar2(30);
5043   l_email_osr varchar2(255);
5044   l_email_objs HZ_EMAIL_CP_BO_TBL;
5045 BEGIN
5046 
5047 	-- initialize API return status to success.
5048     	x_return_status := FND_API.G_RET_STS_SUCCESS;
5049 
5050     	-- Initialize message list if p_init_msg_list is set to TRUE
5051     	IF FND_API.to_Boolean(p_init_msg_list) THEN
5052       		FND_MSG_PUB.initialize;
5053     	END IF;
5054 
5055 
5056 	-- Debug info.
5057         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5058         	hz_utility_v2pub.debug(p_message=>'hz_email_bo_pub.get_email_bo(+)',
5059                                p_prefix=>l_debug_prefix,
5060                                p_msg_level=>fnd_log.level_procedure);
5061     	END IF;
5062 
5063     	-- check if pass in contact_point_id and/or os+osr
5064     	-- extraction validation logic is same as update
5065 
5066     	l_email_id := p_email_id;
5067     	l_email_os := p_email_os;
5068     	l_email_osr := p_email_osr;
5069 
5070     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
5071       		px_id              => l_email_id,
5072       		px_os              => l_email_os,
5073       		px_osr             => l_email_osr,
5074       		p_obj_type         => 'EMAIL',
5075       		x_return_status    => x_return_status,
5076       		x_msg_count        => x_msg_count,
5077       		x_msg_data         => x_msg_data);
5078 
5079     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5080       		RAISE fnd_api.g_exc_error;
5081    	 END IF;
5082 
5083 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_email_bos
5084 		(p_init_msg_list => fnd_api.g_false,
5085 		 p_email_id => l_email_id,
5086 		 p_parent_id => NULL,
5087  		 p_parent_table_name  => NULL,
5088 		 p_action_type => NULL,
5089 		 x_email_objs => l_email_objs,
5090 		 x_return_status => x_return_status,
5091 		 x_msg_count => x_msg_count,
5092 		 x_msg_data => x_msg_data);
5093 
5094 	x_email_obj := l_email_objs(1);
5095 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5096       		RAISE FND_API.G_EXC_ERROR;
5097     	END IF;
5098 
5099 
5100 	-- Debug info.
5101     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
5102          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5103                                p_msg_data=>x_msg_data,
5104                                p_msg_type=>'WARNING',
5105                                p_msg_level=>fnd_log.level_exception);
5106     	END IF;
5107 
5108     	-- Debug info.
5109         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5113     	END IF;
5110         	hz_utility_v2pub.debug(p_message=>'hz_email_bo_pub.get_email_bo (-)',
5111                                p_prefix=>l_debug_prefix,
5112                                p_msg_level=>fnd_log.level_procedure);
5114 
5115 
5116  EXCEPTION
5117 
5118   WHEN fnd_api.g_exc_error THEN
5119       x_return_status := fnd_api.g_ret_sts_error;
5120 
5121       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5122                                 p_count => x_msg_count,
5123                                 p_data  => x_msg_data);
5124 
5125       -- Debug info.
5126       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5127         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5128                                p_msg_data=>x_msg_data,
5129                                p_msg_type=>'ERROR',
5130                                p_msg_level=>fnd_log.level_error);
5131       END IF;
5132       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5133         hz_utility_v2pub.debug(p_message=>'hz_email_bo_pub.get_email_bo (-)',
5134                                p_prefix=>l_debug_prefix,
5135                                p_msg_level=>fnd_log.level_procedure);
5136       END IF;
5137     WHEN fnd_api.g_exc_unexpected_error THEN
5138       x_return_status := fnd_api.g_ret_sts_unexp_error;
5139 
5140       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5141                                 p_count => x_msg_count,
5142                                 p_data  => x_msg_data);
5143 
5144       -- Debug info.
5145       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5146         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5147                                p_msg_data=>x_msg_data,
5148                                p_msg_type=>'UNEXPECTED ERROR',
5149                                p_msg_level=>fnd_log.level_error);
5150       END IF;
5151       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5152         hz_utility_v2pub.debug(p_message=>'hz_email_bo_pub.get_email_bo (-)',
5153                                p_prefix=>l_debug_prefix,
5154                                p_msg_level=>fnd_log.level_procedure);
5155       END IF;
5156     WHEN OTHERS THEN
5157       x_return_status := fnd_api.g_ret_sts_unexp_error;
5158 
5159       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
5160       fnd_message.set_token('ERROR' ,SQLERRM);
5161       fnd_msg_pub.add;
5162 
5163       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5164                                 p_count => x_msg_count,
5165                                 p_data  => x_msg_data);
5166 
5167       -- Debug info.
5168       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5169         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5170                                p_msg_data=>x_msg_data,
5171                                p_msg_type=>'SQL ERROR',
5172                                p_msg_level=>fnd_log.level_error);
5173       END IF;
5174       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5175         hz_utility_v2pub.debug(p_message=>'hz_email_bo_pub.get_email_bo (-)',
5176                                p_prefix=>l_debug_prefix,
5177                                p_msg_level=>fnd_log.level_procedure);
5178       END IF;
5179 
5180 end;
5181 
5182   PROCEDURE get_web_bo (
5183 	p_web_id			IN	NUMBER,
5184 	p_web_os			IN	VARCHAR2,
5185 	p_web_osr			IN	VARCHAR2,
5186 	x_web_obj			OUT NOCOPY	HZ_WEB_CP_BO,
5187 	x_return_status		OUT NOCOPY	VARCHAR2,
5188 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
5189   ) IS
5190     l_msg_data          VARCHAR2(2000);
5191     l_msg_count         NUMBER;
5192   BEGIN
5193     get_web_bo (
5194 	p_init_msg_list	=> FND_API.G_TRUE,
5195 	p_web_id	=> p_web_id,
5196 	p_web_os	=> p_web_os,
5197 	p_web_osr	=> p_web_osr,
5198 	x_web_obj	=> x_web_obj,
5199 	x_return_status	=> x_return_status,
5200 	x_msg_count	=> l_msg_count,
5201 	x_msg_data	=> l_msg_data);
5202     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
5203                     x_return_status   => x_return_status,
5204                     x_msg_count       => l_msg_count,
5205                     x_msg_data        => l_msg_data);
5206   END get_web_bo;
5207 
5208  --------------------------------------
5209   --
5210   -- PROCEDURE get_web_bo
5211   --
5212   -- DESCRIPTION
5213   --     Get a logical web.
5214   --
5215   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
5216   --
5217   -- ARGUMENTS
5218   --   IN:
5219   --     p_init_msg_list      Initialize message stack if it is set to
5220   --     p_web_id         web ID.If this id passed in, return only one web obj.
5221   --     p_web_os           web orig system.
5222   --     p_web_osr          web orig system reference.
5223   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
5224   --   OUT:
5225   --     x_web_obj         Logical web record.
5226   --     x_return_status      Return status after the call. The status can
5227   --                          be fnd_api.g_ret_sts_success (success),
5228   --                          fnd_api.g_ret_sts_error (error),
5229   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
5230   --     x_msg_count          Number of messages in message stack.
5231   --     x_msg_data           Message text if x_msg_count is 1.
5232   --
5233   -- NOTES
5234   --
5235   -- MODIFICATION HISTORY
5236   --
5237   --
5238   --   30-May-2005   AWU                Created.
5239   --
5240 
5241 
5242 PROCEDURE get_web_bo (
5243 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
5244 	p_web_id			IN	NUMBER,
5245 	p_web_os			IN	VARCHAR2,
5246 	p_web_osr			IN	VARCHAR2,
5247 	x_web_obj			OUT NOCOPY	HZ_WEB_CP_BO,
5251   ) is
5248 	x_return_status		OUT NOCOPY	VARCHAR2,
5249 	x_msg_count			OUT NOCOPY	NUMBER,
5250 	x_msg_data			OUT NOCOPY	VARCHAR2
5252  l_debug_prefix              VARCHAR2(30) := '';
5253 
5254   l_web_id  number;
5255   l_web_os  varchar2(30);
5256   l_web_osr varchar2(255);
5257   l_web_objs HZ_WEB_CP_BO_TBL;
5258 BEGIN
5259 
5260 	-- initialize API return status to success.
5261     	x_return_status := FND_API.G_RET_STS_SUCCESS;
5262 
5263     	-- Initialize message list if p_init_msg_list is set to TRUE
5264     	IF FND_API.to_Boolean(p_init_msg_list) THEN
5265       		FND_MSG_PUB.initialize;
5266     	END IF;
5267 
5268 
5269 	-- Debug info.
5270         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5271         	hz_utility_v2pub.debug(p_message=>'hz_web_bo_pub.get_web_bo(+)',
5272                                p_prefix=>l_debug_prefix,
5273                                p_msg_level=>fnd_log.level_procedure);
5274     	END IF;
5275 
5276     	-- check if pass in contact_point_id and/or os+osr
5277     	-- extraction validation logic is same as update
5278 
5279     	l_web_id := p_web_id;
5280     	l_web_os := p_web_os;
5281     	l_web_osr := p_web_osr;
5282 
5283     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
5284       		px_id              => l_web_id,
5285       		px_os              => l_web_os,
5286       		px_osr             => l_web_osr,
5287       		p_obj_type         => 'WEB',
5288       		x_return_status    => x_return_status,
5289       		x_msg_count        => x_msg_count,
5290       		x_msg_data         => x_msg_data);
5291 
5292     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5293       		RAISE fnd_api.g_exc_error;
5294    	 END IF;
5295 
5296 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_web_bos
5297 		(p_init_msg_list => fnd_api.g_false,
5298 		 p_web_id => l_web_id,
5299 		 p_parent_id => NULL,
5300  		 p_parent_table_name  => NULL,
5301 		 p_action_type => NULL,
5302 		 x_web_objs => l_web_objs,
5303 		 x_return_status => x_return_status,
5304 		 x_msg_count => x_msg_count,
5305 		 x_msg_data => x_msg_data);
5306 
5307 	x_web_obj := l_web_objs(1);
5308 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5309       		RAISE FND_API.G_EXC_ERROR;
5310     	END IF;
5311 
5312 
5313 	-- Debug info.
5314     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
5315          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5316                                p_msg_data=>x_msg_data,
5317                                p_msg_type=>'WARNING',
5318                                p_msg_level=>fnd_log.level_exception);
5319     	END IF;
5320 
5321     	-- Debug info.
5322         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5323         	hz_utility_v2pub.debug(p_message=>'hz_web_bo_pub.get_web_bo (-)',
5324                                p_prefix=>l_debug_prefix,
5325                                p_msg_level=>fnd_log.level_procedure);
5326     	END IF;
5327 
5328 
5329  EXCEPTION
5330 
5331   WHEN fnd_api.g_exc_error THEN
5332       x_return_status := fnd_api.g_ret_sts_error;
5333 
5334       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5335                                 p_count => x_msg_count,
5336                                 p_data  => x_msg_data);
5337 
5338       -- Debug info.
5339       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5340         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5341                                p_msg_data=>x_msg_data,
5342                                p_msg_type=>'ERROR',
5343                                p_msg_level=>fnd_log.level_error);
5344       END IF;
5345       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5346         hz_utility_v2pub.debug(p_message=>'hz_web_bo_pub.get_web_bo (-)',
5347                                p_prefix=>l_debug_prefix,
5348                                p_msg_level=>fnd_log.level_procedure);
5349       END IF;
5350     WHEN fnd_api.g_exc_unexpected_error THEN
5351       x_return_status := fnd_api.g_ret_sts_unexp_error;
5352 
5353       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5354                                 p_count => x_msg_count,
5355                                 p_data  => x_msg_data);
5356 
5357       -- Debug info.
5358       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5359         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5360                                p_msg_data=>x_msg_data,
5361                                p_msg_type=>'UNEXPECTED ERROR',
5362                                p_msg_level=>fnd_log.level_error);
5363       END IF;
5364       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5365         hz_utility_v2pub.debug(p_message=>'hz_web_bo_pub.get_web_bo (-)',
5366                                p_prefix=>l_debug_prefix,
5367                                p_msg_level=>fnd_log.level_procedure);
5368       END IF;
5369     WHEN OTHERS THEN
5370       x_return_status := fnd_api.g_ret_sts_unexp_error;
5371 
5372       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
5373       fnd_message.set_token('ERROR' ,SQLERRM);
5374       fnd_msg_pub.add;
5375 
5376       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5377                                 p_count => x_msg_count,
5378                                 p_data  => x_msg_data);
5379 
5380       -- Debug info.
5381       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5382         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5383                                p_msg_data=>x_msg_data,
5384                                p_msg_type=>'SQL ERROR',
5385                                p_msg_level=>fnd_log.level_error);
5386       END IF;
5390                                p_msg_level=>fnd_log.level_procedure);
5387       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5388         hz_utility_v2pub.debug(p_message=>'hz_web_bo_pub.get_web_bo (-)',
5389                                p_prefix=>l_debug_prefix,
5391       END IF;
5392 
5393 end;
5394 
5395   PROCEDURE get_edi_bo (
5396 	p_edi_id			IN	NUMBER,
5397 	p_edi_os			IN	VARCHAR2,
5398 	p_edi_osr			IN	VARCHAR2,
5399 	x_edi_obj			OUT NOCOPY	HZ_EDI_CP_BO,
5400 	x_return_status		OUT NOCOPY	VARCHAR2,
5401 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
5402   ) IS
5403     l_msg_data          VARCHAR2(2000);
5404     l_msg_count         NUMBER;
5405   BEGIN
5406     get_edi_bo (
5407 	p_init_msg_list	=> FND_API.G_TRUE,
5408 	p_edi_id	=> p_edi_id,
5409 	p_edi_os	=> p_edi_os,
5410 	p_edi_osr	=> p_edi_osr,
5411 	x_edi_obj	=> x_edi_obj,
5412 	x_return_status	=> x_return_status,
5413 	x_msg_count	=> l_msg_count,
5414 	x_msg_data	=> l_msg_data);
5415     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
5416                     x_return_status   => x_return_status,
5417                     x_msg_count       => l_msg_count,
5418                     x_msg_data        => l_msg_data);
5419   END get_edi_bo;
5420  --------------------------------------
5421   --
5422   -- PROCEDURE get_edi_bo
5423   --
5424   -- DESCRIPTION
5425   --     Get a logical edi.
5426   --
5427   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
5428   --
5429   -- ARGUMENTS
5430   --   IN:
5431   --     p_init_msg_list      Initialize message stack if it is set to
5432   --     p_edi_id         edi ID.If this id passed in, return only one edi obj.
5433   --     p_edi_os           edi orig system.
5434   --     p_edi_osr          edi orig system reference.
5435   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
5436   --   OUT:
5437   --     x_edi_obj         Logical edi record.
5438   --     x_return_status      Return status after the call. The status can
5439   --                          be fnd_api.g_ret_sts_success (success),
5440   --                          fnd_api.g_ret_sts_error (error),
5441   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
5442   --     x_msg_count          Number of messages in message stack.
5443   --     x_msg_data           Message text if x_msg_count is 1.
5444   --
5445   -- NOTES
5446   --
5447   -- MODIFICATION HISTORY
5448   --
5449   --
5450   --   30-May-2005   AWU                Created.
5451   --
5452 
5453 
5454 PROCEDURE get_edi_bo (
5455 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
5456 	p_edi_id			IN	NUMBER,
5457 	p_edi_os			IN	VARCHAR2,
5458 	p_edi_osr			IN	VARCHAR2,
5459 	x_edi_obj			OUT NOCOPY	HZ_EDI_CP_BO,
5460 	x_return_status		OUT NOCOPY	VARCHAR2,
5461 	x_msg_count			OUT NOCOPY	NUMBER,
5462 	x_msg_data			OUT NOCOPY	VARCHAR2
5463   ) is
5464  l_debug_prefix              VARCHAR2(30) := '';
5465 
5466   l_edi_id  number;
5467   l_edi_os  varchar2(30);
5468   l_edi_osr varchar2(255);
5469   l_edi_objs HZ_EDI_CP_BO_TBL;
5470 BEGIN
5471 
5472 	-- initialize API return status to success.
5473     	x_return_status := FND_API.G_RET_STS_SUCCESS;
5474 
5475     	-- Initialize message list if p_init_msg_list is set to TRUE
5476     	IF FND_API.to_Boolean(p_init_msg_list) THEN
5477       		FND_MSG_PUB.initialize;
5478     	END IF;
5479 
5480 
5481 	-- Debug info.
5482         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5483         	hz_utility_v2pub.debug(p_message=>'hz_edi_bo_pub.get_edi_bo(+)',
5484                                p_prefix=>l_debug_prefix,
5485                                p_msg_level=>fnd_log.level_procedure);
5486     	END IF;
5487 
5488     	-- check if pass in contact_point_id and/or os+osr
5489     	-- extraction validation logic is same as update
5490 
5491     	l_edi_id := p_edi_id;
5492     	l_edi_os := p_edi_os;
5493     	l_edi_osr := p_edi_osr;
5494 
5495     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
5496       		px_id              => l_edi_id,
5497       		px_os              => l_edi_os,
5498       		px_osr             => l_edi_osr,
5499       		p_obj_type         => 'EDI',
5500       		x_return_status    => x_return_status,
5501       		x_msg_count        => x_msg_count,
5502       		x_msg_data         => x_msg_data);
5503 
5504     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5505       		RAISE fnd_api.g_exc_error;
5506    	 END IF;
5507 
5508 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_edi_bos
5509 		(p_init_msg_list => fnd_api.g_false,
5510 		 p_edi_id => l_edi_id,
5511 		 p_parent_id => NULL,
5512  		 p_parent_table_name  => NULL,
5513 		 p_action_type => NULL,
5514 		 x_edi_objs => l_edi_objs,
5515 		 x_return_status => x_return_status,
5516 		 x_msg_count => x_msg_count,
5517 		 x_msg_data => x_msg_data);
5518 
5519 	x_edi_obj := l_edi_objs(1);
5520 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5521       		RAISE FND_API.G_EXC_ERROR;
5522     	END IF;
5523 
5524 
5525 	-- Debug info.
5526     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
5527          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5528                                p_msg_data=>x_msg_data,
5529                                p_msg_type=>'WARNING',
5530                                p_msg_level=>fnd_log.level_exception);
5531     	END IF;
5532 
5533     	-- Debug info.
5534         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5535         	hz_utility_v2pub.debug(p_message=>'hz_edi_bo_pub.get_edi_bo (-)',
5536                                p_prefix=>l_debug_prefix,
5537                                p_msg_level=>fnd_log.level_procedure);
5538     	END IF;
5539 
5540 
5544       x_return_status := fnd_api.g_ret_sts_error;
5541  EXCEPTION
5542 
5543   WHEN fnd_api.g_exc_error THEN
5545 
5546       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5547                                 p_count => x_msg_count,
5548                                 p_data  => x_msg_data);
5549 
5550       -- Debug info.
5551       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5552         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5553                                p_msg_data=>x_msg_data,
5554                                p_msg_type=>'ERROR',
5555                                p_msg_level=>fnd_log.level_error);
5556       END IF;
5557       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5558         hz_utility_v2pub.debug(p_message=>'hz_edi_bo_pub.get_edi_bo (-)',
5559                                p_prefix=>l_debug_prefix,
5560                                p_msg_level=>fnd_log.level_procedure);
5561       END IF;
5562     WHEN fnd_api.g_exc_unexpected_error THEN
5563       x_return_status := fnd_api.g_ret_sts_unexp_error;
5564 
5565       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5566                                 p_count => x_msg_count,
5567                                 p_data  => x_msg_data);
5568 
5569       -- Debug info.
5570       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5571         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5572                                p_msg_data=>x_msg_data,
5573                                p_msg_type=>'UNEXPECTED ERROR',
5574                                p_msg_level=>fnd_log.level_error);
5575       END IF;
5576       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5577         hz_utility_v2pub.debug(p_message=>'hz_edi_bo_pub.get_edi_bo (-)',
5578                                p_prefix=>l_debug_prefix,
5579                                p_msg_level=>fnd_log.level_procedure);
5580       END IF;
5581     WHEN OTHERS THEN
5582       x_return_status := fnd_api.g_ret_sts_unexp_error;
5583 
5584       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
5585       fnd_message.set_token('ERROR' ,SQLERRM);
5586       fnd_msg_pub.add;
5587 
5588       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5589                                 p_count => x_msg_count,
5590                                 p_data  => x_msg_data);
5591 
5592       -- Debug info.
5593       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5594         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5595                                p_msg_data=>x_msg_data,
5596                                p_msg_type=>'SQL ERROR',
5597                                p_msg_level=>fnd_log.level_error);
5598       END IF;
5599       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5600         hz_utility_v2pub.debug(p_message=>'hz_edi_bo_pub.get_edi_bo (-)',
5601                                p_prefix=>l_debug_prefix,
5602                                p_msg_level=>fnd_log.level_procedure);
5603       END IF;
5604 
5605 end;
5606 
5607   PROCEDURE get_eft_bo (
5608 	p_eft_id			IN	NUMBER,
5609 	p_eft_os			IN	VARCHAR2,
5610 	p_eft_osr			IN	VARCHAR2,
5611 	x_eft_obj			OUT NOCOPY	HZ_EFT_CP_BO,
5612 	x_return_status		OUT NOCOPY	VARCHAR2,
5613 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
5614   ) IS
5615     l_msg_data         VARCHAR2(2000);
5616     l_msg_count        NUMBER;
5617   BEGIN
5618     get_eft_bo (
5619 	p_init_msg_list	=> FND_API.G_TRUE,
5620 	p_eft_id	=> p_eft_id,
5621 	p_eft_os	=> p_eft_os,
5622 	p_eft_osr	=> p_eft_osr,
5623 	x_eft_obj	=> x_eft_obj,
5624 	x_return_status	=> x_return_status,
5625 	x_msg_count	=> l_msg_count,
5626 	x_msg_data	=> l_msg_data);
5627     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
5628                     x_return_status   => x_return_status,
5629                     x_msg_count       => l_msg_count,
5630                     x_msg_data        => l_msg_data);
5631   END get_eft_bo;
5632 
5633  --------------------------------------
5634   --
5635   -- PROCEDURE get_eft_bo
5636   --
5637   -- DESCRIPTION
5638   --     Get a logical eft.
5639   --
5640   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
5641   --
5642   -- ARGUMENTS
5643   --   IN:
5644   --     p_init_msg_list      Initialize message stack if it is set to
5645   --     p_eft_id         eft ID.If this id passed in, return only one eft obj.
5646   --     p_eft_os           eft orig system.
5647   --     p_eft_osr          eft orig system reference.
5648   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
5649   --   OUT:
5650   --     x_eft_obj         Logical eft record.
5651   --     x_return_status      Return status after the call. The status can
5652   --                          be fnd_api.g_ret_sts_success (success),
5653   --                          fnd_api.g_ret_sts_error (error),
5654   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
5655   --     x_msg_count          Number of messages in message stack.
5656   --     x_msg_data           Message text if x_msg_count is 1.
5657   --
5658   -- NOTES
5659   --
5660   -- MODIFICATION HISTORY
5661   --
5662   --
5663   --   30-May-2005   AWU                Created.
5664   --
5665 
5666 
5667 PROCEDURE get_eft_bo (
5668 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
5669 	p_eft_id			IN	NUMBER,
5670 	p_eft_os			IN	VARCHAR2,
5671 	p_eft_osr			IN	VARCHAR2,
5672 	x_eft_obj			OUT NOCOPY	HZ_EFT_CP_BO,
5673 	x_return_status		OUT NOCOPY	VARCHAR2,
5674 	x_msg_count			OUT NOCOPY	NUMBER,
5675 	x_msg_data			OUT NOCOPY	VARCHAR2
5676   ) is
5677  l_debug_prefix              VARCHAR2(30) := '';
5678 
5679   l_eft_id  number;
5680   l_eft_os  varchar2(30);
5684 
5681   l_eft_osr varchar2(255);
5682   l_eft_objs HZ_EFT_CP_BO_TBL;
5683 BEGIN
5685 	-- initialize API return status to success.
5686     	x_return_status := FND_API.G_RET_STS_SUCCESS;
5687 
5688     	-- Initialize message list if p_init_msg_list is set to TRUE
5689     	IF FND_API.to_Boolean(p_init_msg_list) THEN
5690       		FND_MSG_PUB.initialize;
5691     	END IF;
5692 
5693 
5694 	-- Debug info.
5695         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5696         	hz_utility_v2pub.debug(p_message=>'hz_eft_bo_pub.get_eft_bo(+)',
5697                                p_prefix=>l_debug_prefix,
5698                                p_msg_level=>fnd_log.level_procedure);
5699     	END IF;
5700 
5701     	-- check if pass in contact_point_id and/or os+osr
5702     	-- extraction validation logic is same as update
5703 
5704     	l_eft_id := p_eft_id;
5705     	l_eft_os := p_eft_os;
5706     	l_eft_osr := p_eft_osr;
5707 
5708     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
5709       		px_id              => l_eft_id,
5710       		px_os              => l_eft_os,
5711       		px_osr             => l_eft_osr,
5712       		p_obj_type         => 'EFT',
5713       		x_return_status    => x_return_status,
5714       		x_msg_count        => x_msg_count,
5715       		x_msg_data         => x_msg_data);
5716 
5717     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5718       		RAISE fnd_api.g_exc_error;
5719    	 END IF;
5720 
5721 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_eft_bos
5722 		(p_init_msg_list => fnd_api.g_false,
5723 		 p_eft_id => l_eft_id,
5724 		 p_parent_id => NULL,
5725  		 p_parent_table_name  => NULL,
5726 		 p_action_type => NULL,
5727 		 x_eft_objs => l_eft_objs,
5728 		 x_return_status => x_return_status,
5729 		 x_msg_count => x_msg_count,
5730 		 x_msg_data => x_msg_data);
5731 
5732 	x_eft_obj := l_eft_objs(1);
5733 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5734       		RAISE FND_API.G_EXC_ERROR;
5735     	END IF;
5736 
5737 
5738 	-- Debug info.
5739     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
5740          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5741                                p_msg_data=>x_msg_data,
5742                                p_msg_type=>'WARNING',
5743                                p_msg_level=>fnd_log.level_exception);
5744     	END IF;
5745 
5746     	-- Debug info.
5747         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5748         	hz_utility_v2pub.debug(p_message=>'hz_eft_bo_pub.get_eft_bo (-)',
5749                                p_prefix=>l_debug_prefix,
5750                                p_msg_level=>fnd_log.level_procedure);
5751     	END IF;
5752 
5753 
5754  EXCEPTION
5755 
5756   WHEN fnd_api.g_exc_error THEN
5757       x_return_status := fnd_api.g_ret_sts_error;
5758 
5759       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5760                                 p_count => x_msg_count,
5761                                 p_data  => x_msg_data);
5762 
5763       -- Debug info.
5764       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5765         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5766                                p_msg_data=>x_msg_data,
5767                                p_msg_type=>'ERROR',
5768                                p_msg_level=>fnd_log.level_error);
5769       END IF;
5770       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5771         hz_utility_v2pub.debug(p_message=>'hz_eft_bo_pub.get_eft_bo (-)',
5772                                p_prefix=>l_debug_prefix,
5773                                p_msg_level=>fnd_log.level_procedure);
5774       END IF;
5775     WHEN fnd_api.g_exc_unexpected_error THEN
5776       x_return_status := fnd_api.g_ret_sts_unexp_error;
5777 
5778       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5779                                 p_count => x_msg_count,
5780                                 p_data  => x_msg_data);
5781 
5782       -- Debug info.
5783       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5784         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5785                                p_msg_data=>x_msg_data,
5786                                p_msg_type=>'UNEXPECTED ERROR',
5787                                p_msg_level=>fnd_log.level_error);
5788       END IF;
5789       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5790         hz_utility_v2pub.debug(p_message=>'hz_eft_bo_pub.get_eft_bo (-)',
5791                                p_prefix=>l_debug_prefix,
5792                                p_msg_level=>fnd_log.level_procedure);
5793       END IF;
5794     WHEN OTHERS THEN
5795       x_return_status := fnd_api.g_ret_sts_unexp_error;
5796 
5797       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
5798       fnd_message.set_token('ERROR' ,SQLERRM);
5799       fnd_msg_pub.add;
5800 
5801       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5802                                 p_count => x_msg_count,
5803                                 p_data  => x_msg_data);
5804 
5805       -- Debug info.
5806       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5807         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5808                                p_msg_data=>x_msg_data,
5809                                p_msg_type=>'SQL ERROR',
5810                                p_msg_level=>fnd_log.level_error);
5811       END IF;
5812       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5813         hz_utility_v2pub.debug(p_message=>'hz_eft_bo_pub.get_eft_bo (-)',
5814                                p_prefix=>l_debug_prefix,
5815                                p_msg_level=>fnd_log.level_procedure);
5816       END IF;
5817 
5821 	p_sms_id			IN	NUMBER,
5818 end;
5819 
5820   PROCEDURE get_sms_bo (
5822 	p_sms_os			IN	VARCHAR2,
5823 	p_sms_osr			IN	VARCHAR2,
5824 	x_sms_obj			OUT NOCOPY	HZ_SMS_CP_BO,
5825 	x_return_status		OUT NOCOPY	VARCHAR2,
5826 	x_messages			OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
5827   ) IS
5828     l_msg_data         VARCHAR2(2000);
5829     l_msg_count        NUMBER;
5830   BEGIN
5831     get_sms_bo (
5832 	p_init_msg_list	=> FND_API.G_TRUE,
5833 	p_sms_id	=> p_sms_id,
5834 	p_sms_os	=> p_sms_os,
5835 	p_sms_osr	=> p_sms_osr,
5836 	x_sms_obj	=> x_sms_obj,
5837 	x_return_status	=> x_return_status,
5838 	x_msg_count	=> l_msg_count,
5839 	x_msg_data	=> l_msg_data);
5840     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
5841                     x_return_status   => x_return_status,
5842                     x_msg_count       => l_msg_count,
5843                     x_msg_data        => l_msg_data);
5844   END get_sms_bo;
5845 
5846  --------------------------------------
5847   --
5848   -- PROCEDURE get_sms_bo
5849   --
5850   -- DESCRIPTION
5851   --     Get a logical sms.
5852   --
5853   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
5854   --
5855   -- ARGUMENTS
5856   --   IN:
5857   --     p_init_msg_list      Initialize message stack if it is set to
5858   --     p_sms_id         sms ID.If this id passed in, return only one sms obj.
5859   --     p_sms_os           sms orig system.
5860   --     p_sms_osr          sms orig system reference.
5861   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
5862   --   OUT:
5863   --     x_sms_obj         Logical sms record.
5864   --     x_return_status      Return status after the call. The status can
5865   --                          be fnd_api.g_ret_sts_success (success),
5866   --                          fnd_api.g_ret_sts_error (error),
5867   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
5868   --     x_msg_count          Number of messages in message stack.
5869   --     x_msg_data           Message text if x_msg_count is 1.
5870   --
5871   -- NOTES
5872   --
5873   -- MODIFICATION HISTORY
5874   --
5875   --
5876   --   30-May-2005   AWU                Created.
5877   --
5878 
5879 
5880 PROCEDURE get_sms_bo (
5881 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
5882 	p_sms_id			IN	NUMBER,
5883 	p_sms_os			IN	VARCHAR2,
5884 	p_sms_osr			IN	VARCHAR2,
5885 	x_sms_obj			OUT NOCOPY	HZ_SMS_CP_BO,
5886 	x_return_status		OUT NOCOPY	VARCHAR2,
5887 	x_msg_count			OUT NOCOPY	NUMBER,
5888 	x_msg_data			OUT NOCOPY	VARCHAR2
5889   ) is
5890  l_debug_prefix              VARCHAR2(30) := '';
5891 
5892   l_sms_id  number;
5893   l_sms_os  varchar2(30);
5894   l_sms_osr varchar2(255);
5895   l_sms_objs HZ_SMS_CP_BO_TBL;
5896 BEGIN
5897 
5898 	-- initialize API return status to success.
5899     	x_return_status := FND_API.G_RET_STS_SUCCESS;
5900 
5901     	-- Initialize message list if p_init_msg_list is set to TRUE
5902     	IF FND_API.to_Boolean(p_init_msg_list) THEN
5903       		FND_MSG_PUB.initialize;
5904     	END IF;
5905 
5906 
5907 	-- Debug info.
5908         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5909         	hz_utility_v2pub.debug(p_message=>'hz_sms_bo_pub.get_sms_bo(+)',
5910                                p_prefix=>l_debug_prefix,
5911                                p_msg_level=>fnd_log.level_procedure);
5912     	END IF;
5913 
5914     	-- check if pass in contact_point_id and/or os+osr
5915     	-- extraction validation logic is same as update
5916 
5917     	l_sms_id := p_sms_id;
5918     	l_sms_os := p_sms_os;
5919     	l_sms_osr := p_sms_osr;
5920 
5921     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
5922       		px_id              => l_sms_id,
5923       		px_os              => l_sms_os,
5924       		px_osr             => l_sms_osr,
5925       		p_obj_type         => 'SMS',
5926       		x_return_status    => x_return_status,
5927       		x_msg_count        => x_msg_count,
5928       		x_msg_data         => x_msg_data);
5929 
5930     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5931       		RAISE fnd_api.g_exc_error;
5932    	 END IF;
5933 
5934 	HZ_EXTRACT_CONT_POINT_BO_PVT.get_sms_bos
5935 		(p_init_msg_list => fnd_api.g_false,
5936 		 p_sms_id => l_sms_id,
5937 		 p_parent_id => NULL,
5938  		 p_parent_table_name  => NULL,
5939 		 p_action_type => NULL,
5940 		 x_sms_objs => l_sms_objs,
5941 		 x_return_status => x_return_status,
5942 		 x_msg_count => x_msg_count,
5943 		 x_msg_data => x_msg_data);
5944 
5945 	x_sms_obj := l_sms_objs(1);
5946 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5947       		RAISE FND_API.G_EXC_ERROR;
5948     	END IF;
5949 
5950 
5951 	-- Debug info.
5952     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
5953          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5954                                p_msg_data=>x_msg_data,
5955                                p_msg_type=>'WARNING',
5956                                p_msg_level=>fnd_log.level_exception);
5957     	END IF;
5958 
5959     	-- Debug info.
5960         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5961         	hz_utility_v2pub.debug(p_message=>'hz_sms_bo_pub.get_sms_bo (-)',
5962                                p_prefix=>l_debug_prefix,
5963                                p_msg_level=>fnd_log.level_procedure);
5964     	END IF;
5965 
5966 
5967  EXCEPTION
5968 
5969   WHEN fnd_api.g_exc_error THEN
5970       x_return_status := fnd_api.g_ret_sts_error;
5971 
5972       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5973                                 p_count => x_msg_count,
5977       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5974                                 p_data  => x_msg_data);
5975 
5976       -- Debug info.
5978         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5979                                p_msg_data=>x_msg_data,
5980                                p_msg_type=>'ERROR',
5981                                p_msg_level=>fnd_log.level_error);
5982       END IF;
5983       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5984         hz_utility_v2pub.debug(p_message=>'hz_sms_bo_pub.get_sms_bo (-)',
5985                                p_prefix=>l_debug_prefix,
5986                                p_msg_level=>fnd_log.level_procedure);
5987       END IF;
5988     WHEN fnd_api.g_exc_unexpected_error THEN
5989       x_return_status := fnd_api.g_ret_sts_unexp_error;
5990 
5991       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
5992                                 p_count => x_msg_count,
5993                                 p_data  => x_msg_data);
5994 
5995       -- Debug info.
5996       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
5997         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
5998                                p_msg_data=>x_msg_data,
5999                                p_msg_type=>'UNEXPECTED ERROR',
6000                                p_msg_level=>fnd_log.level_error);
6001       END IF;
6002       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6003         hz_utility_v2pub.debug(p_message=>'hz_sms_bo_pub.get_sms_bo (-)',
6004                                p_prefix=>l_debug_prefix,
6005                                p_msg_level=>fnd_log.level_procedure);
6006       END IF;
6007     WHEN OTHERS THEN
6008       x_return_status := fnd_api.g_ret_sts_unexp_error;
6009 
6010       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
6011       fnd_message.set_token('ERROR' ,SQLERRM);
6012       fnd_msg_pub.add;
6013 
6014       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
6015                                 p_count => x_msg_count,
6016                                 p_data  => x_msg_data);
6017 
6018       -- Debug info.
6019       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
6020         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
6021                                p_msg_data=>x_msg_data,
6022                                p_msg_type=>'SQL ERROR',
6023                                p_msg_level=>fnd_log.level_error);
6024       END IF;
6025       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6026         hz_utility_v2pub.debug(p_message=>'hz_sms_bo_pub.get_sms_bo (-)',
6027                                p_prefix=>l_debug_prefix,
6028                                p_msg_level=>fnd_log.level_procedure);
6029       END IF;
6030 
6031 end;
6032 
6033 
6034 END hz_contact_point_bo_pub;