[Home] [Help]
PACKAGE BODY: APPS.PER_CONTACT_RELATIONSHIP_SWI
Source
1 package body per_contact_relationship_swi as
2 /* $Header: pectrswi.pkb 120.1.12000000.1 2007/02/08 12:04:41 ssutar noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'per_contact_relationship_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------------< ins >-----------------------------------|
10 -- ----------------------------------------------------------------------------
11
12 procedure ins(
13 p_contact_relationship_id in number,
14 p_business_group_id in number,
15 p_person_id in number,
16 p_contact_person_id in number,
17 p_contact_type in varchar2,
18 p_comments in long default null,
19 p_primary_contact_flag in varchar2 default 'N',
20 p_request_id in number default null,
21 p_program_application_id in number default null,
22 p_program_id in number default null,
23 p_program_update_date in date default null,
24 p_date_start in date default null,
25 p_start_life_reason_id in number default null,
26 p_date_end in date default null,
27 p_end_life_reason_id in number default null,
28 p_rltd_per_rsds_w_dsgntr_flag in varchar2 default 'N',
29 p_personal_flag in varchar2 default 'N',
30 p_sequence_number in number default null,
31 p_cont_attribute_category in varchar2 default null,
32 p_cont_attribute1 in varchar2 default null,
33 p_cont_attribute2 in varchar2 default null,
34 p_cont_attribute3 in varchar2 default null,
35 p_cont_attribute4 in varchar2 default null,
36 p_cont_attribute5 in varchar2 default null,
37 p_cont_attribute6 in varchar2 default null,
38 p_cont_attribute7 in varchar2 default null,
39 p_cont_attribute8 in varchar2 default null,
40 p_cont_attribute9 in varchar2 default null,
41 p_cont_attribute10 in varchar2 default null,
42 p_cont_attribute11 in varchar2 default null,
43 p_cont_attribute12 in varchar2 default null,
44 p_cont_attribute13 in varchar2 default null,
45 p_cont_attribute14 in varchar2 default null,
46 p_cont_attribute15 in varchar2 default null,
47 p_cont_attribute16 in varchar2 default null,
48 p_cont_attribute17 in varchar2 default null,
49 p_cont_attribute18 in varchar2 default null,
50 p_cont_attribute19 in varchar2 default null,
51 p_cont_attribute20 in varchar2 default null,
52 p_cont_information_category in varchar2 default null,
53 p_cont_information1 in varchar2 default null,
54 p_cont_information2 in varchar2 default null,
55 p_cont_information3 in varchar2 default null,
56 p_cont_information4 in varchar2 default null,
57 p_cont_information5 in varchar2 default null,
58 p_cont_information6 in varchar2 default null,
59 p_cont_information7 in varchar2 default null,
60 p_cont_information8 in varchar2 default null,
61 p_cont_information9 in varchar2 default null,
62 p_cont_information10 in varchar2 default null,
63 p_cont_information11 in varchar2 default null,
64 p_cont_information12 in varchar2 default null,
65 p_cont_information13 in varchar2 default null,
66 p_cont_information14 in varchar2 default null,
67 p_cont_information15 in varchar2 default null,
68 p_cont_information16 in varchar2 default null,
69 p_cont_information17 in varchar2 default null,
70 p_cont_information18 in varchar2 default null,
71 p_cont_information19 in varchar2 default null,
72 p_cont_information20 in varchar2 default null,
73 p_third_party_pay_flag in varchar2 default 'N',
74 p_bondholder_flag in varchar2 default 'N',
75 p_dependent_flag in varchar2 default 'N',
76 p_beneficiary_flag in varchar2 default 'N',
77 p_object_version_number out nocopy number,
78 p_effective_date in date default null,
79 p_validate in number default hr_api.g_false_num,
80 p_return_status out nocopy varchar2
81 ) as
82
83 --
84 -- Variables for API Boolean parameters
85 l_validate boolean;
86 --
87 -- Variables for IN/OUT parameters
88 --
89 -- Other variables
90 l_contact_relationship_id number;
91 l_proc varchar2(72) := g_package ||'insert';
92 l_per_person_id number;
93 l_per_object_version_number number;
94 l_per_effective_start_date date;
95 l_per_effective_end_date date;
96 l_full_name varchar2(240);
97 l_per_comment_id number;
98 l_name_combination_warning boolean;
99 l_orig_hire_warning boolean;
100
101 begin
102
103 hr_utility.set_location(' Entering:' || l_proc,10);
104 --
105 -- Issue a savepoint
106 --
107 savepoint per_ctr_swi_ins;
108 --
109 -- Initialise Multiple Message Detection
110 --
111 hr_multi_message.enable_message_list;
112 --
113 -- Remember IN OUT parameter IN values
114 --
115 --
116 -- Convert constant values to their corresponding boolean value
117 --
118 l_validate := hr_api.constant_to_boolean (p_constant_value => p_validate);
119 --
120 -- Register Surrogate ID or user key values
121 --
122
123 per_ctr_ins.set_base_key_value (
124 p_contact_relationship_id => p_contact_relationship_id
125 );
126
127 --
128 -- Call API
129 --
130 hr_contact_rel_api.create_contact(
131 P_CONTACT_RELATIONSHIP_ID => l_contact_relationship_id,
132 P_BUSINESS_GROUP_ID => P_BUSINESS_GROUP_ID,
133 P_PERSON_ID => P_PERSON_ID,
134 P_CONTACT_PERSON_ID => P_CONTACT_PERSON_ID,
135 P_CONTACT_TYPE => P_CONTACT_TYPE,
136 P_CTR_COMMENTS => P_COMMENTS,
137 P_PRIMARY_CONTACT_FLAG => P_PRIMARY_CONTACT_FLAG,
138 P_DATE_START => P_DATE_START,
139 P_START_LIFE_REASON_ID => P_START_LIFE_REASON_ID,
140 P_DATE_END => P_DATE_END,
141 P_END_LIFE_REASON_ID => P_END_LIFE_REASON_ID,
142 P_RLTD_PER_RSDS_W_DSGNTR_FLAG => P_RLTD_PER_RSDS_W_DSGNTR_FLAG,
143 P_PERSONAL_FLAG => P_PERSONAL_FLAG,
144 P_SEQUENCE_NUMBER => P_SEQUENCE_NUMBER,
145 P_CONT_ATTRIBUTE_CATEGORY => P_CONT_ATTRIBUTE_CATEGORY,
146 P_CONT_ATTRIBUTE1 => P_CONT_ATTRIBUTE1,
147 P_CONT_ATTRIBUTE2 => P_CONT_ATTRIBUTE2,
148 P_CONT_ATTRIBUTE3 => P_CONT_ATTRIBUTE3,
149 P_CONT_ATTRIBUTE4 => P_CONT_ATTRIBUTE4,
150 P_CONT_ATTRIBUTE5 => P_CONT_ATTRIBUTE5,
151 P_CONT_ATTRIBUTE6 => P_CONT_ATTRIBUTE6,
152 P_CONT_ATTRIBUTE7 => P_CONT_ATTRIBUTE7,
153 P_CONT_ATTRIBUTE8 => P_CONT_ATTRIBUTE8,
154 P_CONT_ATTRIBUTE9 => P_CONT_ATTRIBUTE9,
155 P_CONT_ATTRIBUTE10 => P_CONT_ATTRIBUTE10,
156 P_CONT_ATTRIBUTE11 => P_CONT_ATTRIBUTE11,
157 P_CONT_ATTRIBUTE12 => P_CONT_ATTRIBUTE12,
158 P_CONT_ATTRIBUTE13 => P_CONT_ATTRIBUTE13,
159 P_CONT_ATTRIBUTE14 => P_CONT_ATTRIBUTE14,
160 P_CONT_ATTRIBUTE15 => P_CONT_ATTRIBUTE15,
161 P_CONT_ATTRIBUTE16 => P_CONT_ATTRIBUTE16,
162 P_CONT_ATTRIBUTE17 => P_CONT_ATTRIBUTE17,
163 P_CONT_ATTRIBUTE18 => P_CONT_ATTRIBUTE18,
164 P_CONT_ATTRIBUTE19 => P_CONT_ATTRIBUTE19,
165 P_CONT_ATTRIBUTE20 => P_CONT_ATTRIBUTE20,
166 P_CONT_INFORMATION_CATEGORY => P_CONT_INFORMATION_CATEGORY,
167 P_CONT_INFORMATION1 => P_CONT_INFORMATION1,
168 P_CONT_INFORMATION2 => P_CONT_INFORMATION2,
169 P_CONT_INFORMATION3 => P_CONT_INFORMATION3,
170 P_CONT_INFORMATION4 => P_CONT_INFORMATION4,
171 P_CONT_INFORMATION5 => P_CONT_INFORMATION5,
172 P_CONT_INFORMATION6 => P_CONT_INFORMATION6,
173 P_CONT_INFORMATION7 => P_CONT_INFORMATION7,
174 P_CONT_INFORMATION8 => P_CONT_INFORMATION8,
175 P_CONT_INFORMATION9 => P_CONT_INFORMATION9,
176 P_CONT_INFORMATION10 => P_CONT_INFORMATION10,
177 P_CONT_INFORMATION11 => P_CONT_INFORMATION11,
178 P_CONT_INFORMATION12 => P_CONT_INFORMATION12,
179 P_CONT_INFORMATION13 => P_CONT_INFORMATION13,
180 P_CONT_INFORMATION14 => P_CONT_INFORMATION14,
181 P_CONT_INFORMATION15 => P_CONT_INFORMATION15,
182 P_CONT_INFORMATION16 => P_CONT_INFORMATION16,
183 P_CONT_INFORMATION17 => P_CONT_INFORMATION17,
184 P_CONT_INFORMATION18 => P_CONT_INFORMATION18,
185 P_CONT_INFORMATION19 => P_CONT_INFORMATION19,
186 P_CONT_INFORMATION20 => P_CONT_INFORMATION20,
187 P_THIRD_PARTY_PAY_FLAG => P_THIRD_PARTY_PAY_FLAG,
188 P_BONDHOLDER_FLAG => P_BONDHOLDER_FLAG,
189 P_DEPENDENT_FLAG => P_DEPENDENT_FLAG,
190 P_BENEFICIARY_FLAG => P_BENEFICIARY_FLAG,
191 P_CTR_OBJECT_VERSION_NUMBER => P_OBJECT_VERSION_NUMBER,
192 P_START_DATE => P_EFFECTIVE_DATE,
193 P_VALIDATE => l_validate,
194 P_PER_PERSON_ID => l_per_person_id,
195 P_PER_OBJECT_VERSION_NUMBER => l_per_object_version_number,
196 P_PER_EFFECTIVE_START_DATE => l_per_effective_start_date,
197 P_PER_EFFECTIVE_END_DATE => l_per_effective_end_date,
198 P_FULL_NAME => l_full_name,
199 P_PER_COMMENT_ID => l_per_comment_id,
200 P_NAME_COMBINATION_WARNING => l_name_combination_warning,
201 P_ORIG_HIRE_WARNING => l_orig_hire_warning
202 );
203
204 --
205 -- Convert API warning boolean parameter values to specific
206 -- messages and add them to Multiple Message List
207 --
208 --
209 -- Convert API non-warning boolean parameter values
210 --
211 --
212 -- Derive the API return status value based on whether
213 -- messages of any type exist in the Multiple Message List.
214 -- Also disable Multiple Message Detection.
215 --
216 If l_validate = TRUE Then
217 rollback to per_ctr_swi_ins;
218 End If;
219 --
220 p_return_status := hr_multi_message.get_return_status_disable;
221 hr_utility.set_location(' Leaving:' || l_proc,20);
222 --
223 exception
224 when hr_multi_message.error_message_exist then
225 --
226 -- Catch the Multiple Message List exception which
227 -- indicates API processing has been aborted because
228 -- at least one message exists in the list.
229 --
230 rollback to per_ctr_swi_ins;
231 --
232 -- Reset IN OUT parameters and set OUT parameters
233 --
234 p_object_version_number := null;
235 p_return_status := hr_multi_message.get_return_status_disable;
236 hr_utility.set_location(' Leaving:' || l_proc, 30);
237 when others then
238 --
239 -- When Multiple Message Detection is enabled catch
240 -- any Application specific or other unexpected
241 -- exceptions. Adding appropriate details to the
242 -- Multiple Message List. Otherwise re-raise the
243 -- error.
244 --
245 rollback to per_ctr_swi_ins;
246 if hr_multi_message.unexpected_error_add(l_proc) then
247 hr_utility.set_location(' Leaving:' || l_proc,40);
248 raise;
249 end if;
250 --
251 -- Reset IN OUT and set OUT parameters
252 --
253 p_object_version_number := null;
254 p_return_status := hr_multi_message.get_return_status_disable;
255 hr_utility.set_location(' Leaving:' || l_proc,50);
256
257 end ins;
258
259 -- ----------------------------------------------------------------------------
260 -- |--------------------------------< upd >-----------------------------------|
261 -- ----------------------------------------------------------------------------
262
263 procedure upd (
264 p_contact_relationship_id in number,
265 p_contact_type in varchar2 default hr_api.g_varchar2,
266 p_comments in long default hr_api.g_varchar2,
267 p_primary_contact_flag in varchar2 default hr_api.g_varchar2,
268 p_request_id in number default hr_api.g_number,
269 p_program_application_id in number default hr_api.g_number,
270 p_program_id in number default hr_api.g_number,
271 p_program_update_date in date default hr_api.g_date,
272 p_date_start in date default hr_api.g_date,
273 p_start_life_reason_id in number default hr_api.g_number,
274 p_date_end in date default hr_api.g_date,
275 p_end_life_reason_id in number default hr_api.g_number,
276 p_rltd_per_rsds_w_dsgntr_flag in varchar2 default hr_api.g_varchar2,
277 p_personal_flag in varchar2 default hr_api.g_varchar2,
278 p_sequence_number in number default hr_api.g_number,
279 p_cont_attribute_category in varchar2 default hr_api.g_varchar2,
280 p_cont_attribute1 in varchar2 default hr_api.g_varchar2,
281 p_cont_attribute2 in varchar2 default hr_api.g_varchar2,
285 p_cont_attribute6 in varchar2 default hr_api.g_varchar2,
282 p_cont_attribute3 in varchar2 default hr_api.g_varchar2,
283 p_cont_attribute4 in varchar2 default hr_api.g_varchar2,
284 p_cont_attribute5 in varchar2 default hr_api.g_varchar2,
286 p_cont_attribute7 in varchar2 default hr_api.g_varchar2,
287 p_cont_attribute8 in varchar2 default hr_api.g_varchar2,
288 p_cont_attribute9 in varchar2 default hr_api.g_varchar2,
289 p_cont_attribute10 in varchar2 default hr_api.g_varchar2,
290 p_cont_attribute11 in varchar2 default hr_api.g_varchar2,
291 p_cont_attribute12 in varchar2 default hr_api.g_varchar2,
292 p_cont_attribute13 in varchar2 default hr_api.g_varchar2,
293 p_cont_attribute14 in varchar2 default hr_api.g_varchar2,
294 p_cont_attribute15 in varchar2 default hr_api.g_varchar2,
295 p_cont_attribute16 in varchar2 default hr_api.g_varchar2,
296 p_cont_attribute17 in varchar2 default hr_api.g_varchar2,
297 p_cont_attribute18 in varchar2 default hr_api.g_varchar2,
298 p_cont_attribute19 in varchar2 default hr_api.g_varchar2,
299 p_cont_attribute20 in varchar2 default hr_api.g_varchar2,
300 p_cont_information_category in varchar2 default hr_api.g_varchar2,
301 p_cont_information1 in varchar2 default hr_api.g_varchar2,
302 p_cont_information2 in varchar2 default hr_api.g_varchar2,
303 p_cont_information3 in varchar2 default hr_api.g_varchar2,
304 p_cont_information4 in varchar2 default hr_api.g_varchar2,
305 p_cont_information5 in varchar2 default hr_api.g_varchar2,
306 p_cont_information6 in varchar2 default hr_api.g_varchar2,
307 p_cont_information7 in varchar2 default hr_api.g_varchar2,
308 p_cont_information8 in varchar2 default hr_api.g_varchar2,
309 p_cont_information9 in varchar2 default hr_api.g_varchar2,
310 p_cont_information10 in varchar2 default hr_api.g_varchar2,
311 p_cont_information11 in varchar2 default hr_api.g_varchar2,
312 p_cont_information12 in varchar2 default hr_api.g_varchar2,
313 p_cont_information13 in varchar2 default hr_api.g_varchar2,
314 p_cont_information14 in varchar2 default hr_api.g_varchar2,
315 p_cont_information15 in varchar2 default hr_api.g_varchar2,
316 p_cont_information16 in varchar2 default hr_api.g_varchar2,
317 p_cont_information17 in varchar2 default hr_api.g_varchar2,
318 p_cont_information18 in varchar2 default hr_api.g_varchar2,
319 p_cont_information19 in varchar2 default hr_api.g_varchar2,
320 p_cont_information20 in varchar2 default hr_api.g_varchar2,
321 p_third_party_pay_flag in varchar2 default hr_api.g_varchar2,
322 p_bondholder_flag in varchar2 default hr_api.g_varchar2,
323 p_dependent_flag in varchar2 default hr_api.g_varchar2,
324 p_beneficiary_flag in varchar2 default hr_api.g_varchar2,
325 p_object_version_number in out nocopy number,
326 p_effective_date in date,
327 p_validate in number default hr_api.g_false_num,
328 p_return_status out nocopy varchar2
329 ) is
330 --
331 -- Variables for API Boolean parameters
332 l_validate boolean;
333 --
334 -- Variables for IN/OUT parameters
335 l_object_version_number number;
336
337 l_proc varchar2(72) := g_package ||' upd';
338
339 begin
340 hr_utility.set_location(' Entering:' || l_proc,10);
341 --
342 -- Issue a savepoint
343 --
344 savepoint per_ctr_swi_upd;
345 --
346 -- Initialise Multiple Message Detection
347 --
348 hr_multi_message.enable_message_list;
349 --
350 -- Remember IN OUT parameter IN values
351 --
352 l_object_version_number := p_object_version_number;
353 --
354 -- Convert constant values to their corresponding boolean value
355 --
356 l_validate := hr_api.constant_to_boolean (p_constant_value => p_validate);
357 --
358 --
359 hr_contact_rel_api.update_contact_relationship(
360 P_CONTACT_RELATIONSHIP_ID => P_CONTACT_RELATIONSHIP_ID,
361 P_CONTACT_TYPE => P_CONTACT_TYPE,
362 P_COMMENTS => P_COMMENTS,
363 P_PRIMARY_CONTACT_FLAG => P_PRIMARY_CONTACT_FLAG,
364 P_DATE_START => P_DATE_START,
365 P_START_LIFE_REASON_ID => P_START_LIFE_REASON_ID,
366 P_DATE_END => P_DATE_END,
367 P_END_LIFE_REASON_ID => P_END_LIFE_REASON_ID,
368 P_RLTD_PER_RSDS_W_DSGNTR_FLAG => P_RLTD_PER_RSDS_W_DSGNTR_FLAG,
369 P_PERSONAL_FLAG => P_PERSONAL_FLAG,
370 P_SEQUENCE_NUMBER => P_SEQUENCE_NUMBER,
371 P_CONT_ATTRIBUTE_CATEGORY => P_CONT_ATTRIBUTE_CATEGORY,
372 P_CONT_ATTRIBUTE1 => P_CONT_ATTRIBUTE1,
373 P_CONT_ATTRIBUTE2 => P_CONT_ATTRIBUTE2,
374 P_CONT_ATTRIBUTE3 => P_CONT_ATTRIBUTE3,
375 P_CONT_ATTRIBUTE4 => P_CONT_ATTRIBUTE4,
376 P_CONT_ATTRIBUTE5 => P_CONT_ATTRIBUTE5,
380 P_CONT_ATTRIBUTE9 => P_CONT_ATTRIBUTE9,
377 P_CONT_ATTRIBUTE6 => P_CONT_ATTRIBUTE6,
378 P_CONT_ATTRIBUTE7 => P_CONT_ATTRIBUTE7,
379 P_CONT_ATTRIBUTE8 => P_CONT_ATTRIBUTE8,
381 P_CONT_ATTRIBUTE10 => P_CONT_ATTRIBUTE10,
382 P_CONT_ATTRIBUTE11 => P_CONT_ATTRIBUTE11,
383 P_CONT_ATTRIBUTE12 => P_CONT_ATTRIBUTE12,
384 P_CONT_ATTRIBUTE13 => P_CONT_ATTRIBUTE13,
385 P_CONT_ATTRIBUTE14 => P_CONT_ATTRIBUTE14,
386 P_CONT_ATTRIBUTE15 => P_CONT_ATTRIBUTE15,
387 P_CONT_ATTRIBUTE16 => P_CONT_ATTRIBUTE16,
388 P_CONT_ATTRIBUTE17 => P_CONT_ATTRIBUTE17,
389 P_CONT_ATTRIBUTE18 => P_CONT_ATTRIBUTE18,
390 P_CONT_ATTRIBUTE19 => P_CONT_ATTRIBUTE19,
391 P_CONT_ATTRIBUTE20 => P_CONT_ATTRIBUTE20,
392 P_CONT_INFORMATION_CATEGORY => P_CONT_INFORMATION_CATEGORY,
393 P_CONT_INFORMATION1 => P_CONT_INFORMATION1,
394 P_CONT_INFORMATION2 => P_CONT_INFORMATION2,
395 P_CONT_INFORMATION3 => P_CONT_INFORMATION3,
396 P_CONT_INFORMATION4 => P_CONT_INFORMATION4,
397 P_CONT_INFORMATION5 => P_CONT_INFORMATION5,
398 P_CONT_INFORMATION6 => P_CONT_INFORMATION6,
399 P_CONT_INFORMATION7 => P_CONT_INFORMATION7,
400 P_CONT_INFORMATION8 => P_CONT_INFORMATION8,
401 P_CONT_INFORMATION9 => P_CONT_INFORMATION9,
402 P_CONT_INFORMATION10 => P_CONT_INFORMATION10,
403 P_CONT_INFORMATION11 => P_CONT_INFORMATION11,
404 P_CONT_INFORMATION12 => P_CONT_INFORMATION12,
405 P_CONT_INFORMATION13 => P_CONT_INFORMATION13,
406 P_CONT_INFORMATION14 => P_CONT_INFORMATION14,
407 P_CONT_INFORMATION15 => P_CONT_INFORMATION15,
408 P_CONT_INFORMATION16 => P_CONT_INFORMATION16,
409 P_CONT_INFORMATION17 => P_CONT_INFORMATION17,
410 P_CONT_INFORMATION18 => P_CONT_INFORMATION18,
411 P_CONT_INFORMATION19 => P_CONT_INFORMATION19,
412 P_CONT_INFORMATION20 => P_CONT_INFORMATION20,
413 P_THIRD_PARTY_PAY_FLAG => P_THIRD_PARTY_PAY_FLAG,
414 P_BONDHOLDER_FLAG => P_BONDHOLDER_FLAG,
415 P_DEPENDENT_FLAG => P_DEPENDENT_FLAG,
416 P_BENEFICIARY_FLAG => P_BENEFICIARY_FLAG,
417 P_OBJECT_VERSION_NUMBER => P_OBJECT_VERSION_NUMBER,
418 P_EFFECTIVE_DATE => P_EFFECTIVE_DATE,
419 P_VALIDATE => l_validate
420 );
421
422 If l_validate = TRUE Then
423 rollback to per_ctr_swi_upd;
424 End If;
425 --
426 p_return_status := hr_multi_message.get_return_status_disable;
427 hr_utility.set_location(' Leaving:' || l_proc,20);
428 --
429 exception
430 when hr_multi_message.error_message_exist then
431 --
432 rollback to per_ctr_swi_upd;
433 --
434 --
435 p_object_version_number := l_object_version_number;
436 p_return_status := hr_multi_message.get_return_status_disable;
437 hr_utility.set_location(' Leaving:' || l_proc, 30);
438
439 when others then
440 --
441 rollback to per_ctr_swi_upd;
442
443 if hr_multi_message.unexpected_error_add(l_proc) then
444 hr_utility.set_location(' Leaving:' || l_proc,40);
445 raise;
446 end if;
447 --
448 p_object_version_number := l_object_version_number;
449 p_return_status := hr_multi_message.get_return_status_disable;
450 hr_utility.set_location(' Leaving:' || l_proc,50);
451
452 end upd;
453
454 -- ----------------------------------------------------------------------------
455 -- |----------------------------------< del >---------------------------------|
456 -- ----------------------------------------------------------------------------
457
458 procedure del (
459 p_contact_relationship_id in number,
460 p_object_version_number in number,
461 p_validate in number default hr_api.g_false_num,
462 p_return_status out nocopy varchar2
463 ) is
464
465 --
466 -- Variables for API Boolean parameters
467 l_validate boolean;
468 --
469 -- Variables for IN/OUT parameters
470 --
471 -- Other variables
472 l_proc varchar2(72) := g_package ||'del';
473
474 begin
475
476 hr_utility.set_location(' Entering:' || l_proc,10);
477 -- Issue a savepoint
478 savepoint per_ctr_swi_del;
479 -- Initialise Multiple Message Detection
480 hr_multi_message.enable_message_list;
481 -- Convert constant values to their corresponding boolean value
482 l_validate := hr_api.constant_to_boolean (p_constant_value => p_validate);
483 --
484 -- Call API
485 hr_contact_rel_api.delete_contact_relationship(
486 P_CONTACT_RELATIONSHIP_ID => P_CONTACT_RELATIONSHIP_ID,
487 P_OBJECT_VERSION_NUMBER => P_OBJECT_VERSION_NUMBER,
488 P_VALIDATE => l_validate
489 );
490
491 If l_validate = TRUE Then
492 rollback to delete_questionnaire_swi;
493 End If;
494
495 p_return_status := hr_multi_message.get_return_status_disable;
496 hr_utility.set_location(' Leaving:' || l_proc,20);
497
498 exception
502 -- indicates API processing has been aborted because
499 when hr_multi_message.error_message_exist then
500 --
501 -- Catch the Multiple Message List exception which
503 -- at least one message exists in the list.
504 --
505 rollback to per_ctr_swi_del;
506 --
507 -- Reset IN OUT parameters and set OUT parameters
508 --
509 p_return_status := hr_multi_message.get_return_status_disable;
510 hr_utility.set_location(' Leaving:' || l_proc, 30);
511 when others then
512 --
513 -- When Multiple Message Detection is enabled catch
514 -- any Application specific or other unexpected
515 -- exceptions. Adding appropriate details to the
516 -- Multiple Message List. Otherwise re-raise the
517 -- error.
518 --
519 rollback to per_ctr_swi_del;
520 if hr_multi_message.unexpected_error_add(l_proc) then
521 hr_utility.set_location(' Leaving:' || l_proc,40);
522 raise;
523 end if;
524 --
525 -- Reset IN OUT and set OUT parameters
526 --
527 p_return_status := hr_multi_message.get_return_status_disable;
528 hr_utility.set_location(' Leaving:' || l_proc,50);
529 end del;
530
531 END per_contact_relationship_swi;