DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PREVIOUS_EMPLOYMENT_SWI

Source


1 Package Body hr_previous_employment_swi As
2 /* $Header: hrpemswi.pkb 115.6 2003/11/17 23:42:05 jvembuna ship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_previous_employment_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-----------------------< create_previous_employer >-----------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_previous_employer
12   (p_effective_date               in     date
13   ,p_validate                     in     number    default hr_api.g_false_num
14   ,p_business_group_id            in     number
15   ,p_person_id                    in     number
16   ,p_party_id                     in     number
17   ,p_start_date                   in     date      default null
18   ,p_end_date                     in     date      default null
19   ,p_period_years                 in     number    default null
20   ,p_period_months                in     number    default null
21   ,p_period_days                  in     number    default null
22   ,p_employer_name                in     varchar2  default null
23   ,p_employer_country             in     varchar2  default null
24   ,p_employer_address             in     varchar2  default null
25   ,p_employer_type                in     varchar2  default null
26   ,p_employer_subtype             in     varchar2  default null
27   ,p_description                  in     varchar2  default null
28   ,p_all_assignments              in     varchar2  default null
29   ,p_pem_attribute_category       in     varchar2  default null
30   ,p_pem_attribute1               in     varchar2  default null
31   ,p_pem_attribute2               in     varchar2  default null
32   ,p_pem_attribute3               in     varchar2  default null
33   ,p_pem_attribute4               in     varchar2  default null
34   ,p_pem_attribute5               in     varchar2  default null
35   ,p_pem_attribute6               in     varchar2  default null
36   ,p_pem_attribute7               in     varchar2  default null
37   ,p_pem_attribute8               in     varchar2  default null
38   ,p_pem_attribute9               in     varchar2  default null
39   ,p_pem_attribute10              in     varchar2  default null
40   ,p_pem_attribute11              in     varchar2  default null
41   ,p_pem_attribute12              in     varchar2  default null
42   ,p_pem_attribute13              in     varchar2  default null
43   ,p_pem_attribute14              in     varchar2  default null
44   ,p_pem_attribute15              in     varchar2  default null
45   ,p_pem_attribute16              in     varchar2  default null
46   ,p_pem_attribute17              in     varchar2  default null
47   ,p_pem_attribute18              in     varchar2  default null
48   ,p_pem_attribute19              in     varchar2  default null
49   ,p_pem_attribute20              in     varchar2  default null
50   ,p_pem_attribute21              in     varchar2  default null
51   ,p_pem_attribute22              in     varchar2  default null
52   ,p_pem_attribute23              in     varchar2  default null
53   ,p_pem_attribute24              in     varchar2  default null
54   ,p_pem_attribute25              in     varchar2  default null
55   ,p_pem_attribute26              in     varchar2  default null
56   ,p_pem_attribute27              in     varchar2  default null
57   ,p_pem_attribute28              in     varchar2  default null
58   ,p_pem_attribute29              in     varchar2  default null
59   ,p_pem_attribute30              in     varchar2  default null
60   ,p_pem_information_category     in     varchar2  default null
61   ,p_pem_information1             in     varchar2  default null
62   ,p_pem_information2             in     varchar2  default null
63   ,p_pem_information3             in     varchar2  default null
64   ,p_pem_information4             in     varchar2  default null
65   ,p_pem_information5             in     varchar2  default null
66   ,p_pem_information6             in     varchar2  default null
67   ,p_pem_information7             in     varchar2  default null
68   ,p_pem_information8             in     varchar2  default null
69   ,p_pem_information9             in     varchar2  default null
70   ,p_pem_information10            in     varchar2  default null
71   ,p_pem_information11            in     varchar2  default null
72   ,p_pem_information12            in     varchar2  default null
73   ,p_pem_information13            in     varchar2  default null
74   ,p_pem_information14            in     varchar2  default null
75   ,p_pem_information15            in     varchar2  default null
76   ,p_pem_information16            in     varchar2  default null
77   ,p_pem_information17            in     varchar2  default null
78   ,p_pem_information18            in     varchar2  default null
79   ,p_pem_information19            in     varchar2  default null
80   ,p_pem_information20            in     varchar2  default null
81   ,p_pem_information21            in     varchar2  default null
82   ,p_pem_information22            in     varchar2  default null
83   ,p_pem_information23            in     varchar2  default null
84   ,p_pem_information24            in     varchar2  default null
85   ,p_pem_information25            in     varchar2  default null
86   ,p_pem_information26            in     varchar2  default null
87   ,p_pem_information27            in     varchar2  default null
88   ,p_pem_information28            in     varchar2  default null
89   ,p_pem_information29            in     varchar2  default null
90   ,p_pem_information30            in     varchar2  default null
91   ,p_previous_employer_id         in     number
92   ,p_object_version_number           out nocopy number
93   ,p_return_status                   out nocopy varchar2
94   ) is
95   --
96   -- Variables for API Boolean parameters
97   l_validate                      boolean;
98   --
99   -- Variables for IN/OUT parameters
100   --
101   -- Other variables
102   l_previous_employer_id         number;
103   l_proc    varchar2(72) := g_package ||'create_previous_employer';
104   l_party_id   per_all_people_f.party_id%type := p_party_id;
105   --
106   cursor csr_get_party_id is
107   select party_id
108   from    per_all_people_f per
109     where   per.person_id = p_person_id
110     and     trunc(p_effective_date)
111     between per.effective_start_date
112     and     per.effective_end_date;
113 Begin
114   hr_utility.set_location(' Entering:' || l_proc,10);
115   --
116   -- Issue a savepoint
117   --
118   savepoint create_previous_employer_swi;
119   --
120   -- Initialise Multiple Message Detection
121   --
122   hr_multi_message.enable_message_list;
123   --
124   -- Remember IN OUT parameter IN values
125   --
126   --
127   -- Convert constant values to their corresponding boolean value
128   --
129   l_validate :=
130     hr_api.constant_to_boolean
131       (p_constant_value => p_validate);
132   --
133   -- Register Surrogate ID or user key values
134   --
135   per_pem_ins.set_base_key_value
136     (p_previous_employer_id => p_previous_employer_id
137     );
138   --
139   -- Workaround to set the party id if it is not passed in
140   -- till the bug 3261173 is fixed
141   --
142   if (l_party_id is null) then
143     open csr_get_party_id;
144     fetch csr_get_party_id into l_party_id;
145     close csr_get_party_id;
146   end if;
147   --
148   -- Call API
149   --
150   hr_previous_employment_api.create_previous_employer
151     (p_effective_date               => p_effective_date
152     ,p_validate                     => l_validate
153     ,p_business_group_id            => p_business_group_id
154     ,p_person_id                    => p_person_id
155     ,p_party_id                     => l_party_id
156     ,p_start_date                   => p_start_date
157     ,p_end_date                     => p_end_date
158     ,p_period_years                 => p_period_years
159     ,p_period_months                => p_period_months
160     ,p_period_days                  => p_period_days
161     ,p_employer_name                => p_employer_name
162     ,p_employer_country             => p_employer_country
163     ,p_employer_address             => p_employer_address
164     ,p_employer_type                => p_employer_type
165     ,p_employer_subtype             => p_employer_subtype
166     ,p_description                  => p_description
167     ,p_all_assignments              => p_all_assignments
168     ,p_pem_attribute_category       => p_pem_attribute_category
169     ,p_pem_attribute1               => p_pem_attribute1
170     ,p_pem_attribute2               => p_pem_attribute2
171     ,p_pem_attribute3               => p_pem_attribute3
172     ,p_pem_attribute4               => p_pem_attribute4
173     ,p_pem_attribute5               => p_pem_attribute5
174     ,p_pem_attribute6               => p_pem_attribute6
175     ,p_pem_attribute7               => p_pem_attribute7
176     ,p_pem_attribute8               => p_pem_attribute8
177     ,p_pem_attribute9               => p_pem_attribute9
178     ,p_pem_attribute10              => p_pem_attribute10
179     ,p_pem_attribute11              => p_pem_attribute11
180     ,p_pem_attribute12              => p_pem_attribute12
181     ,p_pem_attribute13              => p_pem_attribute13
182     ,p_pem_attribute14              => p_pem_attribute14
183     ,p_pem_attribute15              => p_pem_attribute15
184     ,p_pem_attribute16              => p_pem_attribute16
185     ,p_pem_attribute17              => p_pem_attribute17
186     ,p_pem_attribute18              => p_pem_attribute18
187     ,p_pem_attribute19              => p_pem_attribute19
188     ,p_pem_attribute20              => p_pem_attribute20
189     ,p_pem_attribute21              => p_pem_attribute21
190     ,p_pem_attribute22              => p_pem_attribute22
191     ,p_pem_attribute23              => p_pem_attribute23
192     ,p_pem_attribute24              => p_pem_attribute24
193     ,p_pem_attribute25              => p_pem_attribute25
194     ,p_pem_attribute26              => p_pem_attribute26
195     ,p_pem_attribute27              => p_pem_attribute27
196     ,p_pem_attribute28              => p_pem_attribute28
197     ,p_pem_attribute29              => p_pem_attribute29
198     ,p_pem_attribute30              => p_pem_attribute30
199     ,p_pem_information_category     => p_pem_information_category
200     ,p_pem_information1             => p_pem_information1
201     ,p_pem_information2             => p_pem_information2
202     ,p_pem_information3             => p_pem_information3
203     ,p_pem_information4             => p_pem_information4
204     ,p_pem_information5             => p_pem_information5
205     ,p_pem_information6             => p_pem_information6
206     ,p_pem_information7             => p_pem_information7
207     ,p_pem_information8             => p_pem_information8
208     ,p_pem_information9             => p_pem_information9
209     ,p_pem_information10            => p_pem_information10
210     ,p_pem_information11            => p_pem_information11
211     ,p_pem_information12            => p_pem_information12
212     ,p_pem_information13            => p_pem_information13
213     ,p_pem_information14            => p_pem_information14
214     ,p_pem_information15            => p_pem_information15
215     ,p_pem_information16            => p_pem_information16
216     ,p_pem_information17            => p_pem_information17
217     ,p_pem_information18            => p_pem_information18
218     ,p_pem_information19            => p_pem_information19
219     ,p_pem_information20            => p_pem_information20
220     ,p_pem_information21            => p_pem_information21
221     ,p_pem_information22            => p_pem_information22
222     ,p_pem_information23            => p_pem_information23
223     ,p_pem_information24            => p_pem_information24
224     ,p_pem_information25            => p_pem_information25
225     ,p_pem_information26            => p_pem_information26
226     ,p_pem_information27            => p_pem_information27
227     ,p_pem_information28            => p_pem_information28
228     ,p_pem_information29            => p_pem_information29
229     ,p_pem_information30            => p_pem_information30
230     ,p_previous_employer_id         => l_previous_employer_id
231     ,p_object_version_number        => p_object_version_number
232     );
233   --
234   -- Convert API warning boolean parameter values to specific
235   -- messages and add them to Multiple Message List
236   --
237   --
238   -- Convert API non-warning boolean parameter values
239   --
240   --
241   -- Derive the API return status value based on whether
242   -- messages of any type exist in the Multiple Message List.
243   -- Also disable Multiple Message Detection.
244   --
245   p_return_status := hr_multi_message.get_return_status_disable;
246   hr_utility.set_location(' Leaving:' || l_proc,20);
247   --
248 exception
249   when hr_multi_message.error_message_exist then
250     --
251     -- Catch the Multiple Message List exception which
252     -- indicates API processing has been aborted because
253     -- at least one message exists in the list.
254     --
255     rollback to create_previous_employer_swi;
256     --
257     -- Reset IN OUT parameters and set OUT parameters
258     --
259     p_object_version_number        := null;
260     p_return_status := hr_multi_message.get_return_status_disable;
261     hr_utility.set_location(' Leaving:' || l_proc, 30);
262   when others then
263     --
264     -- When Multiple Message Detection is enabled catch
265     -- any Application specific or other unexpected
266     -- exceptions.  Adding appropriate details to the
267     -- Multiple Message List.  Otherwise re-raise the
268     -- error.
269     --
270     rollback to create_previous_employer_swi;
271     if hr_multi_message.unexpected_error_add(l_proc) then
272        hr_utility.set_location(' Leaving:' || l_proc,40);
273        raise;
274     end if;
275     --
276     -- Reset IN OUT and set OUT parameters
277     --
278     p_object_version_number        := null;
279     p_return_status := hr_multi_message.get_return_status_disable;
280     hr_utility.set_location(' Leaving:' || l_proc,50);
281 end create_previous_employer;
282 -- ----------------------------------------------------------------------------
283 -- |-----------------------< delete_previous_employer >-----------------------|
284 -- ----------------------------------------------------------------------------
285 PROCEDURE delete_previous_employer
286   (p_validate                     in     number    default hr_api.g_false_num
287   ,p_previous_employer_id         in     number
288   ,p_object_version_number        in out nocopy number
289   ,p_return_status                   out nocopy varchar2
290   ) is
291   --
292   -- Variables for API Boolean parameters
293   l_validate                      boolean;
294   --
295   -- Variables for IN/OUT parameters
296   l_object_version_number         number;
297   --
298   -- Other variables
299   l_proc    varchar2(72) := g_package ||'delete_previous_employer';
300 Begin
301   hr_utility.set_location(' Entering:' || l_proc,10);
302   --
303   -- Issue a savepoint
304   --
305   savepoint delete_previous_employer_swi;
306   --
307   -- Initialise Multiple Message Detection
308   --
309   hr_multi_message.enable_message_list;
310   --
311   -- Remember IN OUT parameter IN values
312   --
313   l_object_version_number         := p_object_version_number;
314   --
315   -- Convert constant values to their corresponding boolean value
316   --
317   l_validate :=
318     hr_api.constant_to_boolean
319       (p_constant_value => p_validate);
320   --
321   -- Register Surrogate ID or user key values
322   --
323   --
324   -- Call API
325   --
326   hr_previous_employment_api.delete_previous_employer
327     (p_validate                     => l_validate
328     ,p_previous_employer_id         => p_previous_employer_id
329     ,p_object_version_number        => l_object_version_number
330     );
331   --
332   -- Convert API warning boolean parameter values to specific
333   -- messages and add them to Multiple Message List
334   --
335   --
336   -- Convert API non-warning boolean parameter values
337   --
338   --
339   -- Derive the API return status value based on whether
340   -- messages of any type exist in the Multiple Message List.
341   -- Also disable Multiple Message Detection.
342   --
343   p_return_status := hr_multi_message.get_return_status_disable;
344   hr_utility.set_location(' Leaving:' || l_proc,20);
345   --
346 exception
347   when hr_multi_message.error_message_exist then
348     --
349     -- Catch the Multiple Message List exception which
350     -- indicates API processing has been aborted because
351     -- at least one message exists in the list.
352     --
353     rollback to delete_previous_employer_swi;
354     --
355     -- Reset IN OUT parameters and set OUT parameters
356     --
357     p_object_version_number        := l_object_version_number;
358     p_return_status := hr_multi_message.get_return_status_disable;
359     hr_utility.set_location(' Leaving:' || l_proc, 30);
360   when others then
361     --
362     -- When Multiple Message Detection is enabled catch
363     -- any Application specific or other unexpected
364     -- exceptions.  Adding appropriate details to the
365     -- Multiple Message List.  Otherwise re-raise the
366     -- error.
367     --
368     rollback to delete_previous_employer_swi;
369     if hr_multi_message.unexpected_error_add(l_proc) then
370        hr_utility.set_location(' Leaving:' || l_proc,40);
371        raise;
372     end if;
373     --
374     -- Reset IN OUT and set OUT parameters
375     --
376     p_object_version_number        := l_object_version_number;
377     p_return_status := hr_multi_message.get_return_status_disable;
378     hr_utility.set_location(' Leaving:' || l_proc,50);
379 end delete_previous_employer;
380 -- ----------------------------------------------------------------------------
381 -- |-----------------------< update_previous_employer >-----------------------|
382 -- ----------------------------------------------------------------------------
383 PROCEDURE update_previous_employer
384   (p_effective_date               in     date
385   ,p_validate                     in     number    default hr_api.g_false_num
386   ,p_previous_employer_id         in     number
387   ,p_start_date                   in     date      default hr_api.g_date
388   ,p_end_date                     in     date      default hr_api.g_date
389   ,p_period_years                 in     number    default hr_api.g_number
390   ,p_period_months                in     number    default hr_api.g_number
391   ,p_period_days                  in     number    default hr_api.g_number
392   ,p_employer_name                in     varchar2  default hr_api.g_varchar2
393   ,p_employer_country             in     varchar2  default hr_api.g_varchar2
394   ,p_employer_address             in     varchar2  default hr_api.g_varchar2
395   ,p_employer_type                in     varchar2  default hr_api.g_varchar2
396   ,p_employer_subtype             in     varchar2  default hr_api.g_varchar2
397   ,p_description                  in     varchar2  default hr_api.g_varchar2
398   ,p_all_assignments              in     varchar2  default hr_api.g_varchar2
399   ,p_pem_attribute_category       in     varchar2  default hr_api.g_varchar2
400   ,p_pem_attribute1               in     varchar2  default hr_api.g_varchar2
401   ,p_pem_attribute2               in     varchar2  default hr_api.g_varchar2
402   ,p_pem_attribute3               in     varchar2  default hr_api.g_varchar2
403   ,p_pem_attribute4               in     varchar2  default hr_api.g_varchar2
404   ,p_pem_attribute5               in     varchar2  default hr_api.g_varchar2
405   ,p_pem_attribute6               in     varchar2  default hr_api.g_varchar2
406   ,p_pem_attribute7               in     varchar2  default hr_api.g_varchar2
407   ,p_pem_attribute8               in     varchar2  default hr_api.g_varchar2
408   ,p_pem_attribute9               in     varchar2  default hr_api.g_varchar2
409   ,p_pem_attribute10              in     varchar2  default hr_api.g_varchar2
410   ,p_pem_attribute11              in     varchar2  default hr_api.g_varchar2
411   ,p_pem_attribute12              in     varchar2  default hr_api.g_varchar2
412   ,p_pem_attribute13              in     varchar2  default hr_api.g_varchar2
413   ,p_pem_attribute14              in     varchar2  default hr_api.g_varchar2
414   ,p_pem_attribute15              in     varchar2  default hr_api.g_varchar2
415   ,p_pem_attribute16              in     varchar2  default hr_api.g_varchar2
416   ,p_pem_attribute17              in     varchar2  default hr_api.g_varchar2
417   ,p_pem_attribute18              in     varchar2  default hr_api.g_varchar2
418   ,p_pem_attribute19              in     varchar2  default hr_api.g_varchar2
419   ,p_pem_attribute20              in     varchar2  default hr_api.g_varchar2
420   ,p_pem_attribute21              in     varchar2  default hr_api.g_varchar2
421   ,p_pem_attribute22              in     varchar2  default hr_api.g_varchar2
422   ,p_pem_attribute23              in     varchar2  default hr_api.g_varchar2
423   ,p_pem_attribute24              in     varchar2  default hr_api.g_varchar2
424   ,p_pem_attribute25              in     varchar2  default hr_api.g_varchar2
425   ,p_pem_attribute26              in     varchar2  default hr_api.g_varchar2
426   ,p_pem_attribute27              in     varchar2  default hr_api.g_varchar2
427   ,p_pem_attribute28              in     varchar2  default hr_api.g_varchar2
428   ,p_pem_attribute29              in     varchar2  default hr_api.g_varchar2
429   ,p_pem_attribute30              in     varchar2  default hr_api.g_varchar2
430   ,p_pem_information_category     in     varchar2  default hr_api.g_varchar2
431   ,p_pem_information1             in     varchar2  default hr_api.g_varchar2
432   ,p_pem_information2             in     varchar2  default hr_api.g_varchar2
433   ,p_pem_information3             in     varchar2  default hr_api.g_varchar2
434   ,p_pem_information4             in     varchar2  default hr_api.g_varchar2
435   ,p_pem_information5             in     varchar2  default hr_api.g_varchar2
436   ,p_pem_information6             in     varchar2  default hr_api.g_varchar2
437   ,p_pem_information7             in     varchar2  default hr_api.g_varchar2
438   ,p_pem_information8             in     varchar2  default hr_api.g_varchar2
439   ,p_pem_information9             in     varchar2  default hr_api.g_varchar2
440   ,p_pem_information10            in     varchar2  default hr_api.g_varchar2
441   ,p_pem_information11            in     varchar2  default hr_api.g_varchar2
442   ,p_pem_information12            in     varchar2  default hr_api.g_varchar2
443   ,p_pem_information13            in     varchar2  default hr_api.g_varchar2
444   ,p_pem_information14            in     varchar2  default hr_api.g_varchar2
445   ,p_pem_information15            in     varchar2  default hr_api.g_varchar2
446   ,p_pem_information16            in     varchar2  default hr_api.g_varchar2
447   ,p_pem_information17            in     varchar2  default hr_api.g_varchar2
448   ,p_pem_information18            in     varchar2  default hr_api.g_varchar2
449   ,p_pem_information19            in     varchar2  default hr_api.g_varchar2
450   ,p_pem_information20            in     varchar2  default hr_api.g_varchar2
451   ,p_pem_information21            in     varchar2  default hr_api.g_varchar2
452   ,p_pem_information22            in     varchar2  default hr_api.g_varchar2
453   ,p_pem_information23            in     varchar2  default hr_api.g_varchar2
454   ,p_pem_information24            in     varchar2  default hr_api.g_varchar2
455   ,p_pem_information25            in     varchar2  default hr_api.g_varchar2
456   ,p_pem_information26            in     varchar2  default hr_api.g_varchar2
457   ,p_pem_information27            in     varchar2  default hr_api.g_varchar2
458   ,p_pem_information28            in     varchar2  default hr_api.g_varchar2
459   ,p_pem_information29            in     varchar2  default hr_api.g_varchar2
460   ,p_pem_information30            in     varchar2  default hr_api.g_varchar2
461   ,p_object_version_number        in out nocopy number
462   ,p_return_status                   out nocopy varchar2
463   ) is
464   --
465   -- Variables for API Boolean parameters
466   l_validate                      boolean;
467   --
468   -- Variables for IN/OUT parameters
469   l_object_version_number         number;
470   --
471   -- Other variables
472   l_proc    varchar2(72) := g_package ||'update_previous_employer';
473 Begin
474   hr_utility.set_location(' Entering:' || l_proc,10);
475   --
476   -- Issue a savepoint
477   --
478   savepoint update_previous_employer_swi;
479   --
480   -- Initialise Multiple Message Detection
481   --
482   hr_multi_message.enable_message_list;
483   --
484   -- Remember IN OUT parameter IN values
485   --
486   l_object_version_number         := p_object_version_number;
487   --
488   -- Convert constant values to their corresponding boolean value
489   --
490   l_validate :=
491     hr_api.constant_to_boolean
492       (p_constant_value => p_validate);
493   --
494   -- Register Surrogate ID or user key values
495   --
496   --
497   -- Call API
498   --
499   hr_previous_employment_api.update_previous_employer
500     (p_effective_date               => p_effective_date
501     ,p_validate                     => l_validate
502     ,p_previous_employer_id         => p_previous_employer_id
503     ,p_start_date                   => p_start_date
504     ,p_end_date                     => p_end_date
505     ,p_period_years                 => p_period_years
506     ,p_period_months                => p_period_months
507     ,p_period_days                  => p_period_days
508     ,p_employer_name                => p_employer_name
509     ,p_employer_country             => p_employer_country
510     ,p_employer_address             => p_employer_address
511     ,p_employer_type                => p_employer_type
512     ,p_employer_subtype             => p_employer_subtype
513     ,p_description                  => p_description
514     ,p_all_assignments              => p_all_assignments
515     ,p_pem_attribute_category       => p_pem_attribute_category
516     ,p_pem_attribute1               => p_pem_attribute1
517     ,p_pem_attribute2               => p_pem_attribute2
518     ,p_pem_attribute3               => p_pem_attribute3
519     ,p_pem_attribute4               => p_pem_attribute4
520     ,p_pem_attribute5               => p_pem_attribute5
521     ,p_pem_attribute6               => p_pem_attribute6
522     ,p_pem_attribute7               => p_pem_attribute7
523     ,p_pem_attribute8               => p_pem_attribute8
524     ,p_pem_attribute9               => p_pem_attribute9
525     ,p_pem_attribute10              => p_pem_attribute10
526     ,p_pem_attribute11              => p_pem_attribute11
527     ,p_pem_attribute12              => p_pem_attribute12
528     ,p_pem_attribute13              => p_pem_attribute13
529     ,p_pem_attribute14              => p_pem_attribute14
530     ,p_pem_attribute15              => p_pem_attribute15
531     ,p_pem_attribute16              => p_pem_attribute16
532     ,p_pem_attribute17              => p_pem_attribute17
533     ,p_pem_attribute18              => p_pem_attribute18
534     ,p_pem_attribute19              => p_pem_attribute19
535     ,p_pem_attribute20              => p_pem_attribute20
536     ,p_pem_attribute21              => p_pem_attribute21
537     ,p_pem_attribute22              => p_pem_attribute22
538     ,p_pem_attribute23              => p_pem_attribute23
539     ,p_pem_attribute24              => p_pem_attribute24
540     ,p_pem_attribute25              => p_pem_attribute25
541     ,p_pem_attribute26              => p_pem_attribute26
542     ,p_pem_attribute27              => p_pem_attribute27
543     ,p_pem_attribute28              => p_pem_attribute28
544     ,p_pem_attribute29              => p_pem_attribute29
545     ,p_pem_attribute30              => p_pem_attribute30
546     ,p_pem_information_category     => p_pem_information_category
547     ,p_pem_information1             => p_pem_information1
548     ,p_pem_information2             => p_pem_information2
549     ,p_pem_information3             => p_pem_information3
550     ,p_pem_information4             => p_pem_information4
551     ,p_pem_information5             => p_pem_information5
552     ,p_pem_information6             => p_pem_information6
553     ,p_pem_information7             => p_pem_information7
554     ,p_pem_information8             => p_pem_information8
555     ,p_pem_information9             => p_pem_information9
556     ,p_pem_information10            => p_pem_information10
557     ,p_pem_information11            => p_pem_information11
558     ,p_pem_information12            => p_pem_information12
559     ,p_pem_information13            => p_pem_information13
560     ,p_pem_information14            => p_pem_information14
561     ,p_pem_information15            => p_pem_information15
562     ,p_pem_information16            => p_pem_information16
563     ,p_pem_information17            => p_pem_information17
564     ,p_pem_information18            => p_pem_information18
565     ,p_pem_information19            => p_pem_information19
566     ,p_pem_information20            => p_pem_information20
567     ,p_pem_information21            => p_pem_information21
568     ,p_pem_information22            => p_pem_information22
569     ,p_pem_information23            => p_pem_information23
570     ,p_pem_information24            => p_pem_information24
571     ,p_pem_information25            => p_pem_information25
572     ,p_pem_information26            => p_pem_information26
573     ,p_pem_information27            => p_pem_information27
574     ,p_pem_information28            => p_pem_information28
575     ,p_pem_information29            => p_pem_information29
576     ,p_pem_information30            => p_pem_information30
577     ,p_object_version_number        => p_object_version_number
578     );
579   --
580   -- Convert API warning boolean parameter values to specific
581   -- messages and add them to Multiple Message List
582   --
583   --
584   -- Convert API non-warning boolean parameter values
585   --
586   --
587   -- Derive the API return status value based on whether
588   -- messages of any type exist in the Multiple Message List.
589   -- Also disable Multiple Message Detection.
590   --
591   p_return_status := hr_multi_message.get_return_status_disable;
592   hr_utility.set_location(' Leaving:' || l_proc,20);
593   --
594 exception
595   when hr_multi_message.error_message_exist then
596     --
597     -- Catch the Multiple Message List exception which
598     -- indicates API processing has been aborted because
599     -- at least one message exists in the list.
600     --
601     rollback to update_previous_employer_swi;
602     --
603     -- Reset IN OUT parameters and set OUT parameters
604     --
605     p_object_version_number        := l_object_version_number;
606     p_return_status := hr_multi_message.get_return_status_disable;
607     hr_utility.set_location(' Leaving:' || l_proc, 30);
608   when others then
609     --
610     -- When Multiple Message Detection is enabled catch
611     -- any Application specific or other unexpected
612     -- exceptions.  Adding appropriate details to the
613     -- Multiple Message List.  Otherwise re-raise the
614     -- error.
615     --
616     rollback to update_previous_employer_swi;
617     if hr_multi_message.unexpected_error_add(l_proc) then
618        hr_utility.set_location(' Leaving:' || l_proc,40);
619        raise;
620     end if;
621     --
622     -- Reset IN OUT and set OUT parameters
623     --
624     p_object_version_number        := l_object_version_number;
625     p_return_status := hr_multi_message.get_return_status_disable;
626     hr_utility.set_location(' Leaving:' || l_proc,50);
627 end update_previous_employer;
628 -- ----------------------------------------------------------------------------
629 -- |--------------------------< create_previous_job >-------------------------|
630 -- ----------------------------------------------------------------------------
631 PROCEDURE create_previous_job
632   (p_effective_date               in     date
633   ,p_validate                     in     number    default hr_api.g_false_num
634   ,p_previous_employer_id         in     number
635   ,p_start_date                   in     date      default null
636   ,p_end_date                     in     date      default null
637   ,p_period_years                 in     number    default null
638   ,p_period_months                in     number    default null
639   ,p_period_days                  in     number    default null
640   ,p_job_name                     in     varchar2  default null
641   ,p_employment_category          in     varchar2  default null
642   ,p_description                  in     varchar2  default null
643   ,p_all_assignments              in     varchar2  default null
644   ,p_pjo_attribute_category       in     varchar2  default null
645   ,p_pjo_attribute1               in     varchar2  default null
646   ,p_pjo_attribute2               in     varchar2  default null
647   ,p_pjo_attribute3               in     varchar2  default null
648   ,p_pjo_attribute4               in     varchar2  default null
649   ,p_pjo_attribute5               in     varchar2  default null
650   ,p_pjo_attribute6               in     varchar2  default null
651   ,p_pjo_attribute7               in     varchar2  default null
652   ,p_pjo_attribute8               in     varchar2  default null
653   ,p_pjo_attribute9               in     varchar2  default null
654   ,p_pjo_attribute10              in     varchar2  default null
655   ,p_pjo_attribute11              in     varchar2  default null
656   ,p_pjo_attribute12              in     varchar2  default null
657   ,p_pjo_attribute13              in     varchar2  default null
658   ,p_pjo_attribute14              in     varchar2  default null
659   ,p_pjo_attribute15              in     varchar2  default null
660   ,p_pjo_attribute16              in     varchar2  default null
661   ,p_pjo_attribute17              in     varchar2  default null
662   ,p_pjo_attribute18              in     varchar2  default null
663   ,p_pjo_attribute19              in     varchar2  default null
664   ,p_pjo_attribute20              in     varchar2  default null
665   ,p_pjo_attribute21              in     varchar2  default null
666   ,p_pjo_attribute22              in     varchar2  default null
667   ,p_pjo_attribute23              in     varchar2  default null
668   ,p_pjo_attribute24              in     varchar2  default null
669   ,p_pjo_attribute25              in     varchar2  default null
670   ,p_pjo_attribute26              in     varchar2  default null
671   ,p_pjo_attribute27              in     varchar2  default null
672   ,p_pjo_attribute28              in     varchar2  default null
673   ,p_pjo_attribute29              in     varchar2  default null
674   ,p_pjo_attribute30              in     varchar2  default null
675   ,p_pjo_information_category     in     varchar2  default null
676   ,p_pjo_information1             in     varchar2  default null
677   ,p_pjo_information2             in     varchar2  default null
678   ,p_pjo_information3             in     varchar2  default null
679   ,p_pjo_information4             in     varchar2  default null
680   ,p_pjo_information5             in     varchar2  default null
681   ,p_pjo_information6             in     varchar2  default null
682   ,p_pjo_information7             in     varchar2  default null
683   ,p_pjo_information8             in     varchar2  default null
684   ,p_pjo_information9             in     varchar2  default null
685   ,p_pjo_information10            in     varchar2  default null
686   ,p_pjo_information11            in     varchar2  default null
687   ,p_pjo_information12            in     varchar2  default null
688   ,p_pjo_information13            in     varchar2  default null
689   ,p_pjo_information14            in     varchar2  default null
690   ,p_pjo_information15            in     varchar2  default null
691   ,p_pjo_information16            in     varchar2  default null
692   ,p_pjo_information17            in     varchar2  default null
693   ,p_pjo_information18            in     varchar2  default null
694   ,p_pjo_information19            in     varchar2  default null
695   ,p_pjo_information20            in     varchar2  default null
696   ,p_pjo_information21            in     varchar2  default null
697   ,p_pjo_information22            in     varchar2  default null
698   ,p_pjo_information23            in     varchar2  default null
699   ,p_pjo_information24            in     varchar2  default null
700   ,p_pjo_information25            in     varchar2  default null
701   ,p_pjo_information26            in     varchar2  default null
702   ,p_pjo_information27            in     varchar2  default null
703   ,p_pjo_information28            in     varchar2  default null
704   ,p_pjo_information29            in     varchar2  default null
705   ,p_pjo_information30            in     varchar2  default null
706   ,p_previous_job_id              in     number
707   ,p_object_version_number           out nocopy number
708   ,p_return_status                   out nocopy varchar2
709   ) is
710   --
711   -- Variables for API Boolean parameters
712   l_validate                      boolean;
713   --
714   -- Variables for IN/OUT parameters
715   --
716   -- Other variables
717   l_previous_job_id              number;
718   l_proc    varchar2(72) := g_package ||'create_previous_job';
719 Begin
720   hr_utility.set_location(' Entering:' || l_proc,10);
721   --
722   -- Issue a savepoint
723   --
724   savepoint create_previous_job_swi;
725   --
726   -- Initialise Multiple Message Detection
727   --
728   hr_multi_message.enable_message_list;
729   --
730   -- Remember IN OUT parameter IN values
731   --
732   --
733   -- Convert constant values to their corresponding boolean value
734   --
735   l_validate :=
736     hr_api.constant_to_boolean
737       (p_constant_value => p_validate);
738   --
739   -- Register Surrogate ID or user key values
740   --
741   per_pjo_ins.set_base_key_value
742     (p_previous_job_id => p_previous_job_id
743     );
744   --
745   -- Call API
746   --
747   hr_previous_employment_api.create_previous_job
748     (p_effective_date               => p_effective_date
749     ,p_validate                     => l_validate
750     ,p_previous_employer_id         => p_previous_employer_id
751     ,p_start_date                   => p_start_date
752     ,p_end_date                     => p_end_date
753     ,p_period_years                 => p_period_years
754     ,p_period_months                => p_period_months
755     ,p_period_days                  => p_period_days
756     ,p_job_name                     => p_job_name
757     ,p_employment_category          => p_employment_category
758     ,p_description                  => p_description
759     ,p_all_assignments              => p_all_assignments
760     ,p_pjo_attribute_category       => p_pjo_attribute_category
761     ,p_pjo_attribute1               => p_pjo_attribute1
762     ,p_pjo_attribute2               => p_pjo_attribute2
763     ,p_pjo_attribute3               => p_pjo_attribute3
764     ,p_pjo_attribute4               => p_pjo_attribute4
765     ,p_pjo_attribute5               => p_pjo_attribute5
766     ,p_pjo_attribute6               => p_pjo_attribute6
767     ,p_pjo_attribute7               => p_pjo_attribute7
768     ,p_pjo_attribute8               => p_pjo_attribute8
769     ,p_pjo_attribute9               => p_pjo_attribute9
770     ,p_pjo_attribute10              => p_pjo_attribute10
771     ,p_pjo_attribute11              => p_pjo_attribute11
772     ,p_pjo_attribute12              => p_pjo_attribute12
773     ,p_pjo_attribute13              => p_pjo_attribute13
774     ,p_pjo_attribute14              => p_pjo_attribute14
775     ,p_pjo_attribute15              => p_pjo_attribute15
776     ,p_pjo_attribute16              => p_pjo_attribute16
777     ,p_pjo_attribute17              => p_pjo_attribute17
778     ,p_pjo_attribute18              => p_pjo_attribute18
779     ,p_pjo_attribute19              => p_pjo_attribute19
780     ,p_pjo_attribute20              => p_pjo_attribute20
781     ,p_pjo_attribute21              => p_pjo_attribute21
782     ,p_pjo_attribute22              => p_pjo_attribute22
783     ,p_pjo_attribute23              => p_pjo_attribute23
784     ,p_pjo_attribute24              => p_pjo_attribute24
785     ,p_pjo_attribute25              => p_pjo_attribute25
786     ,p_pjo_attribute26              => p_pjo_attribute26
787     ,p_pjo_attribute27              => p_pjo_attribute27
788     ,p_pjo_attribute28              => p_pjo_attribute28
789     ,p_pjo_attribute29              => p_pjo_attribute29
790     ,p_pjo_attribute30              => p_pjo_attribute30
791     ,p_pjo_information_category     => p_pjo_information_category
792     ,p_pjo_information1             => p_pjo_information1
793     ,p_pjo_information2             => p_pjo_information2
794     ,p_pjo_information3             => p_pjo_information3
795     ,p_pjo_information4             => p_pjo_information4
796     ,p_pjo_information5             => p_pjo_information5
797     ,p_pjo_information6             => p_pjo_information6
798     ,p_pjo_information7             => p_pjo_information7
799     ,p_pjo_information8             => p_pjo_information8
800     ,p_pjo_information9             => p_pjo_information9
801     ,p_pjo_information10            => p_pjo_information10
802     ,p_pjo_information11            => p_pjo_information11
803     ,p_pjo_information12            => p_pjo_information12
804     ,p_pjo_information13            => p_pjo_information13
805     ,p_pjo_information14            => p_pjo_information14
806     ,p_pjo_information15            => p_pjo_information15
807     ,p_pjo_information16            => p_pjo_information16
808     ,p_pjo_information17            => p_pjo_information17
809     ,p_pjo_information18            => p_pjo_information18
810     ,p_pjo_information19            => p_pjo_information19
811     ,p_pjo_information20            => p_pjo_information20
812     ,p_pjo_information21            => p_pjo_information21
813     ,p_pjo_information22            => p_pjo_information22
814     ,p_pjo_information23            => p_pjo_information23
815     ,p_pjo_information24            => p_pjo_information24
816     ,p_pjo_information25            => p_pjo_information25
817     ,p_pjo_information26            => p_pjo_information26
818     ,p_pjo_information27            => p_pjo_information27
819     ,p_pjo_information28            => p_pjo_information28
820     ,p_pjo_information29            => p_pjo_information29
821     ,p_pjo_information30            => p_pjo_information30
822     ,p_previous_job_id              => l_previous_job_id
823     ,p_object_version_number        => p_object_version_number
824     );
825   --
826   -- Convert API warning boolean parameter values to specific
827   -- messages and add them to Multiple Message List
828   --
829   --
830   -- Convert API non-warning boolean parameter values
831   --
832   --
833   -- Derive the API return status value based on whether
834   -- messages of any type exist in the Multiple Message List.
835   -- Also disable Multiple Message Detection.
836   --
837   p_return_status := hr_multi_message.get_return_status_disable;
838   hr_utility.set_location(' Leaving:' || l_proc,20);
839   --
840 exception
841   when hr_multi_message.error_message_exist then
842     --
843     -- Catch the Multiple Message List exception which
844     -- indicates API processing has been aborted because
845     -- at least one message exists in the list.
846     --
847     rollback to create_previous_job_swi;
848     --
849     -- Reset IN OUT parameters and set OUT parameters
850     --
851     p_object_version_number        := null;
852     p_return_status := hr_multi_message.get_return_status_disable;
853     hr_utility.set_location(' Leaving:' || l_proc, 30);
854   when others then
855     --
856     -- When Multiple Message Detection is enabled catch
857     -- any Application specific or other unexpected
858     -- exceptions.  Adding appropriate details to the
859     -- Multiple Message List.  Otherwise re-raise the
860     -- error.
861     --
862     rollback to create_previous_job_swi;
863     if hr_multi_message.unexpected_error_add(l_proc) then
864        hr_utility.set_location(' Leaving:' || l_proc,40);
865        raise;
866     end if;
867     --
868     -- Reset IN OUT and set OUT parameters
869     --
870     p_object_version_number        := null;
871     p_return_status := hr_multi_message.get_return_status_disable;
872     hr_utility.set_location(' Leaving:' || l_proc,50);
873 end create_previous_job;
874 -- ----------------------------------------------------------------------------
875 -- |--------------------------< delete_previous_job >-------------------------|
876 -- ----------------------------------------------------------------------------
877 PROCEDURE delete_previous_job
878   (p_validate                     in     number    default hr_api.g_false_num
879   ,p_previous_job_id              in     number
880   ,p_object_version_number        in out nocopy number
881   ,p_return_status                   out nocopy varchar2
882   ) is
883   --
884   -- Variables for API Boolean parameters
885   l_validate                      boolean;
886   --
887   -- Variables for IN/OUT parameters
888   l_object_version_number         number;
889   --
890   -- Other variables
891   l_proc    varchar2(72) := g_package ||'delete_previous_job';
892 Begin
893   hr_utility.set_location(' Entering:' || l_proc,10);
894   --
895   -- Issue a savepoint
896   --
897   savepoint delete_previous_job_swi;
898   --
899   -- Initialise Multiple Message Detection
900   --
901   hr_multi_message.enable_message_list;
902   --
903   -- Remember IN OUT parameter IN values
904   --
905   l_object_version_number         := p_object_version_number;
906   --
907   -- Convert constant values to their corresponding boolean value
908   --
909   l_validate :=
910     hr_api.constant_to_boolean
911       (p_constant_value => p_validate);
912   --
913   -- Register Surrogate ID or user key values
914   --
915   --
916   -- Call API
917   --
918   hr_previous_employment_api.delete_previous_job
919     (p_validate                     => l_validate
920     ,p_previous_job_id              => p_previous_job_id
921     ,p_object_version_number        => l_object_version_number
922     );
923   --
924   -- Convert API warning boolean parameter values to specific
925   -- messages and add them to Multiple Message List
926   --
927   --
928   -- Convert API non-warning boolean parameter values
929   --
930   --
931   -- Derive the API return status value based on whether
932   -- messages of any type exist in the Multiple Message List.
933   -- Also disable Multiple Message Detection.
934   --
935   p_return_status := hr_multi_message.get_return_status_disable;
936   hr_utility.set_location(' Leaving:' || l_proc,20);
937   --
938 exception
939   when hr_multi_message.error_message_exist then
940     --
941     -- Catch the Multiple Message List exception which
942     -- indicates API processing has been aborted because
943     -- at least one message exists in the list.
944     --
945     rollback to delete_previous_job_swi;
946     --
947     -- Reset IN OUT parameters and set OUT parameters
948     --
949     p_object_version_number        := l_object_version_number;
950     p_return_status := hr_multi_message.get_return_status_disable;
951     hr_utility.set_location(' Leaving:' || l_proc, 30);
952   when others then
953     --
954     -- When Multiple Message Detection is enabled catch
955     -- any Application specific or other unexpected
956     -- exceptions.  Adding appropriate details to the
957     -- Multiple Message List.  Otherwise re-raise the
958     -- error.
959     --
960     rollback to delete_previous_job_swi;
961     if hr_multi_message.unexpected_error_add(l_proc) then
962        hr_utility.set_location(' Leaving:' || l_proc,40);
963        raise;
964     end if;
965     --
966     -- Reset IN OUT and set OUT parameters
967     --
968     p_object_version_number        := l_object_version_number;
969     p_return_status := hr_multi_message.get_return_status_disable;
970     hr_utility.set_location(' Leaving:' || l_proc,50);
971 end delete_previous_job;
972 -- ----------------------------------------------------------------------------
973 -- |--------------------------< update_previous_job >-------------------------|
974 -- ----------------------------------------------------------------------------
975 PROCEDURE update_previous_job
976   (p_effective_date               in     date
977   ,p_validate                     in     number    default hr_api.g_false_num
978   ,p_previous_job_id              in     number
979   ,p_start_date                   in     date      default hr_api.g_date
980   ,p_end_date                     in     date      default hr_api.g_date
981   ,p_period_years                 in     number    default hr_api.g_number
982   ,p_period_months                in     number    default hr_api.g_number
983   ,p_period_days                  in     number    default hr_api.g_number
984   ,p_job_name                     in     varchar2  default hr_api.g_varchar2
985   ,p_employment_category          in     varchar2  default hr_api.g_varchar2
986   ,p_description                  in     varchar2  default hr_api.g_varchar2
987   ,p_all_assignments              in     varchar2  default hr_api.g_varchar2
988   ,p_pjo_attribute_category       in     varchar2  default hr_api.g_varchar2
989   ,p_pjo_attribute1               in     varchar2  default hr_api.g_varchar2
990   ,p_pjo_attribute2               in     varchar2  default hr_api.g_varchar2
991   ,p_pjo_attribute3               in     varchar2  default hr_api.g_varchar2
992   ,p_pjo_attribute4               in     varchar2  default hr_api.g_varchar2
993   ,p_pjo_attribute5               in     varchar2  default hr_api.g_varchar2
994   ,p_pjo_attribute6               in     varchar2  default hr_api.g_varchar2
995   ,p_pjo_attribute7               in     varchar2  default hr_api.g_varchar2
996   ,p_pjo_attribute8               in     varchar2  default hr_api.g_varchar2
997   ,p_pjo_attribute9               in     varchar2  default hr_api.g_varchar2
998   ,p_pjo_attribute10              in     varchar2  default hr_api.g_varchar2
999   ,p_pjo_attribute11              in     varchar2  default hr_api.g_varchar2
1000   ,p_pjo_attribute12              in     varchar2  default hr_api.g_varchar2
1001   ,p_pjo_attribute13              in     varchar2  default hr_api.g_varchar2
1002   ,p_pjo_attribute14              in     varchar2  default hr_api.g_varchar2
1003   ,p_pjo_attribute15              in     varchar2  default hr_api.g_varchar2
1004   ,p_pjo_attribute16              in     varchar2  default hr_api.g_varchar2
1005   ,p_pjo_attribute17              in     varchar2  default hr_api.g_varchar2
1006   ,p_pjo_attribute18              in     varchar2  default hr_api.g_varchar2
1007   ,p_pjo_attribute19              in     varchar2  default hr_api.g_varchar2
1008   ,p_pjo_attribute20              in     varchar2  default hr_api.g_varchar2
1009   ,p_pjo_attribute21              in     varchar2  default hr_api.g_varchar2
1010   ,p_pjo_attribute22              in     varchar2  default hr_api.g_varchar2
1011   ,p_pjo_attribute23              in     varchar2  default hr_api.g_varchar2
1012   ,p_pjo_attribute24              in     varchar2  default hr_api.g_varchar2
1013   ,p_pjo_attribute25              in     varchar2  default hr_api.g_varchar2
1014   ,p_pjo_attribute26              in     varchar2  default hr_api.g_varchar2
1015   ,p_pjo_attribute27              in     varchar2  default hr_api.g_varchar2
1016   ,p_pjo_attribute28              in     varchar2  default hr_api.g_varchar2
1017   ,p_pjo_attribute29              in     varchar2  default hr_api.g_varchar2
1018   ,p_pjo_attribute30              in     varchar2  default hr_api.g_varchar2
1019   ,p_pjo_information_category     in     varchar2  default hr_api.g_varchar2
1020   ,p_pjo_information1             in     varchar2  default hr_api.g_varchar2
1021   ,p_pjo_information2             in     varchar2  default hr_api.g_varchar2
1022   ,p_pjo_information3             in     varchar2  default hr_api.g_varchar2
1023   ,p_pjo_information4             in     varchar2  default hr_api.g_varchar2
1024   ,p_pjo_information5             in     varchar2  default hr_api.g_varchar2
1025   ,p_pjo_information6             in     varchar2  default hr_api.g_varchar2
1026   ,p_pjo_information7             in     varchar2  default hr_api.g_varchar2
1027   ,p_pjo_information8             in     varchar2  default hr_api.g_varchar2
1028   ,p_pjo_information9             in     varchar2  default hr_api.g_varchar2
1029   ,p_pjo_information10            in     varchar2  default hr_api.g_varchar2
1030   ,p_pjo_information11            in     varchar2  default hr_api.g_varchar2
1031   ,p_pjo_information12            in     varchar2  default hr_api.g_varchar2
1032   ,p_pjo_information13            in     varchar2  default hr_api.g_varchar2
1033   ,p_pjo_information14            in     varchar2  default hr_api.g_varchar2
1034   ,p_pjo_information15            in     varchar2  default hr_api.g_varchar2
1035   ,p_pjo_information16            in     varchar2  default hr_api.g_varchar2
1036   ,p_pjo_information17            in     varchar2  default hr_api.g_varchar2
1037   ,p_pjo_information18            in     varchar2  default hr_api.g_varchar2
1038   ,p_pjo_information19            in     varchar2  default hr_api.g_varchar2
1039   ,p_pjo_information20            in     varchar2  default hr_api.g_varchar2
1040   ,p_pjo_information21            in     varchar2  default hr_api.g_varchar2
1041   ,p_pjo_information22            in     varchar2  default hr_api.g_varchar2
1042   ,p_pjo_information23            in     varchar2  default hr_api.g_varchar2
1043   ,p_pjo_information24            in     varchar2  default hr_api.g_varchar2
1044   ,p_pjo_information25            in     varchar2  default hr_api.g_varchar2
1045   ,p_pjo_information26            in     varchar2  default hr_api.g_varchar2
1046   ,p_pjo_information27            in     varchar2  default hr_api.g_varchar2
1047   ,p_pjo_information28            in     varchar2  default hr_api.g_varchar2
1048   ,p_pjo_information29            in     varchar2  default hr_api.g_varchar2
1049   ,p_pjo_information30            in     varchar2  default hr_api.g_varchar2
1050   ,p_object_version_number        in out nocopy number
1051   ,p_return_status                   out nocopy varchar2
1052   ) is
1053   --
1054   -- Variables for API Boolean parameters
1055   l_validate                      boolean;
1056   --
1057   -- Variables for IN/OUT parameters
1058   l_object_version_number         number;
1059   --
1060   -- Other variables
1061   l_proc    varchar2(72) := g_package ||'update_previous_job';
1062 Begin
1063   hr_utility.set_location(' Entering:' || l_proc,10);
1064   --
1065   -- Issue a savepoint
1066   --
1067   savepoint update_previous_job_swi;
1068   --
1069   -- Initialise Multiple Message Detection
1070   --
1071   hr_multi_message.enable_message_list;
1072   --
1073   -- Remember IN OUT parameter IN values
1074   --
1075   l_object_version_number         := p_object_version_number;
1076   --
1077   -- Convert constant values to their corresponding boolean value
1078   --
1079   l_validate :=
1080     hr_api.constant_to_boolean
1081       (p_constant_value => p_validate);
1082   --
1083   -- Register Surrogate ID or user key values
1084   --
1085   --
1086   -- Call API
1087   --
1088   hr_previous_employment_api.update_previous_job
1089     (p_effective_date               => p_effective_date
1090     ,p_validate                     => l_validate
1091     ,p_previous_job_id              => p_previous_job_id
1092     ,p_start_date                   => p_start_date
1093     ,p_end_date                     => p_end_date
1094     ,p_period_years                 => p_period_years
1095     ,p_period_months                => p_period_months
1096     ,p_period_days                  => p_period_days
1097     ,p_job_name                     => p_job_name
1098     ,p_employment_category          => p_employment_category
1099     ,p_description                  => p_description
1100     ,p_all_assignments              => p_all_assignments
1101     ,p_pjo_attribute_category       => p_pjo_attribute_category
1102     ,p_pjo_attribute1               => p_pjo_attribute1
1103     ,p_pjo_attribute2               => p_pjo_attribute2
1104     ,p_pjo_attribute3               => p_pjo_attribute3
1105     ,p_pjo_attribute4               => p_pjo_attribute4
1106     ,p_pjo_attribute5               => p_pjo_attribute5
1107     ,p_pjo_attribute6               => p_pjo_attribute6
1108     ,p_pjo_attribute7               => p_pjo_attribute7
1109     ,p_pjo_attribute8               => p_pjo_attribute8
1110     ,p_pjo_attribute9               => p_pjo_attribute9
1111     ,p_pjo_attribute10              => p_pjo_attribute10
1112     ,p_pjo_attribute11              => p_pjo_attribute11
1113     ,p_pjo_attribute12              => p_pjo_attribute12
1114     ,p_pjo_attribute13              => p_pjo_attribute13
1115     ,p_pjo_attribute14              => p_pjo_attribute14
1116     ,p_pjo_attribute15              => p_pjo_attribute15
1117     ,p_pjo_attribute16              => p_pjo_attribute16
1118     ,p_pjo_attribute17              => p_pjo_attribute17
1119     ,p_pjo_attribute18              => p_pjo_attribute18
1120     ,p_pjo_attribute19              => p_pjo_attribute19
1121     ,p_pjo_attribute20              => p_pjo_attribute20
1122     ,p_pjo_attribute21              => p_pjo_attribute21
1123     ,p_pjo_attribute22              => p_pjo_attribute22
1124     ,p_pjo_attribute23              => p_pjo_attribute23
1125     ,p_pjo_attribute24              => p_pjo_attribute24
1126     ,p_pjo_attribute25              => p_pjo_attribute25
1127     ,p_pjo_attribute26              => p_pjo_attribute26
1128     ,p_pjo_attribute27              => p_pjo_attribute27
1129     ,p_pjo_attribute28              => p_pjo_attribute28
1130     ,p_pjo_attribute29              => p_pjo_attribute29
1131     ,p_pjo_attribute30              => p_pjo_attribute30
1132     ,p_pjo_information_category     => p_pjo_information_category
1133     ,p_pjo_information1             => p_pjo_information1
1134     ,p_pjo_information2             => p_pjo_information2
1135     ,p_pjo_information3             => p_pjo_information3
1136     ,p_pjo_information4             => p_pjo_information4
1137     ,p_pjo_information5             => p_pjo_information5
1138     ,p_pjo_information6             => p_pjo_information6
1139     ,p_pjo_information7             => p_pjo_information7
1140     ,p_pjo_information8             => p_pjo_information8
1141     ,p_pjo_information9             => p_pjo_information9
1142     ,p_pjo_information10            => p_pjo_information10
1143     ,p_pjo_information11            => p_pjo_information11
1144     ,p_pjo_information12            => p_pjo_information12
1145     ,p_pjo_information13            => p_pjo_information13
1146     ,p_pjo_information14            => p_pjo_information14
1147     ,p_pjo_information15            => p_pjo_information15
1148     ,p_pjo_information16            => p_pjo_information16
1149     ,p_pjo_information17            => p_pjo_information17
1150     ,p_pjo_information18            => p_pjo_information18
1151     ,p_pjo_information19            => p_pjo_information19
1152     ,p_pjo_information20            => p_pjo_information20
1153     ,p_pjo_information21            => p_pjo_information21
1154     ,p_pjo_information22            => p_pjo_information22
1155     ,p_pjo_information23            => p_pjo_information23
1156     ,p_pjo_information24            => p_pjo_information24
1157     ,p_pjo_information25            => p_pjo_information25
1158     ,p_pjo_information26            => p_pjo_information26
1159     ,p_pjo_information27            => p_pjo_information27
1160     ,p_pjo_information28            => p_pjo_information28
1161     ,p_pjo_information29            => p_pjo_information29
1162     ,p_pjo_information30            => p_pjo_information30
1163     ,p_object_version_number        => p_object_version_number
1164     );
1165   --
1166   -- Convert API warning boolean parameter values to specific
1167   -- messages and add them to Multiple Message List
1168   --
1169   --
1170   -- Convert API non-warning boolean parameter values
1171   --
1172   --
1173   -- Derive the API return status value based on whether
1174   -- messages of any type exist in the Multiple Message List.
1175   -- Also disable Multiple Message Detection.
1176   --
1177   p_return_status := hr_multi_message.get_return_status_disable;
1178   hr_utility.set_location(' Leaving:' || l_proc,20);
1179   --
1180 exception
1181   when hr_multi_message.error_message_exist then
1182     --
1183     -- Catch the Multiple Message List exception which
1184     -- indicates API processing has been aborted because
1185     -- at least one message exists in the list.
1186     --
1187     rollback to update_previous_job_swi;
1188     --
1189     -- Reset IN OUT parameters and set OUT parameters
1190     --
1191     p_object_version_number        := l_object_version_number;
1192     p_return_status := hr_multi_message.get_return_status_disable;
1193     hr_utility.set_location(' Leaving:' || l_proc, 30);
1194   when others then
1195     --
1196     -- When Multiple Message Detection is enabled catch
1197     -- any Application specific or other unexpected
1198     -- exceptions.  Adding appropriate details to the
1199     -- Multiple Message List.  Otherwise re-raise the
1200     -- error.
1201     --
1202     rollback to update_previous_job_swi;
1203     if hr_multi_message.unexpected_error_add(l_proc) then
1204        hr_utility.set_location(' Leaving:' || l_proc,40);
1205        raise;
1206     end if;
1207     --
1208     -- Reset IN OUT and set OUT parameters
1209     --
1210     p_object_version_number        := l_object_version_number;
1211     p_return_status := hr_multi_message.get_return_status_disable;
1212     hr_utility.set_location(' Leaving:' || l_proc,50);
1213 end update_previous_job;
1214 end hr_previous_employment_swi;