DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_PARTY_SITE_BO_PUB

Source


1 PACKAGE BODY hz_party_site_bo_pub AS
2 /*$Header: ARHBPSBB.pls 120.19 2006/05/18 22:27:56 acng noship $ */
3 
4   -- PRIVATE PROCEDURE assign_party_site_rec
5   --
6   -- DESCRIPTION
7   --     Assign attribute value from party site object to plsql record.
8   --
9   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
10   --
11   -- ARGUMENTS
12   --   IN:
13   --     p_party_site_obj     Party site business object.
14   --     p_party_id           Party Id.
15   --     p_location_id        Location Id.
16   --     p_ps_id              Party site Id.
17   --     p_ps_os              Party site original system.
18   --     p_ps_osr             Party site original system reference.
19   --     p_create_or_update   Create or update flag.
20   --   IN/OUT:
21   --     px_party_site_rec    Party site plsql record.
22   --
23   -- NOTES
24   --
25   -- MODIFICATION HISTORY
26   --
27   --   14-DEC-2004    Arnold Ng          Created.
28   --
29 
30   PROCEDURE assign_party_site_rec(
31     p_party_site_obj             IN            HZ_PARTY_SITE_BO,
32     p_party_id                   IN            NUMBER,
33     p_location_id                IN            NUMBER,
34     p_ps_id                      IN            NUMBER,
35     p_ps_os                      IN            VARCHAR2,
36     p_ps_osr                     IN            VARCHAR2,
37     p_create_or_update           IN            VARCHAR2 := 'C',
38     px_party_site_rec            IN OUT NOCOPY HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE
39   );
40 
41   -- PRIVATE PROCEDURE assign_party_site_rec
42   --
43   -- DESCRIPTION
44   --     Assign attribute value from party site object to plsql record.
45   --
46   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
47   --
48   -- ARGUMENTS
49   --   IN:
50   --     p_party_site_obj     Party site business object.
51   --     p_party_id           Party Id.
52   --     p_location_id        Location Id.
53   --     p_ps_id              Party site Id.
54   --     p_ps_os              Party site original system.
55   --     p_ps_osr             Party site original system reference.
56   --     p_create_or_update   Create or update flag.
57   --   IN/OUT:
58   --     px_party_site_rec    Party site plsql record.
59   --
60   -- NOTES
61   --
62   -- MODIFICATION HISTORY
63   --
64   --   14-DEC-2004    Arnold Ng          Created.
65   --
66 
67   PROCEDURE assign_party_site_rec(
68     p_party_site_obj             IN            HZ_PARTY_SITE_BO,
69     p_party_id                   IN            NUMBER,
70     p_location_id                IN            NUMBER,
71     p_ps_id                      IN            NUMBER,
72     p_ps_os                      IN            VARCHAR2,
73     p_ps_osr                     IN            VARCHAR2,
74     p_create_or_update           IN            VARCHAR2 := 'C',
75     px_party_site_rec            IN OUT NOCOPY HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE
76   ) IS
77   BEGIN
78     px_party_site_rec.party_site_id := p_ps_id;
79     px_party_site_rec.party_id := p_party_id;
80     px_party_site_rec.location_id := p_location_id;
81     px_party_site_rec.party_site_number := p_party_site_obj.party_site_number;
82     px_party_site_rec.mailstop := p_party_site_obj.mailstop;
83     IF(p_party_site_obj.identifying_address_flag in ('Y','N')) THEN
84       px_party_site_rec.identifying_address_flag := p_party_site_obj.identifying_address_flag;
85     END IF;
86     IF(p_party_site_obj.status in ('A','I')) THEN
87       px_party_site_rec.status := p_party_site_obj.status;
88     END IF;
89     px_party_site_rec.party_site_name := p_party_site_obj.party_site_name;
90     px_party_site_rec.attribute_category := p_party_site_obj.attribute_category;
91     px_party_site_rec.attribute1 := p_party_site_obj.attribute1;
92     px_party_site_rec.attribute2 := p_party_site_obj.attribute2;
93     px_party_site_rec.attribute3 := p_party_site_obj.attribute3;
94     px_party_site_rec.attribute4 := p_party_site_obj.attribute4;
95     px_party_site_rec.attribute5 := p_party_site_obj.attribute5;
96     px_party_site_rec.attribute6 := p_party_site_obj.attribute6;
97     px_party_site_rec.attribute7 := p_party_site_obj.attribute7;
98     px_party_site_rec.attribute8 := p_party_site_obj.attribute8;
99     px_party_site_rec.attribute9 := p_party_site_obj.attribute9;
100     px_party_site_rec.attribute10 := p_party_site_obj.attribute10;
101     px_party_site_rec.attribute11 := p_party_site_obj.attribute11;
102     px_party_site_rec.attribute12 := p_party_site_obj.attribute12;
103     px_party_site_rec.attribute13 := p_party_site_obj.attribute13;
104     px_party_site_rec.attribute14 := p_party_site_obj.attribute14;
105     px_party_site_rec.attribute15 := p_party_site_obj.attribute15;
106     px_party_site_rec.attribute16 := p_party_site_obj.attribute16;
107     px_party_site_rec.attribute17 := p_party_site_obj.attribute17;
108     px_party_site_rec.attribute18 := p_party_site_obj.attribute18;
109     px_party_site_rec.attribute19 := p_party_site_obj.attribute19;
110     px_party_site_rec.attribute20 := p_party_site_obj.attribute20;
111     px_party_site_rec.language := p_party_site_obj.language;
112     px_party_site_rec.addressee := p_party_site_obj.addressee;
113     IF(p_create_or_update = 'C') THEN
114       px_party_site_rec.orig_system := p_ps_os;
115       px_party_site_rec.orig_system_reference := p_ps_osr;
116       px_party_site_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
117     END IF;
118     px_party_site_rec.global_location_number := p_party_site_obj.global_location_number;
119   END assign_party_site_rec;
120 
121   -- PROCEDURE create_party_site_bo
122   --
123   -- DESCRIPTION
124   --     Create a party site business object.
125   PROCEDURE do_create_party_site_bo(
126     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
127     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
128     p_party_site_obj      IN OUT NOCOPY HZ_PARTY_SITE_BO,
129     p_created_by_module   IN            VARCHAR2,
130     p_obj_source          IN            VARCHAR2 := null,
131     x_return_status       OUT NOCOPY    VARCHAR2,
132     x_msg_count           OUT NOCOPY    NUMBER,
133     x_msg_data            OUT NOCOPY    VARCHAR2,
134     x_party_site_id       OUT NOCOPY    NUMBER,
135     x_party_site_os       OUT NOCOPY    VARCHAR2,
136     x_party_site_osr      OUT NOCOPY    VARCHAR2,
137     px_parent_id          IN OUT NOCOPY NUMBER,
138     px_parent_os          IN OUT NOCOPY VARCHAR2,
139     px_parent_osr         IN OUT NOCOPY VARCHAR2,
140     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
141   ) IS
142     l_debug_prefix             VARCHAR2(30);
143     l_party_site_rec           HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE;
144     l_location_rec             HZ_LOCATION_V2PUB.LOCATION_REC_TYPE;
145     l_party_site_use_rec       HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
146     l_party_site_id            NUMBER;
147     l_ps_number                VARCHAR2(30);
148     l_location_id              NUMBER;
149     l_valid_obj                BOOLEAN;
150     l_bus_object               HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
151     l_errorcode                NUMBER;
152     l_cbm                      VARCHAR2(30);
153     l_edi_objs                 HZ_EDI_CP_BO_TBL;
154     l_eft_objs                 HZ_EFT_CP_BO_TBL;
155     l_sms_objs                 HZ_SMS_CP_BO_TBL;
156   BEGIN
157     -- Standard start of API savepoint
158     SAVEPOINT do_create_party_site_bo_pub;
159 
160     -- initialize API return status to success.
161     x_return_status := FND_API.G_RET_STS_SUCCESS;
162 
163     -- Initialize message list of p_init_msg_list is set to TRUE.
164     IF FND_API.to_Boolean(p_init_msg_list) THEN
165       FND_MSG_PUB.initialize;
166     END IF;
167 
168     -- initialize Global variable
169     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
170     IF(p_created_by_module IS NULL) THEN
171       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
172     ELSE
173       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
174     END IF;
175 
176     -- Debug info.
177     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
178         hz_utility_v2pub.debug(p_message=>'do_create_party_site_bo(+)',
179                                p_prefix=>l_debug_prefix,
180                                p_msg_level=>fnd_log.level_procedure);
181     END IF;
182 
183     -- Base on p_validate_bo_flag, check the completeness of business objects
184     IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
185       HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
186         p_bus_object_code         => 'PARTY_SITE',
187         x_bus_object              => l_bus_object
188       );
189 
190       l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_ps_bo_comp(
191                        p_ps_objs    => HZ_PARTY_SITE_BO_TBL(p_party_site_obj),
192                        p_bus_object => l_bus_object
193                      );
194       IF NOT(l_valid_obj) THEN
195         RAISE fnd_api.g_exc_error;
196       END IF;
197     END IF;
198 
199     -- check pass in parent_id and parent_os+osr
200     hz_registry_validate_bo_pvt.validate_parent_id(
201       px_parent_id      => px_parent_id,
202       px_parent_os      => px_parent_os,
203       px_parent_osr     => px_parent_osr,
204       p_parent_obj_type => px_parent_obj_type,
205       x_return_status   => x_return_status,
206       x_msg_count       => x_msg_count,
207       x_msg_data        => x_msg_data);
208 
209     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
210       RAISE FND_API.G_EXC_ERROR;
211     END IF;
212 
213     x_party_site_id := p_party_site_obj.party_site_id;
214     x_party_site_os := p_party_site_obj.orig_system;
215     x_party_site_osr := p_party_site_obj.orig_system_reference;
216 
217     -- check if pass in contact_point_id and os+osr
218     hz_registry_validate_bo_pvt.validate_ssm_id(
219       px_id              => x_party_site_id,
220       px_os              => x_party_site_os,
221       px_osr             => x_party_site_osr,
222       p_obj_type         => 'HZ_PARTY_SITES',
223       p_create_or_update => 'C',
224       x_return_status    => x_return_status,
225       x_msg_count        => x_msg_count,
226       x_msg_data         => x_msg_data);
227 
228     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
229       RAISE FND_API.G_EXC_ERROR;
230     END IF;
231 
232     ----------------------------
233     -- For location record
234     ----------------------------
235     IF(p_party_site_obj.location_obj IS NULL) THEN
236       fnd_message.set_name('AR', 'HZ_API_MISSING_MANDATORY_ENT');
237       fnd_message.set_token('ENTITY' ,'LOCATION');
238       fnd_msg_pub.add;
239       RAISE FND_API.G_EXC_ERROR;
240     END IF;
241 
242     HZ_LOCATION_BO_PUB.assign_location_rec(
243       p_location_obj  => p_party_site_obj.location_obj,
244       p_loc_os        => p_party_site_obj.location_obj.orig_system,
245       p_loc_osr       => p_party_site_obj.location_obj.orig_system_reference,
246       px_location_rec => l_location_rec
247     );
248 
249     HZ_LOCATION_V2PUB.create_location(
250       p_location_rec              => l_location_rec,
251       x_location_id               => l_location_id,
252       x_return_status             => x_return_status,
253       x_msg_count                 => x_msg_count,
254       x_msg_data                  => x_msg_data
255     );
256 
257     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
258       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
259       FND_MESSAGE.SET_TOKEN('OBJECT', 'LOCATION');
260       FND_MSG_PUB.ADD;
261       RAISE FND_API.G_EXC_ERROR;
262     END IF;
263 
264     -- assign location_id
265     p_party_site_obj.location_obj.location_id := l_location_id;
266     ----------------------------
267     -- Create Location Ext Attrs
268     ----------------------------
269     IF((p_party_site_obj.location_obj.ext_attributes_objs IS NOT NULL) AND
270        (p_party_site_obj.location_obj.ext_attributes_objs.COUNT > 0)) THEN
271       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
272         p_ext_attr_objs             => p_party_site_obj.location_obj.ext_attributes_objs,
273         p_parent_obj_id             => l_location_id,
274         p_parent_obj_type           => 'LOCATION',
275         p_create_or_update          => 'C',
276         x_return_status             => x_return_status,
277         x_errorcode                 => l_errorcode,
278         x_msg_count                 => x_msg_count,
279         x_msg_data                  => x_msg_data
280       );
281 
282       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
283         RAISE FND_API.G_EXC_ERROR;
284       END IF;
285     END IF;
286 
287     ----------------------------
288     -- For party site record
289     ----------------------------
290     assign_party_site_rec(
291       p_party_site_obj  => p_party_site_obj,
292       p_party_id        => px_parent_id,
293       p_location_id     => l_location_id,
294       p_ps_id           => x_party_site_id,
295       p_ps_os           => x_party_site_os,
296       p_ps_osr          => x_party_site_osr,
297       px_party_site_rec => l_party_site_rec
298     );
299 
300     HZ_PARTY_SITE_V2PUB.create_party_site(
301       p_party_site_rec            => l_party_site_rec,
302       x_party_site_id             => x_party_site_id,
303       x_party_site_number         => l_ps_number,
304       x_return_status             => x_return_status,
305       x_msg_count                 => x_msg_count,
306       x_msg_data                  => x_msg_data
307     );
308 
309     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
310       RAISE FND_API.G_EXC_ERROR;
311     END IF;
312 
313     -- assign party_site_id
314     p_party_site_obj.party_site_id := x_party_site_id;
315     ------------------------------
316     -- Create Party Site Ext Attrs
317     ------------------------------
318     IF((p_party_site_obj.ext_attributes_objs IS NOT NULL) AND
319        (p_party_site_obj.ext_attributes_objs.COUNT > 0)) THEN
320       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
321         p_ext_attr_objs             => p_party_site_obj.ext_attributes_objs,
322         p_parent_obj_id             => x_party_site_id,
323         p_parent_obj_type           => 'PARTY_SITE',
324         p_create_or_update          => 'C',
325         x_return_status             => x_return_status,
326         x_errorcode                 => l_errorcode,
327         x_msg_count                 => x_msg_count,
328         x_msg_data                  => x_msg_data
329       );
330 
331       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
332         RAISE FND_API.G_EXC_ERROR;
333       END IF;
334     END IF;
335 
336     ------------------------
337     -- For party site use
338     ------------------------
339     IF((p_party_site_obj.party_site_use_objs IS NOT NULL) AND
340        (p_party_site_obj.party_site_use_objs.COUNT > 0)) THEN
341       HZ_PARTY_SITE_BO_PVT.create_party_site_uses(
342         p_psu_objs           => p_party_site_obj.party_site_use_objs,
343         p_ps_id              => x_party_site_id,
344         x_return_status      => x_return_status,
345         x_msg_count          => x_msg_count,
346         x_msg_data           => x_msg_data
347       );
348 
349       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
350         RAISE FND_API.G_EXC_ERROR;
351       END IF;
352     END IF;
353 
354     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
355 
356     ----------------------------------------------------------
357     -- For contact points - phone, telex, email and web
358     ----------------------------------------------------------
359     IF(((p_party_site_obj.phone_objs IS NOT NULL) AND (p_party_site_obj.phone_objs.COUNT > 0)) OR
360        ((p_party_site_obj.telex_objs IS NOT NULL) AND (p_party_site_obj.telex_objs.COUNT > 0)) OR
361        ((p_party_site_obj.email_objs IS NOT NULL) AND (p_party_site_obj.email_objs.COUNT > 0)) OR
362        ((p_party_site_obj.web_objs IS NOT NULL) AND (p_party_site_obj.web_objs.COUNT > 0))) THEN
363       HZ_CONTACT_POINT_BO_PVT.save_contact_points(
364         p_phone_objs         => p_party_site_obj.phone_objs,
365         p_telex_objs         => p_party_site_obj.telex_objs,
366         p_email_objs         => p_party_site_obj.email_objs,
367         p_web_objs           => p_party_site_obj.web_objs,
368         p_edi_objs           => l_edi_objs,
369         p_eft_objs           => l_eft_objs,
370         p_sms_objs           => l_sms_objs,
371         p_owner_table_id     => x_party_site_id,
372         p_owner_table_os     => x_party_site_os,
373         p_owner_table_osr    => x_party_site_osr,
374         p_parent_obj_type    => 'PARTY_SITE',
375         p_create_update_flag => 'C',
376         p_obj_source         => p_obj_source,
377         x_return_status      => x_return_status,
378         x_msg_count          => x_msg_count,
379         x_msg_data           => x_msg_data
380       );
381 
382       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
383         RAISE FND_API.G_EXC_ERROR;
384       END IF;
385     END IF;
386 
387     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
388 
389     ----------------------------
390     -- For contact preference
391     ----------------------------
392     IF((p_party_site_obj.contact_pref_objs IS NOT NULL) AND
393        (p_party_site_obj.contact_pref_objs.COUNT > 0)) THEN
394       HZ_CONTACT_PREFERENCE_BO_PVT.create_contact_preferences(
395         p_cp_pref_objs       => p_party_site_obj.contact_pref_objs,
396         p_contact_level_table_id => x_party_site_id,
397         p_contact_level_table => 'HZ_PARTY_SITES',
398         x_return_status      => x_return_status,
399         x_msg_count          => x_msg_count,
400         x_msg_data           => x_msg_data
401       );
402 
403       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
404         RAISE FND_API.G_EXC_ERROR;
405       END IF;
406     END IF;
407 
408     -- reset Global variable
409     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
410     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
411 
412     -- Debug info.
413     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
414          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
415                                p_msg_data=>x_msg_data,
416                                p_msg_type=>'WARNING',
417                                p_msg_level=>fnd_log.level_exception);
418     END IF;
419     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
420         hz_utility_v2pub.debug(p_message=>'do_create_party_site_bo(-)',
421                                p_prefix=>l_debug_prefix,
422                                p_msg_level=>fnd_log.level_procedure);
423     END IF;
424 
425   EXCEPTION
426     WHEN fnd_api.g_exc_error THEN
427       ROLLBACK TO do_create_party_site_bo_pub;
428 
429       -- reset Global variable
430       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
431       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
432 
433       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
434       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
435       FND_MSG_PUB.ADD;
436 
437       x_return_status := fnd_api.g_ret_sts_error;
438 
439       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
440                                 p_count => x_msg_count,
441                                 p_data  => x_msg_data);
442 
443       -- Debug info.
444       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
445         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
446                                p_msg_data=>x_msg_data,
447                                p_msg_type=>'ERROR',
448                                p_msg_level=>fnd_log.level_error);
449       END IF;
450       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
451         hz_utility_v2pub.debug(p_message=>'do_create_party_site_bo(-)',
452                                p_prefix=>l_debug_prefix,
453                                p_msg_level=>fnd_log.level_procedure);
454       END IF;
455 
456     WHEN fnd_api.g_exc_unexpected_error THEN
457       ROLLBACK TO do_create_party_site_bo_pub;
458 
459       -- reset Global variable
460       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
461       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
462 
463       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
464       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
465       FND_MSG_PUB.ADD;
466 
467       x_return_status := fnd_api.g_ret_sts_unexp_error;
468 
469       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
470                                 p_count => x_msg_count,
471                                 p_data  => x_msg_data);
472 
473       -- Debug info.
474       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
475         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
476                                p_msg_data=>x_msg_data,
477                                p_msg_type=>'UNEXPECTED ERROR',
478                                p_msg_level=>fnd_log.level_error);
479       END IF;
480       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
481         hz_utility_v2pub.debug(p_message=>'do_create_party_site_bo(-)',
482                                p_prefix=>l_debug_prefix,
483                                p_msg_level=>fnd_log.level_procedure);
484       END IF;
485 
486     WHEN OTHERS THEN
487       ROLLBACK TO do_create_party_site_bo_pub;
488 
489       -- reset Global variable
490       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
491       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
492 
493       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
494       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
495       FND_MSG_PUB.ADD;
496 
497       x_return_status := fnd_api.g_ret_sts_unexp_error;
498 
499       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
500       fnd_message.set_token('ERROR' ,SQLERRM);
501       fnd_msg_pub.add;
502 
503       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
504                                 p_count => x_msg_count,
505                                 p_data  => x_msg_data);
506 
507       -- Debug info.
508       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
509         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
510                                p_msg_data=>x_msg_data,
511                                p_msg_type=>'SQL ERROR',
512                                p_msg_level=>fnd_log.level_error);
513       END IF;
514       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
515         hz_utility_v2pub.debug(p_message=>'do_create_party_site_bo(-)',
516                                p_prefix=>l_debug_prefix,
517                                p_msg_level=>fnd_log.level_procedure);
518       END IF;
519   END do_create_party_site_bo;
520 
521   PROCEDURE create_party_site_bo(
522     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
523     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
524     p_party_site_obj      IN            HZ_PARTY_SITE_BO,
525     p_created_by_module   IN            VARCHAR2,
526     x_return_status       OUT NOCOPY    VARCHAR2,
527     x_msg_count           OUT NOCOPY    NUMBER,
528     x_msg_data            OUT NOCOPY    VARCHAR2,
529     x_party_site_id       OUT NOCOPY    NUMBER,
530     x_party_site_os       OUT NOCOPY    VARCHAR2,
531     x_party_site_osr      OUT NOCOPY    VARCHAR2,
532     px_parent_id          IN OUT NOCOPY NUMBER,
533     px_parent_os          IN OUT NOCOPY VARCHAR2,
534     px_parent_osr         IN OUT NOCOPY VARCHAR2,
535     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
536   ) IS
537     l_ps_obj              HZ_PARTY_SITE_BO;
538   BEGIN
539     l_ps_obj := p_party_site_obj;
540     do_create_party_site_bo(
541       p_init_msg_list       => p_init_msg_list,
542       p_validate_bo_flag    => p_validate_bo_flag,
543       p_party_site_obj      => l_ps_obj,
544       p_created_by_module   => p_created_by_module,
545       p_obj_source          => null,
546       x_return_status       => x_return_status,
547       x_msg_count           => x_msg_count,
548       x_msg_data            => x_msg_data,
549       x_party_site_id       => x_party_site_id,
550       x_party_site_os       => x_party_site_os,
551       x_party_site_osr      => x_party_site_osr,
552       px_parent_id          => px_parent_id,
553       px_parent_os          => px_parent_os,
554       px_parent_osr         => px_parent_osr,
555       px_parent_obj_type    => px_parent_obj_type
556     );
557   END create_party_site_bo;
558 
559   PROCEDURE create_party_site_bo(
560     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
561     p_party_site_obj      IN            HZ_PARTY_SITE_BO,
562     p_created_by_module   IN            VARCHAR2,
563     p_obj_source          IN            VARCHAR2 := null,
564     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
565     x_return_status       OUT NOCOPY    VARCHAR2,
566     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
567     x_return_obj          OUT NOCOPY    HZ_PARTY_SITE_BO,
568     x_party_site_id       OUT NOCOPY    NUMBER,
569     x_party_site_os       OUT NOCOPY    VARCHAR2,
570     x_party_site_osr      OUT NOCOPY    VARCHAR2,
571     px_parent_id          IN OUT NOCOPY NUMBER,
572     px_parent_os          IN OUT NOCOPY VARCHAR2,
573     px_parent_osr         IN OUT NOCOPY VARCHAR2,
574     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
575   ) IS
576     l_msg_count           NUMBER;
577     l_msg_data            VARCHAR2(2000);
578     l_ps_obj              HZ_PARTY_SITE_BO;
579   BEGIN
580     l_ps_obj := p_party_site_obj;
581     do_create_party_site_bo(
582       p_init_msg_list       => fnd_api.g_true,
583       p_validate_bo_flag    => p_validate_bo_flag,
584       p_party_site_obj      => l_ps_obj,
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_party_site_id       => x_party_site_id,
591       x_party_site_os       => x_party_site_os,
592       x_party_site_osr      => x_party_site_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     );
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_ps_obj;
604     END IF;
605   END create_party_site_bo;
606 
607   -- PROCEDURE update_party_site_bo
608   --
609   -- DESCRIPTION
610   --     Update a party site business object.
611   --
612   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
613   --
614   -- ARGUMENTS
615   --   IN:
616   --     p_init_msg_list      Initialize message stack if it is set to
617   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
618   --     p_party_site_obj     Party site business object.
619   --     p_created_by_module  Created by module.
620   --   OUT:
621   --     x_return_status      Return status after the call. The status can
622   --                          be fnd_api.g_ret_sts_success (success),
623   --                          fnd_api.g_ret_sts_error (error),
624   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
625   --     x_msg_count          Number of messages in message stack.
626   --     x_msg_data           Message text if x_msg_count is 1.
627   --     x_party_site_id      Party Site ID.
628   --     x_party_site_os      Party Site orig system.
629   --     x_party_site_osr     Party Site orig system reference.
630   --
631   -- NOTES
632   --
633   -- MODIFICATION HISTORY
634   --
635   --   14-DEC-2004    Arnold Ng          Created.
636   --
637 
638   PROCEDURE update_party_site_bo(
639     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
640     p_party_site_obj      IN            HZ_PARTY_SITE_BO,
641     p_created_by_module   IN            VARCHAR2,
642     x_return_status       OUT NOCOPY    VARCHAR2,
643     x_msg_count           OUT NOCOPY    NUMBER,
644     x_msg_data            OUT NOCOPY    VARCHAR2,
645     x_party_site_id       OUT NOCOPY    NUMBER,
646     x_party_site_os       OUT NOCOPY    VARCHAR2,
647     x_party_site_osr      OUT NOCOPY    VARCHAR2
648   )IS
649     l_ps_obj              HZ_PARTY_SITE_BO;
650   BEGIN
651     l_ps_obj := p_party_site_obj;
652     do_update_party_site_bo(
653       p_init_msg_list       => p_init_msg_list,
654       p_party_site_obj      => l_ps_obj,
655       p_created_by_module   => p_created_by_module,
656       p_obj_source          => null,
657       x_return_status       => x_return_status,
658       x_msg_count           => x_msg_count,
659       x_msg_data            => x_msg_data,
660       x_party_site_id       => x_party_site_id,
661       x_party_site_os       => x_party_site_os,
662       x_party_site_osr      => x_party_site_osr,
663       p_parent_os           => NULL );
664   END update_party_site_bo;
665 
666   PROCEDURE update_party_site_bo(
667     p_party_site_obj      IN            HZ_PARTY_SITE_BO,
668     p_created_by_module   IN            VARCHAR2,
669     p_obj_source          IN            VARCHAR2 := null,
670     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
671     x_return_status       OUT NOCOPY    VARCHAR2,
672     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
673     x_return_obj          OUT NOCOPY    HZ_PARTY_SITE_BO,
674     x_party_site_id       OUT NOCOPY    NUMBER,
675     x_party_site_os       OUT NOCOPY    VARCHAR2,
676     x_party_site_osr      OUT NOCOPY    VARCHAR2
677   )IS
678     l_msg_count           NUMBER;
679     l_msg_data            VARCHAR2(2000);
680     l_ps_obj              HZ_PARTY_SITE_BO;
681   BEGIN
682     l_ps_obj := p_party_site_obj;
683     do_update_party_site_bo(
684       p_init_msg_list       => fnd_api.g_true,
685       p_party_site_obj      => l_ps_obj,
686       p_created_by_module   => p_created_by_module,
687       p_obj_source          => p_obj_source,
688       x_return_status       => x_return_status,
689       x_msg_count           => l_msg_count,
690       x_msg_data            => l_msg_data,
691       x_party_site_id       => x_party_site_id,
692       x_party_site_os       => x_party_site_os,
693       x_party_site_osr      => x_party_site_osr,
694       p_parent_os           => NULL
695     );
696     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
697                     x_return_status   => x_return_status,
698                     x_msg_count       => l_msg_count,
699                     x_msg_data        => l_msg_data);
700     IF FND_API.to_Boolean(p_return_obj_flag) THEN
701       x_return_obj := l_ps_obj;
702     END IF;
703   END update_party_site_bo;
704 
705   -- PRIVATE PROCEDURE do_update_party_site_bo
706   --
707   -- DESCRIPTION
708   --     Update party site business object.
709   PROCEDURE do_update_party_site_bo(
710     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
711     p_party_site_obj      IN OUT NOCOPY HZ_PARTY_SITE_BO,
712     p_created_by_module   IN            VARCHAR2,
713     p_obj_source          IN            VARCHAR2 := null,
714     x_return_status       OUT NOCOPY    VARCHAR2,
715     x_msg_count           OUT NOCOPY    NUMBER,
716     x_msg_data            OUT NOCOPY    VARCHAR2,
717     x_party_site_id       OUT NOCOPY    NUMBER,
718     x_party_site_os       OUT NOCOPY    VARCHAR2,
719     x_party_site_osr      OUT NOCOPY    VARCHAR2,
720     p_parent_os           IN            VARCHAR2
721   )IS
722     l_debug_prefix             VARCHAR2(30);
723     l_party_site_rec           HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE;
724     l_location_rec             HZ_LOCATION_V2PUB.LOCATION_REC_TYPE;
725     l_party_site_use_rec       HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
726     l_ps_id                    NUMBER;
727     l_ps_ovn                   NUMBER;
728     l_loc_ovn                  NUMBER;
729     l_location_id              NUMBER;
730     l_party_id                 NUMBER;
731     l_create_update_flag       VARCHAR2(1);
732     l_errorcode                NUMBER;
733     l_cbm                      VARCHAR2(30);
734     l_edi_objs                 HZ_EDI_CP_BO_TBL;
735     l_eft_objs                 HZ_EFT_CP_BO_TBL;
736     l_sms_objs                 HZ_SMS_CP_BO_TBL;
737 
738     CURSOR get_ovn(l_ps_id  NUMBER) IS
739     SELECT ps.object_version_number, loc.object_version_number, ps.party_id, loc.location_id
740     FROM HZ_PARTY_SITES ps, HZ_LOCATIONS loc
741     WHERE ps.party_site_id = l_ps_id
742     AND ps.location_id = loc.location_id
743     AND ps.status in ('A','I');
744 
745   BEGIN
746     -- Standard start of API savepoint
747     SAVEPOINT do_update_party_site_bo_pub;
748 
749     -- initialize API return status to success.
750     x_return_status := FND_API.G_RET_STS_SUCCESS;
751 
752     -- Initialize message list of p_init_msg_list is set to TRUE.
753     IF FND_API.to_Boolean(p_init_msg_list) THEN
754       FND_MSG_PUB.initialize;
755     END IF;
756 
757     -- initialize Global variable
758     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
759     IF(p_created_by_module IS NULL) THEN
760       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
761     ELSE
762       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
763     END IF;
764 
765     -- Debug info.
766     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
767         hz_utility_v2pub.debug(p_message=>'do_update_party_site_bo(+)',
768                                p_prefix=>l_debug_prefix,
769                                p_msg_level=>fnd_log.level_procedure);
770     END IF;
771 
772     x_party_site_id := p_party_site_obj.party_site_id;
773     x_party_site_os := p_party_site_obj.orig_system;
774     x_party_site_osr := p_party_site_obj.orig_system_reference;
775 
776     -- check if pass in party_site_id and ssm is
777     -- valid for update
778     hz_registry_validate_bo_pvt.validate_ssm_id(
779       px_id              => x_party_site_id,
780       px_os              => x_party_site_os,
781       px_osr             => x_party_site_osr,
782       p_obj_type         => 'HZ_PARTY_SITES',
783       p_create_or_update => 'U',
784       x_return_status    => x_return_status,
785       x_msg_count        => x_msg_count,
786       x_msg_data         => x_msg_data);
787 
788     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
789       RAISE FND_API.G_EXC_ERROR;
790     END IF;
791 
792     OPEN get_ovn(x_party_site_id);
793     FETCH get_ovn INTO l_ps_ovn, l_loc_ovn, l_party_id, l_location_id;
794     CLOSE get_ovn;
795 
796     ------------------------
797     -- For Party Site
798     ------------------------
799     assign_party_site_rec(
800       p_party_site_obj  => p_party_site_obj,
801       p_party_id        => l_party_id,
802       p_location_id     => l_location_id,
803       p_ps_id           => x_party_site_id,
804       p_ps_os           => x_party_site_os,
805       p_ps_osr          => x_party_site_osr,
806       p_create_or_update => 'U',
807       px_party_site_rec => l_party_site_rec
808     );
809 
810     HZ_PARTY_SITE_V2PUB.update_party_site(
811       p_party_site_rec            => l_party_site_rec,
812       p_object_version_number     => l_ps_ovn,
813       x_return_status             => x_return_status,
814       x_msg_count                 => x_msg_count,
815       x_msg_data                  => x_msg_data
816     );
817 
818     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
819       FND_MSG_PUB.ADD;
820       RAISE FND_API.G_EXC_ERROR;
821     END IF;
822 
823     -- assign party_site_id
824     p_party_site_obj.party_site_id := x_party_site_id;
825     ------------------------------
826     -- Create Party Site Ext Attrs
827     ------------------------------
828     IF((p_party_site_obj.ext_attributes_objs IS NOT NULL) AND
829        (p_party_site_obj.ext_attributes_objs.COUNT > 0)) THEN
830       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
831         p_ext_attr_objs             => p_party_site_obj.ext_attributes_objs,
832         p_parent_obj_id             => x_party_site_id,
833         p_parent_obj_type           => 'PARTY_SITE',
834         p_create_or_update          => 'U',
835         x_return_status             => x_return_status,
836         x_errorcode                 => l_errorcode,
837         x_msg_count                 => x_msg_count,
838         x_msg_data                  => x_msg_data
839       );
840 
841       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
842         RAISE FND_API.G_EXC_ERROR;
843       END IF;
844     END IF;
845 
846     ----------------------
847     -- For Location
848     ----------------------
849     -- If there is no change in location information, user won't pass in
850     -- location object.  Therefore, don't do anything
851     IF(p_party_site_obj.location_obj IS NOT NULL) THEN
852       HZ_LOCATION_BO_PUB.assign_location_rec(
853         p_location_obj  => p_party_site_obj.location_obj,
854         p_loc_os        => p_party_site_obj.location_obj.orig_system,
855         p_loc_osr       => p_party_site_obj.location_obj.orig_system_reference,
856         p_create_or_update => 'U',
857         px_location_rec => l_location_rec
858       );
859 
860       l_location_rec.location_id := l_location_id;
861 
862       HZ_LOCATION_V2PUB.update_location(
863         p_location_rec              => l_location_rec,
864         p_object_version_number     => l_loc_ovn,
865         x_return_status             => x_return_status,
866         x_msg_count                 => x_msg_count,
867         x_msg_data                  => x_msg_data
868       );
869 
870       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
871         FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
872         FND_MESSAGE.SET_TOKEN('OBJECT', 'LOCATION');
873         FND_MSG_PUB.ADD;
874         RAISE FND_API.G_EXC_ERROR;
875       END IF;
876 
877       -- assign location_id
878       p_party_site_obj.location_obj.location_id := l_location_id;
879       ----------------------------
880       -- Create Location Ext Attrs
881       ----------------------------
882       IF((p_party_site_obj.location_obj.ext_attributes_objs IS NOT NULL) AND
883          (p_party_site_obj.location_obj.ext_attributes_objs.COUNT > 0)) THEN
884         HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
885           p_ext_attr_objs             => p_party_site_obj.location_obj.ext_attributes_objs,
886           p_parent_obj_id             => l_location_id,
887           p_parent_obj_type           => 'LOCATION',
888           p_create_or_update          => 'U',
889           x_return_status             => x_return_status,
890           x_errorcode                 => l_errorcode,
891           x_msg_count                 => x_msg_count,
892           x_msg_data                  => x_msg_data
893         );
894 
895         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
896           RAISE FND_API.G_EXC_ERROR;
897         END IF;
898       END IF;
899     END IF;
900 
901     ---------------------
902     -- For Party Site Use
903     ---------------------
904     IF((p_party_site_obj.party_site_use_objs IS NOT NULL) AND
905        (p_party_site_obj.party_site_use_objs.COUNT > 0)) THEN
906       HZ_PARTY_SITE_BO_PVT.save_party_site_uses(
907         p_psu_objs           => p_party_site_obj.party_site_use_objs,
908         p_ps_id              => x_party_site_id,
909         x_return_status      => x_return_status,
910         x_msg_count          => x_msg_count,
911         x_msg_data           => x_msg_data
912       );
913 
914       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
915         RAISE FND_API.G_EXC_ERROR;
916       END IF;
917     END IF;
918 
919     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
920 
921     ---------------------
922     -- For Contact Points
923     ---------------------
924     IF(((p_party_site_obj.phone_objs IS NOT NULL) AND (p_party_site_obj.phone_objs.COUNT > 0)) OR
925        ((p_party_site_obj.telex_objs IS NOT NULL) AND (p_party_site_obj.telex_objs.COUNT > 0)) OR
926        ((p_party_site_obj.email_objs IS NOT NULL) AND (p_party_site_obj.email_objs.COUNT > 0)) OR
927        ((p_party_site_obj.web_objs IS NOT NULL) AND (p_party_site_obj.web_objs.COUNT > 0))) THEN
928       HZ_CONTACT_POINT_BO_PVT.save_contact_points(
929         p_phone_objs         => p_party_site_obj.phone_objs,
930         p_telex_objs         => p_party_site_obj.telex_objs,
931         p_email_objs         => p_party_site_obj.email_objs,
932         p_web_objs           => p_party_site_obj.web_objs,
933         p_edi_objs           => l_edi_objs,
934         p_eft_objs           => l_eft_objs,
935         p_sms_objs           => l_sms_objs,
936         p_owner_table_id     => x_party_site_id,
937         p_owner_table_os     => x_party_site_os,
938         p_owner_table_osr    => x_party_site_osr,
939         p_parent_obj_type    => 'PARTY_SITE',
940         p_create_update_flag => 'U',
941         p_obj_source         => p_obj_source,
942         x_return_status      => x_return_status,
943         x_msg_count          => x_msg_count,
944         x_msg_data           => x_msg_data
945       );
946 
947       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
948         RAISE FND_API.G_EXC_ERROR;
949       END IF;
950     END IF;
951 
952     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
953 
954     -------------------------
955     -- For Contact Preference
956     -------------------------
957     IF((p_party_site_obj.contact_pref_objs IS NOT NULL) AND
958        (p_party_site_obj.contact_pref_objs.COUNT > 0)) THEN
959       HZ_CONTACT_PREFERENCE_BO_PVT.save_contact_preferences(
960         p_cp_pref_objs       => p_party_site_obj.contact_pref_objs,
961         p_contact_level_table_id => x_party_site_id,
962         p_contact_level_table => 'HZ_PARTY_SITES',
963         x_return_status      => x_return_status,
964         x_msg_count          => x_msg_count,
965         x_msg_data           => x_msg_data
966       );
967 
968       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
969         RAISE FND_API.G_EXC_ERROR;
970       END IF;
971     END IF;
972 
973     -- reset Global variable
974     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
975     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
976 
977     -- Debug info.
978     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
979          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
980                                p_msg_data=>x_msg_data,
981                                p_msg_type=>'WARNING',
982                                p_msg_level=>fnd_log.level_exception);
983     END IF;
984     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
985         hz_utility_v2pub.debug(p_message=>'do_update_party_site_bo(-)',
986                                p_prefix=>l_debug_prefix,
987                                p_msg_level=>fnd_log.level_procedure);
988     END IF;
989 
990   EXCEPTION
991     WHEN fnd_api.g_exc_error THEN
992       ROLLBACK TO do_update_party_site_bo_pub;
993 
994       -- reset Global variable
995       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
996       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
997 
998       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
999       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
1000       FND_MSG_PUB.ADD;
1001 
1002       x_return_status := fnd_api.g_ret_sts_error;
1003 
1004       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1005                                 p_count => x_msg_count,
1006                                 p_data  => x_msg_data);
1007 
1008       -- Debug info.
1009       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1010         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1011                                p_msg_data=>x_msg_data,
1012                                p_msg_type=>'ERROR',
1013                                p_msg_level=>fnd_log.level_error);
1014       END IF;
1015       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1016         hz_utility_v2pub.debug(p_message=>'do_update_party_site_bo(-)',
1017                                p_prefix=>l_debug_prefix,
1018                                p_msg_level=>fnd_log.level_procedure);
1019       END IF;
1020 
1021     WHEN fnd_api.g_exc_unexpected_error THEN
1022       ROLLBACK TO do_update_party_site_bo_pub;
1023 
1024       -- reset Global variable
1025       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1026       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1027 
1028       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1029       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
1030       FND_MSG_PUB.ADD;
1031 
1032       x_return_status := fnd_api.g_ret_sts_unexp_error;
1033 
1034       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1035                                 p_count => x_msg_count,
1036                                 p_data  => x_msg_data);
1037 
1038       -- Debug info.
1039       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1040         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1041                                p_msg_data=>x_msg_data,
1042                                p_msg_type=>'UNEXPECTED ERROR',
1043                                p_msg_level=>fnd_log.level_error);
1044       END IF;
1045       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1046         hz_utility_v2pub.debug(p_message=>'do_update_party_site_bo(-)',
1047                                p_prefix=>l_debug_prefix,
1048                                p_msg_level=>fnd_log.level_procedure);
1049       END IF;
1050 
1051     WHEN OTHERS THEN
1052       ROLLBACK TO do_update_party_site_bo_pub;
1053 
1054       -- reset Global variable
1055       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1056       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1057 
1058       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1059       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
1060       FND_MSG_PUB.ADD;
1061 
1062       x_return_status := fnd_api.g_ret_sts_unexp_error;
1063 
1064       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1065       fnd_message.set_token('ERROR' ,SQLERRM);
1066       fnd_msg_pub.add;
1067 
1068       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1069                                 p_count => x_msg_count,
1070                                 p_data  => x_msg_data);
1071 
1072       -- Debug info.
1073       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1074         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1075                                p_msg_data=>x_msg_data,
1076                                p_msg_type=>'SQL ERROR',
1077                                p_msg_level=>fnd_log.level_error);
1078       END IF;
1079       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1080         hz_utility_v2pub.debug(p_message=>'do_update_party_site_bo(-)',
1081                                p_prefix=>l_debug_prefix,
1082                                p_msg_level=>fnd_log.level_procedure);
1083       END IF;
1084   END do_update_party_site_bo;
1085 
1086   -- PROCEDURE do_save_party_site_bo
1087   --
1088   -- DESCRIPTION
1089   --     Create or update a party site business object.
1090   PROCEDURE do_save_party_site_bo(
1091     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
1092     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
1093     p_party_site_obj      IN OUT NOCOPY HZ_PARTY_SITE_BO,
1094     p_created_by_module   IN            VARCHAR2,
1095     p_obj_source          IN            VARCHAR2 := null,
1096     x_return_status       OUT NOCOPY    VARCHAR2,
1097     x_msg_count           OUT NOCOPY    NUMBER,
1098     x_msg_data            OUT NOCOPY    VARCHAR2,
1099     x_party_site_id       OUT NOCOPY    NUMBER,
1100     x_party_site_os       OUT NOCOPY    VARCHAR2,
1101     x_party_site_osr      OUT NOCOPY    VARCHAR2,
1102     px_parent_id          IN OUT NOCOPY NUMBER,
1103     px_parent_os          IN OUT NOCOPY VARCHAR2,
1104     px_parent_osr         IN OUT NOCOPY VARCHAR2,
1105     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
1106   ) IS
1107     l_return_status            VARCHAR2(30);
1108     l_msg_count                NUMBER;
1109     l_msg_data                 VARCHAR2(2000);
1110     l_create_update_flag       VARCHAR2(1);
1111     l_debug_prefix             VARCHAR2(30);
1112   BEGIN
1113     -- initialize API return status to success.
1114     x_return_status := FND_API.G_RET_STS_SUCCESS;
1115 
1116     -- Initialize message list of p_init_msg_list is set to TRUE.
1117     IF FND_API.to_Boolean(p_init_msg_list) THEN
1118       FND_MSG_PUB.initialize;
1119     END IF;
1120 
1121     -- Debug info.
1122     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1123         hz_utility_v2pub.debug(p_message=>'do_save_party_site_bo(+)',
1124                                p_prefix=>l_debug_prefix,
1125                                p_msg_level=>fnd_log.level_procedure);
1126     END IF;
1127 
1128     x_party_site_id := p_party_site_obj.party_site_id;
1129     x_party_site_os := p_party_site_obj.orig_system;
1130     x_party_site_osr := p_party_site_obj.orig_system_reference;
1131 
1132     -- check root business object to determine that it should be
1133     -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
1134     l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
1135                               p_entity_id      => x_party_site_id,
1136                               p_entity_os      => x_party_site_os,
1137                               p_entity_osr     => x_party_site_osr,
1138                               p_entity_type    => 'HZ_PARTY_SITES',
1139                               p_parent_id      => px_parent_id,
1140                               p_parent_obj_type=> px_parent_obj_type);
1141 
1142     IF(l_create_update_flag = 'E') THEN
1143       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1144       FND_MESSAGE.SET_TOKEN('OBJECT', 'PARTY_SITE');
1145       FND_MSG_PUB.ADD;
1146       RAISE FND_API.G_EXC_ERROR;
1147     END IF;
1148 
1149     IF(l_create_update_flag = 'C') THEN
1150       do_create_party_site_bo(
1151         p_init_msg_list      => fnd_api.g_false,
1152         p_validate_bo_flag   => p_validate_bo_flag,
1153         p_party_site_obj     => p_party_site_obj,
1154         p_created_by_module  => p_created_by_module,
1155         p_obj_source         => p_obj_source,
1156         x_return_status      => x_return_status,
1157         x_msg_count          => x_msg_count,
1158         x_msg_data           => x_msg_data,
1159         x_party_site_id      => x_party_site_id,
1160         x_party_site_os      => x_party_site_os,
1161         x_party_site_osr     => x_party_site_osr,
1162         px_parent_id         => px_parent_id,
1163         px_parent_os         => px_parent_os,
1164         px_parent_osr        => px_parent_osr,
1165         px_parent_obj_type   => px_parent_obj_type
1166       );
1167     ELSIF(l_create_update_flag = 'U') THEN
1168       do_update_party_site_bo(
1169         p_init_msg_list      => fnd_api.g_false,
1170         p_party_site_obj     => p_party_site_obj,
1171         p_created_by_module  => p_created_by_module,
1172         p_obj_source         => p_obj_source,
1173         x_return_status      => x_return_status,
1174         x_msg_count          => x_msg_count,
1175         x_msg_data           => x_msg_data,
1176         x_party_site_id      => x_party_site_id,
1177         x_party_site_os      => x_party_site_os,
1178         x_party_site_osr     => x_party_site_osr,
1179         p_parent_os          => px_parent_os );
1180     ELSE
1181       RAISE FND_API.G_EXC_ERROR;
1182     END IF;
1183 
1184     -- Debug info.
1185     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1186          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1187                                p_msg_data=>x_msg_data,
1188                                p_msg_type=>'WARNING',
1189                                p_msg_level=>fnd_log.level_exception);
1190     END IF;
1191     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1192         hz_utility_v2pub.debug(p_message=>'do_save_party_site_bo(-)',
1193                                p_prefix=>l_debug_prefix,
1194                                p_msg_level=>fnd_log.level_procedure);
1195     END IF;
1196 
1197   EXCEPTION
1198     WHEN fnd_api.g_exc_error THEN
1199       x_return_status := fnd_api.g_ret_sts_error;
1200 
1201       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1202                                 p_count => x_msg_count,
1203                                 p_data  => x_msg_data);
1204 
1205       -- Debug info.
1206       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1207         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1208                                p_msg_data=>x_msg_data,
1209                                p_msg_type=>'ERROR',
1210                                p_msg_level=>fnd_log.level_error);
1211       END IF;
1212       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1213         hz_utility_v2pub.debug(p_message=>'do_save_party_site_bo(-)',
1214                                p_prefix=>l_debug_prefix,
1215                                p_msg_level=>fnd_log.level_procedure);
1216       END IF;
1217 
1218     WHEN fnd_api.g_exc_unexpected_error THEN
1219       x_return_status := fnd_api.g_ret_sts_unexp_error;
1220 
1221       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1222                                 p_count => x_msg_count,
1223                                 p_data  => x_msg_data);
1224 
1225       -- Debug info.
1226       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1227         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1228                                p_msg_data=>x_msg_data,
1229                                p_msg_type=>'UNEXPECTED ERROR',
1230                                p_msg_level=>fnd_log.level_error);
1231       END IF;
1232       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1233         hz_utility_v2pub.debug(p_message=>'do_save_party_site_bo(-)',
1234                                p_prefix=>l_debug_prefix,
1235                                p_msg_level=>fnd_log.level_procedure);
1236       END IF;
1237     WHEN OTHERS THEN
1238       x_return_status := fnd_api.g_ret_sts_unexp_error;
1239 
1240       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1241       fnd_message.set_token('ERROR' ,SQLERRM);
1242       fnd_msg_pub.add;
1243 
1244       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1245                                 p_count => x_msg_count,
1246                                 p_data  => x_msg_data);
1247 
1248       -- Debug info.
1249       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1250         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1251                                p_msg_data=>x_msg_data,
1252                                p_msg_type=>'SQL ERROR',
1253                                p_msg_level=>fnd_log.level_error);
1254       END IF;
1255       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1256         hz_utility_v2pub.debug(p_message=>'do_save_party_site_bo(-)',
1257                                p_prefix=>l_debug_prefix,
1258                                p_msg_level=>fnd_log.level_procedure);
1259       END IF;
1260   END do_save_party_site_bo;
1261 
1262   PROCEDURE save_party_site_bo(
1263     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
1264     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
1265     p_party_site_obj      IN            HZ_PARTY_SITE_BO,
1266     p_created_by_module   IN            VARCHAR2,
1267     x_return_status       OUT NOCOPY    VARCHAR2,
1268     x_msg_count           OUT NOCOPY    NUMBER,
1269     x_msg_data            OUT NOCOPY    VARCHAR2,
1270     x_party_site_id       OUT NOCOPY    NUMBER,
1271     x_party_site_os       OUT NOCOPY    VARCHAR2,
1272     x_party_site_osr      OUT NOCOPY    VARCHAR2,
1273     px_parent_id          IN OUT NOCOPY NUMBER,
1274     px_parent_os          IN OUT NOCOPY VARCHAR2,
1275     px_parent_osr         IN OUT NOCOPY VARCHAR2,
1276     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
1277   ) IS
1278     l_ps_obj              HZ_PARTY_SITE_BO;
1279   BEGIN
1280     l_ps_obj := p_party_site_obj;
1281     do_save_party_site_bo(
1282       p_init_msg_list       => p_init_msg_list,
1283       p_validate_bo_flag    => p_validate_bo_flag,
1284       p_party_site_obj      => l_ps_obj,
1285       p_created_by_module   => p_created_by_module,
1286       p_obj_source          => null,
1287       x_return_status       => x_return_status,
1288       x_msg_count           => x_msg_count,
1289       x_msg_data            => x_msg_data,
1290       x_party_site_id       => x_party_site_id,
1291       x_party_site_os       => x_party_site_os,
1292       x_party_site_osr      => x_party_site_osr,
1293       px_parent_id          => px_parent_id,
1294       px_parent_os          => px_parent_os,
1295       px_parent_osr         => px_parent_osr,
1296       px_parent_obj_type    => px_parent_obj_type
1297     );
1298   END save_party_site_bo;
1299 
1300  PROCEDURE save_party_site_bo(
1301     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
1302     p_party_site_obj      IN            HZ_PARTY_SITE_BO,
1303     p_created_by_module   IN            VARCHAR2,
1304     p_obj_source          IN            VARCHAR2 := null,
1305     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
1306     x_return_status       OUT NOCOPY    VARCHAR2,
1307     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
1308     x_return_obj          OUT NOCOPY    HZ_PARTY_SITE_BO,
1309     x_party_site_id       OUT NOCOPY    NUMBER,
1310     x_party_site_os       OUT NOCOPY    VARCHAR2,
1311     x_party_site_osr      OUT NOCOPY    VARCHAR2,
1312     px_parent_id          IN OUT NOCOPY NUMBER,
1313     px_parent_os          IN OUT NOCOPY VARCHAR2,
1314     px_parent_osr         IN OUT NOCOPY VARCHAR2,
1315     px_parent_obj_type    IN OUT NOCOPY VARCHAR2
1316   ) IS
1317     l_msg_count           NUMBER;
1318     l_msg_data            VARCHAR2(2000);
1319     l_ps_obj              HZ_PARTY_SITE_BO;
1320   BEGIN
1321     l_ps_obj := p_party_site_obj;
1322     do_save_party_site_bo(
1323       p_init_msg_list       => fnd_api.g_true,
1324       p_validate_bo_flag    => p_validate_bo_flag,
1325       p_party_site_obj      => l_ps_obj,
1326       p_created_by_module   => p_created_by_module,
1327       x_return_status       => x_return_status,
1328       x_msg_count           => l_msg_count,
1329       x_msg_data            => l_msg_data,
1330       x_party_site_id       => x_party_site_id,
1331       x_party_site_os       => x_party_site_os,
1332       x_party_site_osr      => x_party_site_osr,
1333       px_parent_id          => px_parent_id,
1334       px_parent_os          => px_parent_os,
1335       px_parent_osr         => px_parent_osr,
1336       px_parent_obj_type    => px_parent_obj_type
1337     );
1338     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1339                     x_return_status   => x_return_status,
1340                     x_msg_count       => l_msg_count,
1341                     x_msg_data        => l_msg_data);
1342     IF FND_API.to_Boolean(p_return_obj_flag) THEN
1343       x_return_obj := l_ps_obj;
1344     END IF;
1345   END save_party_site_bo;
1346 
1347  --------------------------------------
1348   --
1349   -- PROCEDURE get_party_site_bo
1350   --
1351   -- DESCRIPTION
1352   --     Get a logical party site.
1353   --
1354   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1355   --
1356   -- ARGUMENTS
1357   --   IN:
1358   --     p_init_msg_list      Initialize message stack if it is set to  FND_API.G_TRUE. Default is FND_API.G_FALSE.
1359  --       p_party_id          party ID.
1360  --       p_party_site_id     party site ID. If this id is not passed in, multiple site objects will be returned.
1361   --     p_party_site_os          party site orig system.
1362   --     p_party_site_osr         party site orig system reference.
1363   --
1364   --   OUT:
1365   --     x_party_site_objs         Logical party site records.
1366   --     x_return_status      Return status after the call. The status can
1367   --                          be fnd_api.g_ret_sts_success (success),
1368   --                          fnd_api.g_ret_sts_error (error),
1369   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1370   --     x_msg_count          Number of messages in message stack.
1371   --     x_msg_data           Message text if x_msg_count is 1.
1372   --
1373   -- NOTES
1374   --
1375   -- MODIFICATION HISTORY
1376   --
1377   --
1378   --   1-JUNE-2005   AWU                Created.
1379   --
1380 
1381 /*
1382 The Get party site API Procedure is a retrieval service that returns a full party site business object.
1383 The user identifies a particular party site business object using the TCA identifier and/or
1384 the object Source System information. Upon proper validation of the object,
1385 the full party site business object is returned. The object consists of all data included within
1386 the party site business object, at all embedded levels. This includes the set of all data stored
1387 in the TCA tables for each embedded entity.
1388 
1389 To retrieve the appropriate embedded business objects within the party site business object,
1390 the Get procedure calls the equivalent procedure for the following embedded objects:
1391 
1392 Embedded BO	    Mandatory	Multiple Logical API Procedure		Comments
1393 Phone			N	Y		get_phone_bos
1394 Telex			N	Y		get_telex_bos
1395 Email			N	Y		get_email_bos
1396 Web			N	Y		get_web_bos
1397 
1398 To retrieve the appropriate embedded entities within the party site business object,
1399 the Get procedure returns all records for the particular party site from these TCA entity tables:
1400 
1401 Embedded TCA Entity	Mandatory	Multiple	TCA Table Entities
1402 
1403 Location		Y		N	HZ_LOCATIONS
1404 Party Site		Y		N	HZ_PARTY_SITES
1405 Party Site Use		N		Y	HZ_PARTY_SITE_USES
1406 Contact Preference	N		Y	HZ_CONTACT_PREFERENCES
1407 */
1408 
1409 
1410 PROCEDURE get_party_site_bo (
1411 	p_init_msg_list		IN	VARCHAR2 := FND_API.G_FALSE,
1412 	p_party_site_id		IN	NUMBER,
1413 	p_party_site_os		IN	VARCHAR2,
1414 	p_party_site_osr	IN	VARCHAR2,
1415 	x_party_site_obj  	OUT NOCOPY	HZ_PARTY_SITE_BO,
1416 	x_return_status		OUT NOCOPY	VARCHAR2,
1417 	x_msg_count		OUT NOCOPY	NUMBER,
1418 	x_msg_data		OUT NOCOPY	VARCHAR2
1419 ) is
1420  l_debug_prefix              VARCHAR2(30) := '';
1421 
1422   l_party_site_id  number;
1423   l_party_site_os  varchar2(30);
1424   l_party_site_osr varchar2(255);
1425   l_party_site_objs  HZ_PARTY_SITE_BO_TBL;
1426 BEGIN
1427 
1428 	-- initialize API return status to success.
1429     	x_return_status := FND_API.G_RET_STS_SUCCESS;
1430 
1431     	-- Initialize message list if p_init_msg_list is set to TRUE
1432     	IF FND_API.to_Boolean(p_init_msg_list) THEN
1433       		FND_MSG_PUB.initialize;
1434     	END IF;
1435 
1436 
1437 	-- Debug info.
1438         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1439         	hz_utility_v2pub.debug(p_message=>'hz_party_site_bo_pub.get_party_site_bo(+)',
1440                                p_prefix=>l_debug_prefix,
1441                                p_msg_level=>fnd_log.level_procedure);
1442     	END IF;
1443 
1444     	-- check if pass in contact_point_id and/or os+osr
1445     	-- extraction validation logic is same as update
1446 
1447     	l_party_site_id := p_party_site_id;
1448     	l_party_site_os := p_party_site_os;
1449     	l_party_site_osr := p_party_site_osr;
1450 
1451     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
1452       		px_id              => l_party_site_id,
1453       		px_os              => l_party_site_os,
1454       		px_osr             => l_party_site_osr,
1455       		p_obj_type         => 'HZ_PARTY_SITES',
1456       		x_return_status    => x_return_status,
1457       		x_msg_count        => x_msg_count,
1458       		x_msg_data         => x_msg_data);
1459 
1460     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1461       		RAISE fnd_api.g_exc_error;
1462    	 END IF;
1463 
1464 	HZ_EXTRACT_PARTY_SITE_BO_PVT.get_party_site_bos
1465 		(p_init_msg_list => fnd_api.g_false,
1466 		 p_party_id => NULL,
1467 		 p_party_site_id => l_party_site_id,
1468 		 p_action_type => NULL,
1469 		  x_party_site_objs => l_party_site_objs,
1470 		 x_return_status => x_return_status,
1471 		 x_msg_count => x_msg_count,
1472 		 x_msg_data => x_msg_data);
1473 
1474 	x_party_site_obj := l_party_site_objs(1);
1475 
1476 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1477       		RAISE FND_API.G_EXC_ERROR;
1478     	END IF;
1479 
1480 
1481 	-- Debug info.
1482     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1483          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1484                                p_msg_data=>x_msg_data,
1485                                p_msg_type=>'WARNING',
1486                                p_msg_level=>fnd_log.level_exception);
1487     	END IF;
1488 
1489     	-- Debug info.
1490         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1491         	hz_utility_v2pub.debug(p_message=>'hz_party_site_bo_pub.get_party_site_bo (-)',
1492                                p_prefix=>l_debug_prefix,
1493                                p_msg_level=>fnd_log.level_procedure);
1494     	END IF;
1495 
1496 
1497  EXCEPTION
1498 
1499   WHEN fnd_api.g_exc_error THEN
1500       x_return_status := fnd_api.g_ret_sts_error;
1501 
1502       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1503                                 p_count => x_msg_count,
1504                                 p_data  => x_msg_data);
1505 
1506       -- Debug info.
1507       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1508         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1509                                p_msg_data=>x_msg_data,
1510                                p_msg_type=>'ERROR',
1511                                p_msg_level=>fnd_log.level_error);
1512       END IF;
1513       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1514         hz_utility_v2pub.debug(p_message=>'hz_party_site_bo_pub.get_party_site_bo (-)',
1515                                p_prefix=>l_debug_prefix,
1516                                p_msg_level=>fnd_log.level_procedure);
1517       END IF;
1518     WHEN fnd_api.g_exc_unexpected_error THEN
1519       x_return_status := fnd_api.g_ret_sts_unexp_error;
1520 
1521       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1522                                 p_count => x_msg_count,
1523                                 p_data  => x_msg_data);
1524 
1525       -- Debug info.
1526       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1527         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1528                                p_msg_data=>x_msg_data,
1529                                p_msg_type=>'UNEXPECTED ERROR',
1530                                p_msg_level=>fnd_log.level_error);
1531       END IF;
1532       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1533         hz_utility_v2pub.debug(p_message=>'hz_party_site_bo_pub.get_party_site_bo (-)',
1534                                p_prefix=>l_debug_prefix,
1535                                p_msg_level=>fnd_log.level_procedure);
1536       END IF;
1537     WHEN OTHERS THEN
1538       x_return_status := fnd_api.g_ret_sts_unexp_error;
1539 
1540       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1541       fnd_message.set_token('ERROR' ,SQLERRM);
1542       fnd_msg_pub.add;
1543 
1544       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1545                                 p_count => x_msg_count,
1546                                 p_data  => x_msg_data);
1547 
1548       -- Debug info.
1549       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1550         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1551                                p_msg_data=>x_msg_data,
1552                                p_msg_type=>'SQL ERROR',
1553                                p_msg_level=>fnd_log.level_error);
1554       END IF;
1555       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1556         hz_utility_v2pub.debug(p_message=>'hz_party_site_bo_pub.get_party_site_bo (-)',
1557                                p_prefix=>l_debug_prefix,
1558                                p_msg_level=>fnd_log.level_procedure);
1559       END IF;
1560 
1561 end;
1562 
1563   PROCEDURE get_party_site_bo (
1564     p_party_site_id		IN	NUMBER,
1565     p_party_site_os		IN	VARCHAR2,
1566     p_party_site_osr	IN	VARCHAR2,
1567     x_party_site_obj  	OUT NOCOPY	HZ_PARTY_SITE_BO,
1568     x_return_status		OUT NOCOPY	VARCHAR2,
1569     x_messages		OUT NOCOPY	HZ_MESSAGE_OBJ_TBL
1570   ) IS
1571     l_msg_data              VARCHAR2(2000);
1572     l_msg_count             NUMBER;
1573   BEGIN
1574     get_party_site_bo(
1575       p_init_msg_list       => fnd_api.g_true,
1576       p_party_site_id       => p_party_site_id,
1577       p_party_site_os       => p_party_site_os,
1578       p_party_site_osr      => p_party_site_osr,
1579       x_party_site_obj      => x_party_site_obj,
1580       x_return_status       => x_return_status,
1581       x_msg_count           => l_msg_count,
1582       x_msg_data            => l_msg_data
1583     );
1584     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1585                     x_return_status   => x_return_status,
1586                     x_msg_count       => l_msg_count,
1587                     x_msg_data        => l_msg_data);
1588   END get_party_site_bo;
1589 
1590 END hz_party_site_bo_pub;