[Home] [Help]
PACKAGE BODY: APPS.HZ_PERSON_CUST_BO_PUB
Source
1 PACKAGE BODY HZ_PERSON_CUST_BO_PUB AS
2 /*$Header: ARHBPABB.pls 120.20 2008/02/06 10:14:13 vsegu ship $ */
3 PROCEDURE do_create_person_cust_bo(
4 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
5 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
6 p_person_cust_obj IN OUT NOCOPY HZ_PERSON_CUST_BO,
7 p_created_by_module IN VARCHAR2,
8 p_obj_source IN VARCHAR2 := null,
9 x_return_status OUT NOCOPY VARCHAR2,
10 x_msg_count OUT NOCOPY NUMBER,
11 x_msg_data OUT NOCOPY VARCHAR2,
12 x_person_id OUT NOCOPY NUMBER
13 );
14
15 PROCEDURE do_update_person_cust_bo(
16 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
17 p_person_cust_obj IN OUT NOCOPY HZ_PERSON_CUST_BO,
18 p_created_by_module IN VARCHAR2,
19 p_obj_source IN VARCHAR2 := null,
20 x_return_status OUT NOCOPY VARCHAR2,
21 x_msg_count OUT NOCOPY NUMBER,
22 x_msg_data OUT NOCOPY VARCHAR2,
23 x_person_id OUT NOCOPY NUMBER
24 );
25
26 PROCEDURE do_save_person_cust_bo(
27 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
28 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
29 p_person_cust_obj IN OUT NOCOPY HZ_PERSON_CUST_BO,
30 p_created_by_module IN VARCHAR2,
31 p_obj_source IN VARCHAR2 := null,
32 x_return_status OUT NOCOPY VARCHAR2,
33 x_msg_count OUT NOCOPY NUMBER,
34 x_msg_data OUT NOCOPY VARCHAR2,
35 x_person_id OUT NOCOPY NUMBER
36 );
37
38 -- PROCEDURE do_create_person_cust_bo
39 --
40 -- DESCRIPTION
41 -- Create person customer account.
42 PROCEDURE do_create_person_cust_bo(
43 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
44 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
45 p_person_cust_obj IN OUT NOCOPY HZ_PERSON_CUST_BO,
46 p_created_by_module IN VARCHAR2,
47 p_obj_source IN VARCHAR2 := null,
48 x_return_status OUT NOCOPY VARCHAR2,
49 x_msg_count OUT NOCOPY NUMBER,
50 x_msg_data OUT NOCOPY VARCHAR2,
51 x_person_id OUT NOCOPY NUMBER
52 ) IS
53 l_person_os VARCHAR2(30);
54 l_person_osr VARCHAR2(255);
55 l_debug_prefix VARCHAR2(30) := '';
56 l_valid_obj BOOLEAN;
57 l_raise_event BOOLEAN := FALSE;
58 l_bus_object HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
59 l_cbm VARCHAR2(30);
60 l_per_event_id NUMBER;
61 l_pc_event_id NUMBER;
62 BEGIN
63 -- Standard start of API savepoint
64 SAVEPOINT do_create_person_cust_pub;
65
66 -- initialize API return status to success.
67 x_return_status := FND_API.G_RET_STS_SUCCESS;
68
69 -- Initialize message list if p_init_msg_list is set to TRUE
70 IF FND_API.to_Boolean(p_init_msg_list) THEN
71 FND_MSG_PUB.initialize;
72 END IF;
73
74 -- Debug info.
75 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
76 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_bo(+)',
77 p_prefix=>l_debug_prefix,
78 p_msg_level=>fnd_log.level_procedure);
79 END IF;
80
81 -- Base on p_validate_bo_flag, check the completeness of business objects
82 IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
83 HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
84 p_bus_object_code => 'PERSON_CUST',
85 x_bus_object => l_bus_object
86 );
87
88 l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_pca_bo_comp(
89 p_person_obj => p_person_cust_obj.person_obj,
90 p_ca_objs => p_person_cust_obj.account_objs
91 );
92
93 IF NOT(l_valid_obj) THEN
94 RAISE fnd_api.g_exc_error;
95 END IF;
96
97 -- find out if raise event at the end
98 l_raise_event := HZ_PARTY_BO_PVT.is_raising_create_event(
99 p_obj_complete_flag => l_valid_obj );
100
101 IF(l_raise_event) THEN
102 -- Get event_id for person
103 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
104 INTO l_per_event_id
105 FROM DUAL;
106
107 -- Get event_id for person customer
108 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
109 INTO l_pc_event_id
110 FROM DUAL;
111 END IF;
112 ELSE
113 l_raise_event := FALSE;
114 END IF;
115
116 -- initialize Global variable to indicate the caller of V2API is from BO API
117 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
118 IF(p_created_by_module IS NULL) THEN
119 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
120 ELSE
121 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
122 END IF;
123
124 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
125
126 HZ_PERSON_BO_PUB.do_create_person_bo(
127 p_init_msg_list => fnd_api.g_false,
128 p_validate_bo_flag => FND_API.G_FALSE,
129 p_person_obj => p_person_cust_obj.person_obj,
130 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
131 p_obj_source => p_obj_source,
132 x_return_status => x_return_status,
133 x_msg_count => x_msg_count,
134 x_msg_data => x_msg_data,
135 x_person_id => x_person_id,
136 x_person_os => l_person_os,
137 x_person_osr => l_person_osr
138 );
139
140 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
141 RAISE fnd_api.g_exc_error;
142 END IF;
143
144 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
145
146 IF((p_person_cust_obj.account_objs IS NOT NULL) AND
147 (p_person_cust_obj.account_objs.COUNT > 0)) THEN
148 HZ_CUST_ACCT_BO_PVT.save_cust_accts(
149 p_ca_objs => p_person_cust_obj.account_objs,
150 p_create_update_flag => 'C',
151 x_return_status => x_return_status,
152 x_msg_count => x_msg_count,
153 x_msg_data => x_msg_data,
154 p_parent_id => x_person_id,
155 p_parent_os => l_person_os,
156 p_parent_osr => l_person_osr,
157 p_parent_obj_type => 'PERSON'
158 );
159
160 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
161 RAISE fnd_api.g_exc_error;
162 END IF;
163 END IF;
164
165 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
166
167 -- raise event
168 IF(l_raise_event) THEN
169 -- raise create person event
170 HZ_PARTY_BO_PVT.call_bes(
171 p_party_id => x_person_id,
172 p_bo_code => 'PERSON',
173 p_create_or_update => 'C',
174 p_obj_source => p_obj_source,
175 p_event_id => l_per_event_id
176 );
177
178 -- raise create person cust event
179 HZ_PARTY_BO_PVT.call_bes(
180 p_party_id => x_person_id,
181 p_bo_code => 'PERSON_CUST',
182 p_create_or_update => 'C',
183 p_obj_source => p_obj_source,
184 p_event_id => l_pc_event_id
185 );
186 END IF;
187
188 -- reset Global variable
189 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
190 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
191
192 -- Debug info.
193 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
194 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
195 p_msg_data=>x_msg_data,
196 p_msg_type=>'WARNING',
197 p_msg_level=>fnd_log.level_exception);
198 END IF;
199 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
200 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_bo(-)',
201 p_prefix=>l_debug_prefix,
202 p_msg_level=>fnd_log.level_procedure);
203 END IF;
204
205 EXCEPTION
206 WHEN fnd_api.g_exc_error THEN
207 ROLLBACK TO do_create_person_cust_pub;
208
209 -- reset Global variable
210 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
211 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
212
213 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
214 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
215 FND_MSG_PUB.ADD;
216
217 x_return_status := fnd_api.g_ret_sts_error;
218
219 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
220 p_count => x_msg_count,
221 p_data => x_msg_data);
222
223 -- Debug info.
224 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
225 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
226 p_msg_data=>x_msg_data,
227 p_msg_type=>'ERROR',
228 p_msg_level=>fnd_log.level_error);
229 END IF;
230 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
231 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_bo(-)',
232 p_prefix=>l_debug_prefix,
233 p_msg_level=>fnd_log.level_procedure);
234 END IF;
235
236 WHEN fnd_api.g_exc_unexpected_error THEN
237 ROLLBACK TO do_create_person_cust_pub;
238
239 -- reset Global variable
240 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
241 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
242
243 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
244 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
245 FND_MSG_PUB.ADD;
246
247 x_return_status := fnd_api.g_ret_sts_unexp_error;
248
249 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
250 p_count => x_msg_count,
251 p_data => x_msg_data);
252
253 -- Debug info.
254 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
255 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
256 p_msg_data=>x_msg_data,
257 p_msg_type=>'UNEXPECTED ERROR',
258 p_msg_level=>fnd_log.level_error);
259 END IF;
260 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
261 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_bo(-)',
262 p_prefix=>l_debug_prefix,
263 p_msg_level=>fnd_log.level_procedure);
264 END IF;
265
266 WHEN OTHERS THEN
267 ROLLBACK TO do_create_person_cust_pub;
268
269 -- reset Global variable
270 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
271 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
272
273 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
274 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
275 FND_MSG_PUB.ADD;
276
277 x_return_status := fnd_api.g_ret_sts_unexp_error;
278
279 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
280 fnd_message.set_token('ERROR' ,SQLERRM);
281 fnd_msg_pub.add;
282
283 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
284 p_count => x_msg_count,
285 p_data => x_msg_data);
286
287 -- Debug info.
288 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
289 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
290 p_msg_data=>x_msg_data,
291 p_msg_type=>'SQL ERROR',
292 p_msg_level=>fnd_log.level_error);
293 END IF;
294 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
295 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_bo(-)',
296 p_prefix=>l_debug_prefix,
297 p_msg_level=>fnd_log.level_procedure);
298 END IF;
299 END do_create_person_cust_bo;
300
301 PROCEDURE create_person_cust_bo(
302 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
303 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
304 p_person_cust_obj IN HZ_PERSON_CUST_BO,
305 p_created_by_module IN VARCHAR2,
306 x_return_status OUT NOCOPY VARCHAR2,
307 x_msg_count OUT NOCOPY NUMBER,
308 x_msg_data OUT NOCOPY VARCHAR2,
309 x_person_id OUT NOCOPY NUMBER
310 ) IS
311 l_pc_obj HZ_PERSON_CUST_BO;
312 BEGIN
313 l_pc_obj := p_person_cust_obj;
314 do_create_person_cust_bo(
315 p_init_msg_list => p_init_msg_list,
316 p_validate_bo_flag => p_validate_bo_flag,
317 p_person_cust_obj => l_pc_obj,
318 p_created_by_module => p_created_by_module,
319 p_obj_source => null,
320 x_return_status => x_return_status,
321 x_msg_count => x_msg_count,
322 x_msg_data => x_msg_data,
323 x_person_id => x_person_id
324 );
325 END create_person_cust_bo;
326
327 PROCEDURE create_person_cust_bo(
328 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
329 p_person_cust_obj IN HZ_PERSON_CUST_BO,
330 p_created_by_module IN VARCHAR2,
331 p_obj_source IN VARCHAR2 := null,
332 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
333 x_return_status OUT NOCOPY VARCHAR2,
334 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
335 x_return_obj OUT NOCOPY HZ_PERSON_CUST_BO,
336 x_person_id OUT NOCOPY NUMBER
337 ) IS
338 l_msg_data VARCHAR2(2000);
339 l_msg_count NUMBER;
340 l_pc_obj HZ_PERSON_CUST_BO;
341 BEGIN
342 l_pc_obj := p_person_cust_obj;
343 do_create_person_cust_bo(
344 p_init_msg_list => fnd_api.g_true,
345 p_validate_bo_flag => p_validate_bo_flag,
346 p_person_cust_obj => l_pc_obj,
347 p_created_by_module => p_created_by_module,
348 p_obj_source => p_obj_source,
349 x_return_status => x_return_status,
350 x_msg_count => l_msg_count,
351 x_msg_data => l_msg_data,
352 x_person_id => x_person_id
353 );
354 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
355 x_return_status => x_return_status,
356 x_msg_count => l_msg_count,
357 x_msg_data => l_msg_data);
358 IF FND_API.to_Boolean(p_return_obj_flag) THEN
359 x_return_obj := l_pc_obj;
360 END IF;
361 END create_person_cust_bo;
362
363 -- PROCEDURE do_update_person_cust_bo
364 --
365 -- DESCRIPTION
366 -- Update person customer account.
367 PROCEDURE do_update_person_cust_bo(
368 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
369 p_person_cust_obj IN OUT NOCOPY HZ_PERSON_CUST_BO,
370 p_created_by_module IN VARCHAR2,
371 p_obj_source IN VARCHAR2 := null,
372 x_return_status OUT NOCOPY VARCHAR2,
373 x_msg_count OUT NOCOPY NUMBER,
374 x_msg_data OUT NOCOPY VARCHAR2,
375 x_person_id OUT NOCOPY NUMBER
376 ) IS
377 l_person_os VARCHAR2(30);
378 l_person_osr VARCHAR2(255);
379 l_debug_prefix VARCHAR2(30) := '';
380 l_per_raise_event BOOLEAN := FALSE;
381 l_pc_raise_event BOOLEAN := FALSE;
382 l_cbm VARCHAR2(30);
383 l_per_event_id NUMBER;
384 l_pc_event_id NUMBER;
385 BEGIN
386 -- Standard start of API savepoint
387 SAVEPOINT do_update_person_cust_pub;
388
389 -- initialize API return status to success.
390 x_return_status := FND_API.G_RET_STS_SUCCESS;
391
392 -- Initialize message list if p_init_msg_list is set to TRUE
393 IF FND_API.to_Boolean(p_init_msg_list) THEN
394 FND_MSG_PUB.initialize;
395 END IF;
396
397 -- Debug info.
398 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
399 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_bo(+)',
400 p_prefix=>l_debug_prefix,
401 p_msg_level=>fnd_log.level_procedure);
402 END IF;
403
404 -- initialize Global variable
405 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
406 IF(p_created_by_module IS NULL) THEN
407 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
408 ELSE
409 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
410 END IF;
411
412 x_person_id := p_person_cust_obj.person_obj.person_id;
413 l_person_os := p_person_cust_obj.person_obj.orig_system;
414 l_person_osr:= p_person_cust_obj.person_obj.orig_system_reference;
415
416 -- check input party_id and os+osr
417 hz_registry_validate_bo_pvt.validate_ssm_id(
418 px_id => x_person_id,
419 px_os => l_person_os,
420 px_osr => l_person_osr,
421 p_obj_type => 'PERSON',
422 p_create_or_update => 'U',
423 x_return_status => x_return_status,
424 x_msg_count => x_msg_count,
425 x_msg_data => x_msg_data);
426
427 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
428 RAISE FND_API.G_EXC_ERROR;
429 END IF;
430
431 -- get person_id and then call
432 l_per_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
433 p_party_id => x_person_id,
434 p_bo_code => 'PERSON'
435 );
436
437 l_pc_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
438 p_party_id => x_person_id,
439 p_bo_code => 'PERSON_CUST'
440 );
441
442 IF(l_per_raise_event) THEN
443 -- Get event_id for person
444 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
445 INTO l_per_event_id
446 FROM DUAL;
447 END IF;
448
449 IF(l_pc_raise_event) THEN
450 -- Get event_id for person customer
451 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
452 INTO l_pc_event_id
453 FROM DUAL;
454 END IF;
455
456 -- acknowledge update_organization_bo not to raise event
457 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := 'Y';
458 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
459
460 HZ_PERSON_BO_PUB.do_update_person_bo(
461 p_init_msg_list => fnd_api.g_false,
462 p_person_obj => p_person_cust_obj.person_obj,
463 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
464 p_obj_source => p_obj_source,
465 x_return_status => x_return_status,
466 x_msg_count => x_msg_count,
467 x_msg_data => x_msg_data,
468 x_person_id => x_person_id,
469 x_person_os => l_person_os,
470 x_person_osr => l_person_osr
471 );
472
473 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
474 RAISE fnd_api.g_exc_error;
475 END IF;
476
477 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
478
479 IF((p_person_cust_obj.account_objs IS NOT NULL) AND
480 (p_person_cust_obj.account_objs.COUNT > 0)) THEN
481 HZ_CUST_ACCT_BO_PVT.save_cust_accts(
482 p_ca_objs => p_person_cust_obj.account_objs,
483 p_create_update_flag => 'U',
484 x_return_status => x_return_status,
485 x_msg_count => x_msg_count,
486 x_msg_data => x_msg_data,
487 p_parent_id => x_person_id,
488 p_parent_os => l_person_os,
489 p_parent_osr => l_person_osr,
490 p_parent_obj_type => 'PERSON'
491 );
492
493 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
494 RAISE fnd_api.g_exc_error;
495 END IF;
496 END IF;
497
498 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
499
500 -- raise event
501 IF(l_per_raise_event) THEN
502 -- raise update org event
503 HZ_PARTY_BO_PVT.call_bes(
504 p_party_id => x_person_id,
505 p_bo_code => 'PERSON',
506 p_create_or_update => 'U',
507 p_obj_source => p_obj_source,
508 p_event_id => l_per_event_id
509 );
510 END IF;
511
512 IF(l_pc_raise_event) THEN
513 -- raise update org cust event
514 HZ_PARTY_BO_PVT.call_bes(
515 p_party_id => x_person_id,
516 p_bo_code => 'PERSON_CUST',
517 p_create_or_update => 'U',
518 p_obj_source => p_obj_source,
519 p_event_id => l_pc_event_id
520 );
521 END IF;
522
523 -- reset Global variable
524 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
525 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
526 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
527
528 -- Debug info.
529 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
530 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
531 p_msg_data=>x_msg_data,
532 p_msg_type=>'WARNING',
533 p_msg_level=>fnd_log.level_exception);
534 END IF;
535 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
536 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_bo(-)',
537 p_prefix=>l_debug_prefix,
538 p_msg_level=>fnd_log.level_procedure);
539 END IF;
540 EXCEPTION
541 WHEN fnd_api.g_exc_error THEN
542 ROLLBACK TO do_update_person_cust_pub;
543
544 -- reset Global variable
545 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
546 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
547 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
548
549 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
550 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
551 FND_MSG_PUB.ADD;
552
553 x_return_status := fnd_api.g_ret_sts_error;
554
555 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
556 p_count => x_msg_count,
557 p_data => x_msg_data);
558
559 -- Debug info.
560 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
561 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
562 p_msg_data=>x_msg_data,
563 p_msg_type=>'ERROR',
564 p_msg_level=>fnd_log.level_error);
565 END IF;
566 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
567 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_bo(-)',
568 p_prefix=>l_debug_prefix,
569 p_msg_level=>fnd_log.level_procedure);
570 END IF;
571
572 WHEN fnd_api.g_exc_unexpected_error THEN
573 ROLLBACK TO do_update_person_cust_pub;
574
575 -- reset Global variable
576 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
577 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
578 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
579
580 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
581 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
582 FND_MSG_PUB.ADD;
583
584 x_return_status := fnd_api.g_ret_sts_unexp_error;
585
586 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
587 p_count => x_msg_count,
588 p_data => x_msg_data);
589
590 -- Debug info.
591 IF fnd_log.level_error>=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=>'UNEXPECTED ERROR',
595 p_msg_level=>fnd_log.level_error);
596 END IF;
597 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
598 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_bo(-)',
599 p_prefix=>l_debug_prefix,
600 p_msg_level=>fnd_log.level_procedure);
601 END IF;
602
603 WHEN OTHERS THEN
604 ROLLBACK TO do_update_person_cust_pub;
605
606 -- reset Global variable
607 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
608 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
609 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
610
611 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
612 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
613 FND_MSG_PUB.ADD;
614
615 x_return_status := fnd_api.g_ret_sts_unexp_error;
616
617 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
618 fnd_message.set_token('ERROR' ,SQLERRM);
619 fnd_msg_pub.add;
620
621 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
622 p_count => x_msg_count,
623 p_data => x_msg_data);
624
625 -- Debug info.
626 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
627 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
628 p_msg_data=>x_msg_data,
629 p_msg_type=>'SQL ERROR',
630 p_msg_level=>fnd_log.level_error);
631 END IF;
632 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
633 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_bo(-)',
634 p_prefix=>l_debug_prefix,
635 p_msg_level=>fnd_log.level_procedure);
636 END IF;
637 END do_update_person_cust_bo;
638
639 PROCEDURE update_person_cust_bo(
640 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
641 p_person_cust_obj IN HZ_PERSON_CUST_BO,
642 p_created_by_module IN VARCHAR2,
643 x_return_status OUT NOCOPY VARCHAR2,
644 x_msg_count OUT NOCOPY NUMBER,
645 x_msg_data OUT NOCOPY VARCHAR2,
646 x_person_id OUT NOCOPY NUMBER
647 ) IS
648 l_pc_obj HZ_PERSON_CUST_BO;
649 BEGIN
650 l_pc_obj := p_person_cust_obj;
651 do_update_person_cust_bo(
652 p_init_msg_list => p_init_msg_list,
653 p_person_cust_obj => l_pc_obj,
654 p_created_by_module => p_created_by_module,
655 p_obj_source => null,
656 x_return_status => x_return_status,
657 x_msg_count => x_msg_count,
658 x_msg_data => x_msg_data,
659 x_person_id => x_person_id
660 );
661 END update_person_cust_bo;
662
663 PROCEDURE update_person_cust_bo(
664 p_person_cust_obj IN HZ_PERSON_CUST_BO,
665 p_created_by_module IN VARCHAR2,
666 p_obj_source IN VARCHAR2 := null,
667 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
668 x_return_status OUT NOCOPY VARCHAR2,
669 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
670 x_return_obj OUT NOCOPY HZ_PERSON_CUST_BO,
671 x_person_id OUT NOCOPY NUMBER
672 ) IS
673 l_msg_data VARCHAR2(2000);
674 l_msg_count NUMBER;
675 l_pc_obj HZ_PERSON_CUST_BO;
676 BEGIN
677 l_pc_obj := p_person_cust_obj;
678 do_update_person_cust_bo(
679 p_init_msg_list => fnd_api.g_true,
680 p_person_cust_obj => l_pc_obj,
681 p_created_by_module => p_created_by_module,
682 p_obj_source => p_obj_source,
683 x_return_status => x_return_status,
684 x_msg_count => l_msg_count,
685 x_msg_data => l_msg_data,
686 x_person_id => x_person_id
687 );
688 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
689 x_return_status => x_return_status,
690 x_msg_count => l_msg_count,
691 x_msg_data => l_msg_data);
692 IF FND_API.to_Boolean(p_return_obj_flag) THEN
693 x_return_obj := l_pc_obj;
694 END IF;
695 END update_person_cust_bo;
696
697 -- PROCEDURE save_person_cust_bo
698 --
699 -- DESCRIPTION
700 -- Create or update person customer account.
701 PROCEDURE do_save_person_cust_bo(
702 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
703 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
704 p_person_cust_obj IN OUT NOCOPY HZ_PERSON_CUST_BO,
705 p_created_by_module IN VARCHAR2,
706 p_obj_source IN VARCHAR2 := null,
707 x_return_status OUT NOCOPY VARCHAR2,
708 x_msg_count OUT NOCOPY NUMBER,
709 x_msg_data OUT NOCOPY VARCHAR2,
710 x_person_id OUT NOCOPY NUMBER
711 ) IS
712 l_person_id NUMBER;
713 l_person_os VARCHAR2(30);
714 l_person_osr VARCHAR2(255);
715 l_debug_prefix VARCHAR2(30) := '';
716 l_create_update_flag VARCHAR2(1);
717 BEGIN
718 -- initialize API return status to success.
719 x_return_status := FND_API.G_RET_STS_SUCCESS;
720
721 -- Initialize message list if p_init_msg_list is set to TRUE
722 IF FND_API.to_Boolean(p_init_msg_list) THEN
723 FND_MSG_PUB.initialize;
724 END IF;
725
726 -- Debug info.
727 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
728 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_bo(+)',
729 p_prefix=>l_debug_prefix,
730 p_msg_level=>fnd_log.level_procedure);
731 END IF;
732
733 l_person_id := p_person_cust_obj.person_obj.person_id;
734 l_person_os := p_person_cust_obj.person_obj.orig_system;
735 l_person_osr:= p_person_cust_obj.person_obj.orig_system_reference;
736
737 -- check root business object to determine that it should be
738 -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
739 l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
740 p_entity_id => l_person_id,
741 p_entity_os => l_person_os,
742 p_entity_osr => l_person_osr,
743 p_entity_type => 'HZ_PARTIES',
744 p_parent_id => NULL,
745 p_parent_obj_type=> NULL );
746
747 IF(l_create_update_flag = 'E') THEN
748 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
749 FND_MSG_PUB.ADD;
750 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
751 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
752 FND_MSG_PUB.ADD;
753 RAISE FND_API.G_EXC_ERROR;
754 END IF;
755
756 IF(l_create_update_flag = 'C') THEN
757 do_create_person_cust_bo(
758 p_init_msg_list => fnd_api.g_false,
759 p_validate_bo_flag => p_validate_bo_flag,
760 p_person_cust_obj => p_person_cust_obj,
761 p_created_by_module => p_created_by_module,
762 p_obj_source => p_obj_source,
763 x_return_status => x_return_status,
764 x_msg_count => x_msg_count,
765 x_msg_data => x_msg_data,
766 x_person_id => x_person_id
767 );
768 ELSIF(l_create_update_flag = 'U') THEN
769 do_update_person_cust_bo(
770 p_init_msg_list => fnd_api.g_false,
771 p_person_cust_obj => p_person_cust_obj,
772 p_created_by_module => p_created_by_module,
773 p_obj_source => p_obj_source,
774 x_return_status => x_return_status,
775 x_msg_count => x_msg_count,
776 x_msg_data => x_msg_data,
777 x_person_id => x_person_id
778 );
779 ELSE
780 RAISE FND_API.G_EXC_ERROR;
781 END IF;
782
783 -- Debug info.
784 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
785 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
786 p_msg_data=>x_msg_data,
787 p_msg_type=>'WARNING',
788 p_msg_level=>fnd_log.level_exception);
789 END IF;
790 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
791 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_bo(-)',
792 p_prefix=>l_debug_prefix,
793 p_msg_level=>fnd_log.level_procedure);
794 END IF;
795 EXCEPTION
796 WHEN fnd_api.g_exc_error THEN
797 x_return_status := fnd_api.g_ret_sts_error;
798
799 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
800 p_count => x_msg_count,
801 p_data => x_msg_data);
802
803 -- Debug info.
804 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
805 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
806 p_msg_data=>x_msg_data,
807 p_msg_type=>'ERROR',
808 p_msg_level=>fnd_log.level_error);
809 END IF;
810 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
811 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_bo(-)',
812 p_prefix=>l_debug_prefix,
813 p_msg_level=>fnd_log.level_procedure);
814 END IF;
815
816 WHEN fnd_api.g_exc_unexpected_error THEN
817 x_return_status := fnd_api.g_ret_sts_unexp_error;
818
819 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
820 p_count => x_msg_count,
821 p_data => x_msg_data);
822
823 -- Debug info.
824 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
825 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
826 p_msg_data=>x_msg_data,
827 p_msg_type=>'UNEXPECTED ERROR',
828 p_msg_level=>fnd_log.level_error);
829 END IF;
830 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
831 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_bo(-)',
832 p_prefix=>l_debug_prefix,
833 p_msg_level=>fnd_log.level_procedure);
834 END IF;
835 WHEN OTHERS THEN
836 x_return_status := fnd_api.g_ret_sts_unexp_error;
837
838 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
839 fnd_message.set_token('ERROR' ,SQLERRM);
840 fnd_msg_pub.add;
841
842 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
843 p_count => x_msg_count,
844 p_data => x_msg_data);
845
846 -- Debug info.
847 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
848 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
849 p_msg_data=>x_msg_data,
850 p_msg_type=>'SQL ERROR',
851 p_msg_level=>fnd_log.level_error);
852 END IF;
853 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
854 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_bo(-)',
855 p_prefix=>l_debug_prefix,
856 p_msg_level=>fnd_log.level_procedure);
857 END IF;
858 END do_save_person_cust_bo;
859
860 PROCEDURE save_person_cust_bo(
861 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
862 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
863 p_person_cust_obj IN HZ_PERSON_CUST_BO,
864 p_created_by_module IN VARCHAR2,
865 x_return_status OUT NOCOPY VARCHAR2,
866 x_msg_count OUT NOCOPY NUMBER,
867 x_msg_data OUT NOCOPY VARCHAR2,
868 x_person_id OUT NOCOPY NUMBER
869 ) IS
870 l_pc_obj HZ_PERSON_CUST_BO;
871 BEGIN
872 l_pc_obj := p_person_cust_obj;
873 do_save_person_cust_bo(
874 p_init_msg_list => p_init_msg_list,
875 p_validate_bo_flag => p_validate_bo_flag,
876 p_person_cust_obj => l_pc_obj,
877 p_created_by_module => p_created_by_module,
878 p_obj_source => null,
879 x_return_status => x_return_status,
880 x_msg_count => x_msg_count,
881 x_msg_data => x_msg_data,
882 x_person_id => x_person_id
883 );
884 END save_person_cust_bo;
885
886 PROCEDURE save_person_cust_bo(
887 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
888 p_person_cust_obj IN HZ_PERSON_CUST_BO,
889 p_created_by_module IN VARCHAR2,
890 p_obj_source IN VARCHAR2 := null,
891 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
892 x_return_status OUT NOCOPY VARCHAR2,
893 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
894 x_return_obj OUT NOCOPY HZ_PERSON_CUST_BO,
895 x_person_id OUT NOCOPY NUMBER
896 ) IS
897 l_msg_data VARCHAR2(2000);
898 l_msg_count NUMBER;
899 l_pc_obj HZ_PERSON_CUST_BO;
900 BEGIN
901 l_pc_obj := p_person_cust_obj;
902 do_save_person_cust_bo(
903 p_init_msg_list => fnd_api.g_true,
904 p_validate_bo_flag => p_validate_bo_flag,
905 p_person_cust_obj => l_pc_obj,
906 p_created_by_module => p_created_by_module,
907 p_obj_source => p_obj_source,
908 x_return_status => x_return_status,
909 x_msg_count => l_msg_count,
910 x_msg_data => l_msg_data,
911 x_person_id => x_person_id
912 );
913 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
914 x_return_status => x_return_status,
915 x_msg_count => l_msg_count,
916 x_msg_data => l_msg_data);
917 IF FND_API.to_Boolean(p_return_obj_flag) THEN
918 x_return_obj := l_pc_obj;
919 END IF;
920 END save_person_cust_bo;
921
922 --------------------------------------
923 --
924 -- PROCEDURE get_person_cust_bo
925 --
926 -- DESCRIPTION
927 -- Get a logical person customer.
928 --
929 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
930 --
931 -- ARGUMENTS
932 -- IN:
933 -- p_init_msg_list Initialize message stack if it is set to FND_API.G_TRUE. Default is FND_API.G_FALSE.
934 -- p_person_id Person ID.
935 -- p_person_os Person orig system.
936 -- p_person_osr Person orig system reference.
937
938 -- OUT:
939 -- x_person_cust_obj Logical person customer record.
940 -- x_return_status Return status after the call. The status can
941 -- be fnd_api.g_ret_sts_success (success),
942 -- fnd_api.g_ret_sts_error (error),
943 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
944 -- x_msg_count Number of messages in message stack.
945 -- x_msg_data Message text if x_msg_count is 1.
946 --
947 -- NOTES
948 --
949 -- MODIFICATION HISTORY
950 --
951 --
952 -- 10-JUN-2005 AWU Created.
953 --
954
955 /*
956 The Get Person Customer API Procedure is a retrieval service that returns a full Person Customer business object.
957 The user identifies a particular Person Customer business object using the TCA identifier and/or
958 the object Source System information. Upon proper validation of the object,
959 the full Person Customer business object is returned. The object consists of all data included within
960 the Person Customer business object, at all embedded levels. This includes the set of all data stored
961 in the TCA tables for each embedded entity.
962
963 To retrieve the appropriate embedded business objects within the Person Customer business object,
964 the Get procedure calls the equivalent procedure for the following embedded objects:
965
966 Embedded BO Mandatory Multiple Logical API Procedure Comments
967
968 Person Y N get_person_bo
969 Customer Account Y Y get_cust_acct_bo Called for each Customer Account object for the Person Customer
970
971 */
972
973
974
975 PROCEDURE get_person_cust_bo(
976 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
977 p_person_id IN NUMBER,
978 p_person_os IN VARCHAR2,
979 p_person_osr IN VARCHAR2,
980 x_person_cust_obj OUT NOCOPY HZ_PERSON_CUST_BO,
981 x_return_status OUT NOCOPY VARCHAR2,
982 x_msg_count OUT NOCOPY NUMBER,
983 x_msg_data OUT NOCOPY VARCHAR2
984 ) is
985 l_debug_prefix VARCHAR2(30) := '';
986
987 l_person_id number;
988 l_person_os varchar2(30);
989 l_person_osr varchar2(255);
990 BEGIN
991
992 -- initialize API return status to success.
993 x_return_status := FND_API.G_RET_STS_SUCCESS;
994
995 -- Initialize message list if p_init_msg_list is set to TRUE
996 IF FND_API.to_Boolean(p_init_msg_list) THEN
997 FND_MSG_PUB.initialize;
998 END IF;
999
1000
1001 -- Debug info.
1002 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1003 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_bo(+)',
1004 p_prefix=>l_debug_prefix,
1005 p_msg_level=>fnd_log.level_procedure);
1006 END IF;
1007
1008 -- check if pass in contact_point_id and/or os+osr
1009 -- extraction validation logic is same as update
1010
1011 l_person_id := p_person_id;
1012 l_person_os := p_person_os;
1013 l_person_osr := p_person_osr;
1014
1015 HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
1016 px_id => l_person_id,
1017 px_os => l_person_os,
1018 px_osr => l_person_osr,
1019 p_obj_type => 'PERSON',
1020 x_return_status => x_return_status,
1021 x_msg_count => x_msg_count,
1022 x_msg_data => x_msg_data);
1023
1024 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1025 RAISE fnd_api.g_exc_error;
1026 END IF;
1027
1028 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_person_cust_bo(
1029 p_init_msg_list => fnd_api.g_false,
1030 p_person_id => l_person_id,
1031 p_action_type => NULL,
1032 x_person_cust_obj => x_person_cust_obj,
1033 x_return_status => x_return_status,
1034 x_msg_count => x_msg_count,
1035 x_msg_data => x_msg_data);
1036
1037 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1038 RAISE FND_API.G_EXC_ERROR;
1039 END IF;
1040
1041
1042 -- Debug info.
1043 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1044 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1045 p_msg_data=>x_msg_data,
1046 p_msg_type=>'WARNING',
1047 p_msg_level=>fnd_log.level_exception);
1048 END IF;
1049
1050 -- Debug info.
1051 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1052 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_bo (-)',
1053 p_prefix=>l_debug_prefix,
1054 p_msg_level=>fnd_log.level_procedure);
1055 END IF;
1056
1057
1058 EXCEPTION
1059
1060 WHEN fnd_api.g_exc_error THEN
1061 x_return_status := fnd_api.g_ret_sts_error;
1062
1063 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1064 p_count => x_msg_count,
1065 p_data => x_msg_data);
1066
1067 -- Debug info.
1068 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1069 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1070 p_msg_data=>x_msg_data,
1071 p_msg_type=>'ERROR',
1072 p_msg_level=>fnd_log.level_error);
1073 END IF;
1074 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1075 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_bo (-)',
1076 p_prefix=>l_debug_prefix,
1077 p_msg_level=>fnd_log.level_procedure);
1078 END IF;
1079 WHEN fnd_api.g_exc_unexpected_error THEN
1080 x_return_status := fnd_api.g_ret_sts_unexp_error;
1081
1082 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1083 p_count => x_msg_count,
1084 p_data => x_msg_data);
1085
1086 -- Debug info.
1087 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1088 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1089 p_msg_data=>x_msg_data,
1090 p_msg_type=>'UNEXPECTED ERROR',
1091 p_msg_level=>fnd_log.level_error);
1092 END IF;
1093 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1094 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_bo (-)',
1095 p_prefix=>l_debug_prefix,
1096 p_msg_level=>fnd_log.level_procedure);
1097 END IF;
1098 WHEN OTHERS THEN
1099 x_return_status := fnd_api.g_ret_sts_unexp_error;
1100
1101 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1102 fnd_message.set_token('ERROR' ,SQLERRM);
1103 fnd_msg_pub.add;
1104
1105 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1106 p_count => x_msg_count,
1107 p_data => x_msg_data);
1108
1109 -- Debug info.
1110 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1111 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1112 p_msg_data=>x_msg_data,
1113 p_msg_type=>'SQL ERROR',
1114 p_msg_level=>fnd_log.level_error);
1115 END IF;
1116 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1117 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_bo (-)',
1118 p_prefix=>l_debug_prefix,
1119 p_msg_level=>fnd_log.level_procedure);
1120 END IF;
1121
1122 end;
1123
1124 PROCEDURE get_person_cust_bo(
1125 p_person_id IN NUMBER,
1126 p_person_os IN VARCHAR2,
1127 p_person_osr IN VARCHAR2,
1128 x_person_cust_obj OUT NOCOPY HZ_PERSON_CUST_BO,
1129 x_return_status OUT NOCOPY VARCHAR2,
1130 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
1131 ) IS
1132 l_msg_data VARCHAR2(2000);
1133 l_msg_count NUMBER;
1134 BEGIN
1135 get_person_cust_bo(
1136 p_init_msg_list => fnd_api.g_true,
1137 p_person_id => p_person_id,
1138 p_person_os => p_person_os,
1139 p_person_osr => p_person_osr,
1140 x_person_cust_obj => x_person_cust_obj,
1141 x_return_status => x_return_status,
1142 x_msg_count => l_msg_count,
1143 x_msg_data => l_msg_data
1144 );
1145 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1146 x_return_status => x_return_status,
1147 x_msg_count => l_msg_count,
1148 x_msg_data => l_msg_data);
1149 END get_person_cust_bo;
1150
1151 --------------------------------------
1152 --
1153 -- PROCEDURE get_person_custs_created
1154 --
1155 -- DESCRIPTION
1156 --The caller provides an identifier for the Person Customers created business event and
1157 --the procedure returns database objects of the type HZ_PERSON_CUST CUSTOMER_BO for all of
1158 --the Person Customer business objects from the business event.
1159
1160 --
1161 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1162 --
1163 -- ARGUMENTS
1164 -- IN:
1165 -- p_init_msg_list Initialize message stack if it is set to
1166 -- p_event_id BES Event identifier.
1167 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
1168 -- OUT:
1169 -- x_person_cust_objs One or more created logical person customer.
1170 -- x_return_status Return status after the call. The status can
1171 -- be fnd_api.g_ret_sts_success (success),
1172 -- fnd_api.g_ret_sts_error (error),
1173 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1174 -- x_msg_count Number of messages in message stack.
1175 -- x_msg_data Message text if x_msg_count is 1.
1176 --
1177 -- NOTES
1178 --
1179 -- MODIFICATION HISTORY
1180 --
1181 -- 10-JUN-2005 AWU Created.
1182 --
1183
1184
1185
1186 /*
1187 The Get Person customers Created procedure is a service to retrieve all of the Person Customer business objects
1188 whose creations have been captured by a logical business event. Each Person Customers Created
1189 business event signifies that one or more Person Customer business objects have been created.
1190 The caller provides an identifier for the Person Customers Created business event and the procedure
1191 returns all of the Person Customer business objects from the business event. For each business object
1192 creation captured in the business event, the procedure calls the generic Get operation:
1193 HZ_PERSON_CUST_BO_PVT.get_person_cust_bo
1194
1195 Gathering all of the returned business objects from those API calls, the procedure packages
1196 them in a table structure and returns them to the caller.
1197 */
1198
1199
1200 PROCEDURE get_person_custs_created(
1201 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1202 p_event_id IN NUMBER,
1203 x_person_cust_objs OUT NOCOPY HZ_PERSON_CUST_BO_TBL,
1204 x_return_status OUT NOCOPY VARCHAR2,
1205 x_msg_count OUT NOCOPY NUMBER,
1206 x_msg_data OUT NOCOPY VARCHAR2
1207 ) is
1208 l_debug_prefix VARCHAR2(30) := '';
1209 begin
1210
1211 -- initialize API return status to success.
1212 x_return_status := FND_API.G_RET_STS_SUCCESS;
1213
1214 -- Initialize message list if p_init_msg_list is set to TRUE
1215 IF FND_API.to_Boolean(p_init_msg_list) THEN
1216 FND_MSG_PUB.initialize;
1217 END IF;
1218
1219
1220 -- Debug info.
1221 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1222 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_created(+)',
1223 p_prefix=>l_debug_prefix,
1224 p_msg_level=>fnd_log.level_procedure);
1225 END IF;
1226
1227 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
1228 p_party_id => null,
1229 p_event_type => 'C',
1230 p_bo_code => 'PERSON_CUST',
1231 x_return_status => x_return_status);
1232
1233 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1234 RAISE FND_API.G_EXC_ERROR;
1235 END IF;
1236
1237 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_person_custs_created(
1238 p_init_msg_list => fnd_api.g_false,
1239 p_event_id => p_event_id,
1240 x_person_cust_objs => x_person_cust_objs,
1241 x_return_status => x_return_status,
1242 x_msg_count => x_msg_count,
1243 x_msg_data => x_msg_data);
1244
1245 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1246 RAISE FND_API.G_EXC_ERROR;
1247 END IF;
1248
1249
1250
1251 -- Debug info.
1252 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1253 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1254 p_msg_data=>x_msg_data,
1255 p_msg_type=>'WARNING',
1256 p_msg_level=>fnd_log.level_exception);
1257 END IF;
1258
1259 -- Debug info.
1260 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1261 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_created (-)',
1262 p_prefix=>l_debug_prefix,
1263 p_msg_level=>fnd_log.level_procedure);
1264 END IF;
1265
1266
1267 EXCEPTION
1268
1269 WHEN fnd_api.g_exc_error THEN
1270 x_return_status := fnd_api.g_ret_sts_error;
1271
1272 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1273 p_count => x_msg_count,
1274 p_data => x_msg_data);
1275
1276 -- Debug info.
1277 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1278 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1279 p_msg_data=>x_msg_data,
1280 p_msg_type=>'ERROR',
1281 p_msg_level=>fnd_log.level_error);
1282 END IF;
1283 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1284 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_created(-)',
1285 p_prefix=>l_debug_prefix,
1286 p_msg_level=>fnd_log.level_procedure);
1287 END IF;
1288 WHEN fnd_api.g_exc_unexpected_error THEN
1289 x_return_status := fnd_api.g_ret_sts_unexp_error;
1290
1291 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1292 p_count => x_msg_count,
1293 p_data => x_msg_data);
1294
1295 -- Debug info.
1296 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1297 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1298 p_msg_data=>x_msg_data,
1299 p_msg_type=>'UNEXPECTED ERROR',
1300 p_msg_level=>fnd_log.level_error);
1301 END IF;
1302 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1303 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_created(-)',
1304 p_prefix=>l_debug_prefix,
1305 p_msg_level=>fnd_log.level_procedure);
1306 END IF;
1307 WHEN OTHERS THEN
1308 x_return_status := fnd_api.g_ret_sts_unexp_error;
1309
1310 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1311 fnd_message.set_token('ERROR' ,SQLERRM);
1312 fnd_msg_pub.add;
1313
1314 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1315 p_count => x_msg_count,
1316 p_data => x_msg_data);
1317
1318 -- Debug info.
1319 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1320 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1321 p_msg_data=>x_msg_data,
1322 p_msg_type=>'SQL ERROR',
1323 p_msg_level=>fnd_log.level_error);
1324 END IF;
1325 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1326 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_created(-)',
1327 p_prefix=>l_debug_prefix,
1328 p_msg_level=>fnd_log.level_procedure);
1329 END IF;
1330
1331 end;
1332
1333 PROCEDURE get_person_custs_created(
1334 p_event_id IN NUMBER,
1335 x_person_cust_objs OUT NOCOPY HZ_PERSON_CUST_BO_TBL,
1336 x_return_status OUT NOCOPY VARCHAR2,
1337 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
1338 ) IS
1339 l_msg_data VARCHAR2(2000);
1340 l_msg_count NUMBER;
1341 BEGIN
1342 get_person_custs_created(
1343 p_init_msg_list => fnd_api.g_true,
1344 p_event_id => p_event_id,
1345 x_person_cust_objs => x_person_cust_objs,
1346 x_return_status => x_return_status,
1347 x_msg_count => l_msg_count,
1348 x_msg_data => l_msg_data
1349 );
1350 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1351 x_return_status => x_return_status,
1352 x_msg_count => l_msg_count,
1353 x_msg_data => l_msg_data);
1354 END get_person_custs_created;
1355
1356
1357
1358
1359 --------------------------------------
1360 --
1361 -- PROCEDURE get_person_custs_updated
1362 --
1363 -- DESCRIPTION
1364 --The caller provides an identifier for the Person Customers update business event and
1365 --the procedure returns database objects of the type HZ_PERSON_CUST_BO for all of
1366 --the Person Customer business objects from the business event.
1367
1368 --
1369 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1370 --
1371 -- ARGUMENTS
1372 -- IN:
1373 -- p_init_msg_list Initialize message stack if it is set to
1374 -- p_event_id BES Event identifier.
1375 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
1376 -- OUT:
1377 -- x_person_cust_objs One or more created logical person.
1378 -- x_return_status Return status after the call. The status can
1379 -- be fnd_api.g_ret_sts_success (success),
1380 -- fnd_api.g_ret_sts_error (error),
1381 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1382 -- x_msg_count Number of messages in message stack.
1383 -- x_msg_data Message text if x_msg_count is 1.
1384 --
1385 -- NOTES
1386 --
1387 -- MODIFICATION HISTORY
1388 --
1389 -- 10-JUN-2005 AWU Created.
1390 --
1391
1392
1393
1394 /*
1395 The Get Person Customers Updated procedure is a service to retrieve all of the Person Customer business objects whose updates
1396 have been captured by the logical business event. Each Person Customers Updated business event signifies that one or more Person
1397 Customer business objects have been updated.
1398 The caller provides an identifier for the Person Customers Update business event and the procedure returns database objects of
1399 the type HZ_PERSON_CUST_BO for all of the Person Customer business objects from the business event.
1400 Gathering all of the returned database objects from those API calls, the procedure packages them in a table structure and returns
1401 them to the caller.
1402 */
1403
1404 PROCEDURE get_person_custs_updated(
1405 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1406 p_event_id IN NUMBER,
1407 x_person_cust_objs OUT NOCOPY HZ_PERSON_CUST_BO_TBL,
1408 x_return_status OUT NOCOPY VARCHAR2,
1409 x_msg_count OUT NOCOPY NUMBER,
1410 x_msg_data OUT NOCOPY VARCHAR2
1411 ) is
1412
1413 l_debug_prefix VARCHAR2(30) := '';
1414 begin
1415
1416 -- initialize API return status to success.
1417 x_return_status := FND_API.G_RET_STS_SUCCESS;
1418
1419 -- Initialize message list if p_init_msg_list is set to TRUE
1420 IF FND_API.to_Boolean(p_init_msg_list) THEN
1421 FND_MSG_PUB.initialize;
1422 END IF;
1423
1424
1425 -- Debug info.
1426 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1427 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_updated(+)',
1428 p_prefix=>l_debug_prefix,
1429 p_msg_level=>fnd_log.level_procedure);
1430 END IF;
1431
1432 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
1433 p_party_id => null,
1434 p_event_type => 'U',
1435 p_bo_code => 'PERSON_CUST',
1436 x_return_status => x_return_status);
1437
1438 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1439 RAISE FND_API.G_EXC_ERROR;
1440 END IF;
1441
1442 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_person_custs_updated(
1443 p_init_msg_list => fnd_api.g_false,
1444 p_event_id => p_event_id,
1445 x_person_cust_objs => x_person_cust_objs,
1446 x_return_status => x_return_status,
1447 x_msg_count => x_msg_count,
1448 x_msg_data => x_msg_data);
1449
1450 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1451 RAISE FND_API.G_EXC_ERROR;
1452 END IF;
1453
1454
1455
1456 -- Debug info.
1457 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1458 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1459 p_msg_data=>x_msg_data,
1460 p_msg_type=>'WARNING',
1461 p_msg_level=>fnd_log.level_exception);
1462 END IF;
1463
1464 -- Debug info.
1465 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1466 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_updated (-)',
1467 p_prefix=>l_debug_prefix,
1468 p_msg_level=>fnd_log.level_procedure);
1469 END IF;
1470
1471
1472 EXCEPTION
1473
1474 WHEN fnd_api.g_exc_error THEN
1475 x_return_status := fnd_api.g_ret_sts_error;
1476
1477 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1478 p_count => x_msg_count,
1479 p_data => x_msg_data);
1480
1481 -- Debug info.
1482 IF fnd_log.level_error>=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=>'ERROR',
1486 p_msg_level=>fnd_log.level_error);
1487 END IF;
1488 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1489 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_updated(-)',
1490 p_prefix=>l_debug_prefix,
1491 p_msg_level=>fnd_log.level_procedure);
1492 END IF;
1493 WHEN fnd_api.g_exc_unexpected_error THEN
1494 x_return_status := fnd_api.g_ret_sts_unexp_error;
1495
1496 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1497 p_count => x_msg_count,
1498 p_data => x_msg_data);
1499
1500 -- Debug info.
1501 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1502 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1503 p_msg_data=>x_msg_data,
1504 p_msg_type=>'UNEXPECTED ERROR',
1505 p_msg_level=>fnd_log.level_error);
1506 END IF;
1507 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1508 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_updated(-)',
1509 p_prefix=>l_debug_prefix,
1510 p_msg_level=>fnd_log.level_procedure);
1511 END IF;
1512 WHEN OTHERS THEN
1513 x_return_status := fnd_api.g_ret_sts_unexp_error;
1514
1515 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1516 fnd_message.set_token('ERROR' ,SQLERRM);
1517 fnd_msg_pub.add;
1518
1519 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1520 p_count => x_msg_count,
1521 p_data => x_msg_data);
1522
1523 -- Debug info.
1524 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1525 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1526 p_msg_data=>x_msg_data,
1527 p_msg_type=>'SQL ERROR',
1528 p_msg_level=>fnd_log.level_error);
1529 END IF;
1530 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1531 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_custs_updated(-)',
1532 p_prefix=>l_debug_prefix,
1533 p_msg_level=>fnd_log.level_procedure);
1534 END IF;
1535
1536 end;
1537
1538 PROCEDURE get_person_custs_updated(
1539 p_event_id IN NUMBER,
1540 x_person_cust_objs OUT NOCOPY HZ_PERSON_CUST_BO_TBL,
1541 x_return_status OUT NOCOPY VARCHAR2,
1542 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
1543 )IS
1544 l_msg_data VARCHAR2(2000);
1545 l_msg_count NUMBER;
1546 BEGIN
1547 get_person_custs_updated(
1548 p_init_msg_list => fnd_api.g_true,
1549 p_event_id => p_event_id,
1550 x_person_cust_objs => x_person_cust_objs,
1551 x_return_status => x_return_status,
1552 x_msg_count => l_msg_count,
1553 x_msg_data => l_msg_data
1554 );
1555 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1556 x_return_status => x_return_status,
1557 x_msg_count => l_msg_count,
1558 x_msg_data => l_msg_data);
1559 END get_person_custs_updated;
1560
1561 --------------------------------------
1562 --
1563 -- PROCEDURE get_person_cust_updated
1564 --
1565 -- DESCRIPTION
1566 --The caller provides an identifier for the Person customer update business event and person id
1567 --the procedure returns one database object of the type HZ_PERSON_CUST_BO
1568 --
1569 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1570 --
1571 -- ARGUMENTS
1572 -- IN:
1573 -- p_init_msg_list Initialize message stack if it is set to
1574 -- p_event_id BES Event identifier.
1575 -- p_person_cust_id Person customer identifier.
1576 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
1577 -- OUT:
1578 -- x_person_cust_obj One updated logical person.
1579 -- x_return_status Return status after the call. The status can
1580 -- be fnd_api.g_ret_sts_success (success),
1581 -- fnd_api.g_ret_sts_error (error),
1582 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1583 -- x_msg_count Number of messages in message stack.
1584 -- x_msg_data Message text if x_msg_count is 1.
1585 --
1586 -- NOTES
1587 --
1588 -- MODIFICATION HISTORY
1589 --
1590 -- 06-JUN-2005 AWU Created.
1591 --
1592
1593 PROCEDURE get_person_cust_updated(
1594 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1595 p_event_id IN NUMBER,
1596 p_person_cust_id IN NUMBER,
1597 x_person_cust_obj OUT NOCOPY HZ_PERSON_CUST_BO,
1598 x_return_status OUT NOCOPY VARCHAR2,
1599 x_msg_count OUT NOCOPY NUMBER,
1600 x_msg_data OUT NOCOPY VARCHAR2
1601 ) is
1602 l_debug_prefix VARCHAR2(30) := '';
1603 begin
1604
1605 -- initialize API return status to success.
1606 x_return_status := FND_API.G_RET_STS_SUCCESS;
1607
1608 -- Initialize message list if p_init_msg_list is set to TRUE
1609 IF FND_API.to_Boolean(p_init_msg_list) THEN
1610 FND_MSG_PUB.initialize;
1611 END IF;
1612
1613
1614 -- Debug info.
1615 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1616 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_updated(+)',
1617 p_prefix=>l_debug_prefix,
1618 p_msg_level=>fnd_log.level_procedure);
1619 END IF;
1620
1621 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
1622 p_party_id => p_person_cust_id,
1623 p_event_type => 'U',
1624 p_bo_code => 'PERSON_CUST',
1625 x_return_status => x_return_status);
1626
1627 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1628 RAISE FND_API.G_EXC_ERROR;
1629 END IF;
1630
1631 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_person_cust_updated(
1632 p_init_msg_list => fnd_api.g_false,
1633 p_event_id => p_event_id,
1634 p_person_cust_id => p_person_cust_id,
1635 x_person_cust_obj => x_person_cust_obj,
1636 x_return_status => x_return_status,
1637 x_msg_count => x_msg_count,
1638 x_msg_data => x_msg_data);
1639
1640 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1641 RAISE FND_API.G_EXC_ERROR;
1642 END IF;
1643
1644
1645
1646 -- Debug info.
1647 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1648 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1649 p_msg_data=>x_msg_data,
1650 p_msg_type=>'WARNING',
1651 p_msg_level=>fnd_log.level_exception);
1652 END IF;
1653
1654 -- Debug info.
1655 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1656 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_updated (-)',
1657 p_prefix=>l_debug_prefix,
1658 p_msg_level=>fnd_log.level_procedure);
1659 END IF;
1660
1661
1662 EXCEPTION
1663
1664 WHEN fnd_api.g_exc_error THEN
1665 x_return_status := fnd_api.g_ret_sts_error;
1666
1667 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1668 p_count => x_msg_count,
1669 p_data => x_msg_data);
1670
1671 -- Debug info.
1672 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1673 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1674 p_msg_data=>x_msg_data,
1675 p_msg_type=>'ERROR',
1676 p_msg_level=>fnd_log.level_error);
1677 END IF;
1678 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1679 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_updated(-)',
1680 p_prefix=>l_debug_prefix,
1681 p_msg_level=>fnd_log.level_procedure);
1682 END IF;
1683 WHEN fnd_api.g_exc_unexpected_error THEN
1684 x_return_status := fnd_api.g_ret_sts_unexp_error;
1685
1686 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1687 p_count => x_msg_count,
1688 p_data => x_msg_data);
1689
1690 -- Debug info.
1691 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1692 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1693 p_msg_data=>x_msg_data,
1694 p_msg_type=>'UNEXPECTED ERROR',
1695 p_msg_level=>fnd_log.level_error);
1696 END IF;
1697 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1698 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_updated(-)',
1699 p_prefix=>l_debug_prefix,
1700 p_msg_level=>fnd_log.level_procedure);
1701 END IF;
1702 WHEN OTHERS THEN
1703 x_return_status := fnd_api.g_ret_sts_unexp_error;
1704
1705 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1706 fnd_message.set_token('ERROR' ,SQLERRM);
1707 fnd_msg_pub.add;
1708
1709 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1710 p_count => x_msg_count,
1711 p_data => x_msg_data);
1712
1713 -- Debug info.
1714 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1715 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1716 p_msg_data=>x_msg_data,
1717 p_msg_type=>'SQL ERROR',
1718 p_msg_level=>fnd_log.level_error);
1719 END IF;
1720 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1721 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_updated(-)',
1722 p_prefix=>l_debug_prefix,
1723 p_msg_level=>fnd_log.level_procedure);
1724 END IF;
1725
1726 end;
1727
1728 PROCEDURE get_person_cust_updated(
1729 p_event_id IN NUMBER,
1730 p_person_cust_id IN NUMBER,
1731 x_person_cust_obj OUT NOCOPY HZ_PERSON_CUST_BO,
1732 x_return_status OUT NOCOPY VARCHAR2,
1733 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
1734 ) IS
1735 l_msg_data VARCHAR2(2000);
1736 l_msg_count NUMBER;
1737 BEGIN
1738 get_person_cust_updated(
1739 p_init_msg_list => fnd_api.g_true,
1740 p_event_id => p_event_id,
1741 p_person_cust_id => p_person_cust_id,
1742 x_person_cust_obj => x_person_cust_obj,
1743 x_return_status => x_return_status,
1744 x_msg_count => l_msg_count,
1745 x_msg_data => l_msg_data
1746 );
1747 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1748 x_return_status => x_return_status,
1749 x_msg_count => l_msg_count,
1750 x_msg_data => l_msg_data);
1751 END get_person_cust_updated;
1752
1753 -- get TCA identifiers for create event
1754 PROCEDURE get_ids_person_custs_created (
1755 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1756 p_event_id IN NUMBER,
1757 x_person_cust_ids OUT NOCOPY HZ_EXTRACT_BO_UTIL_PVT.BO_ID_TBL,
1758 x_return_status OUT NOCOPY VARCHAR2,
1759 x_msg_count OUT NOCOPY NUMBER,
1760 x_msg_data OUT NOCOPY VARCHAR2
1761
1762 ) is
1763 l_debug_prefix VARCHAR2(30) := '';
1764
1765 begin
1766 -- initialize API return status to success.
1767 x_return_status := FND_API.G_RET_STS_SUCCESS;
1768
1769 -- Initialize message list if p_init_msg_list is set to TRUE
1770 IF FND_API.to_Boolean(p_init_msg_list) THEN
1771 FND_MSG_PUB.initialize;
1772 END IF;
1773
1774
1775 -- Debug info.
1776 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1777 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_created(+)',
1778 p_prefix=>l_debug_prefix,
1779 p_msg_level=>fnd_log.level_procedure);
1780 END IF;
1781
1782 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
1783 p_party_id => null,
1784 p_event_type => 'C',
1785 p_bo_code => 'PERSON_CUST',
1786 x_return_status => x_return_status);
1787
1788 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1789 RAISE FND_API.G_EXC_ERROR;
1790 END IF;
1791
1792 HZ_EXTRACT_BO_UTIL_PVT.get_bo_root_ids(
1793 p_init_msg_list => fnd_api.g_false,
1794 p_event_id => p_event_id,
1795 x_obj_root_ids => x_person_cust_ids,
1796 x_return_status => x_return_status,
1797 x_msg_count => x_msg_count,
1798 x_msg_data => x_msg_data);
1799
1800 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1801 RAISE FND_API.G_EXC_ERROR;
1802 END IF;
1803
1804
1805 -- Debug info.
1806 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1807 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1808 p_msg_data=>x_msg_data,
1809 p_msg_type=>'WARNING',
1810 p_msg_level=>fnd_log.level_exception);
1811 END IF;
1812
1813 -- Debug info.
1814 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1815 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_created (-)',
1816 p_prefix=>l_debug_prefix,
1817 p_msg_level=>fnd_log.level_procedure);
1818 END IF;
1819
1820
1821 EXCEPTION
1822
1823 WHEN fnd_api.g_exc_error THEN
1824 x_return_status := fnd_api.g_ret_sts_error;
1825
1826 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1827 p_count => x_msg_count,
1828 p_data => x_msg_data);
1829
1830 -- Debug info.
1831 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1832 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1833 p_msg_data=>x_msg_data,
1834 p_msg_type=>'ERROR',
1835 p_msg_level=>fnd_log.level_error);
1836 END IF;
1837 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1838 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_created(-)',
1839 p_prefix=>l_debug_prefix,
1840 p_msg_level=>fnd_log.level_procedure);
1841 END IF;
1842 WHEN fnd_api.g_exc_unexpected_error THEN
1843 x_return_status := fnd_api.g_ret_sts_unexp_error;
1844
1845 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1846 p_count => x_msg_count,
1847 p_data => x_msg_data);
1848
1849 -- Debug info.
1850 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1851 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1852 p_msg_data=>x_msg_data,
1853 p_msg_type=>'UNEXPECTED ERROR',
1854 p_msg_level=>fnd_log.level_error);
1855 END IF;
1856 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1857 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_created(-)',
1858 p_prefix=>l_debug_prefix,
1859 p_msg_level=>fnd_log.level_procedure);
1860 END IF;
1861 WHEN OTHERS THEN
1862 x_return_status := fnd_api.g_ret_sts_unexp_error;
1863
1864 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1865 fnd_message.set_token('ERROR' ,SQLERRM);
1866 fnd_msg_pub.add;
1867
1868 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1869 p_count => x_msg_count,
1870 p_data => x_msg_data);
1871
1872 -- Debug info.
1873 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1874 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1875 p_msg_data=>x_msg_data,
1876 p_msg_type=>'SQL ERROR',
1877 p_msg_level=>fnd_log.level_error);
1878 END IF;
1879 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1880 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_created(-)',
1881 p_prefix=>l_debug_prefix,
1882 p_msg_level=>fnd_log.level_procedure);
1883 END IF;
1884
1885 end;
1886
1887
1888 -- get TCA identifiers for update event
1889 PROCEDURE get_ids_person_custs_updated (
1890 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1891 p_event_id IN NUMBER,
1892 x_person_cust_ids OUT NOCOPY HZ_EXTRACT_BO_UTIL_PVT.BO_ID_TBL,
1893 x_return_status OUT NOCOPY VARCHAR2,
1894 x_msg_count OUT NOCOPY NUMBER,
1895 x_msg_data OUT NOCOPY VARCHAR2
1896 ) is
1897 l_debug_prefix VARCHAR2(30) := '';
1898
1899 begin
1900 -- initialize API return status to success.
1901 x_return_status := FND_API.G_RET_STS_SUCCESS;
1902
1903 -- Initialize message list if p_init_msg_list is set to TRUE
1904 IF FND_API.to_Boolean(p_init_msg_list) THEN
1905 FND_MSG_PUB.initialize;
1906 END IF;
1907
1908
1909 -- Debug info.
1910 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1911 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_updated(+)',
1912 p_prefix=>l_debug_prefix,
1913 p_msg_level=>fnd_log.level_procedure);
1914 END IF;
1915
1916 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
1917 p_party_id => null,
1918 p_event_type => 'U',
1919 p_bo_code => 'PERSON_CUST',
1920 x_return_status => x_return_status);
1921
1922 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1923 RAISE FND_API.G_EXC_ERROR;
1924 END IF;
1925
1926 HZ_EXTRACT_BO_UTIL_PVT.get_bo_root_ids(
1927 p_init_msg_list => fnd_api.g_false,
1928 p_event_id => p_event_id,
1929 x_obj_root_ids => x_person_cust_ids,
1930 x_return_status => x_return_status,
1931 x_msg_count => x_msg_count,
1932 x_msg_data => x_msg_data);
1933
1934 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1935 RAISE FND_API.G_EXC_ERROR;
1936 END IF;
1937
1938
1939 -- Debug info.
1940 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1941 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1942 p_msg_data=>x_msg_data,
1943 p_msg_type=>'WARNING',
1944 p_msg_level=>fnd_log.level_exception);
1945 END IF;
1946
1947 -- Debug info.
1948 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1949 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_updated (-)',
1950 p_prefix=>l_debug_prefix,
1951 p_msg_level=>fnd_log.level_procedure);
1952 END IF;
1953
1954
1955 EXCEPTION
1956
1957 WHEN fnd_api.g_exc_error THEN
1958 x_return_status := fnd_api.g_ret_sts_error;
1959
1960 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1961 p_count => x_msg_count,
1962 p_data => x_msg_data);
1963
1964 -- Debug info.
1965 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1966 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1967 p_msg_data=>x_msg_data,
1968 p_msg_type=>'ERROR',
1969 p_msg_level=>fnd_log.level_error);
1970 END IF;
1971 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1972 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_updated(-)',
1973 p_prefix=>l_debug_prefix,
1974 p_msg_level=>fnd_log.level_procedure);
1975 END IF;
1976 WHEN fnd_api.g_exc_unexpected_error THEN
1977 x_return_status := fnd_api.g_ret_sts_unexp_error;
1978
1979 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1980 p_count => x_msg_count,
1981 p_data => x_msg_data);
1982
1983 -- Debug info.
1984 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1985 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1986 p_msg_data=>x_msg_data,
1987 p_msg_type=>'UNEXPECTED ERROR',
1988 p_msg_level=>fnd_log.level_error);
1989 END IF;
1990 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1991 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_updated(-)',
1992 p_prefix=>l_debug_prefix,
1993 p_msg_level=>fnd_log.level_procedure);
1994 END IF;
1995 WHEN OTHERS THEN
1996 x_return_status := fnd_api.g_ret_sts_unexp_error;
1997
1998 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1999 fnd_message.set_token('ERROR' ,SQLERRM);
2000 fnd_msg_pub.add;
2001
2002 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2003 p_count => x_msg_count,
2004 p_data => x_msg_data);
2005
2006 -- Debug info.
2007 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2008 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2009 p_msg_data=>x_msg_data,
2010 p_msg_type=>'SQL ERROR',
2011 p_msg_level=>fnd_log.level_error);
2012 END IF;
2013 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2014 hz_utility_v2pub.debug(p_message=>'get_ids_person_custs_updated(-)',
2015 p_prefix=>l_debug_prefix,
2016 p_msg_level=>fnd_log.level_procedure);
2017 END IF;
2018
2019 end;
2020
2021 -- PROCEDURE do_create_person_cust_v2_bo
2022 --
2023 -- DESCRIPTION
2024 -- Create person customer account.
2025 PROCEDURE do_create_person_cust_v2_bo(
2026 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
2027 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
2028 p_person_cust_v2_obj IN OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2029 p_created_by_module IN VARCHAR2,
2030 p_obj_source IN VARCHAR2 := null,
2031 x_return_status OUT NOCOPY VARCHAR2,
2032 x_msg_count OUT NOCOPY NUMBER,
2033 x_msg_data OUT NOCOPY VARCHAR2,
2034 x_person_id OUT NOCOPY NUMBER
2035 ) IS
2036 l_person_os VARCHAR2(30);
2037 l_person_osr VARCHAR2(255);
2038 l_debug_prefix VARCHAR2(30) := '';
2039 l_valid_obj BOOLEAN;
2040 l_raise_event BOOLEAN := FALSE;
2041 l_bus_object HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
2042 l_cbm VARCHAR2(30);
2043 l_per_event_id NUMBER;
2044 l_pc_event_id NUMBER;
2045 BEGIN
2046 -- Standard start of API savepoint
2047 SAVEPOINT do_create_person_cust_v2_pub;
2048
2049 -- initialize API return status to success.
2050 x_return_status := FND_API.G_RET_STS_SUCCESS;
2051
2052 -- Initialize message list if p_init_msg_list is set to TRUE
2053 IF FND_API.to_Boolean(p_init_msg_list) THEN
2054 FND_MSG_PUB.initialize;
2055 END IF;
2056
2057 -- Debug info.
2058 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2059 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_v2_bo(+)',
2060 p_prefix=>l_debug_prefix,
2061 p_msg_level=>fnd_log.level_procedure);
2062 END IF;
2063
2064 -- Base on p_validate_bo_flag, check the completeness of business objects
2065 IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
2066 HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
2067 p_bus_object_code => 'PERSON_CUST',
2068 x_bus_object => l_bus_object
2069 );
2070
2071 l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_pca_v2_bo_comp(
2072 p_person_obj => p_person_cust_v2_obj.person_obj,
2073 p_ca_v2_objs => p_person_cust_v2_obj.account_objs
2074 );
2075
2076 IF NOT(l_valid_obj) THEN
2077 RAISE fnd_api.g_exc_error;
2078 END IF;
2079
2080 -- find out if raise event at the end
2081 l_raise_event := HZ_PARTY_BO_PVT.is_raising_create_event(
2082 p_obj_complete_flag => l_valid_obj );
2083
2084 IF(l_raise_event) THEN
2085 -- Get event_id for person
2086 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2087 INTO l_per_event_id
2088 FROM DUAL;
2089
2090 -- Get event_id for person customer
2091 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2092 INTO l_pc_event_id
2093 FROM DUAL;
2094 END IF;
2095 ELSE
2096 l_raise_event := FALSE;
2097 END IF;
2098
2099 -- initialize Global variable to indicate the caller of V2API is from BO API
2100 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
2101 IF(p_created_by_module IS NULL) THEN
2102 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
2103 ELSE
2104 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
2105 END IF;
2106
2107 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2108
2109 HZ_PERSON_BO_PUB.do_create_person_bo(
2110 p_init_msg_list => fnd_api.g_false,
2111 p_validate_bo_flag => FND_API.G_FALSE,
2112 p_person_obj => p_person_cust_v2_obj.person_obj,
2113 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2114 p_obj_source => p_obj_source,
2115 x_return_status => x_return_status,
2116 x_msg_count => x_msg_count,
2117 x_msg_data => x_msg_data,
2118 x_person_id => x_person_id,
2119 x_person_os => l_person_os,
2120 x_person_osr => l_person_osr
2121 );
2122
2123 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2124 RAISE fnd_api.g_exc_error;
2125 END IF;
2126
2127 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2128
2129 IF((p_person_cust_v2_obj.account_objs IS NOT NULL) AND
2130 (p_person_cust_v2_obj.account_objs.COUNT > 0)) THEN
2131 HZ_CUST_ACCT_BO_PVT.save_cust_accts(
2132 p_ca_v2_objs => p_person_cust_v2_obj.account_objs,
2133 p_create_update_flag => 'C',
2134 x_return_status => x_return_status,
2135 x_msg_count => x_msg_count,
2136 x_msg_data => x_msg_data,
2137 p_parent_id => x_person_id,
2138 p_parent_os => l_person_os,
2139 p_parent_osr => l_person_osr,
2140 p_parent_obj_type => 'PERSON'
2141 );
2142
2143 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2144 RAISE fnd_api.g_exc_error;
2145 END IF;
2146 END IF;
2147
2148 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2149
2150 -- raise event
2151 IF(l_raise_event) THEN
2152 -- raise create person event
2153 HZ_PARTY_BO_PVT.call_bes(
2154 p_party_id => x_person_id,
2155 p_bo_code => 'PERSON',
2156 p_create_or_update => 'C',
2157 p_obj_source => p_obj_source,
2158 p_event_id => l_per_event_id
2159 );
2160
2161 -- raise create person cust event
2162 HZ_PARTY_BO_PVT.call_bes(
2163 p_party_id => x_person_id,
2164 p_bo_code => 'PERSON_CUST',
2165 p_create_or_update => 'C',
2166 p_obj_source => p_obj_source,
2167 p_event_id => l_pc_event_id
2168 );
2169 END IF;
2170
2171 -- reset Global variable
2172 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2173 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2174
2175 -- Debug info.
2176 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2177 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2178 p_msg_data=>x_msg_data,
2179 p_msg_type=>'WARNING',
2180 p_msg_level=>fnd_log.level_exception);
2181 END IF;
2182 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2183 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_v2_bo(-)',
2184 p_prefix=>l_debug_prefix,
2185 p_msg_level=>fnd_log.level_procedure);
2186 END IF;
2187
2188 EXCEPTION
2189 WHEN fnd_api.g_exc_error THEN
2190 ROLLBACK TO do_create_person_cust_v2_pub;
2191
2192 -- reset Global variable
2193 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2194 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2195
2196 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2197 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2198 FND_MSG_PUB.ADD;
2199
2200 x_return_status := fnd_api.g_ret_sts_error;
2201
2202 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2203 p_count => x_msg_count,
2204 p_data => x_msg_data);
2205
2206 -- Debug info.
2207 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2208 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2209 p_msg_data=>x_msg_data,
2210 p_msg_type=>'ERROR',
2211 p_msg_level=>fnd_log.level_error);
2212 END IF;
2213 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2214 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_v2_bo(-)',
2215 p_prefix=>l_debug_prefix,
2216 p_msg_level=>fnd_log.level_procedure);
2217 END IF;
2218
2219 WHEN fnd_api.g_exc_unexpected_error THEN
2220 ROLLBACK TO do_create_person_cust_v2_pub;
2221
2222 -- reset Global variable
2223 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2224 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2225
2226 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2227 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2228 FND_MSG_PUB.ADD;
2229
2230 x_return_status := fnd_api.g_ret_sts_unexp_error;
2231
2232 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2233 p_count => x_msg_count,
2234 p_data => x_msg_data);
2235
2236 -- Debug info.
2237 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2238 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2239 p_msg_data=>x_msg_data,
2240 p_msg_type=>'UNEXPECTED ERROR',
2241 p_msg_level=>fnd_log.level_error);
2242 END IF;
2243 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2244 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_v2_bo(-)',
2245 p_prefix=>l_debug_prefix,
2246 p_msg_level=>fnd_log.level_procedure);
2247 END IF;
2248
2249 WHEN OTHERS THEN
2250 ROLLBACK TO do_create_person_cust_v2_pub;
2251
2252 -- reset Global variable
2253 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2254 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2255
2256 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2257 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2258 FND_MSG_PUB.ADD;
2259
2260 x_return_status := fnd_api.g_ret_sts_unexp_error;
2261
2262 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2263 fnd_message.set_token('ERROR' ,SQLERRM);
2264 fnd_msg_pub.add;
2265
2266 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2267 p_count => x_msg_count,
2268 p_data => x_msg_data);
2269
2270 -- Debug info.
2271 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2272 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2273 p_msg_data=>x_msg_data,
2274 p_msg_type=>'SQL ERROR',
2275 p_msg_level=>fnd_log.level_error);
2276 END IF;
2277 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2278 hz_utility_v2pub.debug(p_message=>'do_create_person_cust_v2_bo(-)',
2279 p_prefix=>l_debug_prefix,
2280 p_msg_level=>fnd_log.level_procedure);
2281 END IF;
2282 END do_create_person_cust_v2_bo;
2283
2284
2285 PROCEDURE create_person_cust_v2_bo(
2286 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
2287 p_person_cust_v2_obj IN HZ_PERSON_CUST_V2_BO,
2288 p_created_by_module IN VARCHAR2,
2289 p_obj_source IN VARCHAR2 := null,
2290 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
2291 x_return_status OUT NOCOPY VARCHAR2,
2292 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
2293 x_return_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2294 x_person_id OUT NOCOPY NUMBER
2295 ) IS
2296 l_msg_data VARCHAR2(2000);
2297 l_msg_count NUMBER;
2298 l_pc_obj HZ_PERSON_CUST_V2_BO;
2299 BEGIN
2300 l_pc_obj := p_person_cust_v2_obj;
2301 do_create_person_cust_v2_bo(
2302 p_init_msg_list => fnd_api.g_true,
2303 p_validate_bo_flag => p_validate_bo_flag,
2304 p_person_cust_v2_obj => l_pc_obj,
2305 p_created_by_module => p_created_by_module,
2306 p_obj_source => p_obj_source,
2307 x_return_status => x_return_status,
2308 x_msg_count => l_msg_count,
2309 x_msg_data => l_msg_data,
2310 x_person_id => x_person_id
2311 );
2312 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2313 x_return_status => x_return_status,
2314 x_msg_count => l_msg_count,
2315 x_msg_data => l_msg_data);
2316 IF FND_API.to_Boolean(p_return_obj_flag) THEN
2317 x_return_obj := l_pc_obj;
2318 END IF;
2319 END create_person_cust_v2_bo;
2320
2321 -- PROCEDURE do_update_person_cust_v2_bo
2322 --
2323 -- DESCRIPTION
2324 -- Update person customer account.
2325 PROCEDURE do_update_person_cust_v2_bo(
2326 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
2327 p_person_cust_v2_obj IN OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2328 p_created_by_module IN VARCHAR2,
2329 p_obj_source IN VARCHAR2 := null,
2330 x_return_status OUT NOCOPY VARCHAR2,
2331 x_msg_count OUT NOCOPY NUMBER,
2332 x_msg_data OUT NOCOPY VARCHAR2,
2333 x_person_id OUT NOCOPY NUMBER
2334 ) IS
2335 l_person_os VARCHAR2(30);
2336 l_person_osr VARCHAR2(255);
2337 l_debug_prefix VARCHAR2(30) := '';
2338 l_per_raise_event BOOLEAN := FALSE;
2339 l_pc_raise_event BOOLEAN := FALSE;
2340 l_cbm VARCHAR2(30);
2341 l_per_event_id NUMBER;
2342 l_pc_event_id NUMBER;
2343 BEGIN
2344 -- Standard start of API savepoint
2345 SAVEPOINT do_update_person_cust_v2_pub;
2346
2347 -- initialize API return status to success.
2348 x_return_status := FND_API.G_RET_STS_SUCCESS;
2349
2350 -- Initialize message list if p_init_msg_list is set to TRUE
2351 IF FND_API.to_Boolean(p_init_msg_list) THEN
2352 FND_MSG_PUB.initialize;
2353 END IF;
2354
2355 -- Debug info.
2356 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2357 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_v2_bo(+)',
2358 p_prefix=>l_debug_prefix,
2359 p_msg_level=>fnd_log.level_procedure);
2360 END IF;
2361
2362 -- initialize Global variable
2363 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
2364 IF(p_created_by_module IS NULL) THEN
2365 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
2366 ELSE
2367 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
2368 END IF;
2369
2370 x_person_id := p_person_cust_v2_obj.person_obj.person_id;
2371 l_person_os := p_person_cust_v2_obj.person_obj.orig_system;
2372 l_person_osr:= p_person_cust_v2_obj.person_obj.orig_system_reference;
2373
2374 -- check input party_id and os+osr
2375 hz_registry_validate_bo_pvt.validate_ssm_id(
2376 px_id => x_person_id,
2377 px_os => l_person_os,
2378 px_osr => l_person_osr,
2379 p_obj_type => 'PERSON',
2380 p_create_or_update => 'U',
2381 x_return_status => x_return_status,
2382 x_msg_count => x_msg_count,
2383 x_msg_data => x_msg_data);
2384
2385 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2386 RAISE FND_API.G_EXC_ERROR;
2387 END IF;
2388
2389 -- get person_id and then call
2390 l_per_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
2391 p_party_id => x_person_id,
2392 p_bo_code => 'PERSON'
2393 );
2394
2395 l_pc_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
2396 p_party_id => x_person_id,
2397 p_bo_code => 'PERSON_CUST'
2398 );
2399
2400 IF(l_per_raise_event) THEN
2401 -- Get event_id for person
2402 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2403 INTO l_per_event_id
2404 FROM DUAL;
2405 END IF;
2406
2407 IF(l_pc_raise_event) THEN
2408 -- Get event_id for person customer
2409 SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2410 INTO l_pc_event_id
2411 FROM DUAL;
2412 END IF;
2413
2414 -- acknowledge update_organization_bo not to raise event
2415 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := 'Y';
2416 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2417
2418 HZ_PERSON_BO_PUB.do_update_person_bo(
2419 p_init_msg_list => fnd_api.g_false,
2420 p_person_obj => p_person_cust_v2_obj.person_obj,
2421 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2422 p_obj_source => p_obj_source,
2423 x_return_status => x_return_status,
2424 x_msg_count => x_msg_count,
2425 x_msg_data => x_msg_data,
2426 x_person_id => x_person_id,
2427 x_person_os => l_person_os,
2428 x_person_osr => l_person_osr
2429 );
2430
2431 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2432 RAISE fnd_api.g_exc_error;
2433 END IF;
2434
2435 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2436
2437 IF((p_person_cust_v2_obj.account_objs IS NOT NULL) AND
2438 (p_person_cust_v2_obj.account_objs.COUNT > 0)) THEN
2439 HZ_CUST_ACCT_BO_PVT.save_cust_accts(
2440 p_ca_v2_objs => p_person_cust_v2_obj.account_objs,
2441 p_create_update_flag => 'U',
2442 x_return_status => x_return_status,
2443 x_msg_count => x_msg_count,
2444 x_msg_data => x_msg_data,
2445 p_parent_id => x_person_id,
2446 p_parent_os => l_person_os,
2447 p_parent_osr => l_person_osr,
2448 p_parent_obj_type => 'PERSON'
2449 );
2450
2451 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2452 RAISE fnd_api.g_exc_error;
2453 END IF;
2454 END IF;
2455
2456 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2457
2458 -- raise event
2459 IF(l_per_raise_event) THEN
2460 -- raise update org event
2461 HZ_PARTY_BO_PVT.call_bes(
2462 p_party_id => x_person_id,
2463 p_bo_code => 'PERSON',
2464 p_create_or_update => 'U',
2465 p_obj_source => p_obj_source,
2466 p_event_id => l_per_event_id
2467 );
2468 END IF;
2469
2470 IF(l_pc_raise_event) THEN
2471 -- raise update org cust event
2472 HZ_PARTY_BO_PVT.call_bes(
2473 p_party_id => x_person_id,
2474 p_bo_code => 'PERSON_CUST',
2475 p_create_or_update => 'U',
2476 p_obj_source => p_obj_source,
2477 p_event_id => l_pc_event_id
2478 );
2479 END IF;
2480
2481 -- reset Global variable
2482 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2483 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2484 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
2485
2486 -- Debug info.
2487 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2488 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2489 p_msg_data=>x_msg_data,
2490 p_msg_type=>'WARNING',
2491 p_msg_level=>fnd_log.level_exception);
2492 END IF;
2493 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2494 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_v2_bo(-)',
2495 p_prefix=>l_debug_prefix,
2496 p_msg_level=>fnd_log.level_procedure);
2497 END IF;
2498 EXCEPTION
2499 WHEN fnd_api.g_exc_error THEN
2500 ROLLBACK TO do_update_person_cust_v2_pub;
2501
2502 -- reset Global variable
2503 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2504 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2505 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
2506
2507 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2508 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2509 FND_MSG_PUB.ADD;
2510
2511 x_return_status := fnd_api.g_ret_sts_error;
2512
2513 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2514 p_count => x_msg_count,
2515 p_data => x_msg_data);
2516
2517 -- Debug info.
2518 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2519 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2520 p_msg_data=>x_msg_data,
2521 p_msg_type=>'ERROR',
2522 p_msg_level=>fnd_log.level_error);
2523 END IF;
2524 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2525 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_v2_bo(-)',
2526 p_prefix=>l_debug_prefix,
2527 p_msg_level=>fnd_log.level_procedure);
2528 END IF;
2529
2530 WHEN fnd_api.g_exc_unexpected_error THEN
2531 ROLLBACK TO do_update_person_cust_v2_pub;
2532
2533 -- reset Global variable
2534 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2535 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2536 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
2537
2538 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2539 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2540 FND_MSG_PUB.ADD;
2541
2542 x_return_status := fnd_api.g_ret_sts_unexp_error;
2543
2544 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2545 p_count => x_msg_count,
2546 p_data => x_msg_data);
2547
2548 -- Debug info.
2549 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2550 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2551 p_msg_data=>x_msg_data,
2552 p_msg_type=>'UNEXPECTED ERROR',
2553 p_msg_level=>fnd_log.level_error);
2554 END IF;
2555 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2556 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_v2_bo(-)',
2557 p_prefix=>l_debug_prefix,
2558 p_msg_level=>fnd_log.level_procedure);
2559 END IF;
2560
2561 WHEN OTHERS THEN
2562 ROLLBACK TO do_update_person_cust_v2_pub;
2563
2564 -- reset Global variable
2565 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2566 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2567 HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO := NULL;
2568
2569 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2570 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2571 FND_MSG_PUB.ADD;
2572
2573 x_return_status := fnd_api.g_ret_sts_unexp_error;
2574
2575 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2576 fnd_message.set_token('ERROR' ,SQLERRM);
2577 fnd_msg_pub.add;
2578
2579 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2580 p_count => x_msg_count,
2581 p_data => x_msg_data);
2582
2583 -- Debug info.
2584 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2585 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2586 p_msg_data=>x_msg_data,
2587 p_msg_type=>'SQL ERROR',
2588 p_msg_level=>fnd_log.level_error);
2589 END IF;
2590 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2591 hz_utility_v2pub.debug(p_message=>'do_update_person_cust_v2_bo(-)',
2592 p_prefix=>l_debug_prefix,
2593 p_msg_level=>fnd_log.level_procedure);
2594 END IF;
2595 END do_update_person_cust_v2_bo;
2596
2597 PROCEDURE update_person_cust_v2_bo(
2598 p_person_cust_v2_obj IN HZ_PERSON_CUST_V2_BO,
2599 p_created_by_module IN VARCHAR2,
2600 p_obj_source IN VARCHAR2 := null,
2601 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
2602 x_return_status OUT NOCOPY VARCHAR2,
2603 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
2604 x_return_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2605 x_person_id OUT NOCOPY NUMBER
2606 ) IS
2607 l_msg_data VARCHAR2(2000);
2608 l_msg_count NUMBER;
2609 l_pc_obj HZ_PERSON_CUST_V2_BO;
2610 BEGIN
2611 l_pc_obj := p_person_cust_v2_obj;
2612 do_update_person_cust_v2_bo(
2613 p_init_msg_list => fnd_api.g_true,
2614 p_person_cust_v2_obj => l_pc_obj,
2615 p_created_by_module => p_created_by_module,
2616 p_obj_source => p_obj_source,
2617 x_return_status => x_return_status,
2618 x_msg_count => l_msg_count,
2619 x_msg_data => l_msg_data,
2620 x_person_id => x_person_id
2621 );
2622 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2623 x_return_status => x_return_status,
2624 x_msg_count => l_msg_count,
2625 x_msg_data => l_msg_data);
2626 IF FND_API.to_Boolean(p_return_obj_flag) THEN
2627 x_return_obj := l_pc_obj;
2628 END IF;
2629 END update_person_cust_v2_bo;
2630
2631 -- PROCEDURE save_person_cust_v2_bo
2632 --
2633 -- DESCRIPTION
2634 -- Create or update person customer account.
2635 PROCEDURE do_save_person_cust_v2_bo(
2636 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
2637 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
2638 p_person_cust_v2_obj IN OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2639 p_created_by_module IN VARCHAR2,
2640 p_obj_source IN VARCHAR2 := null,
2641 x_return_status OUT NOCOPY VARCHAR2,
2642 x_msg_count OUT NOCOPY NUMBER,
2643 x_msg_data OUT NOCOPY VARCHAR2,
2644 x_person_id OUT NOCOPY NUMBER
2645 ) IS
2646 l_person_id NUMBER;
2647 l_person_os VARCHAR2(30);
2648 l_person_osr VARCHAR2(255);
2649 l_debug_prefix VARCHAR2(30) := '';
2650 l_create_update_flag VARCHAR2(1);
2651 BEGIN
2652 -- initialize API return status to success.
2653 x_return_status := FND_API.G_RET_STS_SUCCESS;
2654
2655 -- Initialize message list if p_init_msg_list is set to TRUE
2656 IF FND_API.to_Boolean(p_init_msg_list) THEN
2657 FND_MSG_PUB.initialize;
2658 END IF;
2659
2660 -- Debug info.
2661 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2662 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_v2_bo(+)',
2663 p_prefix=>l_debug_prefix,
2664 p_msg_level=>fnd_log.level_procedure);
2665 END IF;
2666
2667 l_person_id := p_person_cust_v2_obj.person_obj.person_id;
2668 l_person_os := p_person_cust_v2_obj.person_obj.orig_system;
2669 l_person_osr:= p_person_cust_v2_obj.person_obj.orig_system_reference;
2670
2671 -- check root business object to determine that it should be
2672 -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
2673 l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
2674 p_entity_id => l_person_id,
2675 p_entity_os => l_person_os,
2676 p_entity_osr => l_person_osr,
2677 p_entity_type => 'HZ_PARTIES',
2678 p_parent_id => NULL,
2679 p_parent_obj_type=> NULL );
2680
2681 IF(l_create_update_flag = 'E') THEN
2682 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
2683 FND_MSG_PUB.ADD;
2684 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2685 FND_MESSAGE.SET_TOKEN('OBJECT', 'PERSON_CUST');
2686 FND_MSG_PUB.ADD;
2687 RAISE FND_API.G_EXC_ERROR;
2688 END IF;
2689
2690 IF(l_create_update_flag = 'C') THEN
2691 do_create_person_cust_v2_bo(
2692 p_init_msg_list => fnd_api.g_false,
2693 p_validate_bo_flag => p_validate_bo_flag,
2694 p_person_cust_v2_obj => p_person_cust_v2_obj,
2695 p_created_by_module => p_created_by_module,
2696 p_obj_source => p_obj_source,
2697 x_return_status => x_return_status,
2698 x_msg_count => x_msg_count,
2699 x_msg_data => x_msg_data,
2700 x_person_id => x_person_id
2701 );
2702 ELSIF(l_create_update_flag = 'U') THEN
2703 do_update_person_cust_v2_bo(
2704 p_init_msg_list => fnd_api.g_false,
2705 p_person_cust_v2_obj => p_person_cust_v2_obj,
2706 p_created_by_module => p_created_by_module,
2707 p_obj_source => p_obj_source,
2708 x_return_status => x_return_status,
2709 x_msg_count => x_msg_count,
2710 x_msg_data => x_msg_data,
2711 x_person_id => x_person_id
2712 );
2713 ELSE
2714 RAISE FND_API.G_EXC_ERROR;
2715 END IF;
2716
2717 -- Debug info.
2718 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2719 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2720 p_msg_data=>x_msg_data,
2721 p_msg_type=>'WARNING',
2722 p_msg_level=>fnd_log.level_exception);
2723 END IF;
2724 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2725 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_v2_bo(-)',
2726 p_prefix=>l_debug_prefix,
2727 p_msg_level=>fnd_log.level_procedure);
2728 END IF;
2729 EXCEPTION
2730 WHEN fnd_api.g_exc_error THEN
2731 x_return_status := fnd_api.g_ret_sts_error;
2732
2733 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2734 p_count => x_msg_count,
2735 p_data => x_msg_data);
2736
2737 -- Debug info.
2738 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2739 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2740 p_msg_data=>x_msg_data,
2741 p_msg_type=>'ERROR',
2742 p_msg_level=>fnd_log.level_error);
2743 END IF;
2744 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2745 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_v2_bo(-)',
2746 p_prefix=>l_debug_prefix,
2747 p_msg_level=>fnd_log.level_procedure);
2748 END IF;
2749
2750 WHEN fnd_api.g_exc_unexpected_error THEN
2751 x_return_status := fnd_api.g_ret_sts_unexp_error;
2752
2753 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2754 p_count => x_msg_count,
2755 p_data => x_msg_data);
2756
2757 -- Debug info.
2758 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2759 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2760 p_msg_data=>x_msg_data,
2761 p_msg_type=>'UNEXPECTED ERROR',
2762 p_msg_level=>fnd_log.level_error);
2763 END IF;
2764 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2765 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_v2_bo(-)',
2766 p_prefix=>l_debug_prefix,
2767 p_msg_level=>fnd_log.level_procedure);
2768 END IF;
2769 WHEN OTHERS THEN
2770 x_return_status := fnd_api.g_ret_sts_unexp_error;
2771
2772 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2773 fnd_message.set_token('ERROR' ,SQLERRM);
2774 fnd_msg_pub.add;
2775
2776 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2777 p_count => x_msg_count,
2778 p_data => x_msg_data);
2779
2780 -- Debug info.
2781 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2782 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2783 p_msg_data=>x_msg_data,
2784 p_msg_type=>'SQL ERROR',
2785 p_msg_level=>fnd_log.level_error);
2786 END IF;
2787 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2788 hz_utility_v2pub.debug(p_message=>'do_save_person_cust_v2_bo(-)',
2789 p_prefix=>l_debug_prefix,
2790 p_msg_level=>fnd_log.level_procedure);
2791 END IF;
2792 END do_save_person_cust_v2_bo;
2793
2794 PROCEDURE save_person_cust_v2_bo(
2795 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
2796 p_person_cust_v2_obj IN HZ_PERSON_CUST_V2_BO,
2797 p_created_by_module IN VARCHAR2,
2798 p_obj_source IN VARCHAR2 := null,
2799 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
2800 x_return_status OUT NOCOPY VARCHAR2,
2801 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
2802 x_return_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2803 x_person_id OUT NOCOPY NUMBER
2804 ) IS
2805 l_msg_data VARCHAR2(2000);
2806 l_msg_count NUMBER;
2807 l_pc_obj HZ_PERSON_CUST_V2_BO;
2808 BEGIN
2809 l_pc_obj := p_person_cust_v2_obj;
2810 do_save_person_cust_v2_bo(
2811 p_init_msg_list => fnd_api.g_true,
2812 p_validate_bo_flag => p_validate_bo_flag,
2813 p_person_cust_v2_obj => l_pc_obj,
2814 p_created_by_module => p_created_by_module,
2815 p_obj_source => p_obj_source,
2816 x_return_status => x_return_status,
2817 x_msg_count => l_msg_count,
2818 x_msg_data => l_msg_data,
2819 x_person_id => x_person_id
2820 );
2821 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2822 x_return_status => x_return_status,
2823 x_msg_count => l_msg_count,
2824 x_msg_data => l_msg_data);
2825 IF FND_API.to_Boolean(p_return_obj_flag) THEN
2826 x_return_obj := l_pc_obj;
2827 END IF;
2828 END save_person_cust_v2_bo;
2829
2830 --------------------------------------
2831 --
2832 -- PROCEDURE get_person_cust_v2_bo
2833 --
2834 -- DESCRIPTION
2835 -- Get a logical person customer.
2836 --
2837 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2838 --
2839 -- ARGUMENTS
2840 -- IN:
2841 -- p_init_msg_list Initialize message stack if it is set to FND_API.G_TRUE. Default is FND_API.G_FALSE.
2842 -- p_person_id Person ID.
2843 -- p_person_os Person orig system.
2844 -- p_person_osr Person orig system reference.
2845
2846 -- OUT:
2847 -- x_person_cust_v2_obj Logical person customer record.
2848 -- x_return_status Return status after the call. The status can
2849 -- be fnd_api.g_ret_sts_success (success),
2850 -- fnd_api.g_ret_sts_error (error),
2851 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2852 -- x_msg_count Number of messages in message stack.
2853 -- x_msg_data Message text if x_msg_count is 1.
2854 --
2855 -- NOTES
2856 --
2857 -- MODIFICATION HISTORY
2858 --
2859 --
2860 -- 1-FEB-2008 VSEGU Created.
2861 --
2862
2863 /*
2864 The Get Person Customer API Procedure is a retrieval service that returns a full Person Customer business object.
2865 The user identifies a particular Person Customer business object using the TCA identifier and/or
2866 the object Source System information. Upon proper validation of the object,
2867 the full Person Customer business object is returned. The object consists of all data included within
2868 the Person Customer business object, at all embedded levels. This includes the set of all data stored
2869 in the TCA tables for each embedded entity.
2870
2871 To retrieve the appropriate embedded business objects within the Person Customer business object,
2872 the Get procedure calls the equivalent procedure for the following embedded objects:
2873
2874 Embedded BO Mandatory Multiple Logical API Procedure Comments
2875
2876 Person Y N get_person_bo
2877 Customer Account Y Y get_cust_acct_v2_bo Called for each Customer Account object for the Person Customer
2878
2879 */
2880
2881
2882
2883 PROCEDURE get_person_cust_v2_bo(
2884 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
2885 p_person_id IN NUMBER,
2886 p_person_os IN VARCHAR2,
2887 p_person_osr IN VARCHAR2,
2888 x_person_cust_v2_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
2889 x_return_status OUT NOCOPY VARCHAR2,
2890 x_msg_count OUT NOCOPY NUMBER,
2891 x_msg_data OUT NOCOPY VARCHAR2
2892 ) is
2893 l_debug_prefix VARCHAR2(30) := '';
2894
2895 l_person_id number;
2896 l_person_os varchar2(30);
2897 l_person_osr varchar2(255);
2898 BEGIN
2899
2900 -- initialize API return status to success.
2901 x_return_status := FND_API.G_RET_STS_SUCCESS;
2902
2903 -- Initialize message list if p_init_msg_list is set to TRUE
2904 IF FND_API.to_Boolean(p_init_msg_list) THEN
2905 FND_MSG_PUB.initialize;
2906 END IF;
2907
2908
2909 -- Debug info.
2910 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2911 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_v2_bo(+)',
2912 p_prefix=>l_debug_prefix,
2913 p_msg_level=>fnd_log.level_procedure);
2914 END IF;
2915
2916 -- check if pass in contact_point_id and/or os+osr
2917 -- extraction validation logic is same as update
2918
2919 l_person_id := p_person_id;
2920 l_person_os := p_person_os;
2921 l_person_osr := p_person_osr;
2922
2923 HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
2924 px_id => l_person_id,
2925 px_os => l_person_os,
2926 px_osr => l_person_osr,
2927 p_obj_type => 'PERSON',
2928 x_return_status => x_return_status,
2929 x_msg_count => x_msg_count,
2930 x_msg_data => x_msg_data);
2931
2932 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2933 RAISE fnd_api.g_exc_error;
2934 END IF;
2935
2936 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_person_cust_v2_bo(
2937 p_init_msg_list => fnd_api.g_false,
2938 p_person_id => l_person_id,
2939 p_action_type => NULL,
2940 x_person_cust_v2_obj => x_person_cust_v2_obj,
2941 x_return_status => x_return_status,
2942 x_msg_count => x_msg_count,
2943 x_msg_data => x_msg_data);
2944
2945 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2946 RAISE FND_API.G_EXC_ERROR;
2947 END IF;
2948
2949
2950 -- Debug info.
2951 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2952 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2953 p_msg_data=>x_msg_data,
2954 p_msg_type=>'WARNING',
2955 p_msg_level=>fnd_log.level_exception);
2956 END IF;
2957
2958 -- Debug info.
2959 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2960 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_v2_bo (-)',
2961 p_prefix=>l_debug_prefix,
2962 p_msg_level=>fnd_log.level_procedure);
2963 END IF;
2964
2965
2966 EXCEPTION
2967
2968 WHEN fnd_api.g_exc_error THEN
2969 x_return_status := fnd_api.g_ret_sts_error;
2970
2971 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2972 p_count => x_msg_count,
2973 p_data => x_msg_data);
2974
2975 -- Debug info.
2976 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2977 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2978 p_msg_data=>x_msg_data,
2979 p_msg_type=>'ERROR',
2980 p_msg_level=>fnd_log.level_error);
2981 END IF;
2982 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2983 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_v2_bo (-)',
2984 p_prefix=>l_debug_prefix,
2985 p_msg_level=>fnd_log.level_procedure);
2986 END IF;
2987 WHEN fnd_api.g_exc_unexpected_error THEN
2988 x_return_status := fnd_api.g_ret_sts_unexp_error;
2989
2990 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2991 p_count => x_msg_count,
2992 p_data => x_msg_data);
2993
2994 -- Debug info.
2995 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2996 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2997 p_msg_data=>x_msg_data,
2998 p_msg_type=>'UNEXPECTED ERROR',
2999 p_msg_level=>fnd_log.level_error);
3000 END IF;
3001 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3002 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_v2_bo (-)',
3003 p_prefix=>l_debug_prefix,
3004 p_msg_level=>fnd_log.level_procedure);
3005 END IF;
3006 WHEN OTHERS THEN
3007 x_return_status := fnd_api.g_ret_sts_unexp_error;
3008
3009 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3010 fnd_message.set_token('ERROR' ,SQLERRM);
3011 fnd_msg_pub.add;
3012
3013 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3014 p_count => x_msg_count,
3015 p_data => x_msg_data);
3016
3017 -- Debug info.
3018 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3019 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3020 p_msg_data=>x_msg_data,
3021 p_msg_type=>'SQL ERROR',
3022 p_msg_level=>fnd_log.level_error);
3023 END IF;
3024 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3025 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_person_cust_v2_bo (-)',
3026 p_prefix=>l_debug_prefix,
3027 p_msg_level=>fnd_log.level_procedure);
3028 END IF;
3029
3030 end;
3031
3032 PROCEDURE get_person_cust_v2_bo(
3033 p_person_id IN NUMBER,
3034 p_person_os IN VARCHAR2,
3035 p_person_osr IN VARCHAR2,
3036 x_person_cust_v2_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
3037 x_return_status OUT NOCOPY VARCHAR2,
3038 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
3039 ) IS
3040 l_msg_data VARCHAR2(2000);
3041 l_msg_count NUMBER;
3042 BEGIN
3043 get_person_cust_v2_bo(
3044 p_init_msg_list => fnd_api.g_true,
3045 p_person_id => p_person_id,
3046 p_person_os => p_person_os,
3047 p_person_osr => p_person_osr,
3048 x_person_cust_v2_obj => x_person_cust_v2_obj,
3049 x_return_status => x_return_status,
3050 x_msg_count => l_msg_count,
3051 x_msg_data => l_msg_data
3052 );
3053 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3054 x_return_status => x_return_status,
3055 x_msg_count => l_msg_count,
3056 x_msg_data => l_msg_data);
3057 END get_person_cust_v2_bo;
3058
3059 --------------------------------------
3060 --
3061 -- PROCEDURE get_v2_person_custs_created
3062 --
3063 -- DESCRIPTION
3064 --The caller provides an identifier for the Person Customers created business event and
3065 --the procedure returns database objects of the type HZ_PERSON_CUST CUSTOMER_BO for all of
3066 --the Person Customer business objects from the business event.
3067
3068 --
3069 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3070 --
3071 -- ARGUMENTS
3072 -- IN:
3073 -- p_init_msg_list Initialize message stack if it is set to
3074 -- p_event_id BES Event identifier.
3075 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
3076 -- OUT:
3077 -- x_person_cust_v2_objs One or more created logical person customer.
3078 -- x_return_status Return status after the call. The status can
3079 -- be fnd_api.g_ret_sts_success (success),
3080 -- fnd_api.g_ret_sts_error (error),
3081 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3082 -- x_msg_count Number of messages in message stack.
3083 -- x_msg_data Message text if x_msg_count is 1.
3084 --
3085 -- NOTES
3086 --
3087 -- MODIFICATION HISTORY
3088 --
3089 -- 04-FEB-2008 VSEGU Created.
3090 --
3091
3092
3093
3094 /*
3095 The Get Person customers Created procedure is a service to retrieve all of the Person Customer business objects
3096 whose creations have been captured by a logical business event. Each Person Customers Created
3097 business event signifies that one or more Person Customer business objects have been created.
3098 The caller provides an identifier for the Person Customers Created business event and the procedure
3099 returns all of the Person Customer business objects from the business event. For each business object
3100 creation captured in the business event, the procedure calls the generic Get operation:
3101 HZ_PERSON_CUST_BO_PVT.get_person_cust_v2_bo
3102
3103 Gathering all of the returned business objects from those API calls, the procedure packages
3104 them in a table structure and returns them to the caller.
3105 */
3106
3107
3108 PROCEDURE get_v2_person_custs_created(
3109 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
3110 p_event_id IN NUMBER,
3111 x_person_cust_v2_objs OUT NOCOPY HZ_PERSON_CUST_V2_BO_TBL,
3112 x_return_status OUT NOCOPY VARCHAR2,
3113 x_msg_count OUT NOCOPY NUMBER,
3114 x_msg_data OUT NOCOPY VARCHAR2
3115 ) is
3116 l_debug_prefix VARCHAR2(30) := '';
3117 begin
3118
3119 -- initialize API return status to success.
3120 x_return_status := FND_API.G_RET_STS_SUCCESS;
3121
3122 -- Initialize message list if p_init_msg_list is set to TRUE
3123 IF FND_API.to_Boolean(p_init_msg_list) THEN
3124 FND_MSG_PUB.initialize;
3125 END IF;
3126
3127
3128 -- Debug info.
3129 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3130 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_created(+)',
3131 p_prefix=>l_debug_prefix,
3132 p_msg_level=>fnd_log.level_procedure);
3133 END IF;
3134
3135 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3136 p_party_id => null,
3137 p_event_type => 'C',
3138 p_bo_code => 'PERSON_CUST',
3139 x_return_status => x_return_status);
3140
3141 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3142 RAISE FND_API.G_EXC_ERROR;
3143 END IF;
3144
3145 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_v2_person_custs_created(
3146 p_init_msg_list => fnd_api.g_false,
3147 p_event_id => p_event_id,
3148 x_person_cust_v2_objs => x_person_cust_v2_objs,
3149 x_return_status => x_return_status,
3150 x_msg_count => x_msg_count,
3151 x_msg_data => x_msg_data);
3152
3153 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3154 RAISE FND_API.G_EXC_ERROR;
3155 END IF;
3156
3157
3158
3159 -- Debug info.
3160 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3161 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3162 p_msg_data=>x_msg_data,
3163 p_msg_type=>'WARNING',
3164 p_msg_level=>fnd_log.level_exception);
3165 END IF;
3166
3167 -- Debug info.
3168 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3169 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_created (-)',
3170 p_prefix=>l_debug_prefix,
3171 p_msg_level=>fnd_log.level_procedure);
3172 END IF;
3173
3174
3175 EXCEPTION
3176
3177 WHEN fnd_api.g_exc_error THEN
3178 x_return_status := fnd_api.g_ret_sts_error;
3179
3180 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3181 p_count => x_msg_count,
3182 p_data => x_msg_data);
3183
3184 -- Debug info.
3185 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3186 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3187 p_msg_data=>x_msg_data,
3188 p_msg_type=>'ERROR',
3189 p_msg_level=>fnd_log.level_error);
3190 END IF;
3191 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3192 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_created(-)',
3193 p_prefix=>l_debug_prefix,
3194 p_msg_level=>fnd_log.level_procedure);
3195 END IF;
3196 WHEN fnd_api.g_exc_unexpected_error THEN
3197 x_return_status := fnd_api.g_ret_sts_unexp_error;
3198
3199 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3200 p_count => x_msg_count,
3201 p_data => x_msg_data);
3202
3203 -- Debug info.
3204 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3205 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3206 p_msg_data=>x_msg_data,
3207 p_msg_type=>'UNEXPECTED ERROR',
3208 p_msg_level=>fnd_log.level_error);
3209 END IF;
3210 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3211 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_created(-)',
3212 p_prefix=>l_debug_prefix,
3213 p_msg_level=>fnd_log.level_procedure);
3214 END IF;
3215 WHEN OTHERS THEN
3216 x_return_status := fnd_api.g_ret_sts_unexp_error;
3217
3218 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3219 fnd_message.set_token('ERROR' ,SQLERRM);
3220 fnd_msg_pub.add;
3221
3222 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3223 p_count => x_msg_count,
3224 p_data => x_msg_data);
3225
3226 -- Debug info.
3227 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3228 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3229 p_msg_data=>x_msg_data,
3230 p_msg_type=>'SQL ERROR',
3231 p_msg_level=>fnd_log.level_error);
3232 END IF;
3233 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3234 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_created(-)',
3235 p_prefix=>l_debug_prefix,
3236 p_msg_level=>fnd_log.level_procedure);
3237 END IF;
3238
3239 end;
3240
3241 PROCEDURE get_v2_person_custs_created(
3242 p_event_id IN NUMBER,
3243 x_person_cust_v2_objs OUT NOCOPY HZ_PERSON_CUST_V2_BO_TBL,
3244 x_return_status OUT NOCOPY VARCHAR2,
3245 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
3246 ) IS
3247 l_msg_data VARCHAR2(2000);
3248 l_msg_count NUMBER;
3249 BEGIN
3250 get_v2_person_custs_created(
3251 p_init_msg_list => fnd_api.g_true,
3252 p_event_id => p_event_id,
3253 x_person_cust_v2_objs => x_person_cust_v2_objs,
3254 x_return_status => x_return_status,
3255 x_msg_count => l_msg_count,
3256 x_msg_data => l_msg_data
3257 );
3258 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3259 x_return_status => x_return_status,
3260 x_msg_count => l_msg_count,
3261 x_msg_data => l_msg_data);
3262 END get_v2_person_custs_created;
3263
3264
3265 --------------------------------------
3266 --
3267 -- PROCEDURE get_v2_person_custs_updated
3268 --
3269 -- DESCRIPTION
3270 --The caller provides an identifier for the Person Customers update business event and
3271 --the procedure returns database objects of the type HZ_PERSON_CUST_V2_BO for all of
3272 --the Person Customer business objects from the business event.
3273
3274 --
3275 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3276 --
3277 -- ARGUMENTS
3278 -- IN:
3279 -- p_init_msg_list Initialize message stack if it is set to
3280 -- p_event_id BES Event identifier.
3281 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
3282 -- OUT:
3283 -- x_person_cust_v2_objs One or more created logical person.
3284 -- x_return_status Return status after the call. The status can
3285 -- be fnd_api.g_ret_sts_success (success),
3286 -- fnd_api.g_ret_sts_error (error),
3287 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3288 -- x_msg_count Number of messages in message stack.
3289 -- x_msg_data Message text if x_msg_count is 1.
3290 --
3291 -- NOTES
3292 --
3293 -- MODIFICATION HISTORY
3294 --
3295 -- 10-JUN-2005 AWU Created.
3296 --
3297
3298
3299
3300 /*
3301 The Get Person Customers Updated procedure is a service to retrieve all of the Person Customer business objects whose updates
3302 have been captured by the logical business event. Each Person Customers Updated business event signifies that one or more Person
3303 Customer business objects have been updated.
3304 The caller provides an identifier for the Person Customers Update business event and the procedure returns database objects of
3305 the type HZ_PERSON_CUST_V2_BO for all of the Person Customer business objects from the business event.
3306 Gathering all of the returned database objects from those API calls, the procedure packages them in a table structure and returns
3307 them to the caller.
3308 */
3309
3310 PROCEDURE get_v2_person_custs_updated(
3311 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
3312 p_event_id IN NUMBER,
3313 x_person_cust_v2_objs OUT NOCOPY HZ_PERSON_CUST_V2_BO_TBL,
3314 x_return_status OUT NOCOPY VARCHAR2,
3315 x_msg_count OUT NOCOPY NUMBER,
3316 x_msg_data OUT NOCOPY VARCHAR2
3317 ) is
3318
3319 l_debug_prefix VARCHAR2(30) := '';
3320 begin
3321
3322 -- initialize API return status to success.
3323 x_return_status := FND_API.G_RET_STS_SUCCESS;
3324
3325 -- Initialize message list if p_init_msg_list is set to TRUE
3326 IF FND_API.to_Boolean(p_init_msg_list) THEN
3327 FND_MSG_PUB.initialize;
3328 END IF;
3329
3330
3331 -- Debug info.
3332 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3333 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_updated(+)',
3334 p_prefix=>l_debug_prefix,
3335 p_msg_level=>fnd_log.level_procedure);
3336 END IF;
3337
3338 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3339 p_party_id => null,
3340 p_event_type => 'U',
3341 p_bo_code => 'PERSON_CUST',
3342 x_return_status => x_return_status);
3343
3344 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3345 RAISE FND_API.G_EXC_ERROR;
3346 END IF;
3347
3348 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_v2_person_custs_updated(
3349 p_init_msg_list => fnd_api.g_false,
3350 p_event_id => p_event_id,
3351 x_person_cust_v2_objs => x_person_cust_v2_objs,
3352 x_return_status => x_return_status,
3353 x_msg_count => x_msg_count,
3354 x_msg_data => x_msg_data);
3355
3356 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3357 RAISE FND_API.G_EXC_ERROR;
3358 END IF;
3359
3360
3361
3362 -- Debug info.
3363 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3364 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3365 p_msg_data=>x_msg_data,
3366 p_msg_type=>'WARNING',
3367 p_msg_level=>fnd_log.level_exception);
3368 END IF;
3369
3370 -- Debug info.
3371 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3372 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_updated (-)',
3373 p_prefix=>l_debug_prefix,
3374 p_msg_level=>fnd_log.level_procedure);
3375 END IF;
3376
3377
3378 EXCEPTION
3379
3380 WHEN fnd_api.g_exc_error THEN
3381 x_return_status := fnd_api.g_ret_sts_error;
3382
3383 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3384 p_count => x_msg_count,
3385 p_data => x_msg_data);
3386
3387 -- Debug info.
3388 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3389 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3390 p_msg_data=>x_msg_data,
3391 p_msg_type=>'ERROR',
3392 p_msg_level=>fnd_log.level_error);
3393 END IF;
3394 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3395 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_updated(-)',
3396 p_prefix=>l_debug_prefix,
3397 p_msg_level=>fnd_log.level_procedure);
3398 END IF;
3399 WHEN fnd_api.g_exc_unexpected_error THEN
3400 x_return_status := fnd_api.g_ret_sts_unexp_error;
3401
3402 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3403 p_count => x_msg_count,
3404 p_data => x_msg_data);
3405
3406 -- Debug info.
3407 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3408 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3409 p_msg_data=>x_msg_data,
3410 p_msg_type=>'UNEXPECTED ERROR',
3411 p_msg_level=>fnd_log.level_error);
3412 END IF;
3413 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3414 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_updated(-)',
3415 p_prefix=>l_debug_prefix,
3416 p_msg_level=>fnd_log.level_procedure);
3417 END IF;
3418 WHEN OTHERS THEN
3419 x_return_status := fnd_api.g_ret_sts_unexp_error;
3420
3421 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3422 fnd_message.set_token('ERROR' ,SQLERRM);
3423 fnd_msg_pub.add;
3424
3425 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3426 p_count => x_msg_count,
3427 p_data => x_msg_data);
3428
3429 -- Debug info.
3430 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3431 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3432 p_msg_data=>x_msg_data,
3433 p_msg_type=>'SQL ERROR',
3434 p_msg_level=>fnd_log.level_error);
3435 END IF;
3436 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3437 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_custs_updated(-)',
3438 p_prefix=>l_debug_prefix,
3439 p_msg_level=>fnd_log.level_procedure);
3440 END IF;
3441
3442 end;
3443
3444 PROCEDURE get_v2_person_custs_updated(
3445 p_event_id IN NUMBER,
3446 x_person_cust_v2_objs OUT NOCOPY HZ_PERSON_CUST_V2_BO_TBL,
3447 x_return_status OUT NOCOPY VARCHAR2,
3448 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
3449 )IS
3450 l_msg_data VARCHAR2(2000);
3451 l_msg_count NUMBER;
3452 BEGIN
3453 get_v2_person_custs_updated(
3454 p_init_msg_list => fnd_api.g_true,
3455 p_event_id => p_event_id,
3456 x_person_cust_v2_objs => x_person_cust_v2_objs,
3457 x_return_status => x_return_status,
3458 x_msg_count => l_msg_count,
3459 x_msg_data => l_msg_data
3460 );
3461 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3462 x_return_status => x_return_status,
3463 x_msg_count => l_msg_count,
3464 x_msg_data => l_msg_data);
3465 END get_v2_person_custs_updated;
3466
3467 --------------------------------------
3468 --
3469 -- PROCEDURE get_v2_person_cust_updated
3470 --
3471 -- DESCRIPTION
3472 --The caller provides an identifier for the Person customer update business event and person id
3473 --the procedure returns one database object of the type HZ_PERSON_CUST_V2_BO
3474 --
3475 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3476 --
3477 -- ARGUMENTS
3478 -- IN:
3479 -- p_init_msg_list Initialize message stack if it is set to
3480 -- p_event_id BES Event identifier.
3481 -- p_person_cust_id Person customer identifier.
3482 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
3483 -- OUT:
3484 -- x_person_cust_v2_obj One updated logical person.
3485 -- x_return_status Return status after the call. The status can
3486 -- be fnd_api.g_ret_sts_success (success),
3487 -- fnd_api.g_ret_sts_error (error),
3488 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3489 -- x_msg_count Number of messages in message stack.
3490 -- x_msg_data Message text if x_msg_count is 1.
3491 --
3492 -- NOTES
3493 --
3494 -- MODIFICATION HISTORY
3495 --
3496 -- 04-FEB-2008 vsegu Created.
3497 --
3498
3499 PROCEDURE get_v2_person_cust_updated(
3500 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
3501 p_event_id IN NUMBER,
3502 p_person_cust_id IN NUMBER,
3503 x_person_cust_v2_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
3504 x_return_status OUT NOCOPY VARCHAR2,
3505 x_msg_count OUT NOCOPY NUMBER,
3506 x_msg_data OUT NOCOPY VARCHAR2
3507 ) is
3508 l_debug_prefix VARCHAR2(30) := '';
3509 begin
3510
3511 -- initialize API return status to success.
3512 x_return_status := FND_API.G_RET_STS_SUCCESS;
3513
3514 -- Initialize message list if p_init_msg_list is set to TRUE
3515 IF FND_API.to_Boolean(p_init_msg_list) THEN
3516 FND_MSG_PUB.initialize;
3517 END IF;
3518
3519
3520 -- Debug info.
3521 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3522 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_cust_updated(+)',
3523 p_prefix=>l_debug_prefix,
3524 p_msg_level=>fnd_log.level_procedure);
3525 END IF;
3526
3527 HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3528 p_party_id => p_person_cust_id,
3529 p_event_type => 'U',
3530 p_bo_code => 'PERSON_CUST',
3531 x_return_status => x_return_status);
3532
3533 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3534 RAISE FND_API.G_EXC_ERROR;
3535 END IF;
3536
3537 HZ_EXTRACT_PERSON_CUST_BO_PVT.get_v2_person_cust_updated(
3538 p_init_msg_list => fnd_api.g_false,
3539 p_event_id => p_event_id,
3540 p_person_cust_id => p_person_cust_id,
3541 x_person_cust_v2_obj => x_person_cust_v2_obj,
3542 x_return_status => x_return_status,
3543 x_msg_count => x_msg_count,
3544 x_msg_data => x_msg_data);
3545
3546 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3547 RAISE FND_API.G_EXC_ERROR;
3548 END IF;
3549
3550
3551
3552 -- Debug info.
3553 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3554 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3555 p_msg_data=>x_msg_data,
3556 p_msg_type=>'WARNING',
3557 p_msg_level=>fnd_log.level_exception);
3558 END IF;
3559
3560 -- Debug info.
3561 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3562 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_cust_updated (-)',
3563 p_prefix=>l_debug_prefix,
3564 p_msg_level=>fnd_log.level_procedure);
3565 END IF;
3566
3567
3568 EXCEPTION
3569
3570 WHEN fnd_api.g_exc_error THEN
3571 x_return_status := fnd_api.g_ret_sts_error;
3572
3573 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3574 p_count => x_msg_count,
3575 p_data => x_msg_data);
3576
3577 -- Debug info.
3578 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3579 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3580 p_msg_data=>x_msg_data,
3581 p_msg_type=>'ERROR',
3582 p_msg_level=>fnd_log.level_error);
3583 END IF;
3584 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3585 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_cust_updated(-)',
3586 p_prefix=>l_debug_prefix,
3587 p_msg_level=>fnd_log.level_procedure);
3588 END IF;
3589 WHEN fnd_api.g_exc_unexpected_error THEN
3590 x_return_status := fnd_api.g_ret_sts_unexp_error;
3591
3592 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3593 p_count => x_msg_count,
3594 p_data => x_msg_data);
3595
3596 -- Debug info.
3597 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3598 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3599 p_msg_data=>x_msg_data,
3600 p_msg_type=>'UNEXPECTED ERROR',
3601 p_msg_level=>fnd_log.level_error);
3602 END IF;
3603 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3604 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_cust_updated(-)',
3605 p_prefix=>l_debug_prefix,
3606 p_msg_level=>fnd_log.level_procedure);
3607 END IF;
3608 WHEN OTHERS THEN
3609 x_return_status := fnd_api.g_ret_sts_unexp_error;
3610
3611 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3612 fnd_message.set_token('ERROR' ,SQLERRM);
3613 fnd_msg_pub.add;
3614
3615 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3616 p_count => x_msg_count,
3617 p_data => x_msg_data);
3618
3619 -- Debug info.
3620 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3621 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3622 p_msg_data=>x_msg_data,
3623 p_msg_type=>'SQL ERROR',
3624 p_msg_level=>fnd_log.level_error);
3625 END IF;
3626 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3627 hz_utility_v2pub.debug(p_message=>'hz_person_cust_bo_pub.get_v2_person_cust_updated(-)',
3628 p_prefix=>l_debug_prefix,
3629 p_msg_level=>fnd_log.level_procedure);
3630 END IF;
3631
3632 end;
3633
3634 PROCEDURE get_v2_person_cust_updated(
3635 p_event_id IN NUMBER,
3636 p_person_cust_id IN NUMBER,
3637 x_person_cust_v2_obj OUT NOCOPY HZ_PERSON_CUST_V2_BO,
3638 x_return_status OUT NOCOPY VARCHAR2,
3639 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
3640 ) IS
3641 l_msg_data VARCHAR2(2000);
3642 l_msg_count NUMBER;
3643 BEGIN
3644 get_v2_person_cust_updated(
3645 p_init_msg_list => fnd_api.g_true,
3646 p_event_id => p_event_id,
3647 p_person_cust_id => p_person_cust_id,
3648 x_person_cust_v2_obj => x_person_cust_v2_obj,
3649 x_return_status => x_return_status,
3650 x_msg_count => l_msg_count,
3651 x_msg_data => l_msg_data
3652 );
3653 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3654 x_return_status => x_return_status,
3655 x_msg_count => l_msg_count,
3656 x_msg_data => l_msg_data);
3657 END get_v2_person_cust_updated;
3658
3659 END hz_person_cust_bo_pub;