DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_POSITION_SWI

Source


1 Package Body hr_position_swi As
2 /* $Header: hrposswi.pkb 115.2 2003/05/22 08:03:10 ndorai noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_position_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------------< create_position >---------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_position
12   (p_position_id                     out nocopy number
13   ,p_effective_start_date            out nocopy date
14   ,p_effective_end_date              out nocopy date
15   ,p_position_definition_id          out nocopy number
16   ,p_name                            out nocopy varchar2
17   ,p_object_version_number           out nocopy number
18   ,p_job_id                       in     number
19   ,p_organization_id              in     number
20   ,p_effective_date               in     date
21   ,p_date_effective               in     date
22   ,p_validate                     in     number    default hr_api.g_false_num
23   ,p_availability_status_id       in     number    default null
24   ,p_business_group_id            in     number    default null
25   ,p_entry_step_id                in     number    default null
26   ,p_entry_grade_rule_id          in     number    default null
27   ,p_location_id                  in     number    default null
28   ,p_pay_freq_payroll_id          in     number    default null
29   ,p_position_transaction_id      in     number    default null
30   ,p_prior_position_id            in     number    default null
31   ,p_relief_position_id           in     number    default null
32   ,p_entry_grade_id               in     number    default null
33   ,p_successor_position_id        in     number    default null
34   ,p_supervisor_position_id       in     number    default null
35   ,p_amendment_date               in     date      default null
36   ,p_amendment_recommendation     in     varchar2  default null
37   ,p_amendment_ref_number         in     varchar2  default null
38   ,p_bargaining_unit_cd           in     varchar2  default null
39   ,p_comments                     in     long      default null
40   ,p_current_job_prop_end_date    in     date      default null
41   ,p_current_org_prop_end_date    in     date      default null
42   ,p_avail_status_prop_end_date   in     date      default null
43   ,p_date_end                     in     date      default null
44   ,p_earliest_hire_date           in     date      default null
45   ,p_fill_by_date                 in     date      default null
46   ,p_frequency                    in     varchar2  default null
47   ,p_fte                          in     number    default null
48   ,p_max_persons                  in     number    default null
49   ,p_overlap_period               in     number    default null
50   ,p_overlap_unit_cd              in     varchar2  default null
51   ,p_pay_term_end_day_cd          in     varchar2  default null
52   ,p_pay_term_end_month_cd        in     varchar2  default null
53   ,p_permanent_temporary_flag     in     varchar2  default null
54   ,p_permit_recruitment_flag      in     varchar2  default null
55   ,p_position_type                in     varchar2  default null
56   ,p_posting_description          in     varchar2  default null
57   ,p_probation_period             in     number    default null
58   ,p_probation_period_unit_cd     in     varchar2  default null
59   ,p_replacement_required_flag    in     varchar2  default null
60   ,p_review_flag                  in     varchar2  default null
61   ,p_seasonal_flag                in     varchar2  default null
62   ,p_security_requirements        in     varchar2  default null
63   ,p_status                       in     varchar2  default null
64   ,p_term_start_day_cd            in     varchar2  default null
65   ,p_term_start_month_cd          in     varchar2  default null
66   ,p_time_normal_finish           in     varchar2  default null
67   ,p_time_normal_start            in     varchar2  default null
68   ,p_update_source_cd             in     varchar2  default null
69   ,p_working_hours                in     number    default null
70   ,p_works_council_approval_flag  in     varchar2  default null
71   ,p_work_period_type_cd          in     varchar2  default null
72   ,p_work_term_end_day_cd         in     varchar2  default null
73   ,p_work_term_end_month_cd       in     varchar2  default null
74   ,p_proposed_fte_for_layoff      in     number    default null
75   ,p_proposed_date_for_layoff     in     date      default null
76   ,p_pay_basis_id                 in     number    default null
77   ,p_supervisor_id                in     number    default null
78   ,p_information1                 in     varchar2  default null
79   ,p_information2                 in     varchar2  default null
80   ,p_information3                 in     varchar2  default null
81   ,p_information4                 in     varchar2  default null
82   ,p_information5                 in     varchar2  default null
83   ,p_information6                 in     varchar2  default null
84   ,p_information7                 in     varchar2  default null
85   ,p_information8                 in     varchar2  default null
86   ,p_information9                 in     varchar2  default null
87   ,p_information10                in     varchar2  default null
88   ,p_information11                in     varchar2  default null
89   ,p_information12                in     varchar2  default null
90   ,p_information13                in     varchar2  default null
91   ,p_information14                in     varchar2  default null
92   ,p_information15                in     varchar2  default null
93   ,p_information16                in     varchar2  default null
94   ,p_information17                in     varchar2  default null
95   ,p_information18                in     varchar2  default null
96   ,p_information19                in     varchar2  default null
97   ,p_information20                in     varchar2  default null
98   ,p_information21                in     varchar2  default null
99   ,p_information22                in     varchar2  default null
100   ,p_information23                in     varchar2  default null
101   ,p_information24                in     varchar2  default null
102   ,p_information25                in     varchar2  default null
103   ,p_information26                in     varchar2  default null
104   ,p_information27                in     varchar2  default null
105   ,p_information28                in     varchar2  default null
106   ,p_information29                in     varchar2  default null
107   ,p_information30                in     varchar2  default null
108   ,p_information_category         in     varchar2  default null
109   ,p_attribute1                   in     varchar2  default null
110   ,p_attribute2                   in     varchar2  default null
111   ,p_attribute3                   in     varchar2  default null
112   ,p_attribute4                   in     varchar2  default null
113   ,p_attribute5                   in     varchar2  default null
114   ,p_attribute6                   in     varchar2  default null
115   ,p_attribute7                   in     varchar2  default null
116   ,p_attribute8                   in     varchar2  default null
117   ,p_attribute9                   in     varchar2  default null
118   ,p_attribute10                  in     varchar2  default null
119   ,p_attribute11                  in     varchar2  default null
120   ,p_attribute12                  in     varchar2  default null
121   ,p_attribute13                  in     varchar2  default null
122   ,p_attribute14                  in     varchar2  default null
123   ,p_attribute15                  in     varchar2  default null
124   ,p_attribute16                  in     varchar2  default null
125   ,p_attribute17                  in     varchar2  default null
126   ,p_attribute18                  in     varchar2  default null
127   ,p_attribute19                  in     varchar2  default null
128   ,p_attribute20                  in     varchar2  default null
129   ,p_attribute21                  in     varchar2  default null
130   ,p_attribute22                  in     varchar2  default null
131   ,p_attribute23                  in     varchar2  default null
132   ,p_attribute24                  in     varchar2  default null
133   ,p_attribute25                  in     varchar2  default null
134   ,p_attribute26                  in     varchar2  default null
135   ,p_attribute27                  in     varchar2  default null
136   ,p_attribute28                  in     varchar2  default null
137   ,p_attribute29                  in     varchar2  default null
138   ,p_attribute30                  in     varchar2  default null
139   ,p_attribute_category           in     varchar2  default null
140   ,p_segment1                     in     varchar2  default null
141   ,p_segment2                     in     varchar2  default null
142   ,p_segment3                     in     varchar2  default null
143   ,p_segment4                     in     varchar2  default null
144   ,p_segment5                     in     varchar2  default null
145   ,p_segment6                     in     varchar2  default null
146   ,p_segment7                     in     varchar2  default null
147   ,p_segment8                     in     varchar2  default null
148   ,p_segment9                     in     varchar2  default null
149   ,p_segment10                    in     varchar2  default null
150   ,p_segment11                    in     varchar2  default null
151   ,p_segment12                    in     varchar2  default null
152   ,p_segment13                    in     varchar2  default null
153   ,p_segment14                    in     varchar2  default null
154   ,p_segment15                    in     varchar2  default null
155   ,p_segment16                    in     varchar2  default null
156   ,p_segment17                    in     varchar2  default null
157   ,p_segment18                    in     varchar2  default null
158   ,p_segment19                    in     varchar2  default null
159   ,p_segment20                    in     varchar2  default null
160   ,p_segment21                    in     varchar2  default null
161   ,p_segment22                    in     varchar2  default null
162   ,p_segment23                    in     varchar2  default null
163   ,p_segment24                    in     varchar2  default null
164   ,p_segment25                    in     varchar2  default null
165   ,p_segment26                    in     varchar2  default null
166   ,p_segment27                    in     varchar2  default null
167   ,p_segment28                    in     varchar2  default null
168   ,p_segment29                    in     varchar2  default null
169   ,p_segment30                    in     varchar2  default null
170   ,p_concat_segments              in     varchar2  default null
171   ,p_request_id                   in     number    default null
172   ,p_program_application_id       in     number    default null
173   ,p_program_id                   in     number    default null
174   ,p_program_update_date          in     date      default null
175   ,p_security_profile_id          in     number    default null
176   ,p_return_status                   out nocopy varchar2
177   ) is
178   --
179   -- Variables for API Boolean parameters
180   l_validate                      boolean;
181   --
182   -- Variables for IN/OUT parameters
183   --
184   -- Other variables
185   l_proc    varchar2(72) := g_package ||'create_position';
186 Begin
187   hr_utility.set_location(' Entering:' || l_proc,10);
188   --
189   -- Issue a savepoint
190   --
191   savepoint create_position_swi;
192   --
193   -- Initialise Multiple Message Detection
194   --
195   hr_multi_message.enable_message_list;
196   --
197   -- Remember IN OUT parameter IN values
198   --
199   --
200   -- Convert constant values to their corresponding boolean value
201   --
202   l_validate :=
203     hr_api.constant_to_boolean
204       (p_constant_value => p_validate);
205   --
206   -- Register Surrogate ID or user key values
207   --
208   --
209   -- Call API
210   --
211   hr_position_api.create_position
212     (p_position_id                  => p_position_id
213     ,p_effective_start_date         => p_effective_start_date
214     ,p_effective_end_date           => p_effective_end_date
215     ,p_position_definition_id       => p_position_definition_id
216     ,p_name                         => p_name
217     ,p_object_version_number        => p_object_version_number
218     ,p_job_id                       => p_job_id
219     ,p_organization_id              => p_organization_id
220     ,p_effective_date               => p_effective_date
221     ,p_date_effective               => p_date_effective
222     ,p_validate                     => l_validate
223     ,p_availability_status_id       => p_availability_status_id
224     ,p_business_group_id            => p_business_group_id
225     ,p_entry_step_id                => p_entry_step_id
226     ,p_entry_grade_rule_id          => p_entry_grade_rule_id
227     ,p_location_id                  => p_location_id
228     ,p_pay_freq_payroll_id          => p_pay_freq_payroll_id
229     ,p_position_transaction_id      => p_position_transaction_id
230     ,p_prior_position_id            => p_prior_position_id
231     ,p_relief_position_id           => p_relief_position_id
232     ,p_entry_grade_id               => p_entry_grade_id
233     ,p_successor_position_id        => p_successor_position_id
234     ,p_supervisor_position_id       => p_supervisor_position_id
235     ,p_amendment_date               => p_amendment_date
236     ,p_amendment_recommendation     => p_amendment_recommendation
237     ,p_amendment_ref_number         => p_amendment_ref_number
238     ,p_bargaining_unit_cd           => p_bargaining_unit_cd
239     ,p_comments                     => p_comments
240     ,p_current_job_prop_end_date    => p_current_job_prop_end_date
241     ,p_current_org_prop_end_date    => p_current_org_prop_end_date
242     ,p_avail_status_prop_end_date   => p_avail_status_prop_end_date
243     ,p_date_end                     => p_date_end
244     ,p_earliest_hire_date           => p_earliest_hire_date
245     ,p_fill_by_date                 => p_fill_by_date
246     ,p_frequency                    => p_frequency
247     ,p_fte                          => p_fte
248     ,p_max_persons                  => p_max_persons
249     ,p_overlap_period               => p_overlap_period
250     ,p_overlap_unit_cd              => p_overlap_unit_cd
251     ,p_pay_term_end_day_cd          => p_pay_term_end_day_cd
252     ,p_pay_term_end_month_cd        => p_pay_term_end_month_cd
253     ,p_permanent_temporary_flag     => p_permanent_temporary_flag
254     ,p_permit_recruitment_flag      => p_permit_recruitment_flag
255     ,p_position_type                => p_position_type
256     ,p_posting_description          => p_posting_description
257     ,p_probation_period             => p_probation_period
258     ,p_probation_period_unit_cd     => p_probation_period_unit_cd
259     ,p_replacement_required_flag    => p_replacement_required_flag
260     ,p_review_flag                  => p_review_flag
261     ,p_seasonal_flag                => p_seasonal_flag
262     ,p_security_requirements        => p_security_requirements
263     ,p_status                       => p_status
264     ,p_term_start_day_cd            => p_term_start_day_cd
265     ,p_term_start_month_cd          => p_term_start_month_cd
266     ,p_time_normal_finish           => p_time_normal_finish
267     ,p_time_normal_start            => p_time_normal_start
268     ,p_update_source_cd             => p_update_source_cd
269     ,p_working_hours                => p_working_hours
270     ,p_works_council_approval_flag  => p_works_council_approval_flag
271     ,p_work_period_type_cd          => p_work_period_type_cd
272     ,p_work_term_end_day_cd         => p_work_term_end_day_cd
273     ,p_work_term_end_month_cd       => p_work_term_end_month_cd
274     ,p_proposed_fte_for_layoff      => p_proposed_fte_for_layoff
275     ,p_proposed_date_for_layoff     => p_proposed_date_for_layoff
276     ,p_pay_basis_id                 => p_pay_basis_id
277     ,p_supervisor_id                => p_supervisor_id
278     ,p_information1                 => p_information1
279     ,p_information2                 => p_information2
280     ,p_information3                 => p_information3
281     ,p_information4                 => p_information4
282     ,p_information5                 => p_information5
283     ,p_information6                 => p_information6
284     ,p_information7                 => p_information7
285     ,p_information8                 => p_information8
286     ,p_information9                 => p_information9
287     ,p_information10                => p_information10
288     ,p_information11                => p_information11
289     ,p_information12                => p_information12
290     ,p_information13                => p_information13
291     ,p_information14                => p_information14
292     ,p_information15                => p_information15
293     ,p_information16                => p_information16
294     ,p_information17                => p_information17
295     ,p_information18                => p_information18
296     ,p_information19                => p_information19
297     ,p_information20                => p_information20
298     ,p_information21                => p_information21
299     ,p_information22                => p_information22
300     ,p_information23                => p_information23
301     ,p_information24                => p_information24
302     ,p_information25                => p_information25
303     ,p_information26                => p_information26
304     ,p_information27                => p_information27
305     ,p_information28                => p_information28
306     ,p_information29                => p_information29
307     ,p_information30                => p_information30
308     ,p_information_category         => p_information_category
309     ,p_attribute1                   => p_attribute1
310     ,p_attribute2                   => p_attribute2
311     ,p_attribute3                   => p_attribute3
312     ,p_attribute4                   => p_attribute4
313     ,p_attribute5                   => p_attribute5
314     ,p_attribute6                   => p_attribute6
315     ,p_attribute7                   => p_attribute7
316     ,p_attribute8                   => p_attribute8
317     ,p_attribute9                   => p_attribute9
318     ,p_attribute10                  => p_attribute10
319     ,p_attribute11                  => p_attribute11
320     ,p_attribute12                  => p_attribute12
321     ,p_attribute13                  => p_attribute13
322     ,p_attribute14                  => p_attribute14
323     ,p_attribute15                  => p_attribute15
324     ,p_attribute16                  => p_attribute16
325     ,p_attribute17                  => p_attribute17
326     ,p_attribute18                  => p_attribute18
327     ,p_attribute19                  => p_attribute19
328     ,p_attribute20                  => p_attribute20
329     ,p_attribute21                  => p_attribute21
330     ,p_attribute22                  => p_attribute22
331     ,p_attribute23                  => p_attribute23
332     ,p_attribute24                  => p_attribute24
333     ,p_attribute25                  => p_attribute25
334     ,p_attribute26                  => p_attribute26
335     ,p_attribute27                  => p_attribute27
336     ,p_attribute28                  => p_attribute28
337     ,p_attribute29                  => p_attribute29
338     ,p_attribute30                  => p_attribute30
339     ,p_attribute_category           => p_attribute_category
340     ,p_segment1                     => p_segment1
341     ,p_segment2                     => p_segment2
342     ,p_segment3                     => p_segment3
343     ,p_segment4                     => p_segment4
344     ,p_segment5                     => p_segment5
345     ,p_segment6                     => p_segment6
346     ,p_segment7                     => p_segment7
347     ,p_segment8                     => p_segment8
348     ,p_segment9                     => p_segment9
349     ,p_segment10                    => p_segment10
350     ,p_segment11                    => p_segment11
351     ,p_segment12                    => p_segment12
352     ,p_segment13                    => p_segment13
353     ,p_segment14                    => p_segment14
354     ,p_segment15                    => p_segment15
355     ,p_segment16                    => p_segment16
356     ,p_segment17                    => p_segment17
357     ,p_segment18                    => p_segment18
358     ,p_segment19                    => p_segment19
359     ,p_segment20                    => p_segment20
360     ,p_segment21                    => p_segment21
361     ,p_segment22                    => p_segment22
362     ,p_segment23                    => p_segment23
363     ,p_segment24                    => p_segment24
364     ,p_segment25                    => p_segment25
365     ,p_segment26                    => p_segment26
366     ,p_segment27                    => p_segment27
367     ,p_segment28                    => p_segment28
368     ,p_segment29                    => p_segment29
369     ,p_segment30                    => p_segment30
370     ,p_concat_segments              => p_concat_segments
371     ,p_request_id                   => p_request_id
372     ,p_program_application_id       => p_program_application_id
373     ,p_program_id                   => p_program_id
374     ,p_program_update_date          => p_program_update_date
375     ,p_security_profile_id          => p_security_profile_id
376     );
377   --
378   -- Convert API warning boolean parameter values to specific
379   -- messages and add them to Multiple Message List
380   --
381   --
382   -- Convert API non-warning boolean parameter values
383   --
384   --
385   -- Derive the API return status value based on whether
386   -- messages of any type exist in the Multiple Message List.
387   -- Also disable Multiple Message Detection.
388   --
389   p_return_status := hr_multi_message.get_return_status_disable;
390   hr_utility.set_location(' Leaving:' || l_proc,20);
391   --
392 exception
393   when hr_multi_message.error_message_exist then
394     --
395     -- Catch the Multiple Message List exception which
396     -- indicates API processing has been aborted because
397     -- at least one message exists in the list.
398     --
399     rollback to create_position_swi;
400     --
401     -- Reset IN OUT parameters and set OUT parameters
402     --
403     p_position_id                  := null;
404     p_effective_start_date         := null;
405     p_effective_end_date           := null;
406     p_position_definition_id       := null;
407     p_name                         := null;
408     p_object_version_number        := null;
409     p_return_status := hr_multi_message.get_return_status_disable;
410     hr_utility.set_location(' Leaving:' || l_proc, 30);
411   when others then
412     --
413     -- When Multiple Message Detection is enabled catch
414     -- any Application specific or other unexpected
415     -- exceptions.  Adding appropriate details to the
416     -- Multiple Message List.  Otherwise re-raise the
417     -- error.
418     --
419     rollback to create_position_swi;
420     if hr_multi_message.unexpected_error_add(l_proc) then
421        hr_utility.set_location(' Leaving:' || l_proc,40);
422        raise;
423     end if;
424     --
425     -- Reset IN OUT and set OUT parameters
426     --
427     p_position_id                  := null;
428     p_effective_start_date         := null;
429     p_effective_end_date           := null;
430     p_position_definition_id       := null;
431     p_name                         := null;
432     p_object_version_number        := null;
433     p_return_status := hr_multi_message.get_return_status_disable;
434     hr_utility.set_location(' Leaving:' || l_proc,50);
435 end create_position;
436 -- ----------------------------------------------------------------------------
437 -- |----------------------------< delete_position >---------------------------|
438 -- ----------------------------------------------------------------------------
439 PROCEDURE delete_position
440   (p_validate                     in     number    default hr_api.g_false_num
441   ,p_position_id                  in     number
442   ,p_effective_start_date            out nocopy date
443   ,p_effective_end_date              out nocopy date
444   ,p_object_version_number        in out nocopy number
445   ,p_effective_date               in     date
446   ,p_datetrack_mode               in     varchar2
447   ,p_security_profile_id          in     number    default hr_api.g_number
448   ,p_return_status                   out nocopy varchar2
449   ) is
450   --
451   -- Variables for API Boolean parameters
452   l_validate                      boolean;
453   --
454   -- Variables for IN/OUT parameters
455   l_object_version_number         number;
456   --
457   -- Other variables
458   l_proc    varchar2(72) := g_package ||'delete_position';
459 Begin
460   hr_utility.set_location(' Entering:' || l_proc,10);
461   --
462   -- Issue a savepoint
463   --
464   savepoint delete_position_swi;
465   --
466   -- Initialise Multiple Message Detection
467   --
468   hr_multi_message.enable_message_list;
469   --
470   -- Remember IN OUT parameter IN values
471   --
472   l_object_version_number         := p_object_version_number;
473   --
474   -- Convert constant values to their corresponding boolean value
475   --
476   l_validate :=
477     hr_api.constant_to_boolean
478       (p_constant_value => p_validate);
479   --
480   -- Register Surrogate ID or user key values
481   --
482   --
483   -- Call API
484   --
485   hr_position_api.delete_position
486     (p_validate                     => l_validate
487     ,p_position_id                  => p_position_id
488     ,p_effective_start_date         => p_effective_start_date
489     ,p_effective_end_date           => p_effective_end_date
490     ,p_object_version_number        => p_object_version_number
491     ,p_effective_date               => p_effective_date
492     ,p_datetrack_mode               => p_datetrack_mode
493     ,p_security_profile_id          => p_security_profile_id
494     );
495   --
496   -- Convert API warning boolean parameter values to specific
497   -- messages and add them to Multiple Message List
498   --
499   --
500   -- Convert API non-warning boolean parameter values
501   --
502   --
503   -- Derive the API return status value based on whether
504   -- messages of any type exist in the Multiple Message List.
505   -- Also disable Multiple Message Detection.
506   --
507   p_return_status := hr_multi_message.get_return_status_disable;
508   hr_utility.set_location(' Leaving:' || l_proc,20);
509   --
510 exception
511   when hr_multi_message.error_message_exist then
512     --
513     -- Catch the Multiple Message List exception which
514     -- indicates API processing has been aborted because
515     -- at least one message exists in the list.
516     --
517     rollback to delete_position_swi;
518     --
519     -- Reset IN OUT parameters and set OUT parameters
520     --
521     p_effective_start_date         := null;
522     p_effective_end_date           := null;
523     p_object_version_number        := l_object_version_number;
524     p_return_status := hr_multi_message.get_return_status_disable;
525     hr_utility.set_location(' Leaving:' || l_proc, 30);
526   when others then
527     --
528     -- When Multiple Message Detection is enabled catch
529     -- any Application specific or other unexpected
530     -- exceptions.  Adding appropriate details to the
531     -- Multiple Message List.  Otherwise re-raise the
532     -- error.
533     --
534     rollback to delete_position_swi;
535     if hr_multi_message.unexpected_error_add(l_proc) then
536        hr_utility.set_location(' Leaving:' || l_proc,40);
537        raise;
538     end if;
539     --
540     -- Reset IN OUT and set OUT parameters
541     --
542     p_effective_start_date         := null;
543     p_effective_end_date           := null;
544     p_object_version_number        := l_object_version_number;
545     p_return_status := hr_multi_message.get_return_status_disable;
546     hr_utility.set_location(' Leaving:' || l_proc,50);
547 end delete_position;
548 -- ----------------------------------------------------------------------------
549 -- |----------------------------------< lck >---------------------------------|
550 -- ----------------------------------------------------------------------------
551 PROCEDURE lck
552   (p_position_id                  in     number
553   ,p_object_version_number        in     number
554   ,p_effective_date               in     date
555   ,p_datetrack_mode               in     varchar2
556   ,p_validation_start_date           out nocopy date
557   ,p_validation_end_date             out nocopy date
558   ,p_return_status                   out nocopy varchar2
559   ) is
560   --
561   -- Variables for API Boolean parameters
562   --
563   -- Variables for IN/OUT parameters
564   --
565   -- Other variables
566   l_proc    varchar2(72) := g_package ||'lck';
567 Begin
568   hr_utility.set_location(' Entering:' || l_proc,10);
569   --
570   -- Issue a savepoint
571   --
572   savepoint lck_swi;
573   --
574   -- Initialise Multiple Message Detection
575   --
576   hr_multi_message.enable_message_list;
577   --
578   -- Remember IN OUT parameter IN values
579   --
580   --
581   -- Convert constant values to their corresponding boolean value
582   --
583   --
584   -- Register Surrogate ID or user key values
585   --
586   --
587   -- Call API
588   --
589   hr_position_api.lck
590     (p_position_id                  => p_position_id
591     ,p_object_version_number        => p_object_version_number
592     ,p_effective_date               => p_effective_date
593     ,p_datetrack_mode               => p_datetrack_mode
594     ,p_validation_start_date        => p_validation_start_date
595     ,p_validation_end_date          => p_validation_end_date
596     );
597   --
598   -- Convert API warning boolean parameter values to specific
599   -- messages and add them to Multiple Message List
600   --
601   --
602   -- Convert API non-warning boolean parameter values
603   --
604   --
605   -- Derive the API return status value based on whether
606   -- messages of any type exist in the Multiple Message List.
607   -- Also disable Multiple Message Detection.
608   --
609   p_return_status := hr_multi_message.get_return_status_disable;
610   hr_utility.set_location(' Leaving:' || l_proc,20);
611   --
612 exception
613   when hr_multi_message.error_message_exist then
614     --
615     -- Catch the Multiple Message List exception which
616     -- indicates API processing has been aborted because
617     -- at least one message exists in the list.
618     --
619     rollback to lck_swi;
620     --
621     -- Reset IN OUT parameters and set OUT parameters
622     --
623     p_validation_start_date        := null;
624     p_validation_end_date          := null;
625     p_return_status := hr_multi_message.get_return_status_disable;
626     hr_utility.set_location(' Leaving:' || l_proc, 30);
627   when others then
628     --
629     -- When Multiple Message Detection is enabled catch
630     -- any Application specific or other unexpected
631     -- exceptions.  Adding appropriate details to the
632     -- Multiple Message List.  Otherwise re-raise the
633     -- error.
634     --
635     rollback to lck_swi;
636     if hr_multi_message.unexpected_error_add(l_proc) then
637        hr_utility.set_location(' Leaving:' || l_proc,40);
638        raise;
639     end if;
640     --
641     -- Reset IN OUT and set OUT parameters
642     --
643     p_validation_start_date        := null;
644     p_validation_end_date          := null;
645     p_return_status := hr_multi_message.get_return_status_disable;
646     hr_utility.set_location(' Leaving:' || l_proc,50);
647 end lck;
648 -- ----------------------------------------------------------------------------
649 -- |----------------------------< update_position >---------------------------|
650 -- ----------------------------------------------------------------------------
651 PROCEDURE update_position
652   (p_validate                     in     number    default hr_api.g_false_num
653   ,p_position_id                  in     number
654   ,p_effective_start_date            out nocopy date
655   ,p_effective_end_date              out nocopy date
656   ,p_position_definition_id          out nocopy number
657   ,p_name                            out nocopy varchar2
658   ,p_availability_status_id       in     number    default hr_api.g_number
659   ,p_entry_step_id                in     number    default hr_api.g_number
660   ,p_entry_grade_rule_id          in     number    default hr_api.g_number
661   ,p_location_id                  in     number    default hr_api.g_number
662   ,p_pay_freq_payroll_id          in     number    default hr_api.g_number
663   ,p_position_transaction_id      in     number    default hr_api.g_number
664   ,p_prior_position_id            in     number    default hr_api.g_number
665   ,p_relief_position_id           in     number    default hr_api.g_number
666   ,p_entry_grade_id               in     number    default hr_api.g_number
667   ,p_successor_position_id        in     number    default hr_api.g_number
668   ,p_supervisor_position_id       in     number    default hr_api.g_number
669   ,p_amendment_date               in     date      default hr_api.g_date
670   ,p_amendment_recommendation     in     varchar2  default hr_api.g_varchar2
671   ,p_amendment_ref_number         in     varchar2  default hr_api.g_varchar2
672   ,p_bargaining_unit_cd           in     varchar2  default hr_api.g_varchar2
673   ,p_comments                     in     long      default hr_api.g_varchar2
674   ,p_current_job_prop_end_date    in     date      default hr_api.g_date
675   ,p_current_org_prop_end_date    in     date      default hr_api.g_date
676   ,p_avail_status_prop_end_date   in     date      default hr_api.g_date
677   ,p_date_effective               in     date      default hr_api.g_date
678   ,p_date_end                     in     date      default hr_api.g_date
679   ,p_earliest_hire_date           in     date      default hr_api.g_date
680   ,p_fill_by_date                 in     date      default hr_api.g_date
681   ,p_frequency                    in     varchar2  default hr_api.g_varchar2
682   ,p_fte                          in     number    default hr_api.g_number
683   ,p_max_persons                  in     number    default hr_api.g_number
684   ,p_overlap_period               in     number    default hr_api.g_number
685   ,p_overlap_unit_cd              in     varchar2  default hr_api.g_varchar2
686   ,p_pay_term_end_day_cd          in     varchar2  default hr_api.g_varchar2
687   ,p_pay_term_end_month_cd        in     varchar2  default hr_api.g_varchar2
688   ,p_permanent_temporary_flag     in     varchar2  default hr_api.g_varchar2
689   ,p_permit_recruitment_flag      in     varchar2  default hr_api.g_varchar2
690   ,p_position_type                in     varchar2  default hr_api.g_varchar2
691   ,p_posting_description          in     varchar2  default hr_api.g_varchar2
692   ,p_probation_period             in     number    default hr_api.g_number
693   ,p_probation_period_unit_cd     in     varchar2  default hr_api.g_varchar2
694   ,p_replacement_required_flag    in     varchar2  default hr_api.g_varchar2
695   ,p_review_flag                  in     varchar2  default hr_api.g_varchar2
696   ,p_seasonal_flag                in     varchar2  default hr_api.g_varchar2
697   ,p_security_requirements        in     varchar2  default hr_api.g_varchar2
698   ,p_status                       in     varchar2  default hr_api.g_varchar2
699   ,p_term_start_day_cd            in     varchar2  default hr_api.g_varchar2
700   ,p_term_start_month_cd          in     varchar2  default hr_api.g_varchar2
701   ,p_time_normal_finish           in     varchar2  default hr_api.g_varchar2
702   ,p_time_normal_start            in     varchar2  default hr_api.g_varchar2
703   ,p_update_source_cd             in     varchar2  default hr_api.g_varchar2
704   ,p_working_hours                in     number    default hr_api.g_number
705   ,p_works_council_approval_flag  in     varchar2  default hr_api.g_varchar2
706   ,p_work_period_type_cd          in     varchar2  default hr_api.g_varchar2
707   ,p_work_term_end_day_cd         in     varchar2  default hr_api.g_varchar2
708   ,p_work_term_end_month_cd       in     varchar2  default hr_api.g_varchar2
709   ,p_proposed_fte_for_layoff      in     number    default hr_api.g_number
710   ,p_proposed_date_for_layoff     in     date      default hr_api.g_date
711   ,p_pay_basis_id                 in     number    default hr_api.g_number
712   ,p_supervisor_id                in     number    default hr_api.g_number
713   ,p_information1                 in     varchar2  default hr_api.g_varchar2
714   ,p_information2                 in     varchar2  default hr_api.g_varchar2
715   ,p_information3                 in     varchar2  default hr_api.g_varchar2
716   ,p_information4                 in     varchar2  default hr_api.g_varchar2
717   ,p_information5                 in     varchar2  default hr_api.g_varchar2
718   ,p_information6                 in     varchar2  default hr_api.g_varchar2
719   ,p_information7                 in     varchar2  default hr_api.g_varchar2
720   ,p_information8                 in     varchar2  default hr_api.g_varchar2
721   ,p_information9                 in     varchar2  default hr_api.g_varchar2
722   ,p_information10                in     varchar2  default hr_api.g_varchar2
723   ,p_information11                in     varchar2  default hr_api.g_varchar2
724   ,p_information12                in     varchar2  default hr_api.g_varchar2
725   ,p_information13                in     varchar2  default hr_api.g_varchar2
726   ,p_information14                in     varchar2  default hr_api.g_varchar2
727   ,p_information15                in     varchar2  default hr_api.g_varchar2
728   ,p_information16                in     varchar2  default hr_api.g_varchar2
729   ,p_information17                in     varchar2  default hr_api.g_varchar2
730   ,p_information18                in     varchar2  default hr_api.g_varchar2
731   ,p_information19                in     varchar2  default hr_api.g_varchar2
732   ,p_information20                in     varchar2  default hr_api.g_varchar2
733   ,p_information21                in     varchar2  default hr_api.g_varchar2
734   ,p_information22                in     varchar2  default hr_api.g_varchar2
735   ,p_information23                in     varchar2  default hr_api.g_varchar2
736   ,p_information24                in     varchar2  default hr_api.g_varchar2
737   ,p_information25                in     varchar2  default hr_api.g_varchar2
738   ,p_information26                in     varchar2  default hr_api.g_varchar2
739   ,p_information27                in     varchar2  default hr_api.g_varchar2
740   ,p_information28                in     varchar2  default hr_api.g_varchar2
741   ,p_information29                in     varchar2  default hr_api.g_varchar2
742   ,p_information30                in     varchar2  default hr_api.g_varchar2
743   ,p_information_category         in     varchar2  default hr_api.g_varchar2
744   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
745   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
746   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
747   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
748   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
749   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
750   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
751   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
752   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
753   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
754   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
755   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
756   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
757   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
758   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
759   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
760   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
761   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
762   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
763   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
764   ,p_attribute21                  in     varchar2  default hr_api.g_varchar2
765   ,p_attribute22                  in     varchar2  default hr_api.g_varchar2
766   ,p_attribute23                  in     varchar2  default hr_api.g_varchar2
767   ,p_attribute24                  in     varchar2  default hr_api.g_varchar2
768   ,p_attribute25                  in     varchar2  default hr_api.g_varchar2
769   ,p_attribute26                  in     varchar2  default hr_api.g_varchar2
770   ,p_attribute27                  in     varchar2  default hr_api.g_varchar2
771   ,p_attribute28                  in     varchar2  default hr_api.g_varchar2
772   ,p_attribute29                  in     varchar2  default hr_api.g_varchar2
773   ,p_attribute30                  in     varchar2  default hr_api.g_varchar2
774   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
775   ,p_segment1                     in     varchar2  default hr_api.g_varchar2
776   ,p_segment2                     in     varchar2  default hr_api.g_varchar2
777   ,p_segment3                     in     varchar2  default hr_api.g_varchar2
778   ,p_segment4                     in     varchar2  default hr_api.g_varchar2
779   ,p_segment5                     in     varchar2  default hr_api.g_varchar2
780   ,p_segment6                     in     varchar2  default hr_api.g_varchar2
781   ,p_segment7                     in     varchar2  default hr_api.g_varchar2
782   ,p_segment8                     in     varchar2  default hr_api.g_varchar2
783   ,p_segment9                     in     varchar2  default hr_api.g_varchar2
784   ,p_segment10                    in     varchar2  default hr_api.g_varchar2
785   ,p_segment11                    in     varchar2  default hr_api.g_varchar2
786   ,p_segment12                    in     varchar2  default hr_api.g_varchar2
787   ,p_segment13                    in     varchar2  default hr_api.g_varchar2
788   ,p_segment14                    in     varchar2  default hr_api.g_varchar2
789   ,p_segment15                    in     varchar2  default hr_api.g_varchar2
790   ,p_segment16                    in     varchar2  default hr_api.g_varchar2
791   ,p_segment17                    in     varchar2  default hr_api.g_varchar2
792   ,p_segment18                    in     varchar2  default hr_api.g_varchar2
793   ,p_segment19                    in     varchar2  default hr_api.g_varchar2
794   ,p_segment20                    in     varchar2  default hr_api.g_varchar2
795   ,p_segment21                    in     varchar2  default hr_api.g_varchar2
796   ,p_segment22                    in     varchar2  default hr_api.g_varchar2
797   ,p_segment23                    in     varchar2  default hr_api.g_varchar2
798   ,p_segment24                    in     varchar2  default hr_api.g_varchar2
799   ,p_segment25                    in     varchar2  default hr_api.g_varchar2
800   ,p_segment26                    in     varchar2  default hr_api.g_varchar2
801   ,p_segment27                    in     varchar2  default hr_api.g_varchar2
802   ,p_segment28                    in     varchar2  default hr_api.g_varchar2
803   ,p_segment29                    in     varchar2  default hr_api.g_varchar2
804   ,p_segment30                    in     varchar2  default hr_api.g_varchar2
805   ,p_concat_segments              in     varchar2  default hr_api.g_varchar2
806   ,p_request_id                   in     number    default hr_api.g_number
807   ,p_program_application_id       in     number    default hr_api.g_number
808   ,p_program_id                   in     number    default hr_api.g_number
809   ,p_program_update_date          in     date      default hr_api.g_date
810   ,p_object_version_number        in out nocopy number
811   ,p_effective_date               in     date
812   ,p_datetrack_mode               in     varchar2
813   ,p_return_status                   out nocopy varchar2
814   ) is
815   --
816   -- Variables for API Boolean parameters
817   l_validate                      boolean;
818   l_valid_grades_changed_warning  boolean;
819   --
820   -- Variables for IN/OUT parameters
821   l_object_version_number         number;
822   --
823   -- Other variables
824   l_proc    varchar2(72) := g_package ||'update_position';
825 Begin
826   hr_utility.set_location(' Entering:' || l_proc,10);
827   --
828   -- Issue a savepoint
829   --
830   savepoint update_position_swi;
831   --
832   -- Initialise Multiple Message Detection
833   --
834   hr_multi_message.enable_message_list;
835   --
836   -- Remember IN OUT parameter IN values
837   --
838   l_object_version_number         := p_object_version_number;
839   --
840   -- Convert constant values to their corresponding boolean value
841   --
842   l_validate :=
843     hr_api.constant_to_boolean
844       (p_constant_value => p_validate);
845   --
846   -- Register Surrogate ID or user key values
847   --
848   --
849   -- Call API
850   --
851   hr_position_api.update_position
852     (p_validate                     => l_validate
853     ,p_position_id                  => p_position_id
854     ,p_effective_start_date         => p_effective_start_date
855     ,p_effective_end_date           => p_effective_end_date
856     ,p_position_definition_id       => p_position_definition_id
857     ,p_valid_grades_changed_warning => l_valid_grades_changed_warning
858     ,p_name                         => p_name
859     ,p_availability_status_id       => p_availability_status_id
860     ,p_entry_step_id                => p_entry_step_id
861     ,p_entry_grade_rule_id          => p_entry_grade_rule_id
862     ,p_location_id                  => p_location_id
863     ,p_pay_freq_payroll_id          => p_pay_freq_payroll_id
864     ,p_position_transaction_id      => p_position_transaction_id
865     ,p_prior_position_id            => p_prior_position_id
866     ,p_relief_position_id           => p_relief_position_id
867     ,p_entry_grade_id               => p_entry_grade_id
868     ,p_successor_position_id        => p_successor_position_id
869     ,p_supervisor_position_id       => p_supervisor_position_id
870     ,p_amendment_date               => p_amendment_date
871     ,p_amendment_recommendation     => p_amendment_recommendation
872     ,p_amendment_ref_number         => p_amendment_ref_number
873     ,p_bargaining_unit_cd           => p_bargaining_unit_cd
874     ,p_comments                     => p_comments
875     ,p_current_job_prop_end_date    => p_current_job_prop_end_date
876     ,p_current_org_prop_end_date    => p_current_org_prop_end_date
877     ,p_avail_status_prop_end_date   => p_avail_status_prop_end_date
878     ,p_date_effective               => p_date_effective
879     ,p_date_end                     => p_date_end
880     ,p_earliest_hire_date           => p_earliest_hire_date
881     ,p_fill_by_date                 => p_fill_by_date
882     ,p_frequency                    => p_frequency
883     ,p_fte                          => p_fte
884     ,p_max_persons                  => p_max_persons
885     ,p_overlap_period               => p_overlap_period
886     ,p_overlap_unit_cd              => p_overlap_unit_cd
887     ,p_pay_term_end_day_cd          => p_pay_term_end_day_cd
888     ,p_pay_term_end_month_cd        => p_pay_term_end_month_cd
889     ,p_permanent_temporary_flag     => p_permanent_temporary_flag
890     ,p_permit_recruitment_flag      => p_permit_recruitment_flag
891     ,p_position_type                => p_position_type
892     ,p_posting_description          => p_posting_description
893     ,p_probation_period             => p_probation_period
894     ,p_probation_period_unit_cd     => p_probation_period_unit_cd
895     ,p_replacement_required_flag    => p_replacement_required_flag
896     ,p_review_flag                  => p_review_flag
897     ,p_seasonal_flag                => p_seasonal_flag
898     ,p_security_requirements        => p_security_requirements
899     ,p_status                       => p_status
900     ,p_term_start_day_cd            => p_term_start_day_cd
901     ,p_term_start_month_cd          => p_term_start_month_cd
902     ,p_time_normal_finish           => p_time_normal_finish
903     ,p_time_normal_start            => p_time_normal_start
904     ,p_update_source_cd             => p_update_source_cd
905     ,p_working_hours                => p_working_hours
906     ,p_works_council_approval_flag  => p_works_council_approval_flag
907     ,p_work_period_type_cd          => p_work_period_type_cd
908     ,p_work_term_end_day_cd         => p_work_term_end_day_cd
909     ,p_work_term_end_month_cd       => p_work_term_end_month_cd
910     ,p_proposed_fte_for_layoff      => p_proposed_fte_for_layoff
911     ,p_proposed_date_for_layoff     => p_proposed_date_for_layoff
912     ,p_pay_basis_id                 => p_pay_basis_id
913     ,p_supervisor_id                => p_supervisor_id
914     ,p_information1                 => p_information1
915     ,p_information2                 => p_information2
916     ,p_information3                 => p_information3
917     ,p_information4                 => p_information4
918     ,p_information5                 => p_information5
919     ,p_information6                 => p_information6
920     ,p_information7                 => p_information7
921     ,p_information8                 => p_information8
922     ,p_information9                 => p_information9
923     ,p_information10                => p_information10
924     ,p_information11                => p_information11
925     ,p_information12                => p_information12
926     ,p_information13                => p_information13
927     ,p_information14                => p_information14
928     ,p_information15                => p_information15
929     ,p_information16                => p_information16
930     ,p_information17                => p_information17
931     ,p_information18                => p_information18
932     ,p_information19                => p_information19
933     ,p_information20                => p_information20
934     ,p_information21                => p_information21
935     ,p_information22                => p_information22
936     ,p_information23                => p_information23
937     ,p_information24                => p_information24
938     ,p_information25                => p_information25
939     ,p_information26                => p_information26
940     ,p_information27                => p_information27
941     ,p_information28                => p_information28
942     ,p_information29                => p_information29
943     ,p_information30                => p_information30
944     ,p_information_category         => p_information_category
945     ,p_attribute1                   => p_attribute1
946     ,p_attribute2                   => p_attribute2
947     ,p_attribute3                   => p_attribute3
948     ,p_attribute4                   => p_attribute4
949     ,p_attribute5                   => p_attribute5
950     ,p_attribute6                   => p_attribute6
951     ,p_attribute7                   => p_attribute7
952     ,p_attribute8                   => p_attribute8
953     ,p_attribute9                   => p_attribute9
954     ,p_attribute10                  => p_attribute10
955     ,p_attribute11                  => p_attribute11
956     ,p_attribute12                  => p_attribute12
957     ,p_attribute13                  => p_attribute13
958     ,p_attribute14                  => p_attribute14
959     ,p_attribute15                  => p_attribute15
960     ,p_attribute16                  => p_attribute16
961     ,p_attribute17                  => p_attribute17
962     ,p_attribute18                  => p_attribute18
963     ,p_attribute19                  => p_attribute19
964     ,p_attribute20                  => p_attribute20
965     ,p_attribute21                  => p_attribute21
966     ,p_attribute22                  => p_attribute22
967     ,p_attribute23                  => p_attribute23
968     ,p_attribute24                  => p_attribute24
969     ,p_attribute25                  => p_attribute25
970     ,p_attribute26                  => p_attribute26
971     ,p_attribute27                  => p_attribute27
972     ,p_attribute28                  => p_attribute28
973     ,p_attribute29                  => p_attribute29
974     ,p_attribute30                  => p_attribute30
975     ,p_attribute_category           => p_attribute_category
976     ,p_segment1                     => p_segment1
977     ,p_segment2                     => p_segment2
978     ,p_segment3                     => p_segment3
979     ,p_segment4                     => p_segment4
980     ,p_segment5                     => p_segment5
981     ,p_segment6                     => p_segment6
982     ,p_segment7                     => p_segment7
983     ,p_segment8                     => p_segment8
984     ,p_segment9                     => p_segment9
985     ,p_segment10                    => p_segment10
986     ,p_segment11                    => p_segment11
987     ,p_segment12                    => p_segment12
988     ,p_segment13                    => p_segment13
989     ,p_segment14                    => p_segment14
990     ,p_segment15                    => p_segment15
991     ,p_segment16                    => p_segment16
992     ,p_segment17                    => p_segment17
993     ,p_segment18                    => p_segment18
994     ,p_segment19                    => p_segment19
995     ,p_segment20                    => p_segment20
996     ,p_segment21                    => p_segment21
997     ,p_segment22                    => p_segment22
998     ,p_segment23                    => p_segment23
999     ,p_segment24                    => p_segment24
1000     ,p_segment25                    => p_segment25
1001     ,p_segment26                    => p_segment26
1002     ,p_segment27                    => p_segment27
1003     ,p_segment28                    => p_segment28
1004     ,p_segment29                    => p_segment29
1005     ,p_segment30                    => p_segment30
1006     ,p_concat_segments              => p_concat_segments
1007     ,p_request_id                   => p_request_id
1008     ,p_program_application_id       => p_program_application_id
1009     ,p_program_id                   => p_program_id
1010     ,p_program_update_date          => p_program_update_date
1011     ,p_object_version_number        => p_object_version_number
1012     ,p_effective_date               => p_effective_date
1013     ,p_datetrack_mode               => p_datetrack_mode
1014     );
1015   --
1016   -- Convert API warning boolean parameter values to specific
1017   -- messages and add them to Multiple Message List
1018   --
1019   if l_valid_grades_changed_warning then
1020      fnd_message.set_name('PER', 'HR_51095_VGR_POS_GRD_COMBO');
1021       hr_multi_message.add
1022         (p_message_type => hr_multi_message.g_warning_msg
1023         );
1024   end if;  --
1025   -- Convert API non-warning boolean parameter values
1026   --
1027   --
1028   -- Derive the API return status value based on whether
1029   -- messages of any type exist in the Multiple Message List.
1030   -- Also disable Multiple Message Detection.
1031   --
1032   p_return_status := hr_multi_message.get_return_status_disable;
1033   hr_utility.set_location(' Leaving:' || l_proc,20);
1034   --
1035 exception
1036   when hr_multi_message.error_message_exist then
1037     --
1038     -- Catch the Multiple Message List exception which
1039     -- indicates API processing has been aborted because
1040     -- at least one message exists in the list.
1041     --
1042     rollback to update_position_swi;
1043     --
1044     -- Reset IN OUT parameters and set OUT parameters
1045     --
1046     p_effective_start_date         := null;
1047     p_effective_end_date           := null;
1048     p_position_definition_id       := null;
1049     p_name                         := null;
1050     p_object_version_number        := l_object_version_number;
1051     p_return_status := hr_multi_message.get_return_status_disable;
1052     hr_utility.set_location(' Leaving:' || l_proc, 30);
1053   when others then
1054     --
1055     -- When Multiple Message Detection is enabled catch
1056     -- any Application specific or other unexpected
1057     -- exceptions.  Adding appropriate details to the
1058     -- Multiple Message List.  Otherwise re-raise the
1059     -- error.
1060     --
1061     rollback to update_position_swi;
1062     if hr_multi_message.unexpected_error_add(l_proc) then
1063        hr_utility.set_location(' Leaving:' || l_proc,40);
1064        raise;
1065     end if;
1066     --
1067     -- Reset IN OUT and set OUT parameters
1068     --
1069     p_effective_start_date         := null;
1070     p_effective_end_date           := null;
1071     p_position_definition_id       := null;
1072     p_name                         := null;
1073     p_object_version_number        := l_object_version_number;
1074     p_return_status := hr_multi_message.get_return_status_disable;
1075     hr_utility.set_location(' Leaving:' || l_proc,50);
1076 end update_position;
1077 end hr_position_swi;