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