DBA Data[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;