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