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