DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_PARTY_SITE_BO_PVT

Source


1 PACKAGE BODY hz_party_site_bo_pvt AS
2 /*$Header: ARHBPSVB.pls 120.6 2006/05/18 22:28:14 acng noship $ */
3 
4   -- PRIVATE PROCEDURE assign_party_site_use_rec
5   --
6   -- DESCRIPTION
7   --     Assign attribute value from party site use object to plsql record.
8   --
9   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
10   --
11   -- ARGUMENTS
12   --   IN:
13   --     p_party_site_use_obj Party site use object.
14   --     p_party_site_id      Party site Id.
15   --   IN/OUT:
16   --     px_party_site_use_rec  Party site use plsql record.
17   --
18   -- NOTES
19   --
20   -- MODIFICATION HISTORY
21   --
22   --   14-DEC-2004    Arnold Ng          Created.
23   --
24 
25   PROCEDURE assign_party_site_use_rec(
26     p_party_site_use_obj         IN            HZ_PARTY_SITE_USE_OBJ,
27     p_party_site_id              IN            NUMBER,
28     px_party_site_use_rec        IN OUT NOCOPY HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE
29   );
30 
31   -- PRIVATE PROCEDURE assign_party_site_use_rec
32   --
33   -- DESCRIPTION
34   --     Assign attribute value from party site use object to plsql record.
35   --
36   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
37   --
38   -- ARGUMENTS
39   --   IN:
40   --     p_party_site_use_obj Party site use object.
41   --     p_party_site_id      Party site Id.
42   --   IN/OUT:
43   --     px_party_site_use_rec  Party site use plsql record.
44   --
45   -- NOTES
46   --
47   -- MODIFICATION HISTORY
48   --
49   --   14-DEC-2004    Arnold Ng          Created.
50   --
51 
52   PROCEDURE assign_party_site_use_rec(
53     p_party_site_use_obj         IN            HZ_PARTY_SITE_USE_OBJ,
54     p_party_site_id              IN            NUMBER,
55     px_party_site_use_rec        IN OUT NOCOPY HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE
56   ) IS
57   BEGIN
58     px_party_site_use_rec.party_site_use_id := p_party_site_use_obj.party_site_use_id;
59     px_party_site_use_rec.comments          := p_party_site_use_obj.comments;
60     px_party_site_use_rec.site_use_type     := p_party_site_use_obj.site_use_type;
61     px_party_site_use_rec.party_site_id     := p_party_site_id;
62     IF(p_party_site_use_obj.primary_per_type in ('Y','N')) THEN
63       px_party_site_use_rec.primary_per_type  := p_party_site_use_obj.primary_per_type;
64     END IF;
65     IF(p_party_site_use_obj.status in ('A','I')) THEN
66       px_party_site_use_rec.status            := p_party_site_use_obj.status;
67     END IF;
68     px_party_site_use_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
69   END assign_party_site_use_rec;
70 
71   -- PROCEDURE create_party_site_uses
72   --
73   -- DESCRIPTION
74   --     Create party site uses.
75   --
76   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
77   --
78   -- ARGUMENTS
79   --   IN:
80   --     p_psu_objs           List of party site use objects.
81   --     p_ps_id              Party site Id.
82   --   OUT:
83   --     x_return_status      Return status after the call. The status can
84   --                          be fnd_api.g_ret_sts_success (success),
85   --                          fnd_api.g_ret_sts_error (error),
86   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
87   --     x_msg_count          Number of messages in message stack.
88   --     x_msg_data           Message text if x_msg_count is 1.
89   --
90   -- NOTES
91   --
92   -- MODIFICATION HISTORY
93   --
94   --   14-DEC-2004    Arnold Ng          Created.
95   --
96 
97   PROCEDURE create_party_site_uses(
98     p_psu_objs                   IN OUT NOCOPY HZ_PARTY_SITE_USE_OBJ_TBL,
99     p_ps_id                      IN         NUMBER,
100     x_return_status              OUT NOCOPY VARCHAR2,
101     x_msg_count                  OUT NOCOPY NUMBER,
102     x_msg_data                   OUT NOCOPY VARCHAR2
103   )IS
104     l_debug_prefix        VARCHAR2(30);
105     l_psu_id              NUMBER;
106     l_psu_rec             HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
107   BEGIN
108     -- Standard start of API savepoint
109     SAVEPOINT create_party_site_uses_pvt;
110 
111     -- initialize API return status to success.
112     x_return_status := FND_API.G_RET_STS_SUCCESS;
113 
114     -- Debug info.
115     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
116         hz_utility_v2pub.debug(p_message=>'create_party_site_uses(+)',
117                                p_prefix=>l_debug_prefix,
118                                p_msg_level=>fnd_log.level_procedure);
119     END IF;
120 
121     -- Create contact preferences
122     FOR i IN 1..p_psu_objs.COUNT LOOP
123       assign_party_site_use_rec(
124         p_party_site_use_obj => p_psu_objs(i),
125         p_party_site_id      => p_ps_id,
126         px_party_site_use_rec => l_psu_rec
127       );
128 
129       HZ_PARTY_SITE_V2PUB.create_party_site_use(
130         p_party_site_use_rec        => l_psu_rec,
131         x_party_site_use_id         => l_psu_id,
132         x_return_status             => x_return_status,
133         x_msg_count                 => x_msg_count,
134         x_msg_data                  => x_msg_data
135       );
136 
137       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
138         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
139           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_site_bo_pvt.create_party_site_uses: party_site_id: '||p_ps_id,
140                                  p_prefix=>l_debug_prefix,
141                                  p_msg_level=>fnd_log.level_procedure);
142         END IF;
143         RAISE fnd_api.g_exc_error;
144       END IF;
145 
146       -- assign party_site_id and party_site_use_id
147       p_psu_objs(i).party_site_use_id := l_psu_id;
148     END LOOP;
149 
150     -- Debug info.
151     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
152          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
153                                p_msg_data=>x_msg_data,
154                                p_msg_type=>'WARNING',
155                                p_msg_level=>fnd_log.level_exception);
156     END IF;
157     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
158         hz_utility_v2pub.debug(p_message=>'create_party_site_uses(-)',
159                                p_prefix=>l_debug_prefix,
160                                p_msg_level=>fnd_log.level_procedure);
161     END IF;
162   EXCEPTION
163     WHEN fnd_api.g_exc_error THEN
164       ROLLBACK TO create_party_site_uses_pvt;
165       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
166       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
167       FND_MSG_PUB.ADD;
168 
169       x_return_status := fnd_api.g_ret_sts_error;
170 
171       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
172                                 p_count => x_msg_count,
173                                 p_data  => x_msg_data);
174 
175       -- Debug info.
176       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
177         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
178                                p_msg_data=>x_msg_data,
179                                p_msg_type=>'ERROR',
180                                p_msg_level=>fnd_log.level_error);
181       END IF;
182       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
183         hz_utility_v2pub.debug(p_message=>'create_party_site_uses(-)',
184                                p_prefix=>l_debug_prefix,
185                                p_msg_level=>fnd_log.level_procedure);
186       END IF;
187     WHEN fnd_api.g_exc_unexpected_error THEN
188       ROLLBACK TO create_party_site_uses_pvt;
189       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
190       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
191       FND_MSG_PUB.ADD;
192 
193       x_return_status := fnd_api.g_ret_sts_unexp_error;
194 
195       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
196                                 p_count => x_msg_count,
197                                 p_data  => x_msg_data);
198 
199       -- Debug info.
200       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
201         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
202                                p_msg_data=>x_msg_data,
203                                p_msg_type=>'UNEXPECTED ERROR',
204                                p_msg_level=>fnd_log.level_error);
205       END IF;
206       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
207         hz_utility_v2pub.debug(p_message=>'create_party_site_uses(-)',
208                                p_prefix=>l_debug_prefix,
209                                p_msg_level=>fnd_log.level_procedure);
210       END IF;
211 
212     WHEN OTHERS THEN
213       ROLLBACK TO create_party_site_uses_pvt;
214       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
215       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
216       FND_MSG_PUB.ADD;
217 
218       x_return_status := fnd_api.g_ret_sts_unexp_error;
219 
220       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
224       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
221       fnd_message.set_token('ERROR' ,SQLERRM);
222       fnd_msg_pub.add;
223 
225                                 p_count => x_msg_count,
226                                 p_data  => x_msg_data);
227 
228       -- Debug info.
229       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
230         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
231                                p_msg_data=>x_msg_data,
232                                p_msg_type=>'SQL ERROR',
233                                p_msg_level=>fnd_log.level_error);
234       END IF;
235       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
236         hz_utility_v2pub.debug(p_message=>'create_party_site_uses(-)',
237                                p_prefix=>l_debug_prefix,
238                                p_msg_level=>fnd_log.level_procedure);
239       END IF;
240   END create_party_site_uses;
241 
242   -- PROCEDURE save_party_site_uses
243   --
244   -- DESCRIPTION
245   --     Create or update party site uses.
246   --
247   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
248   --
249   -- ARGUMENTS
250   --   IN:
251   --     p_psu_objs           List of party site use objects.
252   --     p_ps_id              Party site Id.
253   --   OUT:
254   --     x_return_status      Return status after the call. The status can
255   --                          be fnd_api.g_ret_sts_success (success),
256   --                          fnd_api.g_ret_sts_error (error),
257   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
258   --     x_msg_count          Number of messages in message stack.
259   --     x_msg_data           Message text if x_msg_count is 1.
260   --
261   -- NOTES
262   --
263   -- MODIFICATION HISTORY
264   --
265   --   14-DEC-2004    Arnold Ng          Created.
266   --
267 
268   PROCEDURE save_party_site_uses(
269     p_psu_objs                   IN OUT NOCOPY HZ_PARTY_SITE_USE_OBJ_TBL,
270     p_ps_id                      IN         NUMBER,
271     x_return_status              OUT NOCOPY VARCHAR2,
272     x_msg_count                  OUT NOCOPY NUMBER,
273     x_msg_data                   OUT NOCOPY VARCHAR2
274   )IS
275     l_debug_prefix        VARCHAR2(30);
276     l_psu_id              NUMBER;
277     l_psu_rec             HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
278     l_ovn                 NUMBER := NULL;
279   BEGIN
280     -- Standard start of API savepoint
281     SAVEPOINT save_party_site_uses_pvt;
282 
283     -- initialize API return status to success.
284     x_return_status := FND_API.G_RET_STS_SUCCESS;
285 
286     -- Debug info.
287     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
288         hz_utility_v2pub.debug(p_message=>'save_party_site_uses(+)',
289                                p_prefix=>l_debug_prefix,
290                                p_msg_level=>fnd_log.level_procedure);
291     END IF;
292 
293     -- Create/Update party site use
294     FOR i IN 1..p_psu_objs.COUNT LOOP
295       assign_party_site_use_rec(
296         p_party_site_use_obj => p_psu_objs(i),
297         p_party_site_id      => p_ps_id,
298         px_party_site_use_rec => l_psu_rec
299       );
300 
301       -- check if the contact pref record is create or update
302       hz_registry_validate_bo_pvt.check_party_site_use_op(
303         p_party_site_id       => p_ps_id,
304         px_party_site_use_id  => l_psu_rec.party_site_use_id,
305         p_site_use_type       => l_psu_rec.site_use_type,
306         x_object_version_number => l_ovn
307       );
308 
309       IF(l_ovn = -1) THEN
310         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
311           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_site_bo_pvt.check_party_site_use_op: party_site_id: '||p_ps_id,
312                                  p_prefix=>l_debug_prefix,
313                                  p_msg_level=>fnd_log.level_procedure);
314         END IF;
315         FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
316         FND_MSG_PUB.ADD;
317         FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
318         FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
319         FND_MSG_PUB.ADD;
320         RAISE FND_API.G_EXC_ERROR;
321       END IF;
322 
323       IF(l_ovn IS NULL) THEN
324         HZ_PARTY_SITE_V2PUB.create_party_site_use(
325           p_party_site_use_rec        => l_psu_rec,
326           x_party_site_use_id         => l_psu_id,
327           x_return_status             => x_return_status,
328           x_msg_count                 => x_msg_count,
329           x_msg_data                  => x_msg_data
330         );
331 
332         -- assign party_site_use_id
333         p_psu_objs(i).party_site_use_id := l_psu_id;
334       ELSE
335         -- clean up created_by_module for update
336         l_psu_rec.created_by_module := NULL;
337         HZ_PARTY_SITE_V2PUB.update_party_site_use(
338           p_party_site_use_rec        => l_psu_rec,
339           p_object_version_number     => l_ovn,
340           x_return_status             => x_return_status,
341           x_msg_count                 => x_msg_count,
342           x_msg_data                  => x_msg_data
343         );
344 
345         -- assign party_site_use_id
346         p_psu_objs(i).party_site_use_id := l_psu_rec.party_site_use_id;
347       END IF;
348 
349       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
350         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
351           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_site_bo_pvt.save_party_site_uses: party_site_id: '||p_ps_id,
355         RAISE fnd_api.g_exc_error;
352                                  p_prefix=>l_debug_prefix,
353                                  p_msg_level=>fnd_log.level_procedure);
354         END IF;
356       END IF;
357     END LOOP;
358 
359     -- Debug info.
360     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
361          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
362                                p_msg_data=>x_msg_data,
363                                p_msg_type=>'WARNING',
364                                p_msg_level=>fnd_log.level_exception);
365     END IF;
366     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
367         hz_utility_v2pub.debug(p_message=>'save_party_site_uses(-)',
368                                p_prefix=>l_debug_prefix,
369                                p_msg_level=>fnd_log.level_procedure);
370     END IF;
371   EXCEPTION
372     WHEN fnd_api.g_exc_error THEN
373       ROLLBACK TO save_party_site_uses_pvt;
374       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
375       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
376       FND_MSG_PUB.ADD;
377 
378       x_return_status := fnd_api.g_ret_sts_error;
379 
380       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
381                                 p_count => x_msg_count,
382                                 p_data  => x_msg_data);
383 
384       -- Debug info.
385       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
386         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
387                                p_msg_data=>x_msg_data,
388                                p_msg_type=>'ERROR',
389                                p_msg_level=>fnd_log.level_error);
390       END IF;
391       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
392         hz_utility_v2pub.debug(p_message=>'save_party_site_uses(-)',
393                                p_prefix=>l_debug_prefix,
394                                p_msg_level=>fnd_log.level_procedure);
395       END IF;
396     WHEN fnd_api.g_exc_unexpected_error THEN
397       ROLLBACK TO save_party_site_uses_pvt;
398       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
399       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
400       FND_MSG_PUB.ADD;
401 
402       x_return_status := fnd_api.g_ret_sts_unexp_error;
403 
404       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
405                                 p_count => x_msg_count,
406                                 p_data  => x_msg_data);
407 
408       -- Debug info.
409       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
410         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
411                                p_msg_data=>x_msg_data,
412                                p_msg_type=>'UNEXPECTED ERROR',
413                                p_msg_level=>fnd_log.level_error);
414       END IF;
415       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
416         hz_utility_v2pub.debug(p_message=>'save_party_site_uses(-)',
417                                p_prefix=>l_debug_prefix,
418                                p_msg_level=>fnd_log.level_procedure);
419       END IF;
420 
421     WHEN OTHERS THEN
422       ROLLBACK TO save_party_site_uses_pvt;
423       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
424       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_SITE_USES');
425       FND_MSG_PUB.ADD;
426 
427       x_return_status := fnd_api.g_ret_sts_unexp_error;
428 
429       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
430       fnd_message.set_token('ERROR' ,SQLERRM);
431       fnd_msg_pub.add;
432 
433       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
434                                 p_count => x_msg_count,
435                                 p_data  => x_msg_data);
436 
437       -- Debug info.
438       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
439         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
440                                p_msg_data=>x_msg_data,
441                                p_msg_type=>'SQL ERROR',
442                                p_msg_level=>fnd_log.level_error);
443       END IF;
444       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
445         hz_utility_v2pub.debug(p_message=>'save_party_site_uses(-)',
446                                p_prefix=>l_debug_prefix,
447                                p_msg_level=>fnd_log.level_procedure);
448       END IF;
449   END save_party_site_uses;
450 
451   -- PROCEDURE save_party_sites
452   --
453   -- DESCRIPTION
454   --     Create or update party sites.
455   --
456   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
457   --
458   -- ARGUMENTS
459   --   IN:
460   --     p_ps_objs            List of party site objects.
461   --     p_create_update_flag Create or update flag.
462   --     p_parent_id          Parent Id.
463   --     p_parent_os          Parent original system.
464   --     p_parent_osr         Parent original system reference.
465   --     p_parent_obj_type    Parent object type.
466   --   OUT:
467   --     x_return_status      Return status after the call. The status can
468   --                          be fnd_api.g_ret_sts_success (success),
469   --                          fnd_api.g_ret_sts_error (error),
470   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
471   --     x_msg_count          Number of messages in message stack.
472   --     x_msg_data           Message text if x_msg_count is 1.
473   --
474   -- NOTES
475   --
476   -- MODIFICATION HISTORY
477   --
478   --   14-DEC-2004    Arnold Ng          Created.
479   --
480 
484     p_obj_source                 IN         VARCHAR2 := null,
481   PROCEDURE save_party_sites(
482     p_ps_objs                    IN OUT NOCOPY HZ_PARTY_SITE_BO_TBL,
483     p_create_update_flag         IN         VARCHAR2,
485     x_return_status              OUT NOCOPY VARCHAR2,
486     x_msg_count                  OUT NOCOPY NUMBER,
487     x_msg_data                   OUT NOCOPY VARCHAR2,
488     p_parent_id                  IN         NUMBER,
489     p_parent_os                  IN         VARCHAR2,
490     p_parent_osr                 IN         VARCHAR2,
491     p_parent_obj_type            IN         VARCHAR2
492   ) IS
493     l_debug_prefix        VARCHAR2(30);
494     l_party_site_id       NUMBER;
495     l_party_site_os       VARCHAR2(30);
496     l_party_site_osr      VARCHAR2(255);
497     l_parent_id           NUMBER;
498     l_parent_os           VARCHAR2(30);
499     l_parent_osr          VARCHAR2(255);
500     l_parent_obj_type     VARCHAR2(30);
501     l_cbm                 VARCHAR2(30);
502   BEGIN
503     -- initialize API return status to success.
504     x_return_status := FND_API.G_RET_STS_SUCCESS;
505 
506     -- Debug info.
507     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
508         hz_utility_v2pub.debug(p_message=>'save_party_sites(+)',
509                                p_prefix=>l_debug_prefix,
510                                p_msg_level=>fnd_log.level_procedure);
511     END IF;
512 
513     l_parent_id := p_parent_id;
514     l_parent_os := p_parent_os;
515     l_parent_osr:= p_parent_osr;
516     l_parent_obj_type := p_parent_obj_type;
517 
518     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
519 
520     IF(p_create_update_flag = 'C') THEN
521       ----------------------------
522       -- Create logical party site
523       ----------------------------
524       FOR i IN 1..p_ps_objs.COUNT LOOP
525         HZ_PARTY_SITE_BO_PUB.do_create_party_site_bo(
526           p_init_msg_list      => fnd_api.g_false,
527           p_validate_bo_flag   => FND_API.G_FALSE,
528           p_party_site_obj     => p_ps_objs(i),
529           p_created_by_module  => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
530           p_obj_source         => p_obj_source,
531           x_return_status      => x_return_status,
532           x_msg_count          => x_msg_count,
533           x_msg_data           => x_msg_data,
534           x_party_site_id      => l_party_site_id,
535           x_party_site_os      => l_party_site_os,
536           x_party_site_osr     => l_party_site_osr,
537           px_parent_id         => l_parent_id,
538           px_parent_os         => l_parent_os,
539           px_parent_osr        => l_parent_osr,
540           px_parent_obj_type   => l_parent_obj_type
541         );
542 
543         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
544           IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
545             hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_site_bo_pvt.save_party_sites_bo, parent id: '||l_parent_id||' '||l_parent_os||'-'||l_parent_osr,
546                                    p_prefix=>l_debug_prefix,
547                                    p_msg_level=>fnd_log.level_procedure);
548           END IF;
549           RAISE fnd_api.g_exc_error;
550         END IF;
551 
552         HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
553       END LOOP;
554     ELSE
555       -----------------------------------
556       -- Create/Update logical party site
557       ------------------------------------
558       FOR i IN 1..p_ps_objs.COUNT LOOP
559         HZ_PARTY_SITE_BO_PUB.do_save_party_site_bo(
560           p_init_msg_list      => fnd_api.g_false,
561           p_validate_bo_flag   => FND_API.G_FALSE,
562           p_party_site_obj     => p_ps_objs(i),
563           p_created_by_module  => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
564           p_obj_source         => p_obj_source,
565           x_return_status      => x_return_status,
566           x_msg_count          => x_msg_count,
567           x_msg_data           => x_msg_data,
568           x_party_site_id      => l_party_site_id,
569           x_party_site_os      => l_party_site_os,
570           x_party_site_osr     => l_party_site_osr,
571           px_parent_id         => l_parent_id,
572           px_parent_os         => l_parent_os,
573           px_parent_osr        => l_parent_osr,
574           px_parent_obj_type   => l_parent_obj_type
575         );
576 
577         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
578           IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
579             hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_site_bo_pvt.save_party_sites_bo, parent id: '||l_parent_id||' '||l_parent_os||'-'||l_parent_osr,
580                                    p_prefix=>l_debug_prefix,
581                                    p_msg_level=>fnd_log.level_procedure);
582           END IF;
583           RAISE fnd_api.g_exc_error;
584         END IF;
585 
586         HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
587       END LOOP;
588     END IF;
589 
590     -- Debug info.
591     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
592          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
593                                p_msg_data=>x_msg_data,
594                                p_msg_type=>'WARNING',
595                                p_msg_level=>fnd_log.level_exception);
596     END IF;
597     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
598         hz_utility_v2pub.debug(p_message=>'save_party_sites(-)',
599                                p_prefix=>l_debug_prefix,
600                                p_msg_level=>fnd_log.level_procedure);
601     END IF;
602 
603   EXCEPTION
604     WHEN fnd_api.g_exc_error THEN
608                                 p_count => x_msg_count,
605       x_return_status := fnd_api.g_ret_sts_error;
606 
607       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
609                                 p_data  => x_msg_data);
610 
611       -- Debug info.
612       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
613         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
614                                p_msg_data=>x_msg_data,
615                                p_msg_type=>'ERROR',
616                                p_msg_level=>fnd_log.level_error);
617       END IF;
618       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
619         hz_utility_v2pub.debug(p_message=>'save_party_sites(-)',
620                                p_prefix=>l_debug_prefix,
621                                p_msg_level=>fnd_log.level_procedure);
622       END IF;
623     WHEN fnd_api.g_exc_unexpected_error THEN
624       x_return_status := fnd_api.g_ret_sts_unexp_error;
625 
626       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
627                                 p_count => x_msg_count,
628                                 p_data  => x_msg_data);
629 
630       -- Debug info.
631       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
632         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
633                                p_msg_data=>x_msg_data,
634                                p_msg_type=>'UNEXPECTED ERROR',
635                                p_msg_level=>fnd_log.level_error);
636       END IF;
637       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
638         hz_utility_v2pub.debug(p_message=>'save_party_sites(-)',
639                                p_prefix=>l_debug_prefix,
640                                p_msg_level=>fnd_log.level_procedure);
641       END IF;
642 
643     WHEN OTHERS THEN
644       x_return_status := fnd_api.g_ret_sts_unexp_error;
645 
646       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
647       fnd_message.set_token('ERROR' ,SQLERRM);
648       fnd_msg_pub.add;
649 
650       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
651                                 p_count => x_msg_count,
652                                 p_data  => x_msg_data);
653 
654       -- Debug info.
655       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
656         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
657                                p_msg_data=>x_msg_data,
658                                p_msg_type=>'SQL ERROR',
659                                p_msg_level=>fnd_log.level_error);
660       END IF;
661       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
662         hz_utility_v2pub.debug(p_message=>'save_party_sites(-)',
663                                p_prefix=>l_debug_prefix,
664                                p_msg_level=>fnd_log.level_procedure);
665       END IF;
666   END save_party_sites;
667 
668 END hz_party_site_bo_pvt;