[Home] [Help]
PACKAGE BODY: APPS.HZ_PARTY_BO_PVT
Source
1 PACKAGE BODY hz_party_bo_pvt AS
2 /*$Header: ARHBPTVB.pls 120.21 2008/03/25 23:16:38 awu ship $ */
3
4 G_BO_EVENTS_FORMAT CONSTANT VARCHAR2(30) := FND_PROFILE.VALUE('HZ_BO_EVENTS_FORMAT_BULK');
5 G_EVENT_TYPE CONSTANT VARCHAR2(30) := FND_PROFILE.VALUE('HZ_EXECUTE_API_CALLOUTS');
6
7 PROCEDURE log(
8 message IN VARCHAR2,
9 newline IN BOOLEAN DEFAULT TRUE);
10
11 PROCEDURE add_cust_tracking(
12 p_party_id IN NUMBER,
13 p_bo_code IN VARCHAR2,
14 p_create_or_update IN VARCHAR2);
15
16 -- PROCEDURE set_hz_parties_bo_ver
17 --
18 -- DESCRIPTION
19 -- Set BO_VERSION_NUMBER in HZ_PARTIES table. This procedure
20 -- will be called from Organization, Organization Customer,
21 -- Person, Person Customer BO create API.
22 --
23 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
24 --
25 -- ARGUMENTS
26 -- IN:
27 -- p_party_id Party Id.
28 -- NOTES
29 --
30 -- MODIFICATION HISTORY
31 --
32 -- 04-OCT-2005 Arnold Ng Created.
33 --
34
35 PROCEDURE set_hz_parties_bo_ver(
36 p_party_id IN NUMBER,
37 p_bo_code IN VARCHAR2
38 );
39
40 -- PRIVATE PROCEDURE assign_certification_rec
41 --
42 -- DESCRIPTION
43 -- Assign attribute value from certification object to plsql record.
44 --
45 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
46 --
47 -- ARGUMENTS
48 -- IN:
49 -- p_certification_obj Certification object.
50 -- p_party_id Party Id.
51 -- IN/OUT:
52 -- px_certification_rec Certification plsql record.
53 --
54 -- NOTES
55 --
56 -- MODIFICATION HISTORY
57 --
58 -- 14-DEC-2004 Arnold Ng Created.
59 --
60
61 PROCEDURE assign_certification_rec(
62 p_certification_obj IN HZ_CERTIFICATION_OBJ,
63 p_party_id IN NUMBER,
64 px_certification_rec IN OUT NOCOPY HZ_ORG_INFO_PUB.certifications_rec_type
65 );
66
67 -- PRIVATE PROCEDURE assign_financial_prof_rec
68 --
69 -- DESCRIPTION
70 -- Assign attribute value from financial profile object to plsql record.
71 --
72 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
73 --
74 -- ARGUMENTS
75 -- IN:
76 -- p_financial_prof_obj Financial profile object.
77 -- p_party_id Party Id.
78 -- IN/OUT:
79 -- px_financial_prof_rec Financial profile plsql record.
80 --
81 -- NOTES
82 --
83 -- MODIFICATION HISTORY
84 --
85 -- 14-DEC-2004 Arnold Ng Created.
86 --
87
88 PROCEDURE assign_financial_prof_rec(
89 p_financial_prof_obj IN HZ_FINANCIAL_PROF_OBJ,
90 p_party_id IN NUMBER,
91 px_financial_prof_rec IN OUT NOCOPY HZ_PARTY_INFO_PUB.financial_profile_rec_type
92 );
93
94 -- PRIVATE PROCEDURE assign_code_assign_rec
95 --
96 -- DESCRIPTION
97 -- Assign attribute value from classification object to plsql record.
98 --
99 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
100 --
101 -- ARGUMENTS
102 -- IN:
103 -- p_code_assign_obj Classification object.
104 -- p_owner_table_name Owner table name.
105 -- p_owner_table_id Owner table Id.
106 -- IN/OUT:
107 -- px_code_assign_rec Classification plsql record.
108 --
109 -- NOTES
110 --
111 -- MODIFICATION HISTORY
112 --
113 -- 14-DEC-2004 Arnold Ng Created.
114 --
115
116 PROCEDURE assign_code_assign_rec(
117 p_code_assign_obj IN HZ_CODE_ASSIGNMENT_OBJ,
118 p_owner_table_name IN VARCHAR2,
119 p_owner_table_id IN NUMBER,
120 px_code_assign_rec IN OUT NOCOPY HZ_CLASSIFICATION_V2PUB.code_assignment_rec_type
121 );
122
123 -- PRIVATE PROCEDURE assign_relationship_rec
124 --
125 -- DESCRIPTION
126 -- Assign attribute value from relationship object to plsql record.
127 --
128 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
129 --
130 -- ARGUMENTS
131 -- IN:
132 -- p_relationship_obj Relationship object.
133 -- p_subject_id Subject Id.
134 -- p_subject_type Subject type.
135 -- p_object_id Object Id.
136 -- p_object_type Object type.
137 -- IN/OUT:
138 -- px_relationship_rec Relationship plsql record.
139 --
140 -- NOTES
141 --
142 -- MODIFICATION HISTORY
143 --
144 -- 14-DEC-2004 Arnold Ng Created.
145 --
146
147 PROCEDURE assign_relationship_rec(
148 p_relationship_obj IN HZ_RELATIONSHIP_OBJ,
149 p_subject_id IN NUMBER,
150 p_subject_type IN VARCHAR2,
151 p_object_id IN NUMBER,
152 p_object_type IN VARCHAR2,
153 px_relationship_rec IN OUT NOCOPY HZ_RELATIONSHIP_V2PUB.relationship_rec_type
154 );
155
156 -- PRIVATE PROCEDURE assign_certification_rec
157 --
158 -- DESCRIPTION
159 -- Assign attribute value from certification object to plsql record.
160 --
161 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
162 --
163 -- ARGUMENTS
164 -- IN:
165 -- p_certifiation_obj Certification object.
166 -- p_party_id Party Id.
167 -- IN/OUT:
168 -- px_certification_rec Certification plsql record.
169 --
170 -- NOTES
171 --
172 -- MODIFICATION HISTORY
173 --
174 -- 14-DEC-2004 Arnold Ng Created.
175 --
176
177 PROCEDURE assign_certification_rec(
178 p_certification_obj IN HZ_CERTIFICATION_OBJ,
179 p_party_id IN NUMBER,
180 px_certification_rec IN OUT NOCOPY HZ_ORG_INFO_PUB.certifications_rec_type
181 ) IS
182 BEGIN
183 px_certification_rec.certification_id := p_certification_obj.certification_id;
184 px_certification_rec.certification_name := p_certification_obj.certification_name;
185 px_certification_rec.party_id := p_party_id;
186 px_certification_rec.current_status := p_certification_obj.current_status;
187 px_certification_rec.expires_on_date := p_certification_obj.expires_on_date;
188 px_certification_rec.grade := p_certification_obj.grade;
189 px_certification_rec.issued_by_authority := p_certification_obj.issued_by_authority;
190 px_certification_rec.issued_on_date := p_certification_obj.issued_on_date;
191 px_certification_rec.status := p_certification_obj.status;
192 END assign_certification_rec;
193
194 -- PRIVATE PROCEDURE assign_financial_prof_rec
195 --
196 -- DESCRIPTION
197 -- Assign attribute value from financial profile object to plsql record.
198 --
199 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
200 --
201 -- ARGUMENTS
202 -- IN:
203 -- p_financial_prof_obj Financial profile object.
204 -- p_party_id Party Id.
205 -- IN/OUT:
206 -- px_financial_prof_rec Financial profile plsql record.
207 --
208 -- NOTES
209 --
210 -- MODIFICATION HISTORY
211 --
212 -- 14-DEC-2004 Arnold Ng Created.
213 --
214
215 PROCEDURE assign_financial_prof_rec(
216 p_financial_prof_obj IN HZ_FINANCIAL_PROF_OBJ,
217 p_party_id IN NUMBER,
218 px_financial_prof_rec IN OUT NOCOPY HZ_PARTY_INFO_PUB.financial_profile_rec_type
219 ) IS
220 BEGIN
221 px_financial_prof_rec.financial_profile_id := p_financial_prof_obj.financial_profile_id;
222 px_financial_prof_rec.access_authority_date := p_financial_prof_obj.access_authority_date;
223 px_financial_prof_rec.access_authority_granted := p_financial_prof_obj.access_authority_granted;
224 px_financial_prof_rec.balance_amount := p_financial_prof_obj.balance_amount;
225 px_financial_prof_rec.balance_verified_on_date := p_financial_prof_obj.balance_verified_on_date;
226 px_financial_prof_rec.financial_account_number := p_financial_prof_obj.financial_account_number;
227 px_financial_prof_rec.financial_account_type := p_financial_prof_obj.financial_account_type;
228 px_financial_prof_rec.financial_org_type := p_financial_prof_obj.financial_org_type;
229 px_financial_prof_rec.financial_organization_name := p_financial_prof_obj.financial_organization_name;
230 px_financial_prof_rec.party_id := p_party_id;
231 px_financial_prof_rec.status := p_financial_prof_obj.status;
232 END assign_financial_prof_rec;
233
234 -- PRIVATE PROCEDURE assign_code_assign_rec
235 --
236 -- DESCRIPTION
237 -- Assign attribute value from classification object to plsql record.
238 --
239 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
240 --
241 -- ARGUMENTS
242 -- IN:
243 -- p_code_assign_obj Classification object.
244 -- p_owner_table_name Owner table name.
245 -- p_owner_table_id Owner table Id.
246 -- IN/OUT:
247 -- px_code_assign_rec Classification plsql record.
248 --
249 -- NOTES
250 --
251 -- MODIFICATION HISTORY
252 --
253 -- 14-DEC-2004 Arnold Ng Created.
254 --
255
256 PROCEDURE assign_code_assign_rec(
257 p_code_assign_obj IN HZ_CODE_ASSIGNMENT_OBJ,
258 p_owner_table_name IN VARCHAR2,
259 p_owner_table_id IN NUMBER,
260 px_code_assign_rec IN OUT NOCOPY HZ_CLASSIFICATION_V2PUB.code_assignment_rec_type
261 ) IS
262 BEGIN
263 px_code_assign_rec.code_assignment_id := p_code_assign_obj.code_assignment_id;
264 px_code_assign_rec.owner_table_name := p_owner_table_name;
265 px_code_assign_rec.owner_table_id := p_owner_table_id;
266 px_code_assign_rec.class_category := p_code_assign_obj.class_category;
267 px_code_assign_rec.class_code := p_code_assign_obj.class_code;
268 px_code_assign_rec.primary_flag := p_code_assign_obj.primary_flag;
269 px_code_assign_rec.start_date_active := p_code_assign_obj.start_date_active;
270 px_code_assign_rec.end_date_active := p_code_assign_obj.end_date_active;
271 px_code_assign_rec.status := p_code_assign_obj.status;
272 px_code_assign_rec.actual_content_source := p_code_assign_obj.actual_content_source;
273 px_code_assign_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
274 px_code_assign_rec.rank := p_code_assign_obj.rank;
275 END assign_code_assign_rec;
276
277 -- PRIVATE PROCEDURE assign_relationship_rec
278 --
279 -- DESCRIPTION
280 -- Assign attribute value from relationship object to plsql record.
281 --
282 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
283 --
284 -- ARGUMENTS
285 -- IN:
286 -- p_relationship_obj Relationship object.
287 -- p_subject_id Subject Id.
288 -- p_subject_type Subject type.
289 -- p_object_id Object Id.
290 -- p_object_type Object type.
291 -- IN/OUT:
292 -- px_relationship_rec Relationship plsql record.
293 --
294 -- NOTES
295 --
296 -- MODIFICATION HISTORY
297 --
298 -- 14-DEC-2004 Arnold Ng Created.
299 --
300
301 PROCEDURE assign_relationship_rec(
302 p_relationship_obj IN HZ_RELATIONSHIP_OBJ,
303 p_subject_id IN NUMBER,
304 p_subject_type IN VARCHAR2,
305 p_object_id IN NUMBER,
306 p_object_type IN VARCHAR2,
307 px_relationship_rec IN OUT NOCOPY HZ_RELATIONSHIP_V2PUB.relationship_rec_type
308 ) IS
309 BEGIN
310 px_relationship_rec.relationship_id := p_relationship_obj.relationship_id;
311 px_relationship_rec.subject_id := p_subject_id;
312 px_relationship_rec.subject_type := p_subject_type;
313 px_relationship_rec.subject_table_name:= 'HZ_PARTIES';
314 px_relationship_rec.object_id := p_object_id;
315 px_relationship_rec.object_type := p_object_type;
316 px_relationship_rec.object_table_name := 'HZ_PARTIES';
317 px_relationship_rec.relationship_code := p_relationship_obj.relationship_code;
318 px_relationship_rec.relationship_type := p_relationship_obj.relationship_type;
319 px_relationship_rec.comments := p_relationship_obj.comments;
320 px_relationship_rec.start_date := p_relationship_obj.start_date;
321 px_relationship_rec.end_date := p_relationship_obj.end_date;
322 IF(p_relationship_obj.status in ('A','I')) THEN
323 px_relationship_rec.status := p_relationship_obj.status;
324 END IF;
325 px_relationship_rec.attribute_category := p_relationship_obj.attribute_category;
326 px_relationship_rec.attribute1 := p_relationship_obj.attribute1;
327 px_relationship_rec.attribute2 := p_relationship_obj.attribute2;
328 px_relationship_rec.attribute3 := p_relationship_obj.attribute3;
329 px_relationship_rec.attribute4 := p_relationship_obj.attribute4;
330 px_relationship_rec.attribute5 := p_relationship_obj.attribute5;
331 px_relationship_rec.attribute6 := p_relationship_obj.attribute6;
332 px_relationship_rec.attribute7 := p_relationship_obj.attribute7;
333 px_relationship_rec.attribute8 := p_relationship_obj.attribute8;
334 px_relationship_rec.attribute9 := p_relationship_obj.attribute9;
335 px_relationship_rec.attribute10 := p_relationship_obj.attribute10;
336 px_relationship_rec.attribute11 := p_relationship_obj.attribute11;
337 px_relationship_rec.attribute12 := p_relationship_obj.attribute12;
338 px_relationship_rec.attribute13 := p_relationship_obj.attribute13;
339 px_relationship_rec.attribute14 := p_relationship_obj.attribute14;
340 px_relationship_rec.attribute15 := p_relationship_obj.attribute15;
341 px_relationship_rec.attribute16 := p_relationship_obj.attribute16;
342 px_relationship_rec.attribute17 := p_relationship_obj.attribute17;
343 px_relationship_rec.attribute18 := p_relationship_obj.attribute18;
344 px_relationship_rec.attribute19 := p_relationship_obj.attribute19;
345 px_relationship_rec.attribute20 := p_relationship_obj.attribute20;
346 px_relationship_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
347 /*
348 px_relationship_rec.party_rec.party_id := p_relationship_obj.party_obj.party_id;
349 px_relationship_rec.party_rec.party_number := p_relationship_obj.party_obj.party_number;
350 px_relationship_rec.party_rec.validated_flag := p_relationship_obj.party_obj.validated_flag;
351 px_relationship_rec.party_rec.status := p_relationship_obj.party_obj.status;
352 px_relationship_rec.party_rec.category_code := p_relationship_obj.party_obj.category_code;
353 px_relationship_rec.party_rec.salutation := p_relationship_obj.party_obj.salutation;
354 px_relationship_rec.party_rec.attribute_category := p_relationship_obj.party_obj.attribute_category;
355 px_relationship_rec.party_rec.attribute1 := p_relationship_obj.party_obj.attribute1;
356 px_relationship_rec.party_rec.attribute2 := p_relationship_obj.party_obj.attribute2;
357 px_relationship_rec.party_rec.attribute3 := p_relationship_obj.party_obj.attribute3;
358 px_relationship_rec.party_rec.attribute4 := p_relationship_obj.party_obj.attribute4;
359 px_relationship_rec.party_rec.attribute5 := p_relationship_obj.party_obj.attribute5;
360 px_relationship_rec.party_rec.attribute6 := p_relationship_obj.party_obj.attribute6;
361 px_relationship_rec.party_rec.attribute7 := p_relationship_obj.party_obj.attribute7;
362 px_relationship_rec.party_rec.attribute8 := p_relationship_obj.party_obj.attribute8;
363 px_relationship_rec.party_rec.attribute9 := p_relationship_obj.party_obj.attribute9;
364 px_relationship_rec.party_rec.attribute10 := p_relationship_obj.party_obj.attribute10;
365 px_relationship_rec.party_rec.attribute11 := p_relationship_obj.party_obj.attribute11;
366 px_relationship_rec.party_rec.attribute12 := p_relationship_obj.party_obj.attribute12;
367 px_relationship_rec.party_rec.attribute13 := p_relationship_obj.party_obj.attribute13;
368 px_relationship_rec.party_rec.attribute14 := p_relationship_obj.party_obj.attribute14;
369 px_relationship_rec.party_rec.attribute15 := p_relationship_obj.party_obj.attribute15;
370 px_relationship_rec.party_rec.attribute16 := p_relationship_obj.party_obj.attribute16;
371 px_relationship_rec.party_rec.attribute17 := p_relationship_obj.party_obj.attribute17;
372 px_relationship_rec.party_rec.attribute18 := p_relationship_obj.party_obj.attribute18;
373 px_relationship_rec.party_rec.attribute19 := p_relationship_obj.party_obj.attribute19;
374 px_relationship_rec.party_rec.attribute20 := p_relationship_obj.party_obj.attribute20;
375 px_relationship_rec.party_rec.attribute21 := p_relationship_obj.party_obj.attribute21;
376 px_relationship_rec.party_rec.attribute22 := p_relationship_obj.party_obj.attribute22;
377 px_relationship_rec.party_rec.attribute23 := p_relationship_obj.party_obj.attribute23;
378 px_relationship_rec.party_rec.attribute24 := p_relationship_obj.party_obj.attribute24;
379 --px_relationship_rec.party_rec.orig_system := p_relationship_obj.party_obj.source_system_objs(1).orig_system;
380 --px_relationship_rec.party_rec.orig_system_reference := p_relationship_obj.party_obj.source_system_objs(1).orig_system_reference;
381 */
382 px_relationship_rec.additional_information1 := p_relationship_obj.additional_information1;
383 px_relationship_rec.additional_information2 := p_relationship_obj.additional_information2;
384 px_relationship_rec.additional_information3 := p_relationship_obj.additional_information3;
385 px_relationship_rec.additional_information4 := p_relationship_obj.additional_information4;
386 px_relationship_rec.additional_information5 := p_relationship_obj.additional_information5;
387 px_relationship_rec.additional_information6 := p_relationship_obj.additional_information6;
388 px_relationship_rec.additional_information7 := p_relationship_obj.additional_information7;
389 px_relationship_rec.additional_information8 := p_relationship_obj.additional_information8;
390 px_relationship_rec.additional_information9 := p_relationship_obj.additional_information9;
391 px_relationship_rec.additional_information10 := p_relationship_obj.additional_information10;
392 px_relationship_rec.additional_information11 := p_relationship_obj.additional_information11;
393 px_relationship_rec.additional_information12 := p_relationship_obj.additional_information12;
394 px_relationship_rec.additional_information13 := p_relationship_obj.additional_information13;
395 px_relationship_rec.additional_information14 := p_relationship_obj.additional_information14;
396 px_relationship_rec.additional_information15 := p_relationship_obj.additional_information15;
397 px_relationship_rec.additional_information16 := p_relationship_obj.additional_information16;
398 px_relationship_rec.additional_information17 := p_relationship_obj.additional_information17;
399 px_relationship_rec.additional_information18 := p_relationship_obj.additional_information18;
400 px_relationship_rec.additional_information19 := p_relationship_obj.additional_information19;
401 px_relationship_rec.additional_information20 := p_relationship_obj.additional_information20;
402 px_relationship_rec.additional_information21 := p_relationship_obj.additional_information21;
403 px_relationship_rec.additional_information22 := p_relationship_obj.additional_information22;
404 px_relationship_rec.additional_information23 := p_relationship_obj.additional_information23;
405 px_relationship_rec.additional_information24 := p_relationship_obj.additional_information24;
406 px_relationship_rec.additional_information25 := p_relationship_obj.additional_information25;
407 px_relationship_rec.additional_information26 := p_relationship_obj.additional_information26;
408 px_relationship_rec.additional_information27 := p_relationship_obj.additional_information27;
409 px_relationship_rec.additional_information28 := p_relationship_obj.additional_information28;
410 px_relationship_rec.additional_information29 := p_relationship_obj.additional_information29;
411 px_relationship_rec.additional_information30 := p_relationship_obj.additional_information30;
412 px_relationship_rec.percentage_ownership := p_relationship_obj.percentage_ownership;
413 px_relationship_rec.actual_content_source := p_relationship_obj.actual_content_source;
414 END assign_relationship_rec;
415
416 -- PROCEDURE create_relationships
417 --
418 -- DESCRIPTION
419 -- Create relationships.
420 --
421 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
422 --
423 -- ARGUMENTS
424 -- IN:
425 -- p_rel_objs List of relationship objects.
426 -- p_subject_id Subject Id.
427 -- p_subject_type Subject type.
428 -- OUT:
429 -- x_return_status Return status after the call. The status can
430 -- be fnd_api.g_ret_sts_success (success),
431 -- fnd_api.g_ret_sts_error (error),
432 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
433 -- x_msg_count Number of messages in message stack.
434 -- x_msg_data Message text if x_msg_count is 1.
435 --
436 -- NOTES
437 --
438 -- MODIFICATION HISTORY
439 --
440 -- 14-DEC-2004 Arnold Ng Created.
441 --
442
443 PROCEDURE create_relationships(
444 p_rel_objs IN OUT NOCOPY HZ_RELATIONSHIP_OBJ_TBL,
445 p_subject_id IN NUMBER,
446 p_subject_type IN VARCHAR2,
447 x_return_status OUT NOCOPY VARCHAR2,
448 x_msg_count OUT NOCOPY NUMBER,
449 x_msg_data OUT NOCOPY VARCHAR2
450 )IS
451 l_debug_prefix VARCHAR2(30);
452 l_rel_id NUMBER;
453 l_party_id NUMBER;
454 l_party_number VARCHAR2(30);
455 l_rel_rec HZ_RELATIONSHIP_V2PUB.RELATIONSHIP_REC_TYPE;
456 l_obj_id NUMBER;
457 l_obj_os VARCHAR2(30);
458 l_obj_osr VARCHAR2(255);
459 l_obj_type VARCHAR2(30);
460 BEGIN
461 -- Standard start of API savepoint
462 SAVEPOINT create_relationships_pvt;
463
464 -- initialize API return status to success.
465 x_return_status := FND_API.G_RET_STS_SUCCESS;
466
467 -- Debug info.
468 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
469 hz_utility_v2pub.debug(p_message=>'create_relationships(+)',
470 p_prefix=>l_debug_prefix,
471 p_msg_level=>fnd_log.level_procedure);
472 END IF;
473
474 -- Create relationships
475 FOR i IN 1..p_rel_objs.COUNT LOOP
476 -- Get object id and os+osr
477 l_obj_id := p_rel_objs(i).related_object_id;
478 l_obj_os := p_rel_objs(i).related_object_os;
479 l_obj_osr := p_rel_objs(i).related_object_osr;
480 IF(p_rel_objs(i).related_object_type = 'ORG') THEN
481 l_obj_type := 'ORGANIZATION';
482 ELSE
483 l_obj_type := 'PERSON';
484 END IF;
485
486 -- check if object id or os+osr is valid
487 hz_registry_validate_bo_pvt.validate_ssm_id(
488 px_id => l_obj_id,
489 px_os => l_obj_os,
490 px_osr => l_obj_osr,
491 p_obj_type => l_obj_type,
492 p_create_or_update => 'U',
493 x_return_status => x_return_status,
494 x_msg_count => x_msg_count,
495 x_msg_data => x_msg_data);
496
497 IF(x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
498 RAISE FND_API.G_EXC_ERROR;
499 ELSE
500 assign_relationship_rec(
501 p_relationship_obj => p_rel_objs(i),
502 p_subject_id => p_subject_id,
503 p_subject_type => p_subject_type,
504 p_object_id => l_obj_id,
505 p_object_type => l_obj_type,
506 px_relationship_rec => l_rel_rec
507 );
508
509 HZ_RELATIONSHIP_V2PUB.create_relationship(
510 p_relationship_rec => l_rel_rec,
511 x_relationship_id => l_rel_id,
512 x_party_id => l_party_id,
513 x_party_number => l_party_number,
514 x_return_status => x_return_status,
515 x_msg_count => x_msg_count,
516 x_msg_data => x_msg_data
517 );
518
519 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
520 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
521 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.create_relationships, subject id: '||p_subject_id||' object id: '||p_rel_objs(i).related_object_id,
522 p_prefix=>l_debug_prefix,
523 p_msg_level=>fnd_log.level_procedure);
524 END IF;
525 RAISE FND_API.G_EXC_ERROR;
526 END IF;
527
528 -- assign relationship_id and party_id
529 p_rel_objs(i).relationship_id := l_rel_id;
530 END IF;
531 END LOOP;
532
533 -- Debug info.
534 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
535 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
536 p_msg_data=>x_msg_data,
537 p_msg_type=>'WARNING',
538 p_msg_level=>fnd_log.level_exception);
539 END IF;
540 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
541 hz_utility_v2pub.debug(p_message=>'create_relationships(-)',
542 p_prefix=>l_debug_prefix,
543 p_msg_level=>fnd_log.level_procedure);
544 END IF;
545 EXCEPTION
546 WHEN fnd_api.g_exc_error THEN
547 ROLLBACK TO create_relationships_pvt;
548 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
549 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
550 FND_MSG_PUB.ADD;
551
552 x_return_status := fnd_api.g_ret_sts_error;
553
554 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
555 p_count => x_msg_count,
556 p_data => x_msg_data);
557
558 -- Debug info.
559 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
560 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
561 p_msg_data=>x_msg_data,
562 p_msg_type=>'ERROR',
563 p_msg_level=>fnd_log.level_error);
564 END IF;
565 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
566 hz_utility_v2pub.debug(p_message=>'create_relationships(-)',
567 p_prefix=>l_debug_prefix,
568 p_msg_level=>fnd_log.level_procedure);
569 END IF;
570 WHEN fnd_api.g_exc_unexpected_error THEN
571 ROLLBACK TO create_relationships_pvt;
572 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
573 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
574 FND_MSG_PUB.ADD;
575
576 x_return_status := fnd_api.g_ret_sts_unexp_error;
577
578 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
579 p_count => x_msg_count,
580 p_data => x_msg_data);
581
582 -- Debug info.
583 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
584 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
585 p_msg_data=>x_msg_data,
586 p_msg_type=>'UNEXPECTED ERROR',
587 p_msg_level=>fnd_log.level_error);
588 END IF;
589 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
590 hz_utility_v2pub.debug(p_message=>'create_relationships(-)',
591 p_prefix=>l_debug_prefix,
592 p_msg_level=>fnd_log.level_procedure);
593 END IF;
594
595 WHEN OTHERS THEN
596 ROLLBACK TO create_relationships_pvt;
597 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
598 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
599 FND_MSG_PUB.ADD;
600
601 x_return_status := fnd_api.g_ret_sts_unexp_error;
602
603 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
604 fnd_message.set_token('ERROR' ,SQLERRM);
605 fnd_msg_pub.add;
606
607 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
608 p_count => x_msg_count,
609 p_data => x_msg_data);
610
611 -- Debug info.
612 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
613 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
614 p_msg_data=>x_msg_data,
615 p_msg_type=>'SQL ERROR',
616 p_msg_level=>fnd_log.level_error);
617 END IF;
618 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
619 hz_utility_v2pub.debug(p_message=>'create_relationships(-)',
620 p_prefix=>l_debug_prefix,
621 p_msg_level=>fnd_log.level_procedure);
622 END IF;
623 END create_relationships;
624
625 -- PROCEDURE save_relationships
626 --
627 -- DESCRIPTION
628 -- Create or update relationships.
629 --
630 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
631 --
632 -- ARGUMENTS
633 -- IN:
634 -- p_rel_objs List of relationship objects.
635 -- p_subject_id Subject Id.
636 -- p_subject_type Subject type.
637 -- OUT:
638 -- x_return_status Return status after the call. The status can
639 -- be fnd_api.g_ret_sts_success (success),
640 -- fnd_api.g_ret_sts_error (error),
641 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
642 -- x_msg_count Number of messages in message stack.
643 -- x_msg_data Message text if x_msg_count is 1.
644 --
645 -- NOTES
646 --
647 -- MODIFICATION HISTORY
648 --
649 -- 14-DEC-2004 Arnold Ng Created.
650 --
651
652 PROCEDURE save_relationships(
653 p_rel_objs IN OUT NOCOPY HZ_RELATIONSHIP_OBJ_TBL,
654 p_subject_id IN NUMBER,
655 p_subject_type IN VARCHAR2,
656 x_return_status OUT NOCOPY VARCHAR2,
657 x_msg_count OUT NOCOPY NUMBER,
658 x_msg_data OUT NOCOPY VARCHAR2
659 )IS
660 l_debug_prefix VARCHAR2(30);
661 l_rel_id NUMBER;
662 l_party_id NUMBER;
663 l_party_number VARCHAR2(30);
664 l_rel_rec HZ_RELATIONSHIP_V2PUB.RELATIONSHIP_REC_TYPE;
665 l_ovn NUMBER := NULL;
666 l_povn NUMBER := NULL;
667 l_obj_id NUMBER;
668 l_obj_os VARCHAR2(30);
669 l_obj_osr VARCHAR2(255);
670 l_obj_type VARCHAR2(30);
671 /*
672 CURSOR get_rel_party_ovn(l_subject_id NUMBER, l_object_id NUMBER,
673 l_relationship_type VARCHAR2, l_relationship_code VARCHAR2) IS
674 SELECT p.object_version_number
675 FROM HZ_RELATIONSHIPS rel, HZ_PARTIES p
676 WHERE rel.subject_id = l_subject_id
677 AND rel.object_id = l_object_id
678 AND rel.relationship_type = l_relationship_type
679 AND rel.relationship_code = l_relationship_code
680 AND sysdate between rel.start_date and nvl(rel.end_date, sysdate)
681 AND rel.party_id = p.party_id
682 AND p.status in ('A','I');
683 */
684 BEGIN
685 -- Standard start of API savepoint
686 SAVEPOINT save_relationships_pvt;
687
688 -- initialize API return status to success.
689 x_return_status := FND_API.G_RET_STS_SUCCESS;
690
691 -- Debug info.
692 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
693 hz_utility_v2pub.debug(p_message=>'save_relationships(+)',
694 p_prefix=>l_debug_prefix,
695 p_msg_level=>fnd_log.level_procedure);
696 END IF;
697
698 -- Create/Update relationship
699 FOR i IN 1..p_rel_objs.COUNT LOOP
700 -- Get object id and os+osr
701 l_obj_id := p_rel_objs(i).related_object_id;
702 l_obj_os := p_rel_objs(i).related_object_os;
703 l_obj_osr := p_rel_objs(i).related_object_osr;
704 IF(p_rel_objs(i).related_object_type = 'ORG') THEN
705 l_obj_type := 'ORGANIZATION';
706 ELSE
707 l_obj_type := 'PERSON';
708 END IF;
709
710 -- check if object id or os+osr is valid
711 hz_registry_validate_bo_pvt.validate_ssm_id(
712 px_id => l_obj_id,
713 px_os => l_obj_os,
714 px_osr => l_obj_osr,
715 p_obj_type => l_obj_type,
716 p_create_or_update => 'U',
717 x_return_status => x_return_status,
718 x_msg_count => x_msg_count,
719 x_msg_data => x_msg_data);
720
721 IF(x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
722 RAISE FND_API.G_EXC_ERROR;
723 ELSE
724 assign_relationship_rec(
725 p_relationship_obj => p_rel_objs(i),
726 p_subject_id => p_subject_id,
727 p_subject_type => p_subject_type,
728 p_object_id => l_obj_id,
729 p_object_type => l_obj_type,
730 px_relationship_rec => l_rel_rec
731 );
732
733 -- check if the relationship record is create or update
734 hz_registry_validate_bo_pvt.check_relationship_op(
735 p_subject_id => p_subject_id,
736 p_object_id => l_rel_rec.object_id,
737 px_relationship_id => l_rel_rec.relationship_id,
738 p_relationship_type => l_rel_rec.relationship_type,
739 p_relationship_code => l_rel_rec.relationship_code,
740 x_object_version_number => l_ovn,
741 x_party_obj_version_number => l_povn
742 );
743
744 IF(l_rel_rec.relationship_id IS NULL) THEN
745 HZ_RELATIONSHIP_V2PUB.create_relationship(
746 p_relationship_rec => l_rel_rec,
747 x_relationship_id => l_rel_id,
748 x_party_id => l_party_id,
749 x_party_number => l_party_number,
750 x_return_status => x_return_status,
751 x_msg_count => x_msg_count,
752 x_msg_data => x_msg_data
753 );
754
755 -- assign relationship_id and party_id
756 p_rel_objs(i).relationship_id := l_rel_id;
757 ELSE
758 -- clean up created_by_module for update
759 l_rel_rec.created_by_module := NULL;
760 HZ_RELATIONSHIP_V2PUB.update_relationship(
761 p_relationship_rec => l_rel_rec,
762 p_object_version_number => l_ovn,
763 p_party_object_version_number => l_povn,
764 x_return_status => x_return_status,
765 x_msg_count => x_msg_count,
766 x_msg_data => x_msg_data
767 );
768
769 -- assign relationship_id and party_id
770 p_rel_objs(i).relationship_id := l_rel_rec.relationship_id;
771 END IF;
772
773 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
774 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
775 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_relationships, subject id: '||p_subject_id||' object id: '||p_rel_objs(i).related_object_id,
776 p_prefix=>l_debug_prefix,
777 p_msg_level=>fnd_log.level_procedure);
778 END IF;
779 RAISE FND_API.G_EXC_ERROR;
780 END IF;
781 END IF;
782 END LOOP;
783
784 -- Debug info.
785 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
786 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
787 p_msg_data=>x_msg_data,
788 p_msg_type=>'WARNING',
789 p_msg_level=>fnd_log.level_exception);
790 END IF;
791 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
792 hz_utility_v2pub.debug(p_message=>'save_relationships(-)',
793 p_prefix=>l_debug_prefix,
794 p_msg_level=>fnd_log.level_procedure);
795 END IF;
796 EXCEPTION
797 WHEN fnd_api.g_exc_error THEN
798 ROLLBACK TO save_relationships_pvt;
799 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
800 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
801 FND_MSG_PUB.ADD;
802
803 x_return_status := fnd_api.g_ret_sts_error;
804
805 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
806 p_count => x_msg_count,
807 p_data => x_msg_data);
808
809 -- Debug info.
810 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
811 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
812 p_msg_data=>x_msg_data,
813 p_msg_type=>'ERROR',
814 p_msg_level=>fnd_log.level_error);
815 END IF;
816 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
817 hz_utility_v2pub.debug(p_message=>'save_relationships(-)',
818 p_prefix=>l_debug_prefix,
819 p_msg_level=>fnd_log.level_procedure);
820 END IF;
821 WHEN fnd_api.g_exc_unexpected_error THEN
822 ROLLBACK TO save_relationships_pvt;
823 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
824 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
825 FND_MSG_PUB.ADD;
826
827 x_return_status := fnd_api.g_ret_sts_unexp_error;
828
829 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
830 p_count => x_msg_count,
831 p_data => x_msg_data);
832
833 -- Debug info.
834 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
835 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
836 p_msg_data=>x_msg_data,
837 p_msg_type=>'UNEXPECTED ERROR',
838 p_msg_level=>fnd_log.level_error);
839 END IF;
840 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
841 hz_utility_v2pub.debug(p_message=>'save_relationships(-)',
842 p_prefix=>l_debug_prefix,
843 p_msg_level=>fnd_log.level_procedure);
844 END IF;
845
846 WHEN OTHERS THEN
847 ROLLBACK TO save_relationships_pvt;
848 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
849 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
850 FND_MSG_PUB.ADD;
851
852 x_return_status := fnd_api.g_ret_sts_unexp_error;
853
854 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
855 fnd_message.set_token('ERROR' ,SQLERRM);
856 fnd_msg_pub.add;
857
858 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
859 p_count => x_msg_count,
860 p_data => x_msg_data);
861
862 -- Debug info.
863 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
864 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
865 p_msg_data=>x_msg_data,
866 p_msg_type=>'SQL ERROR',
867 p_msg_level=>fnd_log.level_error);
868 END IF;
869 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
870 hz_utility_v2pub.debug(p_message=>'save_relationships(-)',
871 p_prefix=>l_debug_prefix,
872 p_msg_level=>fnd_log.level_procedure);
873 END IF;
874 END save_relationships;
875
876 PROCEDURE create_relationship_obj(
877 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
878 p_rel_obj IN OUT NOCOPY HZ_RELATIONSHIP_OBJ,
879 p_created_by_module IN VARCHAR2,
880 x_relationship_id OUT NOCOPY NUMBER,
881 x_return_status OUT NOCOPY VARCHAR2,
882 x_msg_count OUT NOCOPY NUMBER,
883 x_msg_data OUT NOCOPY VARCHAR2
884 ) IS
885 l_debug_prefix VARCHAR2(30);
886 l_rel_rec HZ_RELATIONSHIP_V2PUB.RELATIONSHIP_REC_TYPE;
887 l_subject_type VARCHAR2(30);
888 l_object_type VARCHAR2(30);
889 l_party_id NUMBER;
890 l_party_number VARCHAR2(30);
891 l_created_by_module VARCHAR2(30);
892
893 BEGIN
894 -- Standard start of API savepoint
895 SAVEPOINT create_relatobj_pvt;
896
897 -- initialize API return status to success.
898 x_return_status := FND_API.G_RET_STS_SUCCESS;
899
900 -- Initialize message list if p_init_msg_list is set to TRUE
901 IF FND_API.to_Boolean(p_init_msg_list) THEN
902 FND_MSG_PUB.initialize;
903 END IF;
904
905 -- Debug info.
906 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
907 hz_utility_v2pub.debug(p_message=>'create_relatobj_pvt(+)',
908 p_prefix=>l_debug_prefix,
909 p_msg_level=>fnd_log.level_procedure);
910 END IF;
911
912
913 IF(p_created_by_module IS NULL) THEN
914 l_created_by_module := 'BO_API';
915 ELSE
916 l_created_by_module := p_created_by_module;
917 END IF;
918
919 IF(p_rel_obj.parent_object_type = 'ORG') THEN
920 l_subject_type := 'ORGANIZATION';
921 ELSE
922 l_subject_type := p_rel_obj.parent_object_type;
923 END IF;
924 IF(p_rel_obj.related_object_type = 'ORG') THEN
925 l_object_type := 'ORGANIZATION';
926 ELSE
927 l_object_type := p_rel_obj.related_object_type;
928 END IF;
929
930 assign_relationship_rec(
931 p_relationship_obj => p_rel_obj,
932 p_subject_id => p_rel_obj.parent_object_id,
933 p_subject_type => l_subject_type,
934 p_object_id => p_rel_obj.related_object_id,
935 p_object_type => l_object_type,
936 px_relationship_rec => l_rel_rec
937 );
938 l_rel_rec.created_by_module := l_created_by_module;
939
940 HZ_RELATIONSHIP_V2PUB.create_relationship(
941 p_relationship_rec => l_rel_rec,
942 x_relationship_id => x_relationship_id,
943 x_party_id => l_party_id,
944 x_party_number => l_party_number,
945 x_return_status => x_return_status,
946 x_msg_count => x_msg_count,
947 x_msg_data => x_msg_data
948 );
949
950 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
951 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
952 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.create_relationship_obj, subject id: '||p_rel_obj.parent_object_id||' object id: '||p_rel_obj.related_object_id,
953 p_prefix=>l_debug_prefix,
954 p_msg_level=>fnd_log.level_procedure);
955 END IF;
956 RAISE FND_API.G_EXC_ERROR;
957 END IF;
958
959 -- assign relationship_id and party_id
960 p_rel_obj.relationship_id := x_relationship_id;
961
962 -- Debug info.
963 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
964 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
965 p_msg_data=>x_msg_data,
966 p_msg_type=>'WARNING',
967 p_msg_level=>fnd_log.level_exception);
968 END IF;
969 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
970 hz_utility_v2pub.debug(p_message=>'create_relatobj_pvt(-)',
971 p_prefix=>l_debug_prefix,
972 p_msg_level=>fnd_log.level_procedure);
973 END IF;
974 EXCEPTION
975 WHEN fnd_api.g_exc_error THEN
976 ROLLBACK TO create_relatobj_pvt;
977 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
978 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
979 FND_MSG_PUB.ADD;
980
981 x_return_status := fnd_api.g_ret_sts_error;
982
983 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
984 p_count => x_msg_count,
985 p_data => x_msg_data);
986
987 -- Debug info.
988 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
989 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
990 p_msg_data=>x_msg_data,
991 p_msg_type=>'ERROR',
992 p_msg_level=>fnd_log.level_error);
993 END IF;
994 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
995 hz_utility_v2pub.debug(p_message=>'create_relatobj_pvt(-)',
996 p_prefix=>l_debug_prefix,
997 p_msg_level=>fnd_log.level_procedure);
998 END IF;
999 WHEN fnd_api.g_exc_unexpected_error THEN
1000 ROLLBACK TO create_relatobj_pvt;
1001 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1002 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1003 FND_MSG_PUB.ADD;
1004
1005 x_return_status := fnd_api.g_ret_sts_unexp_error;
1006
1007 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1008 p_count => x_msg_count,
1009 p_data => x_msg_data);
1010
1011 -- Debug info.
1012 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1013 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1014 p_msg_data=>x_msg_data,
1015 p_msg_type=>'UNEXPECTED ERROR',
1016 p_msg_level=>fnd_log.level_error);
1017 END IF;
1018 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1019 hz_utility_v2pub.debug(p_message=>'create_relatobj_pvt(-)',
1020 p_prefix=>l_debug_prefix,
1021 p_msg_level=>fnd_log.level_procedure);
1022 END IF;
1023
1024 WHEN OTHERS THEN
1025 ROLLBACK TO create_relatobj_pvt;
1026 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1027 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1028 FND_MSG_PUB.ADD;
1029
1030 x_return_status := fnd_api.g_ret_sts_unexp_error;
1031
1032 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1033 fnd_message.set_token('ERROR' ,SQLERRM);
1034 fnd_msg_pub.add;
1035
1036 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1037 p_count => x_msg_count,
1038 p_data => x_msg_data);
1039
1040 -- Debug info.
1041 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1042 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1043 p_msg_data=>x_msg_data,
1044 p_msg_type=>'SQL ERROR',
1045 p_msg_level=>fnd_log.level_error);
1046 END IF;
1047 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1048 hz_utility_v2pub.debug(p_message=>'create_relatobj_pvt(-)',
1049 p_prefix=>l_debug_prefix,
1050 p_msg_level=>fnd_log.level_procedure);
1051 END IF;
1052 END create_relationship_obj;
1053
1054 PROCEDURE update_relationship_obj(
1055 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1056 p_rel_obj IN OUT NOCOPY HZ_RELATIONSHIP_OBJ,
1057 x_relationship_id OUT NOCOPY NUMBER,
1058 x_return_status OUT NOCOPY VARCHAR2,
1059 x_msg_count OUT NOCOPY NUMBER,
1060 x_msg_data OUT NOCOPY VARCHAR2
1061 ) IS
1062 l_debug_prefix VARCHAR2(30);
1063 l_rel_id NUMBER;
1064 l_party_id NUMBER;
1065 l_party_number VARCHAR2(30);
1066 l_rel_rec HZ_RELATIONSHIP_V2PUB.RELATIONSHIP_REC_TYPE;
1067 l_subject_type VARCHAR2(30);
1068 l_object_type VARCHAR2(30);
1069 l_ovn NUMBER;
1070 l_povn NUMBER;
1071 l_subject_id NUMBER;
1072 l_object_id NUMBER;
1073
1074 CURSOR get_rel_by_id(l_rel_id NUMBER) IS
1075 SELECT relationship_id, nvl(rel.object_version_number,1), nvl(p.object_version_number,1)
1076 FROM HZ_RELATIONSHIPS rel, HZ_PARTIES p
1077 WHERE rel.relationship_id = l_rel_id
1078 AND rel.party_id = p.party_id
1079 AND rel.status in ('A','I')
1080 AND rownum = 1;
1081 BEGIN
1082 -- Standard start of API savepoint
1083 SAVEPOINT update_relatobj_pvt;
1084
1085 -- initialize API return status to success.
1086 x_return_status := FND_API.G_RET_STS_SUCCESS;
1087
1088 -- Initialize message list if p_init_msg_list is set to TRUE
1089 IF FND_API.to_Boolean(p_init_msg_list) THEN
1090 FND_MSG_PUB.initialize;
1091 END IF;
1092
1093 -- Debug info.
1094 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1095 hz_utility_v2pub.debug(p_message=>'update_relatobj_pvt(+)',
1096 p_prefix=>l_debug_prefix,
1097 p_msg_level=>fnd_log.level_procedure);
1098 END IF;
1099
1100 IF(p_rel_obj.parent_object_type = 'ORG') THEN
1101 l_subject_type := 'ORGANIZATION';
1102 ELSE
1103 l_subject_type := p_rel_obj.parent_object_type;
1104 END IF;
1105 IF(p_rel_obj.related_object_type = 'ORG') THEN
1106 l_object_type := 'ORGANIZATION';
1107 ELSE
1108 l_object_type := p_rel_obj.related_object_type;
1109 END IF;
1110
1111 -- user must pass in relationship_id
1112 OPEN get_rel_by_id(p_rel_obj.relationship_id);
1113 FETCH get_rel_by_id INTO x_relationship_id, l_ovn, l_povn;
1114 CLOSE get_rel_by_id;
1115
1116 assign_relationship_rec(
1117 p_relationship_obj => p_rel_obj,
1118 p_subject_id => p_rel_obj.parent_object_id,
1119 p_subject_type => l_subject_type,
1120 p_object_id => p_rel_obj.related_object_id,
1121 p_object_type => l_object_type,
1122 px_relationship_rec => l_rel_rec
1123 );
1124
1125 HZ_RELATIONSHIP_V2PUB.update_relationship(
1126 p_relationship_rec => l_rel_rec,
1127 p_object_version_number => l_ovn,
1128 p_party_object_version_number => l_povn,
1129 x_return_status => x_return_status,
1130 x_msg_count => x_msg_count,
1131 x_msg_data => x_msg_data
1132 );
1133
1134 -- assign relationship_id
1135 p_rel_obj.relationship_id := x_relationship_id;
1136
1137 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1138 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1139 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.update_relationship_obj, subject id: '||p_rel_obj.parent_object_id||' object id: '||p_rel_obj.related_object_id,
1140 p_prefix=>l_debug_prefix,
1141 p_msg_level=>fnd_log.level_procedure);
1142 END IF;
1143 RAISE FND_API.G_EXC_ERROR;
1144 END IF;
1145
1146 -- Debug info.
1147 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1148 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1149 p_msg_data=>x_msg_data,
1150 p_msg_type=>'WARNING',
1151 p_msg_level=>fnd_log.level_exception);
1152 END IF;
1153 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1154 hz_utility_v2pub.debug(p_message=>'update_relatobj_pvt(-)',
1155 p_prefix=>l_debug_prefix,
1156 p_msg_level=>fnd_log.level_procedure);
1157 END IF;
1158 EXCEPTION
1159 WHEN fnd_api.g_exc_error THEN
1160 ROLLBACK TO update_relatobj_pvt;
1161 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1162 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1163 FND_MSG_PUB.ADD;
1164
1165 x_return_status := fnd_api.g_ret_sts_error;
1166
1167 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1168 p_count => x_msg_count,
1169 p_data => x_msg_data);
1170
1171 -- Debug info.
1172 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1173 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1174 p_msg_data=>x_msg_data,
1175 p_msg_type=>'ERROR',
1176 p_msg_level=>fnd_log.level_error);
1177 END IF;
1178 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1179 hz_utility_v2pub.debug(p_message=>'update_relatobj_pvt(-)',
1180 p_prefix=>l_debug_prefix,
1181 p_msg_level=>fnd_log.level_procedure);
1182 END IF;
1183 WHEN fnd_api.g_exc_unexpected_error THEN
1184 ROLLBACK TO update_relatobj_pvt;
1185 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1186 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1187 FND_MSG_PUB.ADD;
1188
1189 x_return_status := fnd_api.g_ret_sts_unexp_error;
1190
1191 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1192 p_count => x_msg_count,
1193 p_data => x_msg_data);
1194
1195 -- Debug info.
1196 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1197 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1198 p_msg_data=>x_msg_data,
1199 p_msg_type=>'UNEXPECTED ERROR',
1200 p_msg_level=>fnd_log.level_error);
1201 END IF;
1202 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1203 hz_utility_v2pub.debug(p_message=>'update_relatobj_pvt(-)',
1204 p_prefix=>l_debug_prefix,
1205 p_msg_level=>fnd_log.level_procedure);
1206 END IF;
1207
1208 WHEN OTHERS THEN
1209 ROLLBACK TO update_relatobj_pvt;
1210 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1211 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1212 FND_MSG_PUB.ADD;
1213
1214 x_return_status := fnd_api.g_ret_sts_unexp_error;
1215
1216 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1217 fnd_message.set_token('ERROR' ,SQLERRM);
1218 fnd_msg_pub.add;
1219
1220 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1221 p_count => x_msg_count,
1222 p_data => x_msg_data);
1223
1224 -- Debug info.
1225 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1226 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1227 p_msg_data=>x_msg_data,
1228 p_msg_type=>'SQL ERROR',
1229 p_msg_level=>fnd_log.level_error);
1230 END IF;
1231 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1232 hz_utility_v2pub.debug(p_message=>'update_relatobj_pvt(-)',
1233 p_prefix=>l_debug_prefix,
1234 p_msg_level=>fnd_log.level_procedure);
1235 END IF;
1236 END update_relationship_obj;
1237
1238 PROCEDURE save_relationship_obj(
1239 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1240 p_rel_obj IN OUT NOCOPY HZ_RELATIONSHIP_OBJ,
1241 p_created_by_module IN VARCHAR2,
1242 x_relationship_id OUT NOCOPY NUMBER,
1243 x_return_status OUT NOCOPY VARCHAR2,
1244 x_msg_count OUT NOCOPY NUMBER,
1245 x_msg_data OUT NOCOPY VARCHAR2
1246 ) IS
1247 l_debug_prefix VARCHAR2(30);
1248 l_rel_rec HZ_RELATIONSHIP_V2PUB.RELATIONSHIP_REC_TYPE;
1249 l_subject_type VARCHAR2(30);
1250 l_object_type VARCHAR2(30);
1251 l_ovn NUMBER;
1252 l_povn NUMBER;
1253 l_party_id NUMBER;
1254 l_party_number VARCHAR2(30);
1255 l_subject_id NUMBER;
1256 l_object_id NUMBER;
1257 l_created_by_module VARCHAR2(30);
1258
1259 CURSOR get_rel_by_id(l_rel_id NUMBER) IS
1260 SELECT relationship_id, nvl(rel.object_version_number,1), nvl(p.object_version_number,1)
1261 FROM HZ_RELATIONSHIPS rel, HZ_PARTIES p
1262 WHERE rel.relationship_id = l_rel_id
1263 AND rel.party_id = p.party_id
1264 AND rel.status in ('A','I')
1265 AND rownum = 1;
1266 BEGIN
1267 -- Standard start of API savepoint
1268 SAVEPOINT save_relatobj_pvt;
1269
1270 -- initialize API return status to success.
1271 x_return_status := FND_API.G_RET_STS_SUCCESS;
1272
1273 -- Initialize message list if p_init_msg_list is set to TRUE
1274 IF FND_API.to_Boolean(p_init_msg_list) THEN
1275 FND_MSG_PUB.initialize;
1276 END IF;
1277
1278
1279 -- Debug info.
1280 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1281 hz_utility_v2pub.debug(p_message=>'save_relatobj_pvt(+)',
1282 p_prefix=>l_debug_prefix,
1283 p_msg_level=>fnd_log.level_procedure);
1284 END IF;
1285
1286 IF(p_created_by_module IS NULL) THEN
1287 l_created_by_module := 'BO_API';
1288 ELSE
1289 l_created_by_module := p_created_by_module;
1290 END IF;
1291
1292 IF(p_rel_obj.parent_object_type = 'ORG') THEN
1293 l_subject_type := 'ORGANIZATION';
1294 ELSE
1295 l_subject_type := p_rel_obj.parent_object_type;
1296 END IF;
1297 IF(p_rel_obj.related_object_type = 'ORG') THEN
1298 l_object_type := 'ORGANIZATION';
1299 ELSE
1300 l_object_type := p_rel_obj.related_object_type;
1301 END IF;
1302
1303 IF(p_rel_obj.relationship_id IS NOT NULL) THEN
1304 -- for update, get object version number of relationship and relationship party
1305 OPEN get_rel_by_id(p_rel_obj.relationship_id);
1306 FETCH get_rel_by_id INTO x_relationship_id, l_ovn, l_povn;
1307 CLOSE get_rel_by_id;
1308 END IF;
1309
1310 assign_relationship_rec(
1311 p_relationship_obj => p_rel_obj,
1312 p_subject_id => p_rel_obj.parent_object_id,
1313 p_subject_type => l_subject_type,
1314 p_object_id => p_rel_obj.related_object_id,
1315 p_object_type => l_object_type,
1316 px_relationship_rec => l_rel_rec
1317 );
1318
1319 IF(p_rel_obj.relationship_id IS NULL) THEN
1320 l_rel_rec.created_by_module := l_created_by_module;
1321 HZ_RELATIONSHIP_V2PUB.create_relationship(
1322 p_relationship_rec => l_rel_rec,
1323 x_relationship_id => x_relationship_id,
1324 x_party_id => l_party_id,
1325 x_party_number => l_party_number,
1326 x_return_status => x_return_status,
1327 x_msg_count => x_msg_count,
1328 x_msg_data => x_msg_data
1329 );
1330
1331 -- assign relationship_id
1332 p_rel_obj.relationship_id := x_relationship_id;
1333 ELSE
1334 HZ_RELATIONSHIP_V2PUB.update_relationship(
1335 p_relationship_rec => l_rel_rec,
1336 p_object_version_number => l_ovn,
1337 p_party_object_version_number => l_povn,
1338 x_return_status => x_return_status,
1339 x_msg_count => x_msg_count,
1340 x_msg_data => x_msg_data
1341 );
1342
1343 -- assign relationship_id
1344 p_rel_obj.relationship_id := x_relationship_id;
1345 END IF;
1346
1347 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1348 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1349 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_relationship_obj, subject id: '||p_rel_obj.parent_object_id||' object id: '||p_rel_obj.related_object_id,
1350 p_prefix=>l_debug_prefix,
1351 p_msg_level=>fnd_log.level_procedure);
1352 END IF;
1353 RAISE FND_API.G_EXC_ERROR;
1354 END IF;
1355
1356 -- Debug info.
1357 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1358 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1359 p_msg_data=>x_msg_data,
1360 p_msg_type=>'WARNING',
1361 p_msg_level=>fnd_log.level_exception);
1362 END IF;
1363 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1364 hz_utility_v2pub.debug(p_message=>'save_relatobj_pvt(-)',
1365 p_prefix=>l_debug_prefix,
1366 p_msg_level=>fnd_log.level_procedure);
1367 END IF;
1368 EXCEPTION
1369 WHEN fnd_api.g_exc_error THEN
1370 ROLLBACK TO save_relatobj_pvt;
1371 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1372 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1373 FND_MSG_PUB.ADD;
1374
1375 x_return_status := fnd_api.g_ret_sts_error;
1376
1377 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1378 p_count => x_msg_count,
1379 p_data => x_msg_data);
1380
1381 -- Debug info.
1382 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1383 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1384 p_msg_data=>x_msg_data,
1385 p_msg_type=>'ERROR',
1386 p_msg_level=>fnd_log.level_error);
1387 END IF;
1388 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1389 hz_utility_v2pub.debug(p_message=>'save_relatobj_pvt(-)',
1390 p_prefix=>l_debug_prefix,
1391 p_msg_level=>fnd_log.level_procedure);
1392 END IF;
1393 WHEN fnd_api.g_exc_unexpected_error THEN
1394 ROLLBACK TO save_relatobj_pvt;
1395 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1396 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1397 FND_MSG_PUB.ADD;
1398
1399 x_return_status := fnd_api.g_ret_sts_unexp_error;
1400
1401 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1402 p_count => x_msg_count,
1403 p_data => x_msg_data);
1404
1405 -- Debug info.
1406 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1407 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1408 p_msg_data=>x_msg_data,
1409 p_msg_type=>'UNEXPECTED ERROR',
1410 p_msg_level=>fnd_log.level_error);
1411 END IF;
1412 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1413 hz_utility_v2pub.debug(p_message=>'save_relatobj_pvt(-)',
1414 p_prefix=>l_debug_prefix,
1415 p_msg_level=>fnd_log.level_procedure);
1416 END IF;
1417
1418 WHEN OTHERS THEN
1419 ROLLBACK TO save_relatobj_pvt;
1420 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1421 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_RELATIONSHIPS');
1422 FND_MSG_PUB.ADD;
1423
1424 x_return_status := fnd_api.g_ret_sts_unexp_error;
1425
1426 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1427 fnd_message.set_token('ERROR' ,SQLERRM);
1428 fnd_msg_pub.add;
1429
1430 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1431 p_count => x_msg_count,
1432 p_data => x_msg_data);
1433
1434 -- Debug info.
1435 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1436 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1437 p_msg_data=>x_msg_data,
1438 p_msg_type=>'SQL ERROR',
1439 p_msg_level=>fnd_log.level_error);
1440 END IF;
1441 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1442 hz_utility_v2pub.debug(p_message=>'save_relatobj_pvt(-)',
1443 p_prefix=>l_debug_prefix,
1444 p_msg_level=>fnd_log.level_procedure);
1445 END IF;
1446 END save_relationship_obj;
1447
1448 -- PROCEDURE get_relationship_obj
1449 --
1450 -- DESCRIPTION
1451 -- Get relationship.
1452 --
1453 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1454 --
1455 -- ARGUMENTS
1456 -- IN:
1457 -- p_init_msg_list Initialize message stack if it is set to FND_API.G_TRUE. Default is FND_API.G_FALSE.
1458 -- p_relationship_id Relationship Id.
1459 -- OUT:
1460 -- x_relationship_obj Relationship object.
1461 -- x_return_status Return status after the call. The status can
1462 -- be fnd_api.g_ret_sts_success (success),
1463 -- fnd_api.g_ret_sts_error (error),
1464 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1465 -- x_msg_count Number of messages in message stack.
1466 -- x_msg_data Message text if x_msg_count is 1.
1467 --
1468 -- NOTES
1469 --
1470 -- MODIFICATION HISTORY
1471 --
1472 -- 14-DEC-2004 Arnold Ng Created.
1473 --
1474
1475 PROCEDURE get_relationship_obj(
1476 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1477 p_relationship_id IN NUMBER,
1478 x_relationship_obj OUT NOCOPY HZ_RELATIONSHIP_OBJ,
1479 x_return_status OUT NOCOPY VARCHAR2,
1480 x_msg_count OUT NOCOPY NUMBER,
1481 x_msg_data OUT NOCOPY VARCHAR2
1482 ) IS
1483 l_debug_prefix VARCHAR2(30) := '';
1484
1485 CURSOR c1(l_relationship_id NUMBER) IS
1486 SELECT HZ_RELATIONSHIP_OBJ(
1487 NULL, -- ACTION_TYPE
1488 NULL, --COMMON_OBJ_ID
1489 RELATIONSHIP_ID,
1490 DECODE(SUBJECT_TYPE, 'ORGANIZATION', 'ORG', SUBJECT_TYPE),
1491 SUBJECT_ID,
1492 OBJECT_ID,
1493 DECODE(OBJECT_TYPE, 'ORGANIZATION', 'ORG', OBJECT_TYPE),
1494 NULL, --OBJECT_ORIG_SYSTEM_REFERENCE,
1495 NULL, --OBJECT_ORIG_SYSTEM,
1496 RELATIONSHIP_CODE,
1497 RELATIONSHIP_TYPE,
1498 COMMENTS,
1499 START_DATE,
1500 END_DATE,
1501 STATUS,
1502 ATTRIBUTE_CATEGORY,
1503 ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5,
1504 ATTRIBUTE6, ATTRIBUTE7, ATTRIBUTE8, ATTRIBUTE9, ATTRIBUTE10,
1505 ATTRIBUTE11, ATTRIBUTE12, ATTRIBUTE13, ATTRIBUTE14, ATTRIBUTE15,
1506 ATTRIBUTE16, ATTRIBUTE17, ATTRIBUTE18, ATTRIBUTE19, ATTRIBUTE20,
1507 PROGRAM_UPDATE_DATE,
1508 CREATED_BY_MODULE,
1509 HZ_EXTRACT_BO_UTIL_PVT.GET_USER_NAME(CREATED_BY),
1510 CREATION_DATE,
1511 LAST_UPDATE_DATE,
1512 HZ_EXTRACT_BO_UTIL_PVT.GET_USER_NAME(LAST_UPDATED_BY),
1513 ADDITIONAL_INFORMATION1, ADDITIONAL_INFORMATION2,
1514 ADDITIONAL_INFORMATION3, ADDITIONAL_INFORMATION4,
1515 ADDITIONAL_INFORMATION5, ADDITIONAL_INFORMATION6,
1516 ADDITIONAL_INFORMATION7, ADDITIONAL_INFORMATION8,
1517 ADDITIONAL_INFORMATION9, ADDITIONAL_INFORMATION10,
1518 ADDITIONAL_INFORMATION11, ADDITIONAL_INFORMATION12,
1519 ADDITIONAL_INFORMATION13, ADDITIONAL_INFORMATION14,
1520 ADDITIONAL_INFORMATION15, ADDITIONAL_INFORMATION16,
1521 ADDITIONAL_INFORMATION17, ADDITIONAL_INFORMATION18,
1522 ADDITIONAL_INFORMATION19, ADDITIONAL_INFORMATION20,
1523 ADDITIONAL_INFORMATION21, ADDITIONAL_INFORMATION22,
1524 ADDITIONAL_INFORMATION23, ADDITIONAL_INFORMATION24,
1525 ADDITIONAL_INFORMATION25, ADDITIONAL_INFORMATION26,
1526 ADDITIONAL_INFORMATION27, ADDITIONAL_INFORMATION28,
1527 ADDITIONAL_INFORMATION29, ADDITIONAL_INFORMATION30,
1528 PERCENTAGE_OWNERSHIP,
1529 ACTUAL_CONTENT_SOURCE,
1530 CAST(MULTISET (
1531 SELECT HZ_ORIG_SYS_REF_OBJ(
1532 NULL, --P_ACTION_TYPE,
1533 ORIG_SYSTEM_REF_ID,
1534 ORIG_SYSTEM,
1535 ORIG_SYSTEM_REFERENCE,
1536 HZ_EXTRACT_BO_UTIL_PVT.get_parent_object_type(OWNER_TABLE_NAME,OWNER_TABLE_ID),
1537 OWNER_TABLE_ID,
1538 STATUS,
1539 REASON_CODE,
1540 OLD_ORIG_SYSTEM_REFERENCE,
1541 START_DATE_ACTIVE,
1542 END_DATE_ACTIVE,
1543 PROGRAM_UPDATE_DATE,
1544 CREATED_BY_MODULE,
1545 HZ_EXTRACT_BO_UTIL_PVT.GET_USER_NAME(CREATED_BY),
1546 CREATION_DATE,
1547 LAST_UPDATE_DATE,
1548 HZ_EXTRACT_BO_UTIL_PVT.GET_USER_NAME(LAST_UPDATED_BY),
1549 ATTRIBUTE_CATEGORY,
1550 ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5,
1551 ATTRIBUTE6, ATTRIBUTE7, ATTRIBUTE8, ATTRIBUTE9, ATTRIBUTE10,
1552 ATTRIBUTE11, ATTRIBUTE12, ATTRIBUTE13, ATTRIBUTE14, ATTRIBUTE15,
1553 ATTRIBUTE16, ATTRIBUTE17, ATTRIBUTE18, ATTRIBUTE19, ATTRIBUTE20)
1554 FROM HZ_ORIG_SYS_REFERENCES OSR
1555 WHERE OSR.OWNER_TABLE_ID = REL.SUBJECT_ID
1556 AND OWNER_TABLE_NAME = 'HZ_PARTIES'
1557 AND STATUS = 'A') AS HZ_ORIG_SYS_REF_OBJ_TBL))
1558 FROM HZ_RELATIONSHIPS REL
1559 WHERE RELATIONSHIP_ID = l_relationship_id
1560 AND DIRECTIONAL_FLAG = 'F';
1561
1562 BEGIN
1563 -- initialize API return status to success.
1564 x_return_status := FND_API.G_RET_STS_SUCCESS;
1565
1566 -- Initialize message list if p_init_msg_list is set to TRUE
1567 IF FND_API.to_Boolean(p_init_msg_list) THEN
1568 FND_MSG_PUB.initialize;
1569 END IF;
1570
1571 -- Debug info.
1572 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1573 hz_utility_v2pub.debug(p_message=>'hz_party_bo_pvt.get_relationship_obj (+)',
1574 p_prefix=>l_debug_prefix,
1575 p_msg_level=>fnd_log.level_procedure);
1576 END IF;
1577
1578 OPEN c1(p_relationship_id);
1579 FETCH c1 into x_relationship_obj;
1580 CLOSE c1;
1581
1582 -- Debug info.
1583 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1584 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1585 p_msg_data=>x_msg_data,
1586 p_msg_type=>'WARNING',
1587 p_msg_level=>fnd_log.level_exception);
1588 END IF;
1589
1590 -- Debug info.
1591 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1592 hz_utility_v2pub.debug(p_message=>'hz_party_bo_pvt.get_relationship_obj (-)',
1593 p_prefix=>l_debug_prefix,
1594 p_msg_level=>fnd_log.level_procedure);
1595 END IF;
1596 EXCEPTION
1597 WHEN fnd_api.g_exc_error THEN
1598 x_return_status := fnd_api.g_ret_sts_error;
1599 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1600 p_count => x_msg_count,
1601 p_data => x_msg_data);
1602
1603 -- Debug info.
1604 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1605 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1606 p_msg_data=>x_msg_data,
1607 p_msg_type=>'ERROR',
1608 p_msg_level=>fnd_log.level_error);
1609 END IF;
1610 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1611 hz_utility_v2pub.debug(p_message=>'get_relationship_obj (-)',
1612 p_prefix=>l_debug_prefix,
1613 p_msg_level=>fnd_log.level_procedure);
1614 END IF;
1615 WHEN fnd_api.g_exc_unexpected_error THEN
1616 x_return_status := fnd_api.g_ret_sts_unexp_error;
1617 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1618 p_count => x_msg_count,
1619 p_data => x_msg_data);
1620
1621 -- Debug info.
1622 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1623 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1624 p_msg_data=>x_msg_data,
1625 p_msg_type=>'UNEXPECTED ERROR',
1626 p_msg_level=>fnd_log.level_error);
1627 END IF;
1628 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1629 hz_utility_v2pub.debug(p_message=>'get_relationship_obj (-)',
1630 p_prefix=>l_debug_prefix,
1631 p_msg_level=>fnd_log.level_procedure);
1632 END IF;
1633
1634 WHEN OTHERS THEN
1635 x_return_status := fnd_api.g_ret_sts_unexp_error;
1636
1637 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1638 fnd_message.set_token('ERROR' ,SQLERRM);
1639 fnd_msg_pub.add;
1640
1641 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1642 p_count => x_msg_count,
1643 p_data => x_msg_data);
1644
1645 -- Debug info.
1646 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1647 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1648 p_msg_data=>x_msg_data,
1649 p_msg_type=>'SQL ERROR',
1650 p_msg_level=>fnd_log.level_error);
1651 END IF;
1652 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1653 hz_utility_v2pub.debug(p_message=>'get_relationship_obj (-)',
1654 p_prefix=>l_debug_prefix,
1655 p_msg_level=>fnd_log.level_procedure);
1656 END IF;
1657 END get_relationship_obj;
1658
1659 -- PROCEDURE create_classifications
1660 --
1661 -- DESCRIPTION
1662 -- Create classifications.
1663 --
1664 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1665 --
1666 -- ARGUMENTS
1667 -- IN:
1668 -- p_code_assign_objs List of classification objects.
1669 -- PROCEDURE create_classifications
1670 --
1671 -- DESCRIPTION
1672 -- Create classifications.
1673 --
1674 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1675 --
1676 -- ARGUMENTS
1677 -- IN:
1678 -- p_code_assign_objs List of classification objects.
1679 -- p_owner_table_name Owner table name.
1680 -- p_owner_table_id Owner table Id.
1681 -- OUT:
1682 -- x_return_status Return status after the call. The status can
1683 -- be fnd_api.g_ret_sts_success (success),
1684 -- fnd_api.g_ret_sts_error (error),
1685 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1686 -- x_msg_count Number of messages in message stack.
1687 -- x_msg_data Message text if x_msg_count is 1.
1688 --
1689 -- NOTES
1690 --
1691 -- MODIFICATION HISTORY
1692 --
1693 -- 14-DEC-2004 Arnold Ng Created.
1694 --
1695
1696 PROCEDURE create_classifications(
1697 p_code_assign_objs IN OUT NOCOPY hz_code_assignment_obj_tbl,
1698 p_owner_table_name IN VARCHAR2,
1699 p_owner_table_id IN NUMBER,
1700 x_return_status OUT NOCOPY VARCHAR2,
1701 x_msg_count OUT NOCOPY NUMBER,
1702 x_msg_data OUT NOCOPY VARCHAR2
1703 )IS
1704 l_debug_prefix VARCHAR2(30);
1705 l_code_assign_id NUMBER;
1706 l_code_assign_rec HZ_CLASSIFICATION_V2PUB.CODE_ASSIGNMENT_REC_TYPE;
1707 BEGIN
1708 -- Standard start of API savepoint
1709 SAVEPOINT create_classifications_pvt;
1710
1711 -- initialize API return status to success.
1712 x_return_status := FND_API.G_RET_STS_SUCCESS;
1713
1714 -- Debug info.
1715 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1716 hz_utility_v2pub.debug(p_message=>'create_classifications(+)',
1717 p_prefix=>l_debug_prefix,
1718 p_msg_level=>fnd_log.level_procedure);
1719 END IF;
1720
1721 -- Create code assignments
1722 FOR i IN 1..p_code_assign_objs.COUNT LOOP
1723 assign_code_assign_rec(
1724 p_code_assign_obj => p_code_assign_objs(i),
1725 p_owner_table_name => p_owner_table_name,
1726 p_owner_table_id => p_owner_table_id,
1727 px_code_assign_rec => l_code_assign_rec
1728 );
1729
1730 HZ_CLASSIFICATION_V2PUB.create_code_assignment(
1731 p_code_assignment_rec => l_code_assign_rec,
1732 x_code_assignment_id => l_code_assign_id,
1733 x_return_status => x_return_status,
1734 x_msg_count => x_msg_count,
1735 x_msg_data => x_msg_data
1736 );
1737
1738 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1739 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1740 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.create_classifications, owner table name: '||p_owner_table_name||' owner table id: '||p_owner_table_id,
1741 p_prefix=>l_debug_prefix,
1742 p_msg_level=>fnd_log.level_procedure);
1743 END IF;
1744 RAISE FND_API.G_EXC_ERROR;
1745 END IF;
1746
1747 -- assign code_assignment_id
1748 p_code_assign_objs(i).code_assignment_id := l_code_assign_id;
1749 END LOOP;
1750
1751 -- Debug info.
1752 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1753 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1754 p_msg_data=>x_msg_data,
1755 p_msg_type=>'WARNING',
1756 p_msg_level=>fnd_log.level_exception);
1757 END IF;
1758 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1759 hz_utility_v2pub.debug(p_message=>'create_classifications(-)',
1760 p_prefix=>l_debug_prefix,
1761 p_msg_level=>fnd_log.level_procedure);
1762 END IF;
1763 EXCEPTION
1764 WHEN fnd_api.g_exc_error THEN
1765 ROLLBACK TO create_classifications_pvt;
1766 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1767 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
1768 FND_MSG_PUB.ADD;
1769
1770 x_return_status := fnd_api.g_ret_sts_error;
1771
1772 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1773 p_count => x_msg_count,
1774 p_data => x_msg_data);
1775
1776 -- Debug info.
1777 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1778 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1779 p_msg_data=>x_msg_data,
1780 p_msg_type=>'ERROR',
1781 p_msg_level=>fnd_log.level_error);
1782 END IF;
1783 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1784 hz_utility_v2pub.debug(p_message=>'create_classifications(-)',
1785 p_prefix=>l_debug_prefix,
1786 p_msg_level=>fnd_log.level_procedure);
1787 END IF;
1788 WHEN fnd_api.g_exc_unexpected_error THEN
1789 ROLLBACK TO create_classifications_pvt;
1790 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1791 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
1792 FND_MSG_PUB.ADD;
1793
1794 x_return_status := fnd_api.g_ret_sts_unexp_error;
1795
1796 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1797 p_count => x_msg_count,
1798 p_data => x_msg_data);
1799
1800 -- Debug info.
1801 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1802 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1803 p_msg_data=>x_msg_data,
1804 p_msg_type=>'UNEXPECTED ERROR',
1805 p_msg_level=>fnd_log.level_error);
1806 END IF;
1807 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1808 hz_utility_v2pub.debug(p_message=>'create_classifications(-)',
1809 p_prefix=>l_debug_prefix,
1810 p_msg_level=>fnd_log.level_procedure);
1811 END IF;
1812
1813 WHEN OTHERS THEN
1814 ROLLBACK TO create_classifications_pvt;
1815 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1816 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
1817 FND_MSG_PUB.ADD;
1818
1819 x_return_status := fnd_api.g_ret_sts_unexp_error;
1820
1821 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1822 fnd_message.set_token('ERROR' ,SQLERRM);
1823 fnd_msg_pub.add;
1824
1825 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1826 p_count => x_msg_count,
1827 p_data => x_msg_data);
1828
1829 -- Debug info.
1830 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1831 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1832 p_msg_data=>x_msg_data,
1833 p_msg_type=>'SQL ERROR',
1834 p_msg_level=>fnd_log.level_error);
1835 END IF;
1836 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1837 hz_utility_v2pub.debug(p_message=>'create_classifications(-)',
1838 p_prefix=>l_debug_prefix,
1839 p_msg_level=>fnd_log.level_procedure);
1840 END IF;
1841 END create_classifications;
1842
1843 -- PROCEDURE save_classifications
1844 --
1845 -- DESCRIPTION
1846 -- Create or update classifications.
1847 --
1848 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1849 --
1850 -- ARGUMENTS
1851 -- IN:
1852 -- p_code_assign_objs List of classification objects.
1853 -- p_owner_table_name Owner table name.
1854 -- p_owner_table_id Owner table Id.
1855 -- OUT:
1856 -- x_return_status Return status after the call. The status can
1857 -- be fnd_api.g_ret_sts_success (success),
1858 -- fnd_api.g_ret_sts_error (error),
1859 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1860 -- x_msg_count Number of messages in message stack.
1861 -- x_msg_data Message text if x_msg_count is 1.
1862 --
1863 -- NOTES
1864 --
1865 -- MODIFICATION HISTORY
1866 --
1867 -- 14-DEC-2004 Arnold Ng Created.
1868 --
1869
1870 PROCEDURE save_classifications(
1871 p_code_assign_objs IN OUT NOCOPY hz_code_assignment_obj_tbl,
1872 p_owner_table_name IN VARCHAR2,
1873 p_owner_table_id IN NUMBER,
1874 x_return_status OUT NOCOPY VARCHAR2,
1875 x_msg_count OUT NOCOPY NUMBER,
1876 x_msg_data OUT NOCOPY VARCHAR2
1877 ) IS
1878 l_debug_prefix VARCHAR2(30);
1879 l_code_assign_id NUMBER;
1880 l_code_assign_rec HZ_CLASSIFICATION_V2PUB.CODE_ASSIGNMENT_REC_TYPE;
1881 l_ovn NUMBER := NULL;
1882 BEGIN
1883 -- Standard start of API savepoint
1884 SAVEPOINT save_classifications_pvt;
1885
1886 -- initialize API return status to success.
1887 x_return_status := FND_API.G_RET_STS_SUCCESS;
1888
1889 -- Debug info.
1890 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1891 hz_utility_v2pub.debug(p_message=>'save_classifications(+)',
1892 p_prefix=>l_debug_prefix,
1893 p_msg_level=>fnd_log.level_procedure);
1894 END IF;
1895
1896 -- Create/Update classification
1897 FOR i IN 1..p_code_assign_objs.COUNT LOOP
1898 assign_code_assign_rec(
1899 p_code_assign_obj => p_code_assign_objs(i),
1900 p_owner_table_name => p_owner_table_name,
1901 p_owner_table_id => p_owner_table_id,
1902 px_code_assign_rec => l_code_assign_rec
1903 );
1904
1905 -- check if the code assignment record is create or update
1906 hz_registry_validate_bo_pvt.check_code_assign_op(
1907 p_owner_table_name => p_owner_table_name,
1908 p_owner_table_id => p_owner_table_id,
1909 px_code_assignment_id => l_code_assign_rec.code_assignment_id,
1910 p_class_category => l_code_assign_rec.class_category,
1911 p_class_code => l_code_assign_rec.class_code,
1912 x_object_version_number => l_ovn
1913 );
1914
1915 IF (l_ovn = -1) THEN
1916 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1917 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.check_code_assign_op, owner table name: '||p_owner_table_name||' owner table id: '||p_owner_table_id,
1918 p_prefix=>l_debug_prefix,
1919 p_msg_level=>fnd_log.level_procedure);
1920 END IF;
1921 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
1922 FND_MSG_PUB.ADD;
1923 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1924 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
1925 FND_MSG_PUB.ADD;
1926 RAISE FND_API.G_EXC_ERROR;
1927 END IF;
1928
1929 IF(l_ovn IS NULL) THEN
1930 HZ_CLASSIFICATION_V2PUB.create_code_assignment(
1931 p_code_assignment_rec => l_code_assign_rec,
1932 x_return_status => x_return_status,
1933 x_msg_count => x_msg_count,
1934 x_msg_data => x_msg_data,
1935 x_code_assignment_id => l_code_assign_id
1936 );
1937
1938 -- assign code_assignment_id
1939 p_code_assign_objs(i).code_assignment_id := l_code_assign_id;
1940 ELSE
1941 -- clean up created_by_module for update
1942 l_code_assign_rec.created_by_module := NULL;
1943 HZ_CLASSIFICATION_V2PUB.update_code_assignment(
1944 p_code_assignment_rec => l_code_assign_rec,
1945 p_object_version_number => l_ovn,
1946 x_return_status => x_return_status,
1947 x_msg_count => x_msg_count,
1948 x_msg_data => x_msg_data
1949 );
1950
1951 -- assign code_assignment_id
1952 p_code_assign_objs(i).code_assignment_id := l_code_assign_rec.code_assignment_id;
1953 END IF;
1954
1955 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1956 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1957 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_classifications, owner table name: '||p_owner_table_name||' owner table id: '||p_owner_table_id,
1958 p_prefix=>l_debug_prefix,
1959 p_msg_level=>fnd_log.level_procedure);
1960 END IF;
1961 RAISE FND_API.G_EXC_ERROR;
1962 END IF;
1963 END LOOP;
1964
1965 -- Debug info.
1966 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1967 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1968 p_msg_data=>x_msg_data,
1969 p_msg_type=>'WARNING',
1970 p_msg_level=>fnd_log.level_exception);
1971 END IF;
1972 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1973 hz_utility_v2pub.debug(p_message=>'save_classifications(-)',
1974 p_prefix=>l_debug_prefix,
1975 p_msg_level=>fnd_log.level_procedure);
1976 END IF;
1977 EXCEPTION
1978 WHEN fnd_api.g_exc_error THEN
1979 ROLLBACK TO save_classifications_pvt;
1980 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1981 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
1982 FND_MSG_PUB.ADD;
1983
1984 x_return_status := fnd_api.g_ret_sts_error;
1985
1986 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1987 p_count => x_msg_count,
1988 p_data => x_msg_data);
1989
1990 -- Debug info.
1991 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1992 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1993 p_msg_data=>x_msg_data,
1994 p_msg_type=>'ERROR',
1995 p_msg_level=>fnd_log.level_error);
1996 END IF;
1997 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1998 hz_utility_v2pub.debug(p_message=>'save_classifications(-)',
1999 p_prefix=>l_debug_prefix,
2000 p_msg_level=>fnd_log.level_procedure);
2001 END IF;
2002 WHEN fnd_api.g_exc_unexpected_error THEN
2003 ROLLBACK TO save_classifications_pvt;
2004 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2005 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
2006 FND_MSG_PUB.ADD;
2007
2008 x_return_status := fnd_api.g_ret_sts_unexp_error;
2009
2010 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2011 p_count => x_msg_count,
2012 p_data => x_msg_data);
2013
2014 -- Debug info.
2015 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2016 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2017 p_msg_data=>x_msg_data,
2018 p_msg_type=>'UNEXPECTED ERROR',
2019 p_msg_level=>fnd_log.level_error);
2020 END IF;
2021 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2022 hz_utility_v2pub.debug(p_message=>'save_classifications(-)',
2023 p_prefix=>l_debug_prefix,
2024 p_msg_level=>fnd_log.level_procedure);
2025 END IF;
2026 WHEN OTHERS THEN
2027 ROLLBACK TO save_classifications_pvt;
2028 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2029 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CODE_ASSIGNMENTS');
2030 FND_MSG_PUB.ADD;
2031
2032 x_return_status := fnd_api.g_ret_sts_unexp_error;
2033
2034 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2035 fnd_message.set_token('ERROR' ,SQLERRM);
2036 fnd_msg_pub.add;
2037
2038 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2039 p_count => x_msg_count,
2040 p_data => x_msg_data);
2041
2042 -- Debug info.
2043 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2044 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2045 p_msg_data=>x_msg_data,
2046 p_msg_type=>'SQL ERROR',
2047 p_msg_level=>fnd_log.level_error);
2048 END IF;
2049 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2050 hz_utility_v2pub.debug(p_message=>'save_classifications(-)',
2051 p_prefix=>l_debug_prefix,
2052 p_msg_level=>fnd_log.level_procedure);
2053 END IF;
2054 END save_classifications;
2055
2056 -- PROCEDURE create_certifications
2057 --
2058 -- DESCRIPTION
2059 -- Create certifications.
2060 --
2061 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2062 --
2063 -- ARGUMENTS
2064 -- IN:
2065 -- p_cert_objs List of certification objects.
2066 -- p_party_id Party Id.
2067 -- OUT:
2068 -- x_return_status Return status after the call. The status can
2069 -- be fnd_api.g_ret_sts_success (success),
2070 -- fnd_api.g_ret_sts_error (error),
2071 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2072 -- x_msg_count Number of messages in message stack.
2073 -- x_msg_data Message text if x_msg_count is 1.
2074 --
2075 -- NOTES
2076 --
2077 -- MODIFICATION HISTORY
2078 --
2079 -- 14-DEC-2004 Arnold Ng Created.
2080 --
2081
2082 PROCEDURE create_certifications(
2083 p_cert_objs IN OUT NOCOPY hz_certification_obj_tbl,
2084 p_party_id IN NUMBER,
2085 x_return_status OUT NOCOPY VARCHAR2,
2086 x_msg_count OUT NOCOPY NUMBER,
2087 x_msg_data OUT NOCOPY VARCHAR2
2088 )IS
2089 l_debug_prefix VARCHAR2(30);
2090 l_cert_id NUMBER;
2091 l_cert_rec HZ_ORG_INFO_PUB.CERTIFICATIONS_REC_TYPE;
2092 BEGIN
2093 -- Standard start of API savepoint
2094 SAVEPOINT create_certifications_pvt;
2095
2096 -- initialize API return status to success.
2097 x_return_status := FND_API.G_RET_STS_SUCCESS;
2098
2099 -- Debug info.
2100 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2101 hz_utility_v2pub.debug(p_message=>'create_certifications(+)',
2102 p_prefix=>l_debug_prefix,
2103 p_msg_level=>fnd_log.level_procedure);
2104 END IF;
2105
2106 -- Create certification
2107 FOR i IN 1..p_cert_objs.COUNT LOOP
2108 assign_certification_rec(
2109 p_certification_obj => p_cert_objs(i),
2110 p_party_id => p_party_id,
2111 px_certification_rec => l_cert_rec
2112 );
2113
2114 HZ_ORG_INFO_PUB.create_certifications(
2115 p_api_version => 1.0,
2116 p_certifications_rec => l_cert_rec,
2117 x_return_status => x_return_status,
2118 x_msg_count => x_msg_count,
2119 x_msg_data => x_msg_data,
2120 x_certification_id => l_cert_id
2121 );
2122
2123 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2124 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2125 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.create_certifications, party id: '||p_party_id,
2126 p_prefix=>l_debug_prefix,
2127 p_msg_level=>fnd_log.level_procedure);
2128 END IF;
2129 RAISE FND_API.G_EXC_ERROR;
2130 END IF;
2131
2132 -- assign certification_id
2133 p_cert_objs(i).certification_id := l_cert_id;
2134 END LOOP;
2135
2136 -- Debug info.
2137 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2138 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2139 p_msg_data=>x_msg_data,
2140 p_msg_type=>'WARNING',
2141 p_msg_level=>fnd_log.level_exception);
2142 END IF;
2143 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2144 hz_utility_v2pub.debug(p_message=>'create_certifications(-)',
2145 p_prefix=>l_debug_prefix,
2146 p_msg_level=>fnd_log.level_procedure);
2147 END IF;
2148 EXCEPTION
2149 WHEN fnd_api.g_exc_error THEN
2150 ROLLBACK TO create_certifications_pvt;
2151 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2152 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2153 FND_MSG_PUB.ADD;
2154
2155 x_return_status := fnd_api.g_ret_sts_error;
2156
2157 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2158 p_count => x_msg_count,
2159 p_data => x_msg_data);
2160
2161 -- Debug info.
2162 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2163 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2164 p_msg_data=>x_msg_data,
2165 p_msg_type=>'ERROR',
2166 p_msg_level=>fnd_log.level_error);
2167 END IF;
2168 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2169 hz_utility_v2pub.debug(p_message=>'create_certifications(-)',
2170 p_prefix=>l_debug_prefix,
2171 p_msg_level=>fnd_log.level_procedure);
2172 END IF;
2173 WHEN fnd_api.g_exc_unexpected_error THEN
2174 ROLLBACK TO create_certifications_pvt;
2175 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2176 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2177 FND_MSG_PUB.ADD;
2178
2179 x_return_status := fnd_api.g_ret_sts_unexp_error;
2180
2181 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2182 p_count => x_msg_count,
2183 p_data => x_msg_data);
2184
2185 -- Debug info.
2186 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2187 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2188 p_msg_data=>x_msg_data,
2189 p_msg_type=>'UNEXPECTED ERROR',
2190 p_msg_level=>fnd_log.level_error);
2191 END IF;
2192 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2193 hz_utility_v2pub.debug(p_message=>'create_certifications(-)',
2194 p_prefix=>l_debug_prefix,
2195 p_msg_level=>fnd_log.level_procedure);
2196 END IF;
2197
2198 WHEN OTHERS THEN
2199 ROLLBACK TO create_certifications_pvt;
2200 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2201 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2202 FND_MSG_PUB.ADD;
2203
2204 x_return_status := fnd_api.g_ret_sts_unexp_error;
2205
2206 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2207 fnd_message.set_token('ERROR' ,SQLERRM);
2208 fnd_msg_pub.add;
2209
2210 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2211 p_count => x_msg_count,
2212 p_data => x_msg_data);
2213
2214 -- Debug info.
2215 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2216 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2217 p_msg_data=>x_msg_data,
2218 p_msg_type=>'SQL ERROR',
2219 p_msg_level=>fnd_log.level_error);
2220 END IF;
2221 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2222 hz_utility_v2pub.debug(p_message=>'create_certifications(-)',
2223 p_prefix=>l_debug_prefix,
2224 p_msg_level=>fnd_log.level_procedure);
2225 END IF;
2226 END create_certifications;
2227
2228 -- PROCEDURE save_certifications
2229 --
2230 -- DESCRIPTION
2231 -- Create or update certifications.
2232 --
2233 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2234 --
2235 -- ARGUMENTS
2236 -- IN:
2237 -- p_cert_objs List of certification objects.
2238 -- p_party_id Party Id.
2239 -- OUT:
2240 -- x_return_status Return status after the call. The status can
2241 -- be fnd_api.g_ret_sts_success (success),
2242 -- fnd_api.g_ret_sts_error (error),
2243 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2244 -- x_msg_count Number of messages in message stack.
2245 -- x_msg_data Message text if x_msg_count is 1.
2246 --
2247 -- NOTES
2248 --
2249 -- MODIFICATION HISTORY
2250 --
2251 -- 14-DEC-2004 Arnold Ng Created.
2252 --
2253
2254 PROCEDURE save_certifications(
2255 p_cert_objs IN OUT NOCOPY hz_certification_obj_tbl,
2256 p_party_id IN NUMBER,
2257 x_return_status OUT NOCOPY VARCHAR2,
2258 x_msg_count OUT NOCOPY NUMBER,
2259 x_msg_data OUT NOCOPY VARCHAR2
2260 ) IS
2261 l_debug_prefix VARCHAR2(30);
2262 l_cert_id NUMBER;
2263 l_cert_rec HZ_ORG_INFO_PUB.CERTIFICATIONS_REC_TYPE;
2264 l_lud DATE;
2265 BEGIN
2266 -- Standard start of API savepoint
2267 SAVEPOINT save_certifications_pvt;
2268
2269 -- initialize API return status to success.
2270 x_return_status := FND_API.G_RET_STS_SUCCESS;
2271
2272 -- Debug info.
2273 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2274 hz_utility_v2pub.debug(p_message=>'save_certifications(+)',
2275 p_prefix=>l_debug_prefix,
2276 p_msg_level=>fnd_log.level_procedure);
2277 END IF;
2278
2279 -- Create/Update classification
2280 FOR i IN 1..p_cert_objs.COUNT LOOP
2281 assign_certification_rec(
2282 p_certification_obj => p_cert_objs(i),
2283 p_party_id => p_party_id,
2284 px_certification_rec => l_cert_rec
2285 );
2286
2287 -- check if the code assignment record is create or update
2288 hz_registry_validate_bo_pvt.check_certification_op(
2289 p_party_id => p_party_id,
2290 px_certification_id => l_cert_rec.certification_id,
2291 p_certification_name => l_cert_rec.certification_name,
2292 x_last_update_date => l_lud,
2293 x_return_status => x_return_status
2294 );
2295
2296 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2297 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2298 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.check_certification_op, party id: '||p_party_id,
2299 p_prefix=>l_debug_prefix,
2300 p_msg_level=>fnd_log.level_procedure);
2301 END IF;
2302 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
2303 FND_MSG_PUB.ADD;
2304 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2305 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2306 FND_MSG_PUB.ADD;
2307 RAISE FND_API.G_EXC_ERROR;
2308 END IF;
2309
2310 IF(l_lud IS NULL) THEN
2311 HZ_ORG_INFO_PUB.create_certifications(
2312 p_api_version => 1.0,
2313 p_certifications_rec => l_cert_rec,
2314 x_return_status => x_return_status,
2315 x_msg_count => x_msg_count,
2316 x_msg_data => x_msg_data,
2317 x_certification_id => l_cert_id
2318 );
2319
2320 -- assign certification_id
2321 p_cert_objs(i).certification_id := l_cert_id;
2322 ELSE
2323 HZ_ORG_INFO_PUB.update_certifications(
2324 p_api_version => 1.0,
2325 p_certifications_rec => l_cert_rec,
2326 p_last_update_date => l_lud,
2327 x_return_status => x_return_status,
2328 x_msg_count => x_msg_count,
2329 x_msg_data => x_msg_data
2330 );
2331
2332 -- assign certification_id
2333 p_cert_objs(i).certification_id := l_cert_rec.certification_id;
2334 END IF;
2335
2336 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2337 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2338 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_certifications, party id: '||p_party_id,
2339 p_prefix=>l_debug_prefix,
2340 p_msg_level=>fnd_log.level_procedure);
2341 END IF;
2342 RAISE FND_API.G_EXC_ERROR;
2343 END IF;
2344 END LOOP;
2345
2346 -- Debug info.
2347 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2348 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2349 p_msg_data=>x_msg_data,
2350 p_msg_type=>'WARNING',
2351 p_msg_level=>fnd_log.level_exception);
2352 END IF;
2353 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2354 hz_utility_v2pub.debug(p_message=>'save_certifications(-)',
2355 p_prefix=>l_debug_prefix,
2356 p_msg_level=>fnd_log.level_procedure);
2357 END IF;
2358 EXCEPTION
2359 WHEN fnd_api.g_exc_error THEN
2360 ROLLBACK TO save_certifications_pvt;
2361 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2362 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2363 FND_MSG_PUB.ADD;
2364
2365 x_return_status := fnd_api.g_ret_sts_error;
2366
2367 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2368 p_count => x_msg_count,
2369 p_data => x_msg_data);
2370
2371 -- Debug info.
2372 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2373 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2374 p_msg_data=>x_msg_data,
2375 p_msg_type=>'ERROR',
2376 p_msg_level=>fnd_log.level_error);
2377 END IF;
2378 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2379 hz_utility_v2pub.debug(p_message=>'save_certifications(-)',
2380 p_prefix=>l_debug_prefix,
2381 p_msg_level=>fnd_log.level_procedure);
2382 END IF;
2383 WHEN fnd_api.g_exc_unexpected_error THEN
2384 ROLLBACK TO save_certifications_pvt;
2385 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2386 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2387 FND_MSG_PUB.ADD;
2388
2389 x_return_status := fnd_api.g_ret_sts_unexp_error;
2390
2391 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2392 p_count => x_msg_count,
2393 p_data => x_msg_data);
2394
2395 -- Debug info.
2396 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2397 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2398 p_msg_data=>x_msg_data,
2399 p_msg_type=>'UNEXPECTED ERROR',
2400 p_msg_level=>fnd_log.level_error);
2401 END IF;
2402 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2403 hz_utility_v2pub.debug(p_message=>'save_certifications(-)',
2404 p_prefix=>l_debug_prefix,
2405 p_msg_level=>fnd_log.level_procedure);
2406 END IF;
2407 WHEN OTHERS THEN
2408 ROLLBACK TO save_certifications_pvt;
2409 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2410 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CERTIFICATIONS');
2411 FND_MSG_PUB.ADD;
2412
2413 x_return_status := fnd_api.g_ret_sts_unexp_error;
2414
2415 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2416 fnd_message.set_token('ERROR' ,SQLERRM);
2417 fnd_msg_pub.add;
2418
2419 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2420 p_count => x_msg_count,
2421 p_data => x_msg_data);
2422
2423 -- Debug info.
2424 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2425 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2426 p_msg_data=>x_msg_data,
2427 p_msg_type=>'SQL ERROR',
2428 p_msg_level=>fnd_log.level_error);
2429 END IF;
2430 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2431 hz_utility_v2pub.debug(p_message=>'save_certifications(-)',
2432 p_prefix=>l_debug_prefix,
2433 p_msg_level=>fnd_log.level_procedure);
2434 END IF;
2435 END save_certifications;
2436
2437 -- PROCEDURE create_financial_profiles
2438 --
2439 -- DESCRIPTION
2440 -- Create financial profiles.
2441 --
2442 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2443 --
2444 -- ARGUMENTS
2445 -- IN:
2446 -- p_fin_prof_objs List of financial profile objects.
2447 -- p_party_id Party Id.
2448 -- OUT:
2449 -- x_return_status Return status after the call. The status can
2450 -- be fnd_api.g_ret_sts_success (success),
2451 -- fnd_api.g_ret_sts_error (error),
2452 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2453 -- x_msg_count Number of messages in message stack.
2454 -- x_msg_data Message text if x_msg_count is 1.
2455 --
2456 -- NOTES
2457 --
2458 -- MODIFICATION HISTORY
2459 --
2460 -- 14-DEC-2004 Arnold Ng Created.
2461 --
2462
2463 PROCEDURE create_financial_profiles(
2464 p_fin_prof_objs IN OUT NOCOPY hz_financial_prof_obj_tbl,
2465 p_party_id IN NUMBER,
2466 x_return_status OUT NOCOPY VARCHAR2,
2467 x_msg_count OUT NOCOPY NUMBER,
2468 x_msg_data OUT NOCOPY VARCHAR2
2469 )IS
2470 l_debug_prefix VARCHAR2(30);
2471 l_fin_prof_id NUMBER;
2472 l_fin_prof_rec HZ_PARTY_INFO_PUB.FINANCIAL_PROFILE_REC_TYPE;
2473 BEGIN
2474 -- Standard start of API savepoint
2475 SAVEPOINT create_financial_profiles_pvt;
2476
2477 -- initialize API return status to success.
2478 x_return_status := FND_API.G_RET_STS_SUCCESS;
2479
2480 -- Debug info.
2481 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2482 hz_utility_v2pub.debug(p_message=>'create_financial_profiles(+)',
2483 p_prefix=>l_debug_prefix,
2484 p_msg_level=>fnd_log.level_procedure);
2485 END IF;
2486
2487 -- Create financial profiles
2488 FOR i IN 1..p_fin_prof_objs.COUNT LOOP
2489 assign_financial_prof_rec(
2490 p_financial_prof_obj => p_fin_prof_objs(i),
2491 p_party_id => p_party_id,
2492 px_financial_prof_rec => l_fin_prof_rec
2493 );
2494
2495 HZ_PARTY_INFO_PUB.create_financial_profile(
2496 p_api_version => 1.0,
2497 p_financial_profile_rec => l_fin_prof_rec,
2498 x_return_status => x_return_status,
2499 x_msg_count => x_msg_count,
2500 x_msg_data => x_msg_data,
2501 x_financial_profile_id => l_fin_prof_id
2502 );
2503
2504 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2505 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2506 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.create_financial_profiles, party id: '||p_party_id,
2507 p_prefix=>l_debug_prefix,
2508 p_msg_level=>fnd_log.level_procedure);
2509 END IF;
2510 RAISE FND_API.G_EXC_ERROR;
2511 END IF;
2512
2513 -- assign financial profile id
2514 p_fin_prof_objs(i).financial_profile_id := l_fin_prof_id;
2515 END LOOP;
2516
2517 -- Debug info.
2518 IF fnd_log.level_exception>=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=>'WARNING',
2522 p_msg_level=>fnd_log.level_exception);
2523 END IF;
2524 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2525 hz_utility_v2pub.debug(p_message=>'create_financial_profiles(-)',
2526 p_prefix=>l_debug_prefix,
2527 p_msg_level=>fnd_log.level_procedure);
2528 END IF;
2529 EXCEPTION
2530 WHEN fnd_api.g_exc_error THEN
2531 ROLLBACK TO create_financial_profiles_pvt;
2532 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2533 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2534 FND_MSG_PUB.ADD;
2535
2536 x_return_status := fnd_api.g_ret_sts_error;
2537
2538 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2539 p_count => x_msg_count,
2540 p_data => x_msg_data);
2541
2542 -- Debug info.
2543 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2544 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2545 p_msg_data=>x_msg_data,
2546 p_msg_type=>'ERROR',
2547 p_msg_level=>fnd_log.level_error);
2548 END IF;
2549 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2550 hz_utility_v2pub.debug(p_message=>'create_financial_profiles(-)',
2551 p_prefix=>l_debug_prefix,
2552 p_msg_level=>fnd_log.level_procedure);
2553 END IF;
2554 WHEN fnd_api.g_exc_unexpected_error THEN
2555 ROLLBACK TO create_financial_profiles_pvt;
2556 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2557 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2558 FND_MSG_PUB.ADD;
2559
2560 x_return_status := fnd_api.g_ret_sts_unexp_error;
2561
2562 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2563 p_count => x_msg_count,
2564 p_data => x_msg_data);
2565
2566 -- Debug info.
2567 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2568 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2569 p_msg_data=>x_msg_data,
2570 p_msg_type=>'UNEXPECTED ERROR',
2571 p_msg_level=>fnd_log.level_error);
2572 END IF;
2573 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2574 hz_utility_v2pub.debug(p_message=>'create_financial_profiles(-)',
2575 p_prefix=>l_debug_prefix,
2576 p_msg_level=>fnd_log.level_procedure);
2577 END IF;
2578
2579 WHEN OTHERS THEN
2580 ROLLBACK TO create_financial_profiles_pvt;
2581 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2582 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2583 FND_MSG_PUB.ADD;
2584
2585 x_return_status := fnd_api.g_ret_sts_unexp_error;
2586
2587 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2588 fnd_message.set_token('ERROR' ,SQLERRM);
2589 fnd_msg_pub.add;
2590
2591 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2592 p_count => x_msg_count,
2593 p_data => x_msg_data);
2594
2595 -- Debug info.
2596 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2597 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2598 p_msg_data=>x_msg_data,
2599 p_msg_type=>'SQL ERROR',
2600 p_msg_level=>fnd_log.level_error);
2601 END IF;
2602 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2603 hz_utility_v2pub.debug(p_message=>'create_financial_profiles(-)',
2604 p_prefix=>l_debug_prefix,
2605 p_msg_level=>fnd_log.level_procedure);
2606 END IF;
2607 END create_financial_profiles;
2608
2609 -- PROCEDURE save_financial_profiles
2610 --
2611 -- DESCRIPTION
2612 -- Create or update financial profiles.
2613 --
2614 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2615 --
2616 -- ARGUMENTS
2617 -- IN:
2618 -- p_fin_prof_objs List of financial profile objects.
2619 -- p_party_id Party Id.
2620 -- OUT:
2621 -- x_return_status Return status after the call. The status can
2622 -- be fnd_api.g_ret_sts_success (success),
2623 -- fnd_api.g_ret_sts_error (error),
2624 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2625 -- x_msg_count Number of messages in message stack.
2626 -- x_msg_data Message text if x_msg_count is 1.
2627 --
2628 -- NOTES
2629 --
2630 -- MODIFICATION HISTORY
2631 --
2632 -- 14-DEC-2004 Arnold Ng Created.
2633 --
2634
2635 PROCEDURE save_financial_profiles(
2636 p_fin_prof_objs IN OUT NOCOPY hz_financial_prof_obj_tbl,
2637 p_party_id IN NUMBER,
2638 x_return_status OUT NOCOPY VARCHAR2,
2639 x_msg_count OUT NOCOPY NUMBER,
2640 x_msg_data OUT NOCOPY VARCHAR2
2641 ) IS
2642 l_debug_prefix VARCHAR2(30);
2643 l_fin_prof_id NUMBER;
2644 l_fin_prof_rec HZ_PARTY_INFO_PUB.FINANCIAL_PROFILE_REC_TYPE;
2645 l_lud DATE;
2646 BEGIN
2647 -- Standard start of API savepoint
2648 SAVEPOINT save_financial_profiles_pvt;
2649
2650 -- initialize API return status to success.
2651 x_return_status := FND_API.G_RET_STS_SUCCESS;
2652
2653 -- Debug info.
2654 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2655 hz_utility_v2pub.debug(p_message=>'save_financial_profiles(+)',
2656 p_prefix=>l_debug_prefix,
2657 p_msg_level=>fnd_log.level_procedure);
2658 END IF;
2659
2660 -- Create/Update financial profiles
2661 FOR i IN 1..p_fin_prof_objs.COUNT LOOP
2662 assign_financial_prof_rec(
2663 p_financial_prof_obj => p_fin_prof_objs(i),
2664 p_party_id => p_party_id,
2665 px_financial_prof_rec=> l_fin_prof_rec
2666 );
2667
2668 -- check if the financial profile record is create or update
2669 hz_registry_validate_bo_pvt.check_financial_prof_op(
2670 p_party_id => p_party_id,
2671 p_financial_profile_id => l_fin_prof_rec.financial_profile_id,
2672 x_last_update_date => l_lud,
2673 x_return_status => x_return_status
2674 );
2675
2676 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2677 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2678 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.check_financial_prof_op, financial profile id: '||l_fin_prof_rec.financial_profile_id||', party id: '||p_party_id,
2679 p_prefix=>l_debug_prefix,
2680 p_msg_level=>fnd_log.level_procedure);
2681 END IF;
2682 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
2683 FND_MSG_PUB.ADD;
2684 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2685 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2686 FND_MSG_PUB.ADD;
2687 RAISE FND_API.G_EXC_ERROR;
2688 END IF;
2689
2690 IF(l_lud IS NULL) THEN
2691 HZ_PARTY_INFO_PUB.create_financial_profile(
2692 p_api_version => 1.0,
2693 p_financial_profile_rec => l_fin_prof_rec,
2694 x_return_status => x_return_status,
2695 x_msg_count => x_msg_count,
2696 x_msg_data => x_msg_data,
2697 x_financial_profile_id => l_fin_prof_id
2698 );
2699
2700 -- assign financial_profile_id
2701 p_fin_prof_objs(i).financial_profile_id := l_fin_prof_id;
2702 ELSE
2703 HZ_PARTY_INFO_PUB.update_financial_profile(
2704 p_api_version => 1.0,
2705 p_financial_profile_rec => l_fin_prof_rec,
2706 p_last_update_date => l_lud,
2707 x_return_status => x_return_status,
2708 x_msg_count => x_msg_count,
2709 x_msg_data => x_msg_data
2710 );
2711
2712 -- assign financial_profile_id
2713 p_fin_prof_objs(i).financial_profile_id := l_fin_prof_rec.financial_profile_id;
2714 END IF;
2715
2716 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2717 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2718 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_financial_profiles, party id: '||p_party_id,
2719 p_prefix=>l_debug_prefix,
2720 p_msg_level=>fnd_log.level_procedure);
2721 END IF;
2722 RAISE FND_API.G_EXC_ERROR;
2723 END IF;
2724 END LOOP;
2725
2726 -- Debug info.
2727 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2728 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2729 p_msg_data=>x_msg_data,
2730 p_msg_type=>'WARNING',
2731 p_msg_level=>fnd_log.level_exception);
2732 END IF;
2733 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2734 hz_utility_v2pub.debug(p_message=>'save_financial_profiles(-)',
2735 p_prefix=>l_debug_prefix,
2736 p_msg_level=>fnd_log.level_procedure);
2737 END IF;
2738 EXCEPTION
2739 WHEN fnd_api.g_exc_error THEN
2740 ROLLBACK TO save_financial_profiles_pvt;
2741 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2742 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2743 FND_MSG_PUB.ADD;
2744
2745 x_return_status := fnd_api.g_ret_sts_error;
2746
2747 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2748 p_count => x_msg_count,
2749 p_data => x_msg_data);
2750
2751 -- Debug info.
2752 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2753 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2754 p_msg_data=>x_msg_data,
2755 p_msg_type=>'ERROR',
2756 p_msg_level=>fnd_log.level_error);
2757 END IF;
2758 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2759 hz_utility_v2pub.debug(p_message=>'save_financial_profiles(-)',
2760 p_prefix=>l_debug_prefix,
2761 p_msg_level=>fnd_log.level_procedure);
2762 END IF;
2763 WHEN fnd_api.g_exc_unexpected_error THEN
2764 ROLLBACK TO save_financial_profiles_pvt;
2765 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2766 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2767 FND_MSG_PUB.ADD;
2768
2769 x_return_status := fnd_api.g_ret_sts_unexp_error;
2770
2771 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2772 p_count => x_msg_count,
2773 p_data => x_msg_data);
2774
2775 -- Debug info.
2776 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2777 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2778 p_msg_data=>x_msg_data,
2779 p_msg_type=>'UNEXPECTED ERROR',
2780 p_msg_level=>fnd_log.level_error);
2781 END IF;
2782 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2783 hz_utility_v2pub.debug(p_message=>'save_financial_profiles(-)',
2784 p_prefix=>l_debug_prefix,
2785 p_msg_level=>fnd_log.level_procedure);
2786 END IF;
2787 WHEN OTHERS THEN
2788 ROLLBACK TO save_financial_profiles_pvt;
2789 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2790 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_PROFILE');
2791 FND_MSG_PUB.ADD;
2792
2793 x_return_status := fnd_api.g_ret_sts_unexp_error;
2794
2795 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2796 fnd_message.set_token('ERROR' ,SQLERRM);
2797 fnd_msg_pub.add;
2798
2799 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2800 p_count => x_msg_count,
2801 p_data => x_msg_data);
2802
2803 -- Debug info.
2804 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2805 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2806 p_msg_data=>x_msg_data,
2807 p_msg_type=>'SQL ERROR',
2808 p_msg_level=>fnd_log.level_error);
2809 END IF;
2810 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2811 hz_utility_v2pub.debug(p_message=>'save_financial_profiles(-)',
2812 p_prefix=>l_debug_prefix,
2813 p_msg_level=>fnd_log.level_procedure);
2814 END IF;
2815 END save_financial_profiles;
2816
2817 -- PROCEDURE save_party_preferences
2818 --
2819 -- DESCRIPTION
2820 -- Create or update party preferences.
2821 --
2822 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2823 --
2824 -- ARGUMENTS
2825 -- IN:
2826 -- p_party_pref_objs List of party preference objects.
2827 -- p_party_id Party Id.
2828 -- OUT:
2829 -- x_return_status Return status after the call. The status can
2830 -- be fnd_api.g_ret_sts_success (success),
2831 -- fnd_api.g_ret_sts_error (error),
2832 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2833 -- x_msg_count Number of messages in message stack.
2834 -- x_msg_data Message text if x_msg_count is 1.
2835 --
2836 -- NOTES
2837 --
2838 -- MODIFICATION HISTORY
2839 --
2840 -- 14-DEC-2004 Arnold Ng Created.
2841 --
2842
2843 PROCEDURE save_party_preferences(
2844 p_party_pref_objs IN OUT NOCOPY hz_party_pref_obj_tbl,
2845 p_party_id IN NUMBER,
2846 x_return_status OUT NOCOPY VARCHAR2,
2847 x_msg_count OUT NOCOPY NUMBER,
2848 x_msg_data OUT NOCOPY VARCHAR2
2849 ) IS
2850 l_debug_prefix VARCHAR2(30);
2851 l_ovn NUMBER := NULL;
2852 BEGIN
2853 -- Standard start of API savepoint
2854 SAVEPOINT save_party_preferences_pvt;
2855
2856 -- initialize API return status to success.
2857 x_return_status := FND_API.G_RET_STS_SUCCESS;
2858
2859 -- Debug info.
2860 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2861 hz_utility_v2pub.debug(p_message=>'save_party_preferences(+)',
2862 p_prefix=>l_debug_prefix,
2863 p_msg_level=>fnd_log.level_procedure);
2864 END IF;
2865
2866 -- Create/Update party preferences
2867 FOR i IN 1..p_party_pref_objs.COUNT LOOP
2868 -- check if the code assignment record is create or update
2869 hz_registry_validate_bo_pvt.check_party_pref_op(
2870 p_party_id => p_party_id,
2871 p_module => p_party_pref_objs(i).module,
2872 p_category => p_party_pref_objs(i).category,
2873 p_preference_code => p_party_pref_objs(i).preference_code,
2874 x_object_version_number => l_ovn
2875 );
2876
2877 HZ_PREFERENCE_PUB.Put(
2878 p_party_id => p_party_id,
2879 p_category => p_party_pref_objs(i).category,
2880 p_preference_code => p_party_pref_objs(i).preference_code,
2881 p_value_varchar2 => p_party_pref_objs(i).value_varchar2,
2882 p_value_number => p_party_pref_objs(i).value_number,
2883 p_value_date => p_party_pref_objs(i).value_date,
2884 p_value_name => p_party_pref_objs(i).value_name,
2885 p_module => p_party_pref_objs(i).module,
2886 p_additional_value1 => p_party_pref_objs(i).additional_value1,
2887 p_additional_value2 => p_party_pref_objs(i).additional_value2,
2888 p_additional_value3 => p_party_pref_objs(i).additional_value3,
2889 p_additional_value4 => p_party_pref_objs(i).additional_value4,
2890 p_additional_value5 => p_party_pref_objs(i).additional_value5,
2891 p_object_version_number => l_ovn,
2892 x_return_status => x_return_status,
2893 x_msg_count => x_msg_count,
2894 x_msg_data => x_msg_data
2895 );
2896
2897 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2898 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2899 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_party_preferences, party id: '||p_party_id,
2900 p_prefix=>l_debug_prefix,
2901 p_msg_level=>fnd_log.level_procedure);
2902 END IF;
2903 RAISE FND_API.G_EXC_ERROR;
2904 END IF;
2905 END LOOP;
2906
2907 -- Debug info.
2908 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2909 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2910 p_msg_data=>x_msg_data,
2911 p_msg_type=>'WARNING',
2912 p_msg_level=>fnd_log.level_exception);
2913 END IF;
2914 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2915 hz_utility_v2pub.debug(p_message=>'save_party_preferences(-)',
2916 p_prefix=>l_debug_prefix,
2917 p_msg_level=>fnd_log.level_procedure);
2918 END IF;
2919 EXCEPTION
2920 WHEN fnd_api.g_exc_error THEN
2921 ROLLBACK TO save_party_preferences_pvt;
2922 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2923 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_PREFERENCES');
2924 FND_MSG_PUB.ADD;
2925
2926 x_return_status := fnd_api.g_ret_sts_error;
2927
2928 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2929 p_count => x_msg_count,
2930 p_data => x_msg_data);
2931
2932 -- Debug info.
2933 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2934 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2935 p_msg_data=>x_msg_data,
2936 p_msg_type=>'ERROR',
2937 p_msg_level=>fnd_log.level_error);
2938 END IF;
2939 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2940 hz_utility_v2pub.debug(p_message=>'save_party_preferences(-)',
2941 p_prefix=>l_debug_prefix,
2942 p_msg_level=>fnd_log.level_procedure);
2943 END IF;
2944 WHEN fnd_api.g_exc_unexpected_error THEN
2945 ROLLBACK TO save_party_preferences_pvt;
2946 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2947 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_PREFERENCES');
2948 FND_MSG_PUB.ADD;
2949
2950 x_return_status := fnd_api.g_ret_sts_unexp_error;
2951
2952 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2953 p_count => x_msg_count,
2954 p_data => x_msg_data);
2955
2956 -- Debug info.
2957 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2958 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2959 p_msg_data=>x_msg_data,
2960 p_msg_type=>'UNEXPECTED ERROR',
2961 p_msg_level=>fnd_log.level_error);
2962 END IF;
2963 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2964 hz_utility_v2pub.debug(p_message=>'save_party_preferences(-)',
2965 p_prefix=>l_debug_prefix,
2966 p_msg_level=>fnd_log.level_procedure);
2967 END IF;
2968 WHEN OTHERS THEN
2969 ROLLBACK TO save_party_preferences_pvt;
2970 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2971 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_PREFERENCES');
2972 FND_MSG_PUB.ADD;
2973
2974 x_return_status := fnd_api.g_ret_sts_unexp_error;
2975
2976 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2977 fnd_message.set_token('ERROR' ,SQLERRM);
2978 fnd_msg_pub.add;
2979
2980 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2981 p_count => x_msg_count,
2982 p_data => x_msg_data);
2983
2984 -- Debug info.
2985 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2986 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2987 p_msg_data=>x_msg_data,
2988 p_msg_type=>'SQL ERROR',
2989 p_msg_level=>fnd_log.level_error);
2990 END IF;
2991 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2992 hz_utility_v2pub.debug(p_message=>'save_party_preferences(-)',
2993 p_prefix=>l_debug_prefix,
2994 p_msg_level=>fnd_log.level_procedure);
2995 END IF;
2996 END save_party_preferences;
2997
2998
2999 -- PRIVATE PROCEDURE assign_party_usge_assgmnt_rec
3000 --
3001 -- DESCRIPTION
3002 -- Assign HZ_PARTY_USAGE_OBJ to HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type
3003 --
3004 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3005 --
3006 -- ARGUMENTS
3007 -- IN:
3008 -- p_party_usage_obj HZ_PARTY_USAGE_OBJ.
3009 -- p_party_id Party Id.
3010 -- OUT:
3011 -- px_party_usage_assignment_rec OUT HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type
3012 --
3013 -- NOTES
3014 --
3015 -- MODIFICATION HISTORY
3016 --
3017 -- 01-Mar-2006 Hadi Alatasi Created.
3018 --
3019
3020 PROCEDURE assign_party_usge_assgmnt_rec(
3021 p_party_usage_obj IN HZ_PARTY_USAGE_OBJ,
3022 p_party_id IN NUMBER,
3023 px_party_usage_assignment_rec IN OUT NOCOPY HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type
3024 ) is
3025 begin
3026 px_party_usage_assignment_rec.party_id := p_party_id;
3027 px_party_usage_assignment_rec.party_usage_code := p_party_usage_obj.party_usage_code;
3028 px_party_usage_assignment_rec.effective_start_date := p_party_usage_obj.effective_start_date ;
3029 px_party_usage_assignment_rec.effective_end_date := p_party_usage_obj.effective_end_date ;
3030 px_party_usage_assignment_rec.comments := p_party_usage_obj.comments;
3031 px_party_usage_assignment_rec.attribute_category := p_party_usage_obj.attribute_category;
3032 px_party_usage_assignment_rec.attribute1 := p_party_usage_obj.attribute1;
3033 px_party_usage_assignment_rec.attribute2 := p_party_usage_obj.attribute2;
3034 px_party_usage_assignment_rec.attribute3 := p_party_usage_obj.attribute3;
3035 px_party_usage_assignment_rec.attribute4 := p_party_usage_obj.attribute4;
3036 px_party_usage_assignment_rec.attribute5 := p_party_usage_obj.attribute5;
3037 px_party_usage_assignment_rec.attribute6 := p_party_usage_obj.attribute6;
3038 px_party_usage_assignment_rec.attribute7 := p_party_usage_obj.attribute7;
3039 px_party_usage_assignment_rec.attribute8 := p_party_usage_obj.attribute8;
3040 px_party_usage_assignment_rec.attribute9 := p_party_usage_obj.attribute9;
3041 px_party_usage_assignment_rec.attribute10 := p_party_usage_obj.attribute10;
3042 px_party_usage_assignment_rec.attribute11 := p_party_usage_obj.attribute11;
3043 px_party_usage_assignment_rec.attribute12 := p_party_usage_obj.attribute12;
3044 px_party_usage_assignment_rec.attribute13 := p_party_usage_obj.attribute13;
3045 px_party_usage_assignment_rec.attribute14 := p_party_usage_obj.attribute14;
3046 px_party_usage_assignment_rec.attribute15 := p_party_usage_obj.attribute15;
3047 px_party_usage_assignment_rec.attribute16 := p_party_usage_obj.attribute16;
3048 px_party_usage_assignment_rec.attribute17 := p_party_usage_obj.attribute17;
3049 px_party_usage_assignment_rec.attribute18 := p_party_usage_obj.attribute18;
3050 px_party_usage_assignment_rec.attribute19 := p_party_usage_obj.attribute19;
3051 px_party_usage_assignment_rec.attribute20 := p_party_usage_obj.attribute20;
3052 ------------------ set up created_by_module --------------------------
3053 px_party_usage_assignment_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
3054
3055 end assign_party_usge_assgmnt_rec;
3056
3057
3058 -- PROCEDURE create_party_usage_assgmnt
3059 --
3060 -- DESCRIPTION
3061 -- Create Party Usage Assignment.
3062 --
3063 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3064 --
3065 -- ARGUMENTS
3066 -- IN:
3067 -- p_party_usg_objs List of Party Usage objects.
3068 -- p_party_id Party Id.
3069 -- OUT:
3070 -- x_return_status Return status after the call. The status can
3071 -- be fnd_api.g_ret_sts_success (success),
3072 -- fnd_api.g_ret_sts_error (error),
3073 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3074 -- x_msg_count Number of messages in message stack.
3075 -- x_msg_data Message text if x_msg_count is 1.
3076 --
3077 -- NOTES
3078 --
3079 -- MODIFICATION HISTORY
3080 --
3081 -- 01-Mar-2006 Hadi Alatasi Created.
3082 --
3083
3084 PROCEDURE create_party_usage_assgmnt(
3085 p_party_usg_objs IN OUT NOCOPY HZ_PARTY_USAGE_OBJ_TBL,
3086 p_party_id IN NUMBER,
3087 x_return_status OUT NOCOPY VARCHAR2,
3088 x_msg_count OUT NOCOPY NUMBER,
3089 x_msg_data OUT NOCOPY VARCHAR2
3090 )IS
3091 l_debug_prefix VARCHAR2(30);
3092 l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
3093 BEGIN
3094 -- Standard start of API savepoint
3095 SAVEPOINT create_party_usage_assgmnt_pvt;
3096
3097 -- initialize API return status to success.
3098 x_return_status := FND_API.G_RET_STS_SUCCESS;
3099
3100 -- Debug info.
3101 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3102 hz_utility_v2pub.debug(p_message=>'assign_party_usage(+)',
3103 p_prefix=>l_debug_prefix,
3104 p_msg_level=>fnd_log.level_procedure);
3105 END IF;
3106
3107 FOR i IN 1..p_party_usg_objs.COUNT LOOP
3108 assign_party_usge_assgmnt_rec(
3109 p_party_usage_obj => p_party_usg_objs(i),
3110 p_party_id => p_party_id,
3111 px_party_usage_assignment_rec => l_party_usg_rec
3112 );
3113 HZ_PARTY_USG_ASSIGNMENT_PUB.assign_party_usage (
3114 p_init_msg_list => FND_API.G_FALSE,
3115 p_party_usg_assignment_rec => l_party_usg_rec,
3116 x_return_status => x_return_status,
3117 x_msg_count => x_msg_count,
3118 x_msg_data => x_msg_data
3119 );
3120
3121 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3122 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3123 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.create_party_usage_assignment, party id: '||p_party_id,
3124 p_prefix=>l_debug_prefix,
3125 p_msg_level=>fnd_log.level_procedure);
3126 END IF;
3127 RAISE FND_API.G_EXC_ERROR;
3128 END IF;
3129 END LOOP;
3130
3131 -- Debug info.
3132 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3133 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3134 p_msg_data=>x_msg_data,
3135 p_msg_type=>'WARNING',
3136 p_msg_level=>fnd_log.level_exception);
3137 END IF;
3138 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3139 hz_utility_v2pub.debug(p_message=>'create_party_usage_assgmnt(-)',
3140 p_prefix=>l_debug_prefix,
3141 p_msg_level=>fnd_log.level_procedure);
3142 END IF;
3143
3144 EXCEPTION
3145 WHEN fnd_api.g_exc_error THEN
3146 ROLLBACK TO create_party_usage_assgmnt_pvt;
3147 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3148 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3149 FND_MSG_PUB.ADD;
3150
3151 x_return_status := fnd_api.g_ret_sts_error;
3152
3153 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3154 p_count => x_msg_count,
3155 p_data => x_msg_data);
3156
3157 -- Debug info.
3158 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3159 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3160 p_msg_data=>x_msg_data,
3161 p_msg_type=>'ERROR',
3162 p_msg_level=>fnd_log.level_error);
3163 END IF;
3164 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3165 hz_utility_v2pub.debug(p_message=>'create_party_usage_assgmnt(-)',
3166 p_prefix=>l_debug_prefix,
3167 p_msg_level=>fnd_log.level_procedure);
3168 END IF;
3169 WHEN fnd_api.g_exc_unexpected_error THEN
3170 ROLLBACK TO create_party_usage_assgmnt_pvt;
3171 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3172 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3173 FND_MSG_PUB.ADD;
3174
3175 x_return_status := fnd_api.g_ret_sts_unexp_error;
3176
3177 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3178 p_count => x_msg_count,
3179 p_data => x_msg_data);
3180
3181 -- Debug info.
3182 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3183 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3184 p_msg_data=>x_msg_data,
3185 p_msg_type=>'UNEXPECTED ERROR',
3186 p_msg_level=>fnd_log.level_error);
3187 END IF;
3188 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3189 hz_utility_v2pub.debug(p_message=>'create_party_usage_assgmnt(-)',
3190 p_prefix=>l_debug_prefix,
3191 p_msg_level=>fnd_log.level_procedure);
3192 END IF;
3193
3194 WHEN OTHERS THEN
3195 ROLLBACK TO create_party_usage_assgmnt_pvt;
3196 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3197 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3198 FND_MSG_PUB.ADD;
3199
3200 x_return_status := fnd_api.g_ret_sts_unexp_error;
3201
3202 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3203 fnd_message.set_token('ERROR' ,SQLERRM);
3204 fnd_msg_pub.add;
3205
3206 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3207 p_count => x_msg_count,
3208 p_data => x_msg_data);
3209
3210 -- Debug info.
3211 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3212 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3213 p_msg_data=>x_msg_data,
3214 p_msg_type=>'SQL ERROR',
3215 p_msg_level=>fnd_log.level_error);
3216 END IF;
3217 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3218 hz_utility_v2pub.debug(p_message=>'create_party_usage_assgmnt(-)',
3219 p_prefix=>l_debug_prefix,
3220 p_msg_level=>fnd_log.level_procedure);
3221 END IF;
3222
3223 end create_party_usage_assgmnt;
3224
3225
3226 -- PROCEDURE Save_party_usage_assgmnt
3227 --
3228 -- DESCRIPTION
3229 -- Create or update Party Usage Assignment.
3230 --
3231 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3232 --
3233 -- ARGUMENTS
3234 -- IN:
3235 -- p_party_usg_objs List of Party Usage objects.
3236 -- p_party_id Party Id.
3237 -- OUT:
3238 -- x_return_status Return status after the call. The status can
3239 -- be fnd_api.g_ret_sts_success (success),
3240 -- fnd_api.g_ret_sts_error (error),
3241 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3242 -- x_msg_count Number of messages in message stack.
3243 -- x_msg_data Message text if x_msg_count is 1.
3244 --
3245 -- NOTES
3246 --
3247 -- MODIFICATION HISTORY
3248 --
3249 -- 01-Mar-2006 Hadi Alatasi Created.
3250 --
3251
3252 PROCEDURE save_party_usage_assgmnt(
3253 p_party_usg_objs IN OUT NOCOPY HZ_PARTY_USAGE_OBJ_TBL,
3254 p_party_id IN NUMBER,
3255 x_return_status OUT NOCOPY VARCHAR2,
3256 x_msg_count OUT NOCOPY NUMBER,
3257 x_msg_data OUT NOCOPY VARCHAR2
3258 )IS
3259 l_debug_prefix VARCHAR2(30);
3260 l_party_usg_assignment_id NUMBER;
3261 l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
3262 l_lud DATE;
3263 BEGIN
3264 -- Standard start of API savepoint
3265 SAVEPOINT save_party_usage_assgmnt_pvt;
3266
3267 -- initialize API return status to success.
3268 x_return_status := FND_API.G_RET_STS_SUCCESS;
3269
3270 -- Debug info.
3271 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3272 hz_utility_v2pub.debug(p_message=>'assign_party_usage(+)',
3273 p_prefix=>l_debug_prefix,
3274 p_msg_level=>fnd_log.level_procedure);
3275 END IF;
3276
3277 FOR i IN 1..p_party_usg_objs.COUNT LOOP
3278 --hz_registry_validate_bo_pvt.assign_party_usge_assgmnt_rec(
3279 assign_party_usge_assgmnt_rec(
3280 p_party_usage_obj => p_party_usg_objs(i),
3281 p_party_id => p_party_id,
3282 px_party_usage_assignment_rec => l_party_usg_rec
3283 );
3284
3285 -- check if the party usage assignment record is create or update
3286 HZ_REGISTRY_VALIDATE_BO_PVT.check_party_usage_op(
3287 p_party_id => p_party_id,
3288 p_party_usage_code => l_party_usg_rec.party_usage_code,
3289 x_last_update_date => l_lud,
3290 x_return_status => x_return_status
3291 );
3292 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3293 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3294 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.check_party_usage_op, party_usage_code ' || l_party_usg_rec.party_usage_code||', party id: '||p_party_id,
3295 p_prefix=>l_debug_prefix,
3296 p_msg_level=>fnd_log.level_procedure);
3297 END IF;
3298 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
3299 FND_MSG_PUB.ADD;
3300 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3301 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3302 FND_MSG_PUB.ADD;
3303 RAISE FND_API.G_EXC_ERROR;
3304 END IF;
3305
3306 IF(l_lud IS NULL) THEN
3307 HZ_PARTY_USG_ASSIGNMENT_PUB.assign_party_usage (
3308 p_init_msg_list => FND_API.G_FALSE,
3309 p_party_usg_assignment_rec => l_party_usg_rec,
3310 x_return_status => x_return_status,
3311 x_msg_count => x_msg_count,
3312 x_msg_data => x_msg_data
3313 );
3314 ELSE
3315 HZ_PARTY_USG_ASSIGNMENT_PUB.update_usg_assignment (
3316 p_init_msg_list => FND_API.G_FALSE,
3317 p_party_usg_assignment_rec => l_party_usg_rec,
3318 x_return_status => x_return_status,
3319 x_msg_count => x_msg_count,
3320 x_msg_data => x_msg_data
3321 ) ;
3322 ENd IF;
3323
3324 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3325 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3326 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_party_bo_pvt.save_party_usage_assgmnt,party_usage_code ' || l_party_usg_rec.party_usage_code||', party id: '||p_party_id,
3327 p_prefix=>l_debug_prefix,
3328 p_msg_level=>fnd_log.level_procedure);
3329 END IF;
3330 RAISE FND_API.G_EXC_ERROR;
3331 END IF;
3332 END LOOP;
3333
3334 -- Debug info.
3335 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3336 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3337 p_msg_data=>x_msg_data,
3338 p_msg_type=>'WARNING',
3339 p_msg_level=>fnd_log.level_exception);
3340 END IF;
3341 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3342 hz_utility_v2pub.debug(p_message=>'save_party_usage_assgmnt(-)',
3343 p_prefix=>l_debug_prefix,
3344 p_msg_level=>fnd_log.level_procedure);
3345 END IF;
3346 EXCEPTION
3347 WHEN fnd_api.g_exc_error THEN
3348 ROLLBACK TO save_party_usage_assgmnt_pvt;
3349 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3350 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3351 FND_MSG_PUB.ADD;
3352
3353 x_return_status := fnd_api.g_ret_sts_error;
3354
3355 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3356 p_count => x_msg_count,
3357 p_data => x_msg_data);
3358
3359 -- Debug info.
3360 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3361 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3362 p_msg_data=>x_msg_data,
3363 p_msg_type=>'ERROR',
3364 p_msg_level=>fnd_log.level_error);
3365 END IF;
3366 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3367 hz_utility_v2pub.debug(p_message=>'save_party_usage_assgmnt(-)',
3368 p_prefix=>l_debug_prefix,
3369 p_msg_level=>fnd_log.level_procedure);
3370 END IF;
3371 WHEN fnd_api.g_exc_unexpected_error THEN
3372 ROLLBACK TO save_party_usage_assgmnt_pvt;
3373 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3374 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3375 FND_MSG_PUB.ADD;
3376
3377 x_return_status := fnd_api.g_ret_sts_unexp_error;
3378
3379 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3380 p_count => x_msg_count,
3381 p_data => x_msg_data);
3382
3383 -- Debug info.
3384 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3385 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3386 p_msg_data=>x_msg_data,
3387 p_msg_type=>'UNEXPECTED ERROR',
3388 p_msg_level=>fnd_log.level_error);
3389 END IF;
3390 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3391 hz_utility_v2pub.debug(p_message=>'save_party_usage_assgmnt(-)',
3392 p_prefix=>l_debug_prefix,
3393 p_msg_level=>fnd_log.level_procedure);
3394 END IF;
3395 WHEN OTHERS THEN
3396 ROLLBACK TO save_party_usage_assgmnt_pvt;
3397 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
3398 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_PARTY_USAGE_ASSIGNMENTS');
3399 FND_MSG_PUB.ADD;
3400
3401 x_return_status := fnd_api.g_ret_sts_unexp_error;
3402
3403 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3404 fnd_message.set_token('ERROR' ,SQLERRM);
3405 fnd_msg_pub.add;
3406
3407 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3408 p_count => x_msg_count,
3409 p_data => x_msg_data);
3410
3411 -- Debug info.
3412 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3413 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3414 p_msg_data=>x_msg_data,
3415 p_msg_type=>'SQL ERROR',
3416 p_msg_level=>fnd_log.level_error);
3417 END IF;
3418 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3419 hz_utility_v2pub.debug(p_message=>'save_party_usage_assgmnt(-)',
3420 p_prefix=>l_debug_prefix,
3421 p_msg_level=>fnd_log.level_procedure);
3422 END IF;
3423 END save_party_usage_assgmnt;
3424
3425 -- PROCEDURE call_bes
3426 --
3427 -- DESCRIPTION
3428 -- Call business event.
3429 --
3430 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3431 --
3432 -- ARGUMENTS
3433 -- IN:
3434 -- p_party_id Party Id.
3435 -- p_bo_code Business Object Code.
3436 -- p_create_or_update Create or Update Flag.
3437 -- p_event_id Business event ID.
3438 -- NOTES
3439 --
3440 -- MODIFICATION HISTORY
3441 --
3442 -- 04-OCT-2005 Arnold Ng Created.
3443 -- 15-DEC-2005 Arnold Ng Add p_event_id.
3444 --
3445
3446 PROCEDURE call_bes(
3447 p_party_id IN NUMBER,
3448 p_bo_code IN VARCHAR2,
3449 p_create_or_update IN VARCHAR2,
3450 p_obj_source IN VARCHAR2,
3451 p_event_id IN NUMBER
3452 ) IS
3453 l_paramlist WF_PARAMETER_LIST_T;
3454 l_key VARCHAR2(240);
3455 l_event_name VARCHAR2(240);
3456 BEGIN
3457 log('Cleanse duplicate root node');
3458 BEGIN
3459 DELETE FROM HZ_BUS_OBJ_TRACKING
3460 WHERE rowid IN
3461 ( SELECT bo_row FROM
3462 ( SELECT rowid bo_row, child_entity_name, child_id, child_bo_code, parent_entity_name, parent_id, parent_bo_code
3463 , min(rowid) over (PARTITION BY child_id, child_entity_name, child_bo_code, parent_entity_name, parent_id, parent_bo_code ORDER BY rowid RANGE UNBOUNDED PRECEDING) as min_row
3464 FROM HZ_BUS_OBJ_TRACKING
3465 WHERE child_id = p_party_id
3466 AND child_entity_name = 'HZ_PARTIES'
3467 AND nvl(child_bo_code, 'X') = nvl(p_bo_code, 'X')
3468 --AND nvl(parent_entity_name, 'X') = nvl(p_pentity_name, 'X')
3469 --AND nvl(parent_id, -99) = nvl(p_parent_id, -99)
3470 --AND nvl(parent_bo_code, 'X') = nvl(p_pbo_code, 'X')
3471 AND event_id IS NULL
3472 )
3473 WHERE bo_row <> min_row
3474 );
3475 EXCEPTION
3476 WHEN NO_DATA_FOUND THEN
3477 NULL;
3478 END;
3479
3480 IF(p_bo_code in ('ORG_CUST', 'PERSON_CUST')) THEN
3481 add_cust_tracking(
3482 p_party_id => p_party_id,
3483 p_bo_code => p_bo_code,
3484 p_create_or_update => p_create_or_update);
3485 END IF;
3486
3487 log('Prepare to raise event');
3488 log('Get Event Id: '||p_event_id);
3489
3490 CASE
3491 WHEN p_bo_code = 'PERSON' AND p_create_or_update = 'C' THEN
3492 l_event_name := 'oracle.apps.ar.hz.PersonBO.create';
3493 WHEN p_bo_code = 'PERSON' AND p_create_or_update = 'U' THEN
3494 l_event_name := 'oracle.apps.ar.hz.PersonBO.update';
3495 WHEN p_bo_code = 'ORG' AND p_create_or_update = 'C' THEN
3496 l_event_name := 'oracle.apps.ar.hz.OrgBO.create';
3497 WHEN p_bo_code = 'ORG' AND p_create_or_update = 'U' THEN
3498 l_event_name := 'oracle.apps.ar.hz.OrgBO.update';
3499 WHEN p_bo_code = 'PERSON_CUST' AND p_create_or_update = 'C' THEN
3500 l_event_name := 'oracle.apps.ar.hz.PersonCustBO.create';
3501 WHEN p_bo_code = 'PERSON_CUST' AND p_create_or_update = 'U' THEN
3502 l_event_name := 'oracle.apps.ar.hz.PersonCustBO.update';
3503 WHEN p_bo_code = 'ORG_CUST' AND p_create_or_update = 'C' THEN
3504 l_event_name := 'oracle.apps.ar.hz.OrgCustBO.create';
3505 WHEN p_bo_code = 'ORG_CUST' AND p_create_or_update = 'U' THEN
3506 l_event_name := 'oracle.apps.ar.hz.OrgCustBO.update';
3507 ELSE
3508 log('Unexpected event name');
3509 RAISE FND_API.G_EXC_ERROR;
3510 END CASE;
3511 l_key := l_event_name||p_event_id;
3512 l_paramlist := WF_PARAMETER_LIST_T();
3513
3514 log('Event Name : '||l_event_name);
3515 log('Event Key : '||l_key);
3516 log('Adding parameters');
3517
3518 wf_event.addParameterToList(
3519 p_name => 'CDH_EVENT_ID',
3520 p_value => p_event_id,
3521 p_parameterlist => l_paramlist);
3522
3523 wf_event.addParameterToList(
3524 p_name => 'CDH_OBJECT_ID',
3525 p_value => p_party_id,
3526 p_parameterlist => l_paramlist);
3527
3528 wf_event.addParameterToList(
3529 p_name => 'CDH_OBJ_SOURCE',
3530 p_value => p_obj_source,
3531 p_parameterlist => l_paramlist);
3532
3533 log('Raise business event: '||l_event_name);
3534 HZ_EVENT_PKG.raise_event(
3535 p_event_name => l_event_name,
3536 p_event_key => l_key,
3537 p_parameters => l_paramlist);
3538
3539 log('Remove parameter list');
3540 l_paramlist.DELETE;
3541
3542 log('Update BOT Event Id');
3543 -- update BOT event id here
3544 HZ_BES_BO_UTIL_PKG.upd_bot_evtid_dt(
3545 p_bulk_evt => FALSE,
3546 p_evt_id => p_event_id,
3547 p_child_id => p_party_id,
3548 p_child_bo_code => p_bo_code,
3549 p_creation_date => sysdate,
3550 p_evt_type => p_create_or_update,
3551 p_commit => FALSE,
3552 p_per_ins_evt_id => NULL,
3553 p_per_upd_evt_id => NULL,
3554 p_org_ins_evt_id => NULL,
3555 p_org_upd_evt_id => NULL,
3556 p_perc_ins_evt_id => NULL,
3557 p_perc_upd_evt_id => NULL,
3558 p_orgc_ins_evt_id => NULL,
3559 p_orgc_upd_evt_id => NULL
3560 );
3561 log('Done raising event');
3562
3563 IF(p_create_or_update = 'C') THEN
3564 log('Set BO version number');
3565 set_hz_parties_bo_ver(
3566 p_party_id => p_party_id,
3567 p_bo_code => p_bo_code
3568 );
3569 END IF;
3570 log('Exit procedure');
3571 EXCEPTION
3572 WHEN FND_API.G_EXC_ERROR THEN
3573 log('Expected error');
3574 l_paramlist.DELETE;
3575 RAISE FND_API.G_EXC_ERROR;
3576 WHEN OTHERS THEN
3577 log(SQLERRM);
3578 l_paramlist.DELETE;
3579 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3580 END call_bes;
3581
3582 -- PROCEDURE set_hz_parties_bo_ver
3583 --
3584 -- DESCRIPTION
3585 -- Set BO_VERSION_NUMBER in HZ_PARTIES table. This procedure
3586 -- will be called from Organization, Organization Customer,
3587 -- Person, Person Customer BO create API.
3588 --
3589 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3590 --
3591 -- ARGUMENTS
3592 -- IN:
3593 -- p_party_id Party Id.
3594 -- NOTES
3595 --
3596 -- MODIFICATION HISTORY
3597 --
3598 -- 04-OCT-2005 Arnold Ng Created.
3599 --
3600
3601 PROCEDURE set_hz_parties_bo_ver(
3602 p_party_id IN NUMBER,
3603 p_bo_code IN VARCHAR2
3604 ) IS
3605 BEGIN
3606 IF(p_bo_code = 'PERSON') THEN
3607 UPDATE HZ_PARTIES
3608 SET PERSON_BO_VERSION = (SELECT BO_VERSION_NUMBER
3609 FROM HZ_BUS_OBJ_DEFINITIONS
3610 WHERE BUSINESS_OBJECT_CODE = 'PERSON'
3611 AND ENTITY_NAME = 'HZ_PARTIES')
3612 WHERE PARTY_ID = p_party_id;
3613 ELSIF(p_bo_code = 'PERSON_CUST') THEN
3614 UPDATE HZ_PARTIES
3615 SET PERSON_CUST_BO_VERSION = (SELECT BO_VERSION_NUMBER
3616 FROM HZ_BUS_OBJ_DEFINITIONS
3617 WHERE BUSINESS_OBJECT_CODE = 'PERSON_CUST'
3618 AND ENTITY_NAME = 'HZ_PARTIES'
3619 AND CHILD_BO_CODE IS NULL)
3620 WHERE PARTY_ID = p_party_id;
3621 ELSIF(p_bo_code = 'ORG') THEN
3622 UPDATE HZ_PARTIES
3623 SET ORG_BO_VERSION = (SELECT BO_VERSION_NUMBER
3624 FROM HZ_BUS_OBJ_DEFINITIONS
3625 WHERE BUSINESS_OBJECT_CODE = 'ORG'
3626 AND ENTITY_NAME = 'HZ_PARTIES')
3627 WHERE PARTY_ID = p_party_id;
3628 ELSIF(p_bo_code = 'ORG_CUST') THEN
3629 UPDATE HZ_PARTIES
3630 SET ORG_CUST_BO_VERSION = (SELECT BO_VERSION_NUMBER
3631 FROM HZ_BUS_OBJ_DEFINITIONS
3632 WHERE BUSINESS_OBJECT_CODE = 'ORG_CUST'
3633 AND ENTITY_NAME = 'HZ_PARTIES'
3634 AND CHILD_BO_CODE IS NULL)
3635 WHERE PARTY_ID = p_party_id;
3636 END IF;
3637 EXCEPTION
3638 WHEN NO_DATA_FOUND THEN
3639 NULL;
3640 END set_hz_parties_bo_ver;
3641
3642 -- FUNCTION is_raising_create_event
3643 --
3644 -- DESCRIPTION
3645 -- Return true if raise BES event per object for create.
3646 --
3647 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3648 --
3649 -- ARGUMENTS
3650 -- IN:
3651 -- p_obj_complete_flag Flag indicates if object is complete
3652 -- NOTES
3653 --
3654 -- MODIFICATION HISTORY
3655 --
3656 -- 04-OCT-2005 Arnold Ng Created.
3657 --
3658
3659 FUNCTION is_raising_create_event(
3660 p_obj_complete_flag IN BOOLEAN
3661 ) RETURN BOOLEAN IS
3662 BEGIN
3663 IF(p_obj_complete_flag) AND
3664 (G_BO_EVENTS_FORMAT = 'N') AND
3665 (G_EVENT_TYPE in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
3666 RETURN TRUE;
3667 ELSE
3668 RETURN FALSE;
3669 END IF;
3670 END is_raising_create_event;
3671
3672 FUNCTION is_raising_update_event(
3673 p_party_id IN NUMBER,
3674 p_bo_code IN VARCHAR2
3675 ) RETURN BOOLEAN IS
3676 CURSOR get_party_bo_version IS
3677 SELECT nvl(PERSON_BO_VERSION, 0), nvl(PERSON_CUST_BO_VERSION, 0),
3678 nvl(ORG_BO_VERSION, 0), nvl(ORG_CUST_BO_VERSION, 0)
3679 FROM HZ_PARTIES
3680 WHERE party_id = p_party_id;
3681
3682 CURSOR get_def_bo_version IS
3683 SELECT nvl(BO_VERSION_NUMBER, 0)
3684 FROM HZ_BUS_OBJ_DEFINITIONS
3685 WHERE BUSINESS_OBJECT_CODE = p_bo_code
3686 AND ENTITY_NAME = 'HZ_PARTIES'
3687 AND CHILD_BO_CODE IS NULL;
3688
3689 l_per_bo_ver NUMBER;
3690 l_pc_bo_ver NUMBER;
3691 l_org_bo_ver NUMBER;
3692 l_oc_bo_ver NUMBER;
3693 l_bo_ver NUMBER;
3694 BEGIN
3695 OPEN get_party_bo_version;
3696 FETCH get_party_bo_version INTO l_per_bo_ver, l_pc_bo_ver, l_org_bo_ver, l_oc_bo_ver;
3697 CLOSE get_party_bo_version;
3698
3699 OPEN get_def_bo_version;
3700 FETCH get_def_bo_version INTO l_bo_ver;
3701 CLOSE get_def_bo_version;
3702
3703 IF(p_bo_code = 'PERSON') AND
3704 (l_per_bo_ver = l_bo_ver) AND
3705 (G_BO_EVENTS_FORMAT = 'N') AND
3706 (G_EVENT_TYPE in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
3707 RETURN TRUE;
3708 ELSIF(p_bo_code = 'PERSON_CUST') AND
3709 (l_pc_bo_ver = l_bo_ver) AND
3710 (G_BO_EVENTS_FORMAT = 'N') AND
3711 (G_EVENT_TYPE in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
3712 RETURN TRUE;
3713 ELSIF(p_bo_code = 'ORG') AND
3714 (l_org_bo_ver = l_bo_ver) AND
3715 (G_BO_EVENTS_FORMAT = 'N') AND
3716 (G_EVENT_TYPE in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
3717 RETURN TRUE;
3718 ELSIF(p_bo_code = 'ORG_CUST') AND
3719 (l_oc_bo_ver = l_bo_ver) AND
3720 (G_BO_EVENTS_FORMAT = 'N') AND
3721 (G_EVENT_TYPE in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
3722 RETURN TRUE;
3723 END IF;
3724 RETURN FALSE;
3725 END is_raising_update_event;
3726
3727 PROCEDURE log(
3728 message IN VARCHAR2,
3729 newline IN BOOLEAN DEFAULT TRUE) IS
3730 l_prefix VARCHAR2(20) := 'V3API_BO_RAISE';
3731 BEGIN
3732 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3733 hz_utility_v2pub.DEBUG (p_message=>message,
3734 p_prefix=>l_prefix,
3735 p_msg_level=>fnd_log.level_procedure);
3736 END IF ;
3737
3738 IF newline THEN
3739 FND_FILE.put_line(FND_FILE.LOG,message);
3740 FND_FILE.NEW_LINE(FND_FILE.LOG, 1);
3741 ELSE
3742 FND_FILE.put_line(FND_FILE.LOG,message);
3743 END IF;
3744 END log;
3745
3746 PROCEDURE add_cust_tracking(
3747 p_party_id IN NUMBER,
3748 p_bo_code IN VARCHAR2,
3749 p_create_or_update IN VARCHAR2
3750 ) IS
3751 l_debug_prefix VARCHAR2(30);
3752 l_date DATE;
3753 l_child_rec_exists_no NUMBER;
3754 l_child_code VARCHAR2(30);
3755 l_insert_or_update VARCHAR2(1);
3756 BEGIN
3757 l_date := sysdate;
3758 l_child_rec_exists_no := 0;
3759
3760 IF(p_bo_code = 'PERSON_CUST') THEN
3761 l_child_code := 'PERSON';
3762 ELSIF(p_bo_code = 'ORG_CUST') THEN
3763 l_child_code := 'ORG';
3764 END IF;
3765
3766 IF(p_create_or_update = 'C') THEN
3767 l_insert_or_update := 'I';
3768 ELSE
3769 l_insert_or_update := 'U';
3770 END IF;
3771
3772 -- insert person_cust/org_cust record
3773 BEGIN
3774 SELECT child_id INTO l_child_rec_exists_no
3775 FROM HZ_BUS_OBJ_TRACKING
3776 WHERE event_id IS NULL
3777 AND CHILD_ENTITY_NAME = 'HZ_PARTIES'
3778 AND CHILD_BO_CODE = p_bo_code
3779 AND CHILD_ID = p_party_id
3780 AND PARENT_ID IS NULL
3781 AND PARENT_BO_CODE IS NULL
3782 AND PARENT_ENTITY_NAME IS NULL
3783 AND rownum = 1;
3784
3785 IF l_child_rec_exists_no <> 0 THEN
3786 -- data already exists, no need to write
3787 hz_utility_v2pub.DEBUG(p_message=> 'Record already exists in BOT',
3788 p_prefix=>l_debug_prefix,
3789 p_msg_level=>fnd_log.level_procedure);
3790 END IF;
3791 EXCEPTION
3792 WHEN NO_DATA_FOUND THEN
3793 INSERT INTO HZ_BUS_OBJ_TRACKING
3794 ( POPULATED_FLAG, CHILD_OPERATION_FLAG, CHILD_ID, CHILD_ENTITY_NAME, CHILD_BO_CODE,
3795 LAST_UPDATE_DATE, CREATION_DATE, PARENT_ENTITY_NAME, PARENT_ID, PARENT_BO_CODE
3796 ) VALUES (
3797 'Y', l_insert_or_update, p_party_id, 'HZ_PARTIES', p_bo_code,
3798 l_date, l_date, NULL, NULL, NULL);
3799 END;
3800
3801 l_child_rec_exists_no := 0;
3802
3803 -- insert person/org record with parent equals to person_cust/org_cust
3804 BEGIN
3805 SELECT child_id INTO l_child_rec_exists_no
3806 FROM HZ_BUS_OBJ_TRACKING
3807 WHERE event_id IS NULL
3808 AND CHILD_ENTITY_NAME = 'HZ_PARTIES'
3809 AND CHILD_BO_CODE = l_child_code
3810 AND CHILD_ID = p_party_id
3811 AND PARENT_ID = p_party_id
3812 AND PARENT_BO_CODE = p_bo_code
3813 AND PARENT_ENTITY_NAME = 'HZ_PARTIES'
3814 AND rownum = 1;
3815
3816 IF l_child_rec_exists_no <> 0 THEN
3817 -- data already exists, no need to write
3818 hz_utility_v2pub.DEBUG(p_message=> 'Record already exists in BOT',
3819 p_prefix=>l_debug_prefix,
3820 p_msg_level=>fnd_log.level_procedure);
3821 END IF;
3822 EXCEPTION
3823 WHEN NO_DATA_FOUND THEN
3824 INSERT INTO HZ_BUS_OBJ_TRACKING
3825 ( POPULATED_FLAG, CHILD_OPERATION_FLAG, CHILD_ID, CHILD_ENTITY_NAME, CHILD_BO_CODE,
3826 LAST_UPDATE_DATE, CREATION_DATE, PARENT_ENTITY_NAME, PARENT_ID, PARENT_BO_CODE
3827 ) VALUES (
3828 'Y', l_insert_or_update, p_party_id, 'HZ_PARTIES', l_child_code,
3829 l_date, l_date, 'HZ_PARTIES', p_party_id, p_bo_code);
3830 END;
3831 END add_cust_tracking;
3832
3833 FUNCTION return_all_messages(
3834 x_return_status IN VARCHAR2,
3835 x_msg_count IN NUMBER,
3836 x_msg_data IN VARCHAR2
3837 ) RETURN HZ_MESSAGE_OBJ_TBL IS
3838 l_msg_data HZ_MESSAGE_OBJ_TBL;
3839 BEGIN
3840 l_msg_data := HZ_MESSAGE_OBJ_TBL();
3841 IF(x_msg_count > 1 AND x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3842 FOR I IN 1..FND_MSG_PUB.Count_Msg LOOP
3843 l_msg_data.EXTEND;
3844 l_msg_data(I) := HZ_MESSAGE_OBJ(FND_MSG_PUB.Get(I, p_encoded => FND_API.G_FALSE));
3845 END LOOP;
3846 ELSE
3847 l_msg_data.EXTEND;
3848 l_msg_data(1) := HZ_MESSAGE_OBJ(x_msg_data);
3849 END IF;
3850 RETURN l_msg_data;
3851 END return_all_messages;
3852
3853 END HZ_PARTY_BO_PVT;