DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PREVIOUS_EMPLOYMENT_API

Source


1 Package Body HR_PREVIOUS_EMPLOYMENT_API as
2 /* $Header: pepemapi.pkb 120.0.12010000.2 2008/08/06 09:21:29 ubhat ship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_previous_employment_api.';
7 -- -----------------------------------------------------------------------
8 -- |-------------------------< create_previous_employer >----------------|
9 -- -----------------------------------------------------------------------
10 --
11 procedure create_previous_employer
12 (  p_effective_date               IN      date
13   ,p_validate                     IN      boolean   default false
14   ,p_business_group_id            IN      number
15   ,p_person_id                    IN      number
16   ,p_party_id                     IN      number    default null
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 'N'
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         OUT NOCOPY     number
92   ,p_object_version_number        OUT NOCOPY     number
93   ) is
94     --
95     -- Declare cursors and local variables
96     --
97     l_flag   varchar2(30);
98     l_proc  varchar2(72) := g_package||'create_previous_employer';
99     --
100     l_start_date    per_previous_employers.start_date%TYPE;
101     l_end_date      per_previous_employers.end_date%TYPE;
102     --
103     l_previous_employer_id
104                       per_previous_employers.previous_employer_id%type;
105     l_object_version_number
106                       per_previous_employers.object_version_number%type;
107     l_period_years          per_previous_employers.period_years%type
108                             := p_period_years;
109     l_period_months         per_previous_employers.period_months%type
110                             := p_period_months;
111     l_period_days           per_previous_employers.period_days%type
112                             := p_period_days;
113     l_employer_type         per_previous_employers.employer_type%type
114                             := p_employer_type;
115     l_employer_subtype      per_previous_employers.employer_subtype%type;
116     l_all_assignments       per_previous_employers.all_assignments%type
117                             := p_all_assignments;
118 begin
119   hr_utility.set_location('Entering:'||l_proc, 10);
120   --
121   -- Issue a savepoint
122   --
123   savepoint create_previous_employer;
124   --
125   -- Truncate the time portion from all IN date parameters
126   l_start_date        :=  trunc(p_start_date);
127   l_end_date          :=  trunc(p_end_date);
128   l_employer_subtype  :=  p_employer_subtype;
129   -- Calculate Period Years and Days if null.
130   --
131   if p_period_years is null
132      and p_period_months is null
133      and p_period_days is null then
134        per_pem_bus.get_period_values(l_start_date
135                                     ,l_end_date
136                                     ,l_period_years
137                                     ,l_period_months
138                                     ,l_period_days);
139   end if;
140   --
141   if p_employer_type is null then
142     l_employer_type := 'UK';
143     l_employer_subtype := null;
144   end if;
145   --
146   -- Call Before Process User Hook
147   --
148    begin
149       hr_previous_employment_bk1.create_previous_employer_b
150     (  p_effective_date               =>    p_effective_date
151       ,p_previous_employer_id         =>    p_previous_employer_id
152       ,p_business_group_id            =>    p_business_group_id
153       ,p_person_id                    =>    p_person_id
154       ,p_party_id                     =>    p_party_id
155       ,p_start_date                   =>    l_start_date
156       ,p_end_date                     =>    l_end_date
157       ,p_period_years                 =>    l_period_years
158       ,p_period_months                =>    l_period_months
159       ,p_period_days                  =>    l_period_days
160       ,p_employer_name                =>    p_employer_name
161       ,p_employer_country             =>    p_employer_country
162       ,p_employer_address             =>    p_employer_address
163       ,p_employer_type                =>    l_employer_type
164       ,p_employer_subtype             =>    l_employer_subtype
165       ,p_description                  =>    p_description
166       ,p_all_assignments              =>    l_all_assignments
167       ,p_pem_attribute_category       =>    p_pem_attribute_category
168       ,p_pem_attribute1               =>    p_pem_attribute1
169       ,p_pem_attribute2               =>    p_pem_attribute2
170       ,p_pem_attribute3               =>    p_pem_attribute3
171       ,p_pem_attribute4               =>    p_pem_attribute4
172       ,p_pem_attribute5               =>    p_pem_attribute5
173       ,p_pem_attribute6               =>    p_pem_attribute6
174       ,p_pem_attribute7               =>    p_pem_attribute7
175       ,p_pem_attribute8               =>    p_pem_attribute8
176       ,p_pem_attribute9               =>    p_pem_attribute9
177       ,p_pem_attribute10              =>    p_pem_attribute10
178       ,p_pem_attribute11              =>    p_pem_attribute11
179       ,p_pem_attribute12              =>    p_pem_attribute12
180       ,p_pem_attribute13              =>    p_pem_attribute13
181       ,p_pem_attribute14              =>    p_pem_attribute14
182       ,p_pem_attribute15              =>    p_pem_attribute15
183       ,p_pem_attribute16              =>    p_pem_attribute16
184       ,p_pem_attribute17              =>    p_pem_attribute17
185       ,p_pem_attribute18              =>    p_pem_attribute18
186       ,p_pem_attribute19              =>    p_pem_attribute19
187       ,p_pem_attribute20              =>    p_pem_attribute20
188       ,p_pem_attribute21              =>    p_pem_attribute21
189       ,p_pem_attribute22              =>    p_pem_attribute22
190       ,p_pem_attribute23              =>    p_pem_attribute23
191       ,p_pem_attribute24              =>    p_pem_attribute24
192       ,p_pem_attribute25              =>    p_pem_attribute25
193       ,p_pem_attribute26              =>    p_pem_attribute26
194       ,p_pem_attribute27              =>    p_pem_attribute27
195       ,p_pem_attribute28              =>    p_pem_attribute28
196       ,p_pem_attribute29              =>    p_pem_attribute29
197       ,p_pem_attribute30              =>    p_pem_attribute30
198       ,p_pem_information_category     =>    p_pem_information_category
199       ,p_pem_information1             =>    p_pem_information1
200       ,p_pem_information2             =>    p_pem_information2
201       ,p_pem_information3             =>    p_pem_information3
202       ,p_pem_information4             =>    p_pem_information4
203       ,p_pem_information5             =>    p_pem_information5
204       ,p_pem_information6             =>    p_pem_information6
205       ,p_pem_information7             =>    p_pem_information7
206       ,p_pem_information8             =>    p_pem_information8
207       ,p_pem_information9             =>    p_pem_information9
208       ,p_pem_information10            =>    p_pem_information10
209       ,p_pem_information11            =>    p_pem_information11
210       ,p_pem_information12            =>    p_pem_information12
211       ,p_pem_information13            =>    p_pem_information13
212       ,p_pem_information14            =>    p_pem_information14
213       ,p_pem_information15            =>    p_pem_information15
214       ,p_pem_information16            =>    p_pem_information16
215       ,p_pem_information17            =>    p_pem_information17
216       ,p_pem_information18            =>    p_pem_information18
217       ,p_pem_information19            =>    p_pem_information19
218       ,p_pem_information20            =>    p_pem_information20
219       ,p_pem_information21            =>    p_pem_information21
220       ,p_pem_information22            =>    p_pem_information22
221       ,p_pem_information23            =>    p_pem_information23
222       ,p_pem_information24            =>    p_pem_information24
223       ,p_pem_information25            =>    p_pem_information25
224       ,p_pem_information26            =>    p_pem_information26
225       ,p_pem_information27            =>    p_pem_information27
226       ,p_pem_information28            =>    p_pem_information28
227       ,p_pem_information29            =>    p_pem_information29
228       ,p_pem_information30            =>    p_pem_information30
229       ,p_object_version_number        =>    l_object_version_number
230       );
231    exception
232       when hr_api.cannot_find_prog_unit then
233         hr_api.cannot_find_prog_unit_error
234           (p_module_name
235                   => 'hr_previous_employment_api.create_previous_employer'
236           ,p_hook_type
237                   => 'BP'
238           );
239    end;
240   --
241   -- Validation in addition to Row Handlers
242   -- Process Logic
243   per_pem_ins.ins
244     (p_effective_date             =>  p_effective_date
245     ,p_business_group_id          =>  p_business_group_id
246     ,p_person_id                  =>  p_person_id
247     ,p_party_id                   =>  p_party_id
248     ,p_start_date                 =>  l_start_date
249     ,p_end_date                   =>  l_end_date
250     ,p_period_years               =>  l_period_years
251     ,p_period_months              =>  l_period_months
252     ,p_period_days                =>  l_period_days
253     ,p_employer_name              =>  p_employer_name
254     ,p_employer_country           =>  p_employer_country
255     ,p_employer_address           =>  p_employer_address
256     ,p_employer_type              =>  l_employer_type
257     ,p_employer_subtype           =>  l_employer_subtype
258     ,p_description                =>  p_description
259     ,p_all_assignments            =>  l_all_assignments
260     ,p_pem_attribute_category     =>  p_pem_attribute_category
261     ,p_pem_attribute1             =>  p_pem_attribute1
262     ,p_pem_attribute2             =>  p_pem_attribute2
263     ,p_pem_attribute3             =>  p_pem_attribute3
264     ,p_pem_attribute4             =>  p_pem_attribute4
265     ,p_pem_attribute5             =>  p_pem_attribute5
266     ,p_pem_attribute6             =>  p_pem_attribute6
267     ,p_pem_attribute7             =>  p_pem_attribute7
268     ,p_pem_attribute8             =>  p_pem_attribute8
269     ,p_pem_attribute9             =>  p_pem_attribute9
270     ,p_pem_attribute10            =>  p_pem_attribute10
271     ,p_pem_attribute11            =>  p_pem_attribute11
272     ,p_pem_attribute12            =>  p_pem_attribute12
273     ,p_pem_attribute13            =>  p_pem_attribute13
274     ,p_pem_attribute14            =>  p_pem_attribute14
275     ,p_pem_attribute15            =>  p_pem_attribute15
276     ,p_pem_attribute16            =>  p_pem_attribute16
277     ,p_pem_attribute17            =>  p_pem_attribute17
278     ,p_pem_attribute18            =>  p_pem_attribute18
279     ,p_pem_attribute19            =>  p_pem_attribute19
280     ,p_pem_attribute20            =>  p_pem_attribute20
281     ,p_pem_attribute21            =>  p_pem_attribute21
282     ,p_pem_attribute22            =>  p_pem_attribute22
283     ,p_pem_attribute23            =>  p_pem_attribute23
284     ,p_pem_attribute24            =>  p_pem_attribute24
285     ,p_pem_attribute25            =>  p_pem_attribute25
286     ,p_pem_attribute26            =>  p_pem_attribute26
287     ,p_pem_attribute27            =>  p_pem_attribute27
288     ,p_pem_attribute28            =>  p_pem_attribute28
289     ,p_pem_attribute29            =>  p_pem_attribute29
290     ,p_pem_attribute30            =>  p_pem_attribute30
291     ,p_pem_information_category   =>  p_pem_information_category
292     ,p_pem_information1           =>  p_pem_information1
293     ,p_pem_information2           =>  p_pem_information2
294     ,p_pem_information3           =>  p_pem_information3
295     ,p_pem_information4           =>  p_pem_information4
296     ,p_pem_information5           =>  p_pem_information5
297     ,p_pem_information6           =>  p_pem_information6
298     ,p_pem_information7           =>  p_pem_information7
299     ,p_pem_information8           =>  p_pem_information8
300     ,p_pem_information9           =>  p_pem_information9
301     ,p_pem_information10          =>  p_pem_information10
302     ,p_pem_information11          =>  p_pem_information11
303     ,p_pem_information12          =>  p_pem_information12
304     ,p_pem_information13          =>  p_pem_information13
305     ,p_pem_information14          =>  p_pem_information14
306     ,p_pem_information15          =>  p_pem_information15
307     ,p_pem_information16          =>  p_pem_information16
308     ,p_pem_information17          =>  p_pem_information17
309     ,p_pem_information18          =>  p_pem_information18
310     ,p_pem_information19          =>  p_pem_information19
311     ,p_pem_information20          =>  p_pem_information20
312     ,p_pem_information21          =>  p_pem_information21
313     ,p_pem_information22          =>  p_pem_information22
314     ,p_pem_information23          =>  p_pem_information23
315     ,p_pem_information24          =>  p_pem_information24
316     ,p_pem_information25          =>  p_pem_information25
317     ,p_pem_information26          =>  p_pem_information26
318     ,p_pem_information27          =>  p_pem_information27
319     ,p_pem_information28          =>  p_pem_information28
320     ,p_pem_information29          =>  p_pem_information29
321     ,p_pem_information30          =>  p_pem_information30
322     ,p_previous_employer_id       =>  l_previous_employer_id
323     ,p_object_version_number      =>  l_object_version_number
324     );
325 -- Call After Process User Hook
326   --
327   begin
328       hr_previous_employment_bk1.create_previous_employer_a
329     (  p_effective_date               =>    p_effective_date
330       ,p_previous_employer_id         =>    p_previous_employer_id
331       ,p_business_group_id            =>    p_business_group_id
332       ,p_person_id                    =>    p_person_id
333       ,p_party_id                     =>    p_party_id
334       ,p_start_date                   =>    l_start_date
335       ,p_end_date                     =>    l_end_date
336       ,p_period_years                 =>    l_period_years
337       ,p_period_months                =>    l_period_months
338       ,p_period_days                  =>    l_period_days
339       ,p_employer_name                =>    p_employer_name
340       ,p_employer_country             =>    p_employer_country
341       ,p_employer_address             =>    p_employer_address
342       ,p_employer_type                =>    l_employer_type
343       ,p_employer_subtype             =>    l_employer_subtype
344       ,p_description                  =>    p_description
345       ,p_all_assignments              =>    l_all_assignments
346       ,p_pem_attribute_category       =>    p_pem_attribute_category
347       ,p_pem_attribute1               =>    p_pem_attribute1
348       ,p_pem_attribute2               =>    p_pem_attribute2
349       ,p_pem_attribute3               =>    p_pem_attribute3
350       ,p_pem_attribute4               =>    p_pem_attribute4
351       ,p_pem_attribute5               =>    p_pem_attribute5
352       ,p_pem_attribute6               =>    p_pem_attribute6
353       ,p_pem_attribute7               =>    p_pem_attribute7
354       ,p_pem_attribute8               =>    p_pem_attribute8
355       ,p_pem_attribute9               =>    p_pem_attribute9
356       ,p_pem_attribute10              =>    p_pem_attribute10
357       ,p_pem_attribute11              =>    p_pem_attribute11
358       ,p_pem_attribute12              =>    p_pem_attribute12
359       ,p_pem_attribute13              =>    p_pem_attribute13
360       ,p_pem_attribute14              =>    p_pem_attribute14
361       ,p_pem_attribute15              =>    p_pem_attribute15
362       ,p_pem_attribute16              =>    p_pem_attribute16
363       ,p_pem_attribute17              =>    p_pem_attribute17
364       ,p_pem_attribute18              =>    p_pem_attribute18
365       ,p_pem_attribute19              =>    p_pem_attribute19
366       ,p_pem_attribute20              =>    p_pem_attribute20
367       ,p_pem_attribute21              =>    p_pem_attribute21
368       ,p_pem_attribute22              =>    p_pem_attribute22
369       ,p_pem_attribute23              =>    p_pem_attribute23
370       ,p_pem_attribute24              =>    p_pem_attribute24
371       ,p_pem_attribute25              =>    p_pem_attribute25
372       ,p_pem_attribute26              =>    p_pem_attribute26
373       ,p_pem_attribute27              =>    p_pem_attribute27
374       ,p_pem_attribute28              =>    p_pem_attribute28
375       ,p_pem_attribute29              =>    p_pem_attribute29
376       ,p_pem_attribute30              =>    p_pem_attribute30
377       ,p_pem_information_category     =>    p_pem_information_category
378       ,p_pem_information1             =>    p_pem_information1
379       ,p_pem_information2             =>    p_pem_information2
380       ,p_pem_information3             =>    p_pem_information3
381       ,p_pem_information4             =>    p_pem_information4
382       ,p_pem_information5             =>    p_pem_information5
383       ,p_pem_information6             =>    p_pem_information6
384       ,p_pem_information7             =>    p_pem_information7
385       ,p_pem_information8             =>    p_pem_information8
386       ,p_pem_information9             =>    p_pem_information9
387       ,p_pem_information10            =>    p_pem_information10
388       ,p_pem_information11            =>    p_pem_information11
389       ,p_pem_information12            =>    p_pem_information12
390       ,p_pem_information13            =>    p_pem_information13
391       ,p_pem_information14            =>    p_pem_information14
392       ,p_pem_information15            =>    p_pem_information15
393       ,p_pem_information16            =>    p_pem_information16
394       ,p_pem_information17            =>    p_pem_information17
395       ,p_pem_information18            =>    p_pem_information18
396       ,p_pem_information19            =>    p_pem_information19
397       ,p_pem_information20            =>    p_pem_information20
398       ,p_pem_information21            =>    p_pem_information21
399       ,p_pem_information22            =>    p_pem_information22
400       ,p_pem_information23            =>    p_pem_information23
401       ,p_pem_information24            =>    p_pem_information24
402       ,p_pem_information25            =>    p_pem_information25
403       ,p_pem_information26            =>    p_pem_information26
404       ,p_pem_information27            =>    p_pem_information27
405       ,p_pem_information28            =>    p_pem_information28
406       ,p_pem_information29            =>    p_pem_information29
407       ,p_pem_information30            =>    p_pem_information30
408       ,p_object_version_number        =>    p_object_version_number
409       );
410   exception
411     when hr_api.cannot_find_prog_unit then
412       hr_api.cannot_find_prog_unit_error
413         (p_module_name
414                 => 'hr_previous_employment_api.create_previous_employer'
415         ,p_hook_type
416                 => 'AP'
417         );
418   end;
419   --
420   -- When in validation only mode raise the Validate_Enabled exception
421   --
422   if p_validate then
423     raise hr_api.validate_enabled;
424   end if;
425   --
426   -- Set all output arguments
427   --
428   p_previous_employer_id   := l_previous_employer_id;
429   p_object_version_number  := l_object_version_number;
430   --
431   hr_utility.set_location(' Leaving:'||l_proc, 70);
432 exception
433   when hr_api.validate_enabled then
434     --
435     -- As the Validate_Enabled exception has been raised
436     -- we must rollback to the savepoint
437     --
438     rollback to create_previous_employer;
439     --
440     -- Only set output warning arguments
441     -- (Any key or derived arguments must be set to null
442     -- when validation only mode is being used.)
443     --
444     p_previous_employer_id   := null;
445     p_object_version_number  := null;
446     hr_utility.set_location(' Leaving:'||l_proc, 80);
447   when others then
448     --
449     -- A validation or unexpected error has occured
450     --
451     rollback to create_previous_employer;
452     --
453     -- set in out parameters and set out parameters
454     --
455     p_previous_employer_id   := null;
456     p_object_version_number  := null;
457     --
458     hr_utility.set_location(' Leaving:'||l_proc, 90);
459     raise;
460 end create_previous_employer;
461 --
462 -- -----------------------------------------------------------------------
463 -- |------------------------< update_previous_employer >-----------------|
464 -- -----------------------------------------------------------------------
465 procedure update_previous_employer
466 (  p_effective_date             IN      date
467   ,p_validate                   IN      boolean   default false
468   ,p_previous_employer_id       IN      number
469   ,p_start_date                 IN      date      default hr_api.g_date
470   ,p_end_date                   IN      date      default hr_api.g_date
471   ,p_period_years               IN      number    default hr_api.g_number
472   ,p_period_months              IN      number    default hr_api.g_number
473   ,p_period_days                IN      number    default hr_api.g_number
474   ,p_employer_name              IN      varchar2  default hr_api.g_varchar2
475   ,p_employer_country           IN      varchar2  default hr_api.g_varchar2
476   ,p_employer_address           IN      varchar2  default hr_api.g_varchar2
477   ,p_employer_type              IN      varchar2  default hr_api.g_varchar2
478   ,p_employer_subtype           IN      varchar2  default hr_api.g_varchar2
479   ,p_description                IN      varchar2  default hr_api.g_varchar2
480   ,p_all_assignments            IN      varchar2  default 'N'
481   ,p_pem_attribute_category     IN      varchar2  default hr_api.g_varchar2
482   ,p_pem_attribute1             IN      varchar2  default hr_api.g_varchar2
483   ,p_pem_attribute2             IN      varchar2  default hr_api.g_varchar2
484   ,p_pem_attribute3             IN      varchar2  default hr_api.g_varchar2
485   ,p_pem_attribute4             IN      varchar2  default hr_api.g_varchar2
486   ,p_pem_attribute5             IN      varchar2  default hr_api.g_varchar2
487   ,p_pem_attribute6             IN      varchar2  default hr_api.g_varchar2
488   ,p_pem_attribute7             IN      varchar2  default hr_api.g_varchar2
489   ,p_pem_attribute8             IN      varchar2  default hr_api.g_varchar2
490   ,p_pem_attribute9             IN      varchar2  default hr_api.g_varchar2
491   ,p_pem_attribute10            IN      varchar2  default hr_api.g_varchar2
492   ,p_pem_attribute11            IN      varchar2  default hr_api.g_varchar2
493   ,p_pem_attribute12            IN      varchar2  default hr_api.g_varchar2
494   ,p_pem_attribute13            IN      varchar2  default hr_api.g_varchar2
495   ,p_pem_attribute14            IN      varchar2  default hr_api.g_varchar2
496   ,p_pem_attribute15            IN      varchar2  default hr_api.g_varchar2
497   ,p_pem_attribute16            IN      varchar2  default hr_api.g_varchar2
498   ,p_pem_attribute17            IN      varchar2  default hr_api.g_varchar2
499   ,p_pem_attribute18            IN      varchar2  default hr_api.g_varchar2
500   ,p_pem_attribute19            IN      varchar2  default hr_api.g_varchar2
501   ,p_pem_attribute20            IN      varchar2  default hr_api.g_varchar2
502   ,p_pem_attribute21            IN      varchar2  default hr_api.g_varchar2
503   ,p_pem_attribute22            IN      varchar2  default hr_api.g_varchar2
504   ,p_pem_attribute23            IN      varchar2  default hr_api.g_varchar2
505   ,p_pem_attribute24            IN      varchar2  default hr_api.g_varchar2
506   ,p_pem_attribute25            IN      varchar2  default hr_api.g_varchar2
507   ,p_pem_attribute26            IN      varchar2  default hr_api.g_varchar2
508   ,p_pem_attribute27            IN      varchar2  default hr_api.g_varchar2
509   ,p_pem_attribute28            IN      varchar2  default hr_api.g_varchar2
510   ,p_pem_attribute29            IN      varchar2  default hr_api.g_varchar2
511   ,p_pem_attribute30            IN      varchar2  default hr_api.g_varchar2
512   ,p_pem_information_category   IN      varchar2  default hr_api.g_varchar2
513   ,p_pem_information1           IN      varchar2  default hr_api.g_varchar2
514   ,p_pem_information2           IN      varchar2  default hr_api.g_varchar2
515   ,p_pem_information3           IN      varchar2  default hr_api.g_varchar2
516   ,p_pem_information4           IN      varchar2  default hr_api.g_varchar2
517   ,p_pem_information5           IN      varchar2  default hr_api.g_varchar2
518   ,p_pem_information6           IN      varchar2  default hr_api.g_varchar2
519   ,p_pem_information7           IN      varchar2  default hr_api.g_varchar2
520   ,p_pem_information8           IN      varchar2  default hr_api.g_varchar2
521   ,p_pem_information9           IN      varchar2  default hr_api.g_varchar2
522   ,p_pem_information10          IN      varchar2  default hr_api.g_varchar2
523   ,p_pem_information11          IN      varchar2  default hr_api.g_varchar2
524   ,p_pem_information12          IN      varchar2  default hr_api.g_varchar2
525   ,p_pem_information13          IN      varchar2  default hr_api.g_varchar2
526   ,p_pem_information14          IN      varchar2  default hr_api.g_varchar2
527   ,p_pem_information15          IN      varchar2  default hr_api.g_varchar2
528   ,p_pem_information16          IN      varchar2  default hr_api.g_varchar2
529   ,p_pem_information17          IN      varchar2  default hr_api.g_varchar2
530   ,p_pem_information18          IN      varchar2  default hr_api.g_varchar2
531   ,p_pem_information19          IN      varchar2  default hr_api.g_varchar2
532   ,p_pem_information20          IN      varchar2  default hr_api.g_varchar2
533   ,p_pem_information21          IN      varchar2  default hr_api.g_varchar2
534   ,p_pem_information22          IN      varchar2  default hr_api.g_varchar2
535   ,p_pem_information23          IN      varchar2  default hr_api.g_varchar2
536   ,p_pem_information24          IN      varchar2  default hr_api.g_varchar2
537   ,p_pem_information25          IN      varchar2  default hr_api.g_varchar2
538   ,p_pem_information26          IN      varchar2  default hr_api.g_varchar2
539   ,p_pem_information27          IN      varchar2  default hr_api.g_varchar2
540   ,p_pem_information28          IN      varchar2  default hr_api.g_varchar2
541   ,p_pem_information29          IN      varchar2  default hr_api.g_varchar2
542   ,p_pem_information30          IN      varchar2  default hr_api.g_varchar2
543   ,p_object_version_number      IN OUT NOCOPY  number
544   ) is
545     l_proc                    varchar2(72)
546                             := g_package||'update_previous_employer';
547     l_previous_employer_id
548                             per_previous_employers.previous_employer_id%type;
549     l_object_version_number
550                         per_previous_employers.object_version_number%type
551                         :=  p_object_version_number;
552     l_ovn per_previous_employers.object_version_number%type :=  p_object_version_number;
553     l_business_group_id per_previous_employers.business_group_id%type;
554     --
555     l_start_date        per_previous_employers.start_date%type;
556     l_end_date          per_previous_employers.end_date%type;
557     --
558     -- Bug 3702553: changed datatype from %type to number(10).
559     --
560     l_period_years      number(10)
561                         := p_period_years;
562     l_period_months     number(10)
563                         := p_period_months;
564     l_period_days       number(10)
565                         := p_period_days;
566     l_employer_type     per_previous_employers.employer_type%type
567                         := p_employer_type;
568     l_employer_subtype  per_previous_employers.employer_subtype%type;
569     l_all_assignments    per_previous_employers.all_assignments%type
570                         := p_all_assignments;
571   begin
572     hr_utility.set_location('Entering:'|| l_proc, 10);
573     --
574     -- Issue a savepoint
575     --
576     savepoint update_previous_employer;
577     --
578     -- Truncate the time portion from all IN date parameters
579     --
580     l_start_date        :=  trunc(p_start_date);
581     l_end_date          :=  trunc(p_end_date);
582     --
583     l_employer_subtype      :=  p_employer_subtype;
584     -- Calculate Period Years and Days if null.
585     --
586     if p_period_years is null
587        and p_period_months is null
588        and p_period_days is null then
589          per_pem_bus.get_period_values(l_start_date
590                                       ,l_end_date
591                                       ,l_period_years
592                                       ,l_period_months
593                                       ,l_period_days);
594     end if;
595     --
596     if  p_employer_type is null then
597       l_employer_type    := 'UK';
598       l_employer_subtype := null;
599     end if;
600     --
601     -- Call Before Process User Hook
602     --
603   begin
604     hr_previous_employment_bk2.update_previous_employer_b
605     (  p_effective_date           =>  p_effective_date
606       ,p_previous_employer_id     =>  p_previous_employer_id
607       ,p_start_date               =>  l_start_date
608       ,p_end_date                 =>  l_end_date
609       ,p_period_years             =>  l_period_years
610       ,p_period_months            =>  l_period_months
611       ,p_period_days              =>  l_period_days
612       ,p_employer_name            =>  p_employer_name
613       ,p_employer_country         =>  p_employer_country
614       ,p_employer_address         =>  p_employer_address
615       ,p_employer_type            =>  l_employer_type
616       ,p_employer_subtype         =>  l_employer_subtype
617       ,p_description              =>  p_description
618       ,p_all_assignments          =>  l_all_assignments
619       ,p_pem_attribute_category   =>  p_pem_attribute_category
620       ,p_pem_attribute1           =>  p_pem_attribute1
621       ,p_pem_attribute2           =>  p_pem_attribute2
622       ,p_pem_attribute3           =>  p_pem_attribute3
623       ,p_pem_attribute4           =>  p_pem_attribute4
624       ,p_pem_attribute5           =>  p_pem_attribute5
625       ,p_pem_attribute6           =>  p_pem_attribute6
626       ,p_pem_attribute7           =>  p_pem_attribute7
627       ,p_pem_attribute8           =>  p_pem_attribute8
628       ,p_pem_attribute9           =>  p_pem_attribute9
629       ,p_pem_attribute10          =>  p_pem_attribute10
630       ,p_pem_attribute11          =>  p_pem_attribute11
631       ,p_pem_attribute12          =>  p_pem_attribute12
632       ,p_pem_attribute13          =>  p_pem_attribute13
633       ,p_pem_attribute14          =>  p_pem_attribute14
634       ,p_pem_attribute15          =>  p_pem_attribute15
635       ,p_pem_attribute16          =>  p_pem_attribute16
636       ,p_pem_attribute17          =>  p_pem_attribute17
637       ,p_pem_attribute18          =>  p_pem_attribute18
638       ,p_pem_attribute19          =>  p_pem_attribute19
639       ,p_pem_attribute20          =>  p_pem_attribute20
640       ,p_pem_attribute21          =>  p_pem_attribute21
641       ,p_pem_attribute22          =>  p_pem_attribute22
642       ,p_pem_attribute23          =>  p_pem_attribute23
643       ,p_pem_attribute24          =>  p_pem_attribute24
644       ,p_pem_attribute25          =>  p_pem_attribute25
645       ,p_pem_attribute26          =>  p_pem_attribute26
646       ,p_pem_attribute27          =>  p_pem_attribute27
647       ,p_pem_attribute28          =>  p_pem_attribute28
648       ,p_pem_attribute29          =>  p_pem_attribute29
649       ,p_pem_attribute30          =>  p_pem_attribute30
650       ,p_pem_information_category =>  p_pem_information_category
651       ,p_pem_information1         =>  p_pem_information1
652       ,p_pem_information2         =>  p_pem_information2
653       ,p_pem_information3         =>  p_pem_information3
654       ,p_pem_information4         =>  p_pem_information4
655       ,p_pem_information5         =>  p_pem_information5
656       ,p_pem_information6         =>  p_pem_information6
657       ,p_pem_information7         =>  p_pem_information7
658       ,p_pem_information8         =>  p_pem_information8
659       ,p_pem_information9         =>  p_pem_information9
660       ,p_pem_information10        =>  p_pem_information10
661       ,p_pem_information11        =>  p_pem_information11
662       ,p_pem_information12        =>  p_pem_information12
663       ,p_pem_information13        =>  p_pem_information13
664       ,p_pem_information14        =>  p_pem_information14
665       ,p_pem_information15        =>  p_pem_information15
666       ,p_pem_information16        =>  p_pem_information16
667       ,p_pem_information17        =>  p_pem_information17
668       ,p_pem_information18        =>  p_pem_information18
669       ,p_pem_information19        =>  p_pem_information19
670       ,p_pem_information20        =>  p_pem_information20
671       ,p_pem_information21        =>  p_pem_information21
672       ,p_pem_information22        =>  p_pem_information22
673       ,p_pem_information23        =>  p_pem_information23
674       ,p_pem_information24        =>  p_pem_information24
675       ,p_pem_information25        =>  p_pem_information25
676       ,p_pem_information26        =>  p_pem_information26
677       ,p_pem_information27        =>  p_pem_information27
678       ,p_pem_information28        =>  p_pem_information28
679       ,p_pem_information29        =>  p_pem_information29
680       ,p_pem_information30        =>  p_pem_information30
681       ,p_object_version_number    =>  l_object_version_number
682       );
683     exception
684       when hr_api.cannot_find_prog_unit then
685         hr_api.cannot_find_prog_unit_error
686           (p_module_name
687                   => 'hr_previous_employment.update_previous_employer'
688           ,p_hook_type
689                   => 'BP'
690           );
691     end;
692   --
693   -- Call row handler procedure to update previous employer details
694   --
695   per_pem_upd.upd
696    (   p_effective_date             =>  p_effective_date
697       ,p_previous_employer_id       =>  p_previous_employer_id
698       ,p_object_version_number      =>  l_object_version_number
699       ,p_start_date                 =>  l_start_date
700       ,p_end_date                   =>  l_end_date
701       ,p_period_years               =>  l_period_years
702       ,p_period_months              =>  l_period_months
703       ,p_period_days                =>  l_period_days
704       ,p_employer_name              =>  p_employer_name
705       ,p_employer_country           =>  p_employer_country
706       ,p_employer_address           =>  p_employer_address
707       ,p_employer_type              =>  l_employer_type
708       ,p_employer_subtype           =>  l_employer_subtype
709       ,p_description                =>  p_description
710       ,p_all_assignments            =>  l_all_assignments
711       ,p_pem_attribute_category     =>  p_pem_attribute_category
712       ,p_pem_attribute1             =>  p_pem_attribute1
713       ,p_pem_attribute2             =>  p_pem_attribute2
714       ,p_pem_attribute3             =>  p_pem_attribute3
715       ,p_pem_attribute4             =>  p_pem_attribute4
716       ,p_pem_attribute5             =>  p_pem_attribute5
717       ,p_pem_attribute6             =>  p_pem_attribute6
718       ,p_pem_attribute7             =>  p_pem_attribute7
719       ,p_pem_attribute8             =>  p_pem_attribute8
720       ,p_pem_attribute9             =>  p_pem_attribute9
721       ,p_pem_attribute10            =>  p_pem_attribute10
722       ,p_pem_attribute11            =>  p_pem_attribute11
723       ,p_pem_attribute12            =>  p_pem_attribute12
724       ,p_pem_attribute13            =>  p_pem_attribute13
725       ,p_pem_attribute14            =>  p_pem_attribute14
726       ,p_pem_attribute15            =>  p_pem_attribute15
727       ,p_pem_attribute16            =>  p_pem_attribute16
728       ,p_pem_attribute17            =>  p_pem_attribute17
729       ,p_pem_attribute18            =>  p_pem_attribute18
730       ,p_pem_attribute19            =>  p_pem_attribute19
731       ,p_pem_attribute20            =>  p_pem_attribute20
732       ,p_pem_attribute21            =>  p_pem_attribute21
733       ,p_pem_attribute22            =>  p_pem_attribute22
734       ,p_pem_attribute23            =>  p_pem_attribute23
735       ,p_pem_attribute24            =>  p_pem_attribute24
736       ,p_pem_attribute25            =>  p_pem_attribute25
737       ,p_pem_attribute26            =>  p_pem_attribute26
738       ,p_pem_attribute27            =>  p_pem_attribute27
739       ,p_pem_attribute28            =>  p_pem_attribute28
740       ,p_pem_attribute29            =>  p_pem_attribute29
741       ,p_pem_attribute30            =>  p_pem_attribute30
742       ,p_pem_information_category   =>  p_pem_information_category
743       ,p_pem_information1           =>  p_pem_information1
744       ,p_pem_information2           =>  p_pem_information2
745       ,p_pem_information3           =>  p_pem_information3
746       ,p_pem_information4           =>  p_pem_information4
747       ,p_pem_information5           =>  p_pem_information5
748       ,p_pem_information6           =>  p_pem_information6
749       ,p_pem_information7           =>  p_pem_information7
750       ,p_pem_information8           =>  p_pem_information8
751       ,p_pem_information9           =>  p_pem_information9
752       ,p_pem_information10          =>  p_pem_information10
753       ,p_pem_information11          =>  p_pem_information11
754       ,p_pem_information12          =>  p_pem_information12
755       ,p_pem_information13          =>  p_pem_information13
756       ,p_pem_information14          =>  p_pem_information14
757       ,p_pem_information15          =>  p_pem_information15
758       ,p_pem_information16          =>  p_pem_information16
759       ,p_pem_information17          =>  p_pem_information17
760       ,p_pem_information18          =>  p_pem_information18
761       ,p_pem_information19          =>  p_pem_information19
762       ,p_pem_information20          =>  p_pem_information20
763       ,p_pem_information21          =>  p_pem_information21
764       ,p_pem_information22          =>  p_pem_information22
765       ,p_pem_information23          =>  p_pem_information23
766       ,p_pem_information24          =>  p_pem_information24
767       ,p_pem_information25          =>  p_pem_information25
768       ,p_pem_information26          =>  p_pem_information26
769       ,p_pem_information27          =>  p_pem_information27
770       ,p_pem_information28          =>  p_pem_information28
771       ,p_pem_information29          =>  p_pem_information29
772       ,p_pem_information30          =>  p_pem_information30
773       );
774   begin
775     hr_previous_employment_bk2.update_previous_employer_a
776     (  p_effective_date           =>  p_effective_date
777       ,p_previous_employer_id     =>  p_previous_employer_id
778       ,p_start_date               =>  l_start_date
779       ,p_end_date                 =>  l_end_date
780       ,p_period_years             =>  l_period_years
781       ,p_period_months            =>  l_period_months
782       ,p_period_days              =>  l_period_days
783       ,p_employer_name            =>  p_employer_name
784       ,p_employer_country         =>  p_employer_country
785       ,p_employer_address         =>  p_employer_address
786       ,p_employer_type            =>  l_employer_type
787       ,p_employer_subtype         =>  l_employer_subtype
788       ,p_description              =>  p_description
789       ,p_all_assignments          =>  l_all_assignments
790       ,p_pem_attribute_category   =>  p_pem_attribute_category
791       ,p_pem_attribute1           =>  p_pem_attribute1
792       ,p_pem_attribute2           =>  p_pem_attribute2
793       ,p_pem_attribute3           =>  p_pem_attribute3
794       ,p_pem_attribute4           =>  p_pem_attribute4
795       ,p_pem_attribute5           =>  p_pem_attribute5
796       ,p_pem_attribute6           =>  p_pem_attribute6
797       ,p_pem_attribute7           =>  p_pem_attribute7
798       ,p_pem_attribute8           =>  p_pem_attribute8
799       ,p_pem_attribute9           =>  p_pem_attribute9
800       ,p_pem_attribute10          =>  p_pem_attribute10
801       ,p_pem_attribute11          =>  p_pem_attribute11
802       ,p_pem_attribute12          =>  p_pem_attribute12
803       ,p_pem_attribute13          =>  p_pem_attribute13
804       ,p_pem_attribute14          =>  p_pem_attribute14
805       ,p_pem_attribute15          =>  p_pem_attribute15
806       ,p_pem_attribute16          =>  p_pem_attribute16
807       ,p_pem_attribute17          =>  p_pem_attribute17
808       ,p_pem_attribute18          =>  p_pem_attribute18
809       ,p_pem_attribute19          =>  p_pem_attribute19
810       ,p_pem_attribute20          =>  p_pem_attribute20
811       ,p_pem_attribute21          =>  p_pem_attribute21
812       ,p_pem_attribute22          =>  p_pem_attribute22
813       ,p_pem_attribute23          =>  p_pem_attribute23
814       ,p_pem_attribute24          =>  p_pem_attribute24
815       ,p_pem_attribute25          =>  p_pem_attribute25
816       ,p_pem_attribute26          =>  p_pem_attribute26
817       ,p_pem_attribute27          =>  p_pem_attribute27
818       ,p_pem_attribute28          =>  p_pem_attribute28
819       ,p_pem_attribute29          =>  p_pem_attribute29
820       ,p_pem_attribute30          =>  p_pem_attribute30
821       ,p_pem_information_category =>  p_pem_information_category
822       ,p_pem_information1         =>  p_pem_information1
823       ,p_pem_information2         =>  p_pem_information2
824       ,p_pem_information3         =>  p_pem_information3
825       ,p_pem_information4         =>  p_pem_information4
826       ,p_pem_information5         =>  p_pem_information5
827       ,p_pem_information6         =>  p_pem_information6
828       ,p_pem_information7         =>  p_pem_information7
829       ,p_pem_information8         =>  p_pem_information8
830       ,p_pem_information9         =>  p_pem_information9
831       ,p_pem_information10        =>  p_pem_information10
832       ,p_pem_information11        =>  p_pem_information11
833       ,p_pem_information12        =>  p_pem_information12
834       ,p_pem_information13        =>  p_pem_information13
835       ,p_pem_information14        =>  p_pem_information14
836       ,p_pem_information15        =>  p_pem_information15
837       ,p_pem_information16        =>  p_pem_information16
838       ,p_pem_information17        =>  p_pem_information17
839       ,p_pem_information18        =>  p_pem_information18
840       ,p_pem_information19        =>  p_pem_information19
841       ,p_pem_information20        =>  p_pem_information20
842       ,p_pem_information21        =>  p_pem_information21
843       ,p_pem_information22        =>  p_pem_information22
844       ,p_pem_information23        =>  p_pem_information23
845       ,p_pem_information24        =>  p_pem_information24
846       ,p_pem_information25        =>  p_pem_information25
847       ,p_pem_information26        =>  p_pem_information26
848       ,p_pem_information27        =>  p_pem_information27
849       ,p_pem_information28        =>  p_pem_information28
850       ,p_pem_information29        =>  p_pem_information29
851       ,p_pem_information30        =>  p_pem_information30
852       ,p_object_version_number    =>  l_object_version_number
853       );
854     exception
855       when hr_api.cannot_find_prog_unit then
856         hr_api.cannot_find_prog_unit_error
857           (p_module_name
858               => 'hr_previous_employment_api.update_previous_employer'
859           ,p_hook_type
860               => 'AP'
861           );
862     end;
863     --
864     -- When in validation only mode raise the Validate_Enabled exception
865     --
866     if p_validate then
867       raise hr_api.validate_enabled;
868     end if;
869     --
870     --
871     -- Set all output arguments
872     --
873     p_object_version_number  := l_object_version_number;
874     --
875     hr_utility.set_location(' Leaving:'||l_proc, 70);
876 exception
877   when hr_api.validate_enabled then
878     --
879     -- As the Validate_Enabled exception has been raised
880     -- we must rollback to the savepoint
881     --
882     rollback to update_previous_employer;
883     --
884     -- Only set output warning arguments
885     -- (Any key or derived arguments must be set to null
886     -- when validation only mode is being used.)
887     --
888     -- IN OUT parameter should be reset to its IN value
889     -- therefore no need to reset p_object_version_number
890     hr_utility.set_location(' Leaving:'||l_proc, 80);
891   when others then
892     --
893     -- A validation or unexpected error has occured
894     --
895     rollback to update_previous_employer;
896     --
897     -- set in out parameters and set out parameters
898     --
899     p_object_version_number := l_ovn;
900     --
901     hr_utility.set_location(' Leaving:'||l_proc, 90);
902     raise;
903 end update_previous_employer;
904 --
905 -- -----------------------------------------------------------------------
906 -- |----------------------< delete_previous_employer >-------------------|
907 -- -----------------------------------------------------------------------
908 --
909 procedure delete_previous_employer
910   (p_validate                      in     boolean  default false
911   ,p_previous_employer_id          in     number
912   ,p_object_version_number         in out nocopy number
913   )
914  is
915   l_proc                   varchar2(72)
916                            := g_package||'delete_previous_employer';
917   l_previous_employer_id   per_previous_employers.previous_employer_id%TYPE;
918   l_object_version_number  per_previous_employers.object_version_number%TYPE
919                            := p_object_version_number;
920   l_ovn per_previous_employers.object_version_number%TYPE := p_object_version_number;
921     --
922     -- Define cursor to select all the previous jobs of a
923     -- perticular employer
924     --
925     cursor csr_previous_jobs(t_previous_employer_id number) is
926       select   previous_job_id
927               ,object_version_number
928       from     per_previous_jobs
929       where    previous_employer_id = t_previous_employer_id;
930     --
931     cursor csr_previous_job_usages(t_previous_employer_id number) is
932       select  previous_job_usage_id
933              ,object_version_number
934       from    per_previous_job_usages
935       where   previous_employer_id = t_previous_employer_id;
936     --
937 begin
938   hr_utility.set_location('Entering:'|| l_proc, 10);
939   --
940   -- Issue a savepoint
941   --
942   savepoint delete_previous_employer;
943   --
944   -- Call Before Process User Hook
945   --
946     begin
947     hr_previous_employment_bk3.delete_previous_employer_b
948       (p_previous_employer_id          => p_previous_employer_id
949       ,p_object_version_number         => l_object_version_number
950       );
951   exception
952     when hr_api.cannot_find_prog_unit then
953       hr_api.cannot_find_prog_unit_error
954         (p_module_name
955               => 'hr_previous_employment_api.delete_previous_employer'
956         ,p_hook_type
957               => 'BP'
958         );
959     end;
960     --
961     -- Process Logic
962     -- Impliment Cascading delete on per_previous_jobs table
963     -- when a previous_employer is deleted
964       for pjo in csr_previous_jobs(p_previous_employer_id) loop
965         hr_previous_employment_api.delete_previous_job
966         (p_validate               =>  false
967         ,p_previous_job_id        =>  pjo.previous_job_id
968         ,p_object_version_number  =>  pjo.object_version_number
969         );
970       end loop;
971     -- End of logic to cascade delete all the previous jobs of a perticular
972     -- previous employer
973     --
974     -- Impliment cascading delete on per_previous_job_usages table
975     -- when a previous employer_id is deleted
976       for pju in csr_previous_job_usages(p_previous_employer_id) loop
977         hr_previous_employment_api.delete_previous_job_usage
978         (p_validate               =>  false
979         ,p_previous_job_usage_id  =>  pju.previous_job_usage_id
980         ,p_object_version_number  =>  pju.object_version_number);
981       end loop;
982     -- End of logic to cascade delete all the previous job usages of a
983     -- perticular previous employer
984     --
985     -- Call row handler procedure to delete previous employer details
986     --
987       per_pem_del.del
988       (p_previous_employer_id       =>  p_previous_employer_id
989       ,p_object_version_number      =>  l_object_version_number
990       );
991   --
992   -- Call After Process User Hook
993   --
994       begin
995     hr_previous_employment_bk3.delete_previous_employer_a
996       (p_previous_employer_id          => p_previous_employer_id
997       ,p_object_version_number         => l_object_version_number
998       );
999       exception
1000         when hr_api.cannot_find_prog_unit then
1001           hr_api.cannot_find_prog_unit_error
1002             (p_module_name
1003                 => 'hr_previous_employment_api.delete_previous_employer'
1004             ,p_hook_type
1005                 => 'AP'
1006             );
1007       end;
1008       --
1009       -- When in validation only mode raise the Validate_Enabled exception
1010       --
1011       if p_validate then
1012         raise hr_api.validate_enabled;
1013       end if;
1014       --
1015       -- Set all output arguments
1016       --
1017       p_object_version_number  := l_object_version_number;
1018     --
1019       hr_utility.set_location(' Leaving:'||l_proc, 70);
1020       --
1021 exception
1022   when hr_api.validate_enabled then
1023     --
1024     -- As the Validate_Enabled exception has been raised
1025     -- we must rollback to the savepoint
1026     --
1027     rollback to delete_previous_employer;
1028     --
1029     -- Only set output warning arguments
1030     -- (Any key or derived arguments must be set to null
1031     -- when validation only mode is being used.)
1032     --
1033     -- IN OUT parameter should be reset to its IN value therefore
1034     -- no need to set p_object_version_number
1035     --
1036     hr_utility.set_location(' Leaving:'||l_proc, 80);
1037   when others then
1038     --
1039     -- A validation or unexpected error has occured
1040     --
1041     rollback to delete_previous_employer;
1042     --
1043     -- set in out parameters and set out parameters
1044     --
1045     p_object_version_number := l_ovn;
1046     hr_utility.set_location(' Leaving:'||l_proc, 90);
1047     raise;
1048 end delete_previous_employer;
1049 --
1050 -- -----------------------------------------------------------------------
1051 -- |--------------------------< create_previous_job >--------------------|
1052 -- -----------------------------------------------------------------------
1053 --
1054 procedure create_previous_job
1055 (  p_effective_date                 in     date
1056   ,p_validate                       in     boolean  default false
1057   ,p_previous_employer_id           in     number
1058   ,p_start_date                     in     date     default null
1059   ,p_end_date                       in     date     default null
1060   ,p_period_years                   in     number   default null
1061   ,p_period_months                  in     number   default null
1062   ,p_period_days                    in     number   default null
1063   ,p_job_name                       in     varchar2 default null
1064   ,p_employment_category            in     varchar2 default null
1065   ,p_description                    in     varchar2 default null
1066   ,p_all_assignments                in     varchar2 default 'N'
1067   ,p_pjo_attribute_category         in     varchar2 default null
1068   ,p_pjo_attribute1                 in     varchar2 default null
1069   ,p_pjo_attribute2                 in     varchar2 default null
1070   ,p_pjo_attribute3                 in     varchar2 default null
1071   ,p_pjo_attribute4                 in     varchar2 default null
1072   ,p_pjo_attribute5                 in     varchar2 default null
1073   ,p_pjo_attribute6                 in     varchar2 default null
1074   ,p_pjo_attribute7                 in     varchar2 default null
1075   ,p_pjo_attribute8                 in     varchar2 default null
1076   ,p_pjo_attribute9                 in     varchar2 default null
1077   ,p_pjo_attribute10                in     varchar2 default null
1078   ,p_pjo_attribute11                in     varchar2 default null
1079   ,p_pjo_attribute12                in     varchar2 default null
1080   ,p_pjo_attribute13                in     varchar2 default null
1081   ,p_pjo_attribute14                in     varchar2 default null
1082   ,p_pjo_attribute15                in     varchar2 default null
1083   ,p_pjo_attribute16                in     varchar2 default null
1084   ,p_pjo_attribute17                in     varchar2 default null
1085   ,p_pjo_attribute18                in     varchar2 default null
1086   ,p_pjo_attribute19                in     varchar2 default null
1087   ,p_pjo_attribute20                in     varchar2 default null
1088   ,p_pjo_attribute21                in     varchar2 default null
1089   ,p_pjo_attribute22                in     varchar2 default null
1090   ,p_pjo_attribute23                in     varchar2 default null
1091   ,p_pjo_attribute24                in     varchar2 default null
1092   ,p_pjo_attribute25                in     varchar2 default null
1093   ,p_pjo_attribute26                in     varchar2 default null
1094   ,p_pjo_attribute27                in     varchar2 default null
1095   ,p_pjo_attribute28                in     varchar2 default null
1096   ,p_pjo_attribute29                in     varchar2 default null
1097   ,p_pjo_attribute30                in     varchar2 default null
1098   ,p_pjo_information_category       in     varchar2 default null
1099   ,p_pjo_information1               in     varchar2 default null
1100   ,p_pjo_information2               in     varchar2 default null
1101   ,p_pjo_information3               in     varchar2 default null
1102   ,p_pjo_information4               in     varchar2 default null
1103   ,p_pjo_information5               in     varchar2 default null
1104   ,p_pjo_information6               in     varchar2 default null
1105   ,p_pjo_information7               in     varchar2 default null
1106   ,p_pjo_information8               in     varchar2 default null
1107   ,p_pjo_information9               in     varchar2 default null
1108   ,p_pjo_information10              in     varchar2 default null
1109   ,p_pjo_information11              in     varchar2 default null
1110   ,p_pjo_information12              in     varchar2 default null
1111   ,p_pjo_information13              in     varchar2 default null
1112   ,p_pjo_information14              in     varchar2 default null
1113   ,p_pjo_information15              in     varchar2 default null
1114   ,p_pjo_information16              in     varchar2 default null
1115   ,p_pjo_information17              in     varchar2 default null
1116   ,p_pjo_information18              in     varchar2 default null
1117   ,p_pjo_information19              in     varchar2 default null
1118   ,p_pjo_information20              in     varchar2 default null
1119   ,p_pjo_information21              in     varchar2 default null
1120   ,p_pjo_information22              in     varchar2 default null
1121   ,p_pjo_information23              in     varchar2 default null
1122   ,p_pjo_information24              in     varchar2 default null
1123   ,p_pjo_information25              in     varchar2 default null
1124   ,p_pjo_information26              in     varchar2 default null
1125   ,p_pjo_information27              in     varchar2 default null
1126   ,p_pjo_information28              in     varchar2 default null
1127   ,p_pjo_information29              in     varchar2 default null
1128   ,p_pjo_information30              in     varchar2 default null
1129   ,p_previous_job_id                out nocopy    number
1130   ,p_object_version_number          out nocopy    number
1131   ) is
1132   -- Declare cursors and local variables
1133   --
1134     l_flag                  varchar2(30);
1135     l_proc                  varchar2(72)
1136                             := g_package||'create_previous_job';
1137     --
1138     l_start_date            per_previous_jobs.start_date%type;
1139     l_end_date              per_previous_jobs.end_date%type;
1140     --
1141     l_previous_job_id       per_previous_jobs.previous_job_id%type;
1142     l_object_version_number  per_previous_jobs.object_version_number%type;
1143     --
1144     l_period_years          per_previous_employers.period_years%type;
1145     l_period_months         per_previous_employers.period_months%type;
1146     l_period_days           per_previous_employers.period_days%type;
1147     --
1148     l_all_assignments   per_previous_jobs.all_assignments%type;
1149  begin
1150   hr_utility.set_location('Entering:'||l_proc, 10);
1151   --
1152   -- Issue a savepoint
1153   --
1154   savepoint create_previous_job;
1155   --
1156   -- Truncate the time portion from all IN date parameters
1157   l_start_date      :=  trunc(p_start_date);
1158   l_end_date        :=  trunc(p_end_date);
1159   --
1160   l_period_years    :=  p_period_years;
1161   l_period_months   :=  p_period_months;
1162   l_period_days     :=  p_period_days;
1163   --
1164   l_all_assignments :=  p_all_assignments;
1165   --
1166     if p_period_years is null
1167        and p_period_months is null
1168        and p_period_days is null then
1169          per_pem_bus.get_period_values(l_start_date
1170                                       ,l_end_date
1171                                       ,l_period_years
1172                                       ,l_period_months
1173                                       ,l_period_days);
1174     end if;
1175     --
1176     -- Call Before Process User Hook
1177     --
1178    begin
1179    hr_previous_employment_bk4.create_previous_job_b
1180       (p_effective_date                 =>     p_effective_date
1181       ,p_previous_employer_id           =>     p_previous_employer_id
1182       ,p_start_date                     =>     l_start_date
1183       ,p_end_date                       =>     l_end_date
1184       ,p_period_years                   =>     l_period_years
1185       ,p_period_months                  =>     l_period_months
1186       ,p_period_days                    =>     l_period_days
1187       ,p_job_name                       =>     p_job_name
1188       ,p_employment_category            =>     p_employment_category
1189       ,p_description                    =>     p_description
1190       ,p_all_assignments                =>     l_all_assignments
1191       ,p_pjo_attribute_category         =>     p_pjo_attribute_category
1192       ,p_pjo_attribute1                 =>     p_pjo_attribute1
1193       ,p_pjo_attribute2                 =>     p_pjo_attribute2
1194       ,p_pjo_attribute3                 =>     p_pjo_attribute3
1195       ,p_pjo_attribute4                 =>     p_pjo_attribute4
1196       ,p_pjo_attribute5                 =>     p_pjo_attribute5
1197       ,p_pjo_attribute6                 =>     p_pjo_attribute6
1198       ,p_pjo_attribute7                 =>     p_pjo_attribute7
1199       ,p_pjo_attribute8                 =>     p_pjo_attribute8
1200       ,p_pjo_attribute9                 =>     p_pjo_attribute9
1201       ,p_pjo_attribute10                =>     p_pjo_attribute10
1202       ,p_pjo_attribute11                =>     p_pjo_attribute11
1203       ,p_pjo_attribute12                =>     p_pjo_attribute12
1204       ,p_pjo_attribute13                =>     p_pjo_attribute13
1205       ,p_pjo_attribute14                =>     p_pjo_attribute14
1206       ,p_pjo_attribute15                =>     p_pjo_attribute15
1207       ,p_pjo_attribute16                =>     p_pjo_attribute16
1208       ,p_pjo_attribute17                =>     p_pjo_attribute17
1209       ,p_pjo_attribute18                =>     p_pjo_attribute18
1210       ,p_pjo_attribute19                =>     p_pjo_attribute19
1211       ,p_pjo_attribute20                =>     p_pjo_attribute20
1212       ,p_pjo_attribute21                =>     p_pjo_attribute21
1213       ,p_pjo_attribute22                =>     p_pjo_attribute22
1214       ,p_pjo_attribute23                =>     p_pjo_attribute23
1215       ,p_pjo_attribute24                =>     p_pjo_attribute24
1216       ,p_pjo_attribute25                =>     p_pjo_attribute25
1217       ,p_pjo_attribute26                =>     p_pjo_attribute26
1218       ,p_pjo_attribute27                =>     p_pjo_attribute27
1219       ,p_pjo_attribute28                =>     p_pjo_attribute28
1220       ,p_pjo_attribute29                =>     p_pjo_attribute29
1221       ,p_pjo_attribute30                =>     p_pjo_attribute30
1222       ,p_pjo_information_category       =>     p_pjo_information_category
1223       ,p_pjo_information1               =>     p_pjo_information1
1224       ,p_pjo_information2               =>     p_pjo_information2
1225       ,p_pjo_information3               =>     p_pjo_information3
1226       ,p_pjo_information4               =>     p_pjo_information4
1227       ,p_pjo_information5               =>     p_pjo_information5
1228       ,p_pjo_information6               =>     p_pjo_information6
1229       ,p_pjo_information7               =>     p_pjo_information7
1230       ,p_pjo_information8               =>     p_pjo_information8
1231       ,p_pjo_information9               =>     p_pjo_information9
1232       ,p_pjo_information10              =>     p_pjo_information10
1233       ,p_pjo_information11              =>     p_pjo_information11
1234       ,p_pjo_information12              =>     p_pjo_information12
1235       ,p_pjo_information13              =>     p_pjo_information13
1236       ,p_pjo_information14              =>     p_pjo_information14
1237       ,p_pjo_information15              =>     p_pjo_information15
1238       ,p_pjo_information16              =>     p_pjo_information16
1239       ,p_pjo_information17              =>     p_pjo_information17
1240       ,p_pjo_information18              =>     p_pjo_information18
1241       ,p_pjo_information19              =>     p_pjo_information19
1242       ,p_pjo_information20              =>     p_pjo_information20
1243       ,p_pjo_information21              =>     p_pjo_information21
1244       ,p_pjo_information22              =>     p_pjo_information22
1245       ,p_pjo_information23              =>     p_pjo_information23
1246       ,p_pjo_information24              =>     p_pjo_information24
1247       ,p_pjo_information25              =>     p_pjo_information25
1248       ,p_pjo_information26              =>     p_pjo_information26
1249       ,p_pjo_information27              =>     p_pjo_information27
1250       ,p_pjo_information28              =>     p_pjo_information28
1251       ,p_pjo_information29              =>     p_pjo_information29
1252       ,p_pjo_information30              =>     p_pjo_information30
1253       ,p_object_version_number          =>     l_object_version_number
1254       );
1255    exception
1256       when hr_api.cannot_find_prog_unit then
1257         hr_api.cannot_find_prog_unit_error
1258           (p_module_name
1259                 => 'hr_previous_employment_api.create_previous_job'
1260           ,p_hook_type
1261                 => 'BP'
1262           );
1263    end;
1264   --
1265   -- Validation in addition to Row Handlers
1266   -- Process Logic
1267   per_pjo_ins.ins
1268     (p_effective_date                 =>     p_effective_date
1269     ,p_previous_employer_id           =>     p_previous_employer_id
1270     ,p_start_date                     =>     l_start_date
1271     ,p_end_date                       =>     l_end_date
1272     ,p_period_years                   =>     l_period_years
1273     ,p_period_months                  =>     l_period_months
1274     ,p_period_days                    =>     l_period_days
1275     ,p_job_name                       =>     p_job_name
1276     ,p_employment_category            =>     p_employment_category
1277     ,p_description                    =>     p_description
1278     ,p_all_assignments                =>     l_all_assignments
1279     ,p_pjo_attribute_category         =>     p_pjo_attribute_category
1280     ,p_pjo_attribute1                 =>     p_pjo_attribute1
1281     ,p_pjo_attribute2                 =>     p_pjo_attribute2
1282     ,p_pjo_attribute3                 =>     p_pjo_attribute3
1283     ,p_pjo_attribute4                 =>     p_pjo_attribute4
1284     ,p_pjo_attribute5                 =>     p_pjo_attribute5
1285     ,p_pjo_attribute6                 =>     p_pjo_attribute6
1286     ,p_pjo_attribute7                 =>     p_pjo_attribute7
1287     ,p_pjo_attribute8                 =>     p_pjo_attribute8
1288     ,p_pjo_attribute9                 =>     p_pjo_attribute9
1289     ,p_pjo_attribute10                =>     p_pjo_attribute10
1290     ,p_pjo_attribute11                =>     p_pjo_attribute11
1291     ,p_pjo_attribute12                =>     p_pjo_attribute12
1292     ,p_pjo_attribute13                =>     p_pjo_attribute13
1293     ,p_pjo_attribute14                =>     p_pjo_attribute14
1294     ,p_pjo_attribute15                =>     p_pjo_attribute15
1295     ,p_pjo_attribute16                =>     p_pjo_attribute16
1296     ,p_pjo_attribute17                =>     p_pjo_attribute17
1297     ,p_pjo_attribute18                =>     p_pjo_attribute18
1298     ,p_pjo_attribute19                =>     p_pjo_attribute19
1299     ,p_pjo_attribute20                =>     p_pjo_attribute20
1300     ,p_pjo_attribute21                =>     p_pjo_attribute21
1301     ,p_pjo_attribute22                =>     p_pjo_attribute22
1302     ,p_pjo_attribute23                =>     p_pjo_attribute23
1303     ,p_pjo_attribute24                =>     p_pjo_attribute24
1304     ,p_pjo_attribute25                =>     p_pjo_attribute25
1305     ,p_pjo_attribute26                =>     p_pjo_attribute26
1306     ,p_pjo_attribute27                =>     p_pjo_attribute27
1307     ,p_pjo_attribute28                =>     p_pjo_attribute28
1308     ,p_pjo_attribute29                =>     p_pjo_attribute29
1309     ,p_pjo_attribute30                =>     p_pjo_attribute30
1310     ,p_pjo_information_category       =>     p_pjo_information_category
1311     ,p_pjo_information1               =>     p_pjo_information1
1312     ,p_pjo_information2               =>     p_pjo_information2
1313     ,p_pjo_information3               =>     p_pjo_information3
1314     ,p_pjo_information4               =>     p_pjo_information4
1315     ,p_pjo_information5               =>     p_pjo_information5
1316     ,p_pjo_information6               =>     p_pjo_information6
1317     ,p_pjo_information7               =>     p_pjo_information7
1318     ,p_pjo_information8               =>     p_pjo_information8
1319     ,p_pjo_information9               =>     p_pjo_information9
1320     ,p_pjo_information10              =>     p_pjo_information10
1321     ,p_pjo_information11              =>     p_pjo_information11
1322     ,p_pjo_information12              =>     p_pjo_information12
1323     ,p_pjo_information13              =>     p_pjo_information13
1324     ,p_pjo_information14              =>     p_pjo_information14
1325     ,p_pjo_information15              =>     p_pjo_information15
1326     ,p_pjo_information16              =>     p_pjo_information16
1327     ,p_pjo_information17              =>     p_pjo_information17
1328     ,p_pjo_information18              =>     p_pjo_information18
1329     ,p_pjo_information19              =>     p_pjo_information19
1330     ,p_pjo_information20              =>     p_pjo_information20
1331     ,p_pjo_information21              =>     p_pjo_information21
1332     ,p_pjo_information22              =>     p_pjo_information22
1333     ,p_pjo_information23              =>     p_pjo_information23
1334     ,p_pjo_information24              =>     p_pjo_information24
1335     ,p_pjo_information25              =>     p_pjo_information25
1336     ,p_pjo_information26              =>     p_pjo_information26
1337     ,p_pjo_information27              =>     p_pjo_information27
1338     ,p_pjo_information28              =>     p_pjo_information28
1339     ,p_pjo_information29              =>     p_pjo_information29
1340     ,p_pjo_information30              =>     p_pjo_information30
1341     ,p_previous_job_id                =>     l_previous_job_id
1342     ,p_object_version_number          =>     l_object_version_number
1343     );
1344 -- Call After Process User Hook
1345 --
1346   begin
1347    hr_previous_employment_bk4.create_previous_job_a
1348       (p_effective_date                 =>     p_effective_date
1349       ,p_previous_job_id                =>     p_previous_job_id
1350       ,p_previous_employer_id           =>     p_previous_employer_id
1351       ,p_start_date                     =>     l_start_date
1352       ,p_end_date                       =>     l_end_date
1353       ,p_period_years                   =>     l_period_years
1354       ,p_period_months                  =>     l_period_months
1355       ,p_period_days                    =>     l_period_days
1356       ,p_job_name                       =>     p_job_name
1357       ,p_employment_category            =>     p_employment_category
1358       ,p_description                    =>     p_description
1359       ,p_all_assignments                =>     l_all_assignments
1360       ,p_pjo_attribute_category         =>     p_pjo_attribute_category
1361       ,p_pjo_attribute1                 =>     p_pjo_attribute1
1362       ,p_pjo_attribute2                 =>     p_pjo_attribute2
1363       ,p_pjo_attribute3                 =>     p_pjo_attribute3
1364       ,p_pjo_attribute4                 =>     p_pjo_attribute4
1365       ,p_pjo_attribute5                 =>     p_pjo_attribute5
1366       ,p_pjo_attribute6                 =>     p_pjo_attribute6
1367       ,p_pjo_attribute7                 =>     p_pjo_attribute7
1368       ,p_pjo_attribute8                 =>     p_pjo_attribute8
1369       ,p_pjo_attribute9                 =>     p_pjo_attribute9
1370       ,p_pjo_attribute10                =>     p_pjo_attribute10
1371       ,p_pjo_attribute11                =>     p_pjo_attribute11
1372       ,p_pjo_attribute12                =>     p_pjo_attribute12
1373       ,p_pjo_attribute13                =>     p_pjo_attribute13
1374       ,p_pjo_attribute14                =>     p_pjo_attribute14
1375       ,p_pjo_attribute15                =>     p_pjo_attribute15
1376       ,p_pjo_attribute16                =>     p_pjo_attribute16
1377       ,p_pjo_attribute17                =>     p_pjo_attribute17
1378       ,p_pjo_attribute18                =>     p_pjo_attribute18
1379       ,p_pjo_attribute19                =>     p_pjo_attribute19
1380       ,p_pjo_attribute20                =>     p_pjo_attribute20
1381       ,p_pjo_attribute21                =>     p_pjo_attribute21
1382       ,p_pjo_attribute22                =>     p_pjo_attribute22
1383       ,p_pjo_attribute23                =>     p_pjo_attribute23
1384       ,p_pjo_attribute24                =>     p_pjo_attribute24
1385       ,p_pjo_attribute25                =>     p_pjo_attribute25
1386       ,p_pjo_attribute26                =>     p_pjo_attribute26
1387       ,p_pjo_attribute27                =>     p_pjo_attribute27
1388       ,p_pjo_attribute28                =>     p_pjo_attribute28
1389       ,p_pjo_attribute29                =>     p_pjo_attribute29
1390       ,p_pjo_attribute30                =>     p_pjo_attribute30
1391       ,p_pjo_information_category       =>     p_pjo_information_category
1392       ,p_pjo_information1               =>     p_pjo_information1
1393       ,p_pjo_information2               =>     p_pjo_information2
1394       ,p_pjo_information3               =>     p_pjo_information3
1395       ,p_pjo_information4               =>     p_pjo_information4
1396       ,p_pjo_information5               =>     p_pjo_information5
1397       ,p_pjo_information6               =>     p_pjo_information6
1398       ,p_pjo_information7               =>     p_pjo_information7
1399       ,p_pjo_information8               =>     p_pjo_information8
1400       ,p_pjo_information9               =>     p_pjo_information9
1401       ,p_pjo_information10              =>     p_pjo_information10
1402       ,p_pjo_information11              =>     p_pjo_information11
1403       ,p_pjo_information12              =>     p_pjo_information12
1404       ,p_pjo_information13              =>     p_pjo_information13
1405       ,p_pjo_information14              =>     p_pjo_information14
1406       ,p_pjo_information15              =>     p_pjo_information15
1407       ,p_pjo_information16              =>     p_pjo_information16
1408       ,p_pjo_information17              =>     p_pjo_information17
1409       ,p_pjo_information18              =>     p_pjo_information18
1410       ,p_pjo_information19              =>     p_pjo_information19
1411       ,p_pjo_information20              =>     p_pjo_information20
1412       ,p_pjo_information21              =>     p_pjo_information21
1413       ,p_pjo_information22              =>     p_pjo_information22
1414       ,p_pjo_information23              =>     p_pjo_information23
1415       ,p_pjo_information24              =>     p_pjo_information24
1416       ,p_pjo_information25              =>     p_pjo_information25
1417       ,p_pjo_information26              =>     p_pjo_information26
1418       ,p_pjo_information27              =>     p_pjo_information27
1419       ,p_pjo_information28              =>     p_pjo_information28
1420       ,p_pjo_information29              =>     p_pjo_information29
1421       ,p_pjo_information30              =>     p_pjo_information30
1422       ,p_object_version_number          =>     l_object_version_number
1423       );
1424   exception
1425     when hr_api.cannot_find_prog_unit then
1426       hr_api.cannot_find_prog_unit_error
1427         (p_module_name => 'hr_previous_employment_api.create_previous_job'
1428         ,p_hook_type   => 'AP'
1429         );
1430   end;
1431   --
1432   -- When in validation only mode raise the Validate_Enabled exception
1433   --
1434   if p_validate then
1435     raise hr_api.validate_enabled;
1436   end if;
1437   --
1438   -- Set all output arguments
1439   --
1440   p_previous_job_id         := l_previous_job_id;
1441   p_object_version_number    := l_object_version_number;
1442   --
1443   hr_utility.set_location(' Leaving:'||l_proc, 70);
1444 exception
1445   when hr_api.validate_enabled then
1446     --
1447     -- As the Validate_Enabled exception has been raised
1448     -- we must rollback to the savepoint
1449     --
1450     rollback to create_previous_job;
1451     --
1452     -- Only set output warning arguments
1453     -- (Any key or derived arguments must be set to null
1454     -- when validation only mode is being used.)
1455     --
1456     p_previous_job_id      := null;
1457     p_object_version_number  := null;
1458     hr_utility.set_location(' Leaving:'||l_proc, 80);
1459   when others then
1460     --
1461     -- A validation or unexpected error has occured
1462     --
1463     rollback to create_previous_job;
1464     --
1465     -- set in out parameters and set out parameters
1466     --
1467     p_previous_job_id      := null;
1468     p_object_version_number  := null;
1469     --
1470     hr_utility.set_location(' Leaving:'||l_proc, 90);
1471     raise;
1472 end create_previous_job;
1473 --
1474 -- -----------------------------------------------------------------------
1475 -- |-------------------------< update_previous_job >---------------------|
1476 -- -----------------------------------------------------------------------
1477 --
1478 procedure update_previous_job
1479   (p_effective_date               in     date
1480   ,p_validate                     in     boolean   default false
1481   ,p_previous_job_id              in     number
1482   ,p_start_date                   in     date      default hr_api.g_date
1483   ,p_end_date                     in     date      default hr_api.g_date
1484   ,p_period_years                 in     number    default hr_api.g_number
1485   ,p_period_months                in     number    default hr_api.g_number
1486   ,p_period_days                  in     number    default hr_api.g_number
1487   ,p_job_name                     in     varchar2  default hr_api.g_varchar2
1488   ,p_employment_category          in     varchar2  default hr_api.g_varchar2
1489   ,p_description                  in     varchar2  default hr_api.g_varchar2
1490   ,p_all_assignments              in     varchar2  default 'N'
1491   ,p_pjo_attribute_category       in     varchar2  default hr_api.g_varchar2
1492   ,p_pjo_attribute1               in     varchar2  default hr_api.g_varchar2
1493   ,p_pjo_attribute2               in     varchar2  default hr_api.g_varchar2
1494   ,p_pjo_attribute3               in     varchar2  default hr_api.g_varchar2
1495   ,p_pjo_attribute4               in     varchar2  default hr_api.g_varchar2
1496   ,p_pjo_attribute5               in     varchar2  default hr_api.g_varchar2
1497   ,p_pjo_attribute6               in     varchar2  default hr_api.g_varchar2
1498   ,p_pjo_attribute7               in     varchar2  default hr_api.g_varchar2
1499   ,p_pjo_attribute8               in     varchar2  default hr_api.g_varchar2
1500   ,p_pjo_attribute9               in     varchar2  default hr_api.g_varchar2
1501   ,p_pjo_attribute10              in     varchar2  default hr_api.g_varchar2
1502   ,p_pjo_attribute11              in     varchar2  default hr_api.g_varchar2
1503   ,p_pjo_attribute12              in     varchar2  default hr_api.g_varchar2
1504   ,p_pjo_attribute13              in     varchar2  default hr_api.g_varchar2
1505   ,p_pjo_attribute14              in     varchar2  default hr_api.g_varchar2
1506   ,p_pjo_attribute15              in     varchar2  default hr_api.g_varchar2
1507   ,p_pjo_attribute16              in     varchar2  default hr_api.g_varchar2
1508   ,p_pjo_attribute17              in     varchar2  default hr_api.g_varchar2
1509   ,p_pjo_attribute18              in     varchar2  default hr_api.g_varchar2
1510   ,p_pjo_attribute19              in     varchar2  default hr_api.g_varchar2
1511   ,p_pjo_attribute20              in     varchar2  default hr_api.g_varchar2
1512   ,p_pjo_attribute21              in     varchar2  default hr_api.g_varchar2
1513   ,p_pjo_attribute22              in     varchar2  default hr_api.g_varchar2
1514   ,p_pjo_attribute23              in     varchar2  default hr_api.g_varchar2
1515   ,p_pjo_attribute24              in     varchar2  default hr_api.g_varchar2
1516   ,p_pjo_attribute25              in     varchar2  default hr_api.g_varchar2
1517   ,p_pjo_attribute26              in     varchar2  default hr_api.g_varchar2
1518   ,p_pjo_attribute27              in     varchar2  default hr_api.g_varchar2
1519   ,p_pjo_attribute28              in     varchar2  default hr_api.g_varchar2
1520   ,p_pjo_attribute29              in     varchar2  default hr_api.g_varchar2
1521   ,p_pjo_attribute30              in     varchar2  default hr_api.g_varchar2
1522   ,p_pjo_information_category     in     varchar2  default hr_api.g_varchar2
1523   ,p_pjo_information1             in     varchar2  default hr_api.g_varchar2
1524   ,p_pjo_information2             in     varchar2  default hr_api.g_varchar2
1525   ,p_pjo_information3             in     varchar2  default hr_api.g_varchar2
1526   ,p_pjo_information4             in     varchar2  default hr_api.g_varchar2
1527   ,p_pjo_information5             in     varchar2  default hr_api.g_varchar2
1528   ,p_pjo_information6             in     varchar2  default hr_api.g_varchar2
1529   ,p_pjo_information7             in     varchar2  default hr_api.g_varchar2
1530   ,p_pjo_information8             in     varchar2  default hr_api.g_varchar2
1531   ,p_pjo_information9             in     varchar2  default hr_api.g_varchar2
1532   ,p_pjo_information10            in     varchar2  default hr_api.g_varchar2
1533   ,p_pjo_information11            in     varchar2  default hr_api.g_varchar2
1534   ,p_pjo_information12            in     varchar2  default hr_api.g_varchar2
1535   ,p_pjo_information13            in     varchar2  default hr_api.g_varchar2
1536   ,p_pjo_information14            in     varchar2  default hr_api.g_varchar2
1537   ,p_pjo_information15            in     varchar2  default hr_api.g_varchar2
1538   ,p_pjo_information16            in     varchar2  default hr_api.g_varchar2
1539   ,p_pjo_information17            in     varchar2  default hr_api.g_varchar2
1540   ,p_pjo_information18            in     varchar2  default hr_api.g_varchar2
1541   ,p_pjo_information19            in     varchar2  default hr_api.g_varchar2
1542   ,p_pjo_information20            in     varchar2  default hr_api.g_varchar2
1543   ,p_pjo_information21            in     varchar2  default hr_api.g_varchar2
1544   ,p_pjo_information22            in     varchar2  default hr_api.g_varchar2
1545   ,p_pjo_information23            in     varchar2  default hr_api.g_varchar2
1546   ,p_pjo_information24            in     varchar2  default hr_api.g_varchar2
1547   ,p_pjo_information25            in     varchar2  default hr_api.g_varchar2
1548   ,p_pjo_information26            in     varchar2  default hr_api.g_varchar2
1549   ,p_pjo_information27            in     varchar2  default hr_api.g_varchar2
1550   ,p_pjo_information28            in     varchar2  default hr_api.g_varchar2
1551   ,p_pjo_information29            in     varchar2  default hr_api.g_varchar2
1552   ,p_pjo_information30            in     varchar2  default hr_api.g_varchar2
1553   ,p_object_version_number        in out nocopy number
1554   ) is
1555   l_proc                    varchar2(72)
1556                             := g_package||'update_previous_job';
1557   l_previous_employer_id    per_previous_jobs.previous_employer_id%type;
1558   l_object_version_number    per_previous_jobs.object_version_number%type
1559                             := p_object_version_number;
1560   l_ovn per_previous_jobs.object_version_number%type := p_object_version_number;
1561   l_business_group_id        per_previous_employers.business_group_id%type;
1562   --
1563   l_start_date        per_previous_jobs.start_date%type;
1564   l_end_date          per_previous_jobs.end_date%type;
1565   --
1566   l_period_years      Number(10); --per_previous_jobs.period_years%type;
1567   l_period_months   Number(10);  --per_previous_jobs.period_months%type;
1568   l_period_days       Number(10); --per_previous_jobs.period_days%type;
1569   --
1570   l_all_assignments    per_previous_jobs.all_assignments%type;
1571   begin
1572     hr_utility.set_location('Entering:'|| l_proc, 10);
1573     --
1574     -- Issue a savepoint
1575     --
1576     savepoint update_previous_job;
1577     --
1578     -- Truncate the time portion from all IN date parameters
1579     --
1580     l_start_date      :=  trunc(p_start_date);
1581     l_end_date        :=  trunc(p_end_date);
1582     --
1583     l_period_years    :=  p_period_years;
1584     l_period_months   :=  p_period_months;
1585     l_period_days     :=  p_period_days;
1586     --
1587     l_all_assignments :=  p_all_assignments;
1588     --
1589       if p_period_years is null
1590          and p_period_months is null
1591          and p_period_days is null then
1592            per_pem_bus.get_period_values(l_start_date
1593                                         ,l_end_date
1594                                         ,l_period_years
1595                                         ,l_period_months
1596                                         ,l_period_days);
1597     end if;
1598   --
1599   -- Call Before Process User Hook
1600   --
1601   begin
1602     hr_previous_employment_bk5.update_previous_job_b
1603       (p_effective_date                 =>     p_effective_date
1604       ,p_previous_job_id                =>     p_previous_job_id
1605       ,p_start_date                     =>     l_start_date
1606       ,p_end_date                       =>     l_end_date
1607       ,p_period_years                   =>     l_period_years
1608       ,p_period_months                  =>     l_period_months
1609       ,p_period_days                    =>     l_period_days
1610       ,p_job_name                       =>     p_job_name
1611       ,p_employment_category            =>     p_employment_category
1612       ,p_description                    =>     p_description
1613       ,p_all_assignments                =>     l_all_assignments
1614       ,p_pjo_attribute_category         =>     p_pjo_attribute_category
1615       ,p_pjo_attribute1                 =>     p_pjo_attribute1
1616       ,p_pjo_attribute2                 =>     p_pjo_attribute2
1617       ,p_pjo_attribute3                 =>     p_pjo_attribute3
1618       ,p_pjo_attribute4                 =>     p_pjo_attribute4
1619       ,p_pjo_attribute5                 =>     p_pjo_attribute5
1620       ,p_pjo_attribute6                 =>     p_pjo_attribute6
1621       ,p_pjo_attribute7                 =>     p_pjo_attribute7
1622       ,p_pjo_attribute8                 =>     p_pjo_attribute8
1623       ,p_pjo_attribute9                 =>     p_pjo_attribute9
1624       ,p_pjo_attribute10                =>     p_pjo_attribute10
1625       ,p_pjo_attribute11                =>     p_pjo_attribute11
1626       ,p_pjo_attribute12                =>     p_pjo_attribute12
1627       ,p_pjo_attribute13                =>     p_pjo_attribute13
1628       ,p_pjo_attribute14                =>     p_pjo_attribute14
1629       ,p_pjo_attribute15                =>     p_pjo_attribute15
1630       ,p_pjo_attribute16                =>     p_pjo_attribute16
1631       ,p_pjo_attribute17                =>     p_pjo_attribute17
1632       ,p_pjo_attribute18                =>     p_pjo_attribute18
1633       ,p_pjo_attribute19                =>     p_pjo_attribute19
1634       ,p_pjo_attribute20                =>     p_pjo_attribute20
1635       ,p_pjo_attribute21                =>     p_pjo_attribute21
1636       ,p_pjo_attribute22                =>     p_pjo_attribute22
1637       ,p_pjo_attribute23                =>     p_pjo_attribute23
1638       ,p_pjo_attribute24                =>     p_pjo_attribute24
1639       ,p_pjo_attribute25                =>     p_pjo_attribute25
1640       ,p_pjo_attribute26                =>     p_pjo_attribute26
1641       ,p_pjo_attribute27                =>     p_pjo_attribute27
1642       ,p_pjo_attribute28                =>     p_pjo_attribute28
1643       ,p_pjo_attribute29                =>     p_pjo_attribute29
1644       ,p_pjo_attribute30                =>     p_pjo_attribute30
1645       ,p_pjo_information_category       =>     p_pjo_information_category
1646       ,p_pjo_information1               =>     p_pjo_information1
1647       ,p_pjo_information2               =>     p_pjo_information2
1648       ,p_pjo_information3               =>     p_pjo_information3
1649       ,p_pjo_information4               =>     p_pjo_information4
1650       ,p_pjo_information5               =>     p_pjo_information5
1651       ,p_pjo_information6               =>     p_pjo_information6
1652       ,p_pjo_information7               =>     p_pjo_information7
1653       ,p_pjo_information8               =>     p_pjo_information8
1654       ,p_pjo_information9               =>     p_pjo_information9
1655       ,p_pjo_information10              =>     p_pjo_information10
1656       ,p_pjo_information11              =>     p_pjo_information11
1657       ,p_pjo_information12              =>     p_pjo_information12
1658       ,p_pjo_information13              =>     p_pjo_information13
1659       ,p_pjo_information14              =>     p_pjo_information14
1660       ,p_pjo_information15              =>     p_pjo_information15
1661       ,p_pjo_information16              =>     p_pjo_information16
1662       ,p_pjo_information17              =>     p_pjo_information17
1663       ,p_pjo_information18              =>     p_pjo_information18
1664       ,p_pjo_information19              =>     p_pjo_information19
1665       ,p_pjo_information20              =>     p_pjo_information20
1666       ,p_pjo_information21              =>     p_pjo_information21
1667       ,p_pjo_information22              =>     p_pjo_information22
1668       ,p_pjo_information23              =>     p_pjo_information23
1669       ,p_pjo_information24              =>     p_pjo_information24
1670       ,p_pjo_information25              =>     p_pjo_information25
1671       ,p_pjo_information26              =>     p_pjo_information26
1672       ,p_pjo_information27              =>     p_pjo_information27
1673       ,p_pjo_information28              =>     p_pjo_information28
1674       ,p_pjo_information29              =>     p_pjo_information29
1675       ,p_pjo_information30              =>     p_pjo_information30
1676       ,p_object_version_number          =>     l_object_version_number
1677       );
1678     exception
1679       when hr_api.cannot_find_prog_unit then
1680         hr_api.cannot_find_prog_unit_error
1681           (p_module_name => 'hr_previous_employment.update_previous_job'
1682           ,p_hook_type   => 'BP'
1683           );
1684     end;
1685   --
1686   -- Call row handler procedure to update previous employer details
1687   --
1688   per_pjo_upd.upd
1689     (p_effective_date               =>     p_effective_date
1690     ,p_previous_job_id              =>     p_previous_job_id
1691     ,p_object_version_number        =>     l_object_version_number
1692     ,p_start_date                   =>     l_start_date
1693     ,p_end_date                     =>     l_end_date
1694     ,p_period_years                 =>     l_period_years
1695     ,p_period_months                =>     l_period_months
1696     ,p_period_days                  =>     l_period_days
1697     ,p_job_name                     =>     p_job_name
1698     ,p_employment_category          =>     p_employment_category
1699     ,p_description                  =>     p_description
1700     ,p_all_assignments              =>     l_all_assignments
1701     ,p_pjo_attribute_category       =>     p_pjo_attribute_category
1702     ,p_pjo_attribute1               =>     p_pjo_attribute1
1703     ,p_pjo_attribute2               =>     p_pjo_attribute2
1704     ,p_pjo_attribute3               =>     p_pjo_attribute3
1705     ,p_pjo_attribute4               =>     p_pjo_attribute4
1706     ,p_pjo_attribute5               =>     p_pjo_attribute5
1707     ,p_pjo_attribute6               =>     p_pjo_attribute6
1708     ,p_pjo_attribute7               =>     p_pjo_attribute7
1709     ,p_pjo_attribute8               =>     p_pjo_attribute8
1710     ,p_pjo_attribute9               =>     p_pjo_attribute9
1711     ,p_pjo_attribute10              =>     p_pjo_attribute10
1712     ,p_pjo_attribute11              =>     p_pjo_attribute11
1713     ,p_pjo_attribute12              =>     p_pjo_attribute12
1714     ,p_pjo_attribute13              =>     p_pjo_attribute13
1715     ,p_pjo_attribute14              =>     p_pjo_attribute14
1716     ,p_pjo_attribute15              =>     p_pjo_attribute15
1717     ,p_pjo_attribute16              =>     p_pjo_attribute16
1718     ,p_pjo_attribute17              =>     p_pjo_attribute17
1719     ,p_pjo_attribute18              =>     p_pjo_attribute18
1720     ,p_pjo_attribute19              =>     p_pjo_attribute19
1721     ,p_pjo_attribute20              =>     p_pjo_attribute20
1722     ,p_pjo_attribute21              =>     p_pjo_attribute21
1723     ,p_pjo_attribute22              =>     p_pjo_attribute22
1724     ,p_pjo_attribute23              =>     p_pjo_attribute23
1725     ,p_pjo_attribute24              =>     p_pjo_attribute24
1726     ,p_pjo_attribute25              =>     p_pjo_attribute25
1727     ,p_pjo_attribute26              =>     p_pjo_attribute26
1728     ,p_pjo_attribute27              =>     p_pjo_attribute27
1729     ,p_pjo_attribute28              =>     p_pjo_attribute28
1730     ,p_pjo_attribute29              =>     p_pjo_attribute29
1731     ,p_pjo_attribute30              =>     p_pjo_attribute30
1732     ,p_pjo_information_category     =>     p_pjo_information_category
1733     ,p_pjo_information1             =>     p_pjo_information1
1734     ,p_pjo_information2             =>     p_pjo_information2
1735     ,p_pjo_information3             =>     p_pjo_information3
1736     ,p_pjo_information4             =>     p_pjo_information4
1737     ,p_pjo_information5             =>     p_pjo_information5
1738     ,p_pjo_information6             =>     p_pjo_information6
1739     ,p_pjo_information7             =>     p_pjo_information7
1740     ,p_pjo_information8             =>     p_pjo_information8
1741     ,p_pjo_information9             =>     p_pjo_information9
1742     ,p_pjo_information10            =>     p_pjo_information10
1743     ,p_pjo_information11            =>     p_pjo_information11
1744     ,p_pjo_information12            =>     p_pjo_information12
1745     ,p_pjo_information13            =>     p_pjo_information13
1746     ,p_pjo_information14            =>     p_pjo_information14
1747     ,p_pjo_information15            =>     p_pjo_information15
1748     ,p_pjo_information16            =>     p_pjo_information16
1749     ,p_pjo_information17            =>     p_pjo_information17
1750     ,p_pjo_information18            =>     p_pjo_information18
1751     ,p_pjo_information19            =>     p_pjo_information19
1752     ,p_pjo_information20            =>     p_pjo_information20
1753     ,p_pjo_information21            =>     p_pjo_information21
1754     ,p_pjo_information22            =>     p_pjo_information22
1755     ,p_pjo_information23            =>     p_pjo_information23
1756     ,p_pjo_information24            =>     p_pjo_information24
1757     ,p_pjo_information25            =>     p_pjo_information25
1758     ,p_pjo_information26            =>     p_pjo_information26
1759     ,p_pjo_information27            =>     p_pjo_information27
1760     ,p_pjo_information28            =>     p_pjo_information28
1761     ,p_pjo_information29            =>     p_pjo_information29
1762     ,p_pjo_information30            =>     p_pjo_information30
1763     );
1764   begin
1765     hr_previous_employment_bk5.update_previous_job_a
1766       (p_effective_date                 =>     p_effective_date
1767       ,p_previous_job_id                =>     p_previous_job_id
1768       ,p_start_date                     =>     l_start_date
1769       ,p_end_date                       =>     l_end_date
1770       ,p_period_years                   =>     l_period_years
1771       ,p_period_months                  =>     l_period_months
1772       ,p_period_days                    =>     l_period_days
1773       ,p_job_name                       =>     p_job_name
1774       ,p_employment_category            =>     p_employment_category
1775       ,p_description                    =>     p_description
1776       ,p_all_assignments                =>     l_all_assignments
1777       ,p_pjo_attribute_category         =>     p_pjo_attribute_category
1778       ,p_pjo_attribute1                 =>     p_pjo_attribute1
1779       ,p_pjo_attribute2                 =>     p_pjo_attribute2
1780       ,p_pjo_attribute3                 =>     p_pjo_attribute3
1781       ,p_pjo_attribute4                 =>     p_pjo_attribute4
1782       ,p_pjo_attribute5                 =>     p_pjo_attribute5
1783       ,p_pjo_attribute6                 =>     p_pjo_attribute6
1784       ,p_pjo_attribute7                 =>     p_pjo_attribute7
1785       ,p_pjo_attribute8                 =>     p_pjo_attribute8
1786       ,p_pjo_attribute9                 =>     p_pjo_attribute9
1787       ,p_pjo_attribute10                =>     p_pjo_attribute10
1788       ,p_pjo_attribute11                =>     p_pjo_attribute11
1789       ,p_pjo_attribute12                =>     p_pjo_attribute12
1790       ,p_pjo_attribute13                =>     p_pjo_attribute13
1791       ,p_pjo_attribute14                =>     p_pjo_attribute14
1792       ,p_pjo_attribute15                =>     p_pjo_attribute15
1793       ,p_pjo_attribute16                =>     p_pjo_attribute16
1794       ,p_pjo_attribute17                =>     p_pjo_attribute17
1795       ,p_pjo_attribute18                =>     p_pjo_attribute18
1796       ,p_pjo_attribute19                =>     p_pjo_attribute19
1797       ,p_pjo_attribute20                =>     p_pjo_attribute20
1798       ,p_pjo_attribute21                =>     p_pjo_attribute21
1799       ,p_pjo_attribute22                =>     p_pjo_attribute22
1800       ,p_pjo_attribute23                =>     p_pjo_attribute23
1801       ,p_pjo_attribute24                =>     p_pjo_attribute24
1802       ,p_pjo_attribute25                =>     p_pjo_attribute25
1803       ,p_pjo_attribute26                =>     p_pjo_attribute26
1804       ,p_pjo_attribute27                =>     p_pjo_attribute27
1805       ,p_pjo_attribute28                =>     p_pjo_attribute28
1806       ,p_pjo_attribute29                =>     p_pjo_attribute29
1807       ,p_pjo_attribute30                =>     p_pjo_attribute30
1808       ,p_pjo_information_category       =>     p_pjo_information_category
1809       ,p_pjo_information1               =>     p_pjo_information1
1810       ,p_pjo_information2               =>     p_pjo_information2
1811       ,p_pjo_information3               =>     p_pjo_information3
1812       ,p_pjo_information4               =>     p_pjo_information4
1813       ,p_pjo_information5               =>     p_pjo_information5
1814       ,p_pjo_information6               =>     p_pjo_information6
1815       ,p_pjo_information7               =>     p_pjo_information7
1816       ,p_pjo_information8               =>     p_pjo_information8
1817       ,p_pjo_information9               =>     p_pjo_information9
1818       ,p_pjo_information10              =>     p_pjo_information10
1819       ,p_pjo_information11              =>     p_pjo_information11
1820       ,p_pjo_information12              =>     p_pjo_information12
1821       ,p_pjo_information13              =>     p_pjo_information13
1822       ,p_pjo_information14              =>     p_pjo_information14
1823       ,p_pjo_information15              =>     p_pjo_information15
1824       ,p_pjo_information16              =>     p_pjo_information16
1825       ,p_pjo_information17              =>     p_pjo_information17
1826       ,p_pjo_information18              =>     p_pjo_information18
1827       ,p_pjo_information19              =>     p_pjo_information19
1828       ,p_pjo_information20              =>     p_pjo_information20
1829       ,p_pjo_information21              =>     p_pjo_information21
1830       ,p_pjo_information22              =>     p_pjo_information22
1831       ,p_pjo_information23              =>     p_pjo_information23
1832       ,p_pjo_information24              =>     p_pjo_information24
1833       ,p_pjo_information25              =>     p_pjo_information25
1834       ,p_pjo_information26              =>     p_pjo_information26
1835       ,p_pjo_information27              =>     p_pjo_information27
1836       ,p_pjo_information28              =>     p_pjo_information28
1837       ,p_pjo_information29              =>     p_pjo_information29
1838       ,p_pjo_information30              =>     p_pjo_information30
1839       ,p_object_version_number          =>     l_object_version_number
1840       );
1841     exception
1842       when hr_api.cannot_find_prog_unit then
1843         hr_api.cannot_find_prog_unit_error
1844           (p_module_name => 'hr_previous_employment_api.update_previous_job'
1845           ,p_hook_type   => 'AP'
1846           );
1847     end;
1848     --
1849     -- When in validation only mode raise the Validate_Enabled exception
1850     --
1851     if p_validate then
1852       raise hr_api.validate_enabled;
1853     end if;
1854     --
1855     -- Set all output arguments
1856     --
1857     p_object_version_number  := l_object_version_number;
1858     --
1859     hr_utility.set_location(' Leaving:'||l_proc, 70);
1860 exception
1861   when hr_api.validate_enabled then
1862     --
1863     -- As the Validate_Enabled exception has been raised
1864     -- we must rollback to the savepoint
1865     --
1866     rollback to update_previous_job;
1867     --
1868     -- Only set output warning arguments
1869     -- (Any key or derived arguments must be set to null
1870     -- when validation only mode is being used.)
1871     --
1872     -- IN OUT parameter should be reset to its IN value
1873     -- therefore no need to reset p_object_version_number
1874     hr_utility.set_location(' Leaving:'||l_proc, 80);
1875   when others then
1876     --
1877     -- A validation or unexpected error has occured
1878     --
1879     rollback to update_previous_job;
1880     --
1881     -- set in out parameters and set out parameters
1882     --
1883     p_object_version_number := l_ovn;
1884     hr_utility.set_location(' Leaving:'||l_proc, 90);
1885     raise;
1886 end update_previous_job;
1887 --
1888 -- -----------------------------------------------------------------------
1889 -- |-------------------------< delete_previous_job >---------------------|
1890 -- -----------------------------------------------------------------------
1891 --
1892 procedure delete_previous_job
1893   (p_validate                      in     boolean  default false
1894   ,p_previous_job_id               in     number
1895   ,p_object_version_number         in out nocopy number
1896   ) is
1897 l_proc                    varchar2(72)
1898                           := g_package||'delete_previous_job';
1899 l_previous_employer_id    per_previous_jobs.previous_employer_id%type;
1900 l_object_version_number   per_previous_jobs.object_version_number%type
1901                           := p_object_version_number;
1902 l_ovn per_previous_jobs.object_version_number%type := p_object_version_number;
1903   --
1904   -- Cursor for all the records in previous job usages
1905     cursor csr_pju is
1906       select  previous_job_usage_id
1907              ,object_version_number
1908       from    per_previous_job_usages
1909       where   previous_job_id = p_previous_job_id;
1910   -- Cursor for all the records in previous job extra info
1911     cursor csr_pji is
1912       select  previous_job_extra_info_id
1913              ,object_version_number
1914       from    per_prev_job_extra_info
1915       where   previous_job_id = p_previous_job_id;
1916   --
1917 begin
1918   hr_utility.set_location('Entering:'|| l_proc, 10);
1919   --
1920   -- Issue a savepoint
1921   --
1922   savepoint delete_previous_job;
1923   --
1924   -- Call Before Process User Hook
1925   --
1926     begin
1927     hr_previous_employment_bk6.delete_previous_job_b
1928       (p_previous_job_id          =>  p_previous_job_id
1929       ,p_object_version_number    =>  l_object_version_number
1930       );
1931     exception
1932     when hr_api.cannot_find_prog_unit then
1933       hr_api.cannot_find_prog_unit_error
1934         (p_module_name
1935                 => 'hr_previous_employment_api.delete_previous_employer'
1936         ,p_hook_type
1937                 => 'BP'
1938         );
1939     end;
1940     --
1941     -- Process Logic
1942     -- Delete associated Previous Job Usage records
1943     for pju in csr_pju loop
1944       hr_previous_employment_api.delete_previous_job_usage
1945         (p_validate               =>  false
1946         ,p_previous_job_usage_id  =>  pju.previous_job_usage_id
1947         ,p_object_version_number  =>  pju.object_version_number
1948         );
1949     end loop;
1950     --
1951     -- Delete associated Previous Job Extra Info records
1952     for pji_rec in csr_pji loop
1953       hr_previous_employment_api.delete_prev_job_extra_info
1954         (p_validate                   =>  false
1955         ,p_previous_job_extra_info_id =>  pji_rec.previous_job_extra_info_id
1956         ,p_object_version_number      =>  pji_rec.object_version_number
1957         );
1958     end loop;
1959     --
1960     -- Call row handler procedure to delete previous job details
1961     --
1962       per_pjo_del.del
1963       (p_previous_job_id       => p_previous_job_id
1964       ,p_object_version_number => l_object_version_number
1965       );
1966     --
1967     -- Call After Process User Hook
1968     --
1969         begin
1970     hr_previous_employment_bk6.delete_previous_job_a
1971       (p_previous_job_id          =>  p_previous_job_id
1972       ,p_object_version_number    =>  l_object_version_number
1973       );
1974       exception
1975         when hr_api.cannot_find_prog_unit then
1976           hr_api.cannot_find_prog_unit_error
1977             (p_module_name => 'hr_previous_employment_api.delete_previous_job'
1978             ,p_hook_type   => 'AP'
1979             );
1980       end;
1981       --
1982       -- When in validation only mode raise the Validate_Enabled exception
1983       --
1984       if p_validate then
1985         raise hr_api.validate_enabled;
1986       end if;
1987       --
1988       -- Set all output arguments
1989       --
1990       p_object_version_number  := l_object_version_number;
1991     --
1992       hr_utility.set_location(' Leaving:'||l_proc, 70);
1993       --
1994 exception
1995   when hr_api.validate_enabled then
1996     --
1997     -- As the Validate_Enabled exception has been raised
1998     -- we must rollback to the savepoint
1999     --
2000     rollback to delete_previous_job;
2001     --
2002     -- Only set output warning arguments
2003     -- (Any key or derived arguments must be set to null
2004     -- when validation only mode is being used.)
2005     --
2006     -- IN OUT parameter should be reset to its IN value therefore
2007     -- no need to set p_object_version_number
2008     --
2009     hr_utility.set_location(' Leaving:'||l_proc, 80);
2010   when others then
2011     --
2012     -- A validation or unexpected error has occured
2013     --
2014     rollback to delete_previous_job;
2015     --
2016     -- set in out parameters and set out parameters
2017     --
2018     p_object_version_number := l_ovn;
2019     hr_utility.set_location(' Leaving:'||l_proc, 90);
2020     raise;
2021 end delete_previous_job;
2022 --
2023 --
2024 -- -----------------------------------------------------------------------
2025 -- |-------------------------< create_prev_job_extra_info >--------------|
2026 -- -----------------------------------------------------------------------
2027 --
2028 procedure create_prev_job_extra_info
2029   (p_validate                       in  boolean   default false
2030   ,p_previous_job_id                in  number
2031   ,p_information_type               in  varchar2  default null
2032   ,p_pji_attribute_category         in  varchar2  default null
2033   ,p_pji_attribute1                 in  varchar2  default null
2034   ,p_pji_attribute2                 in  varchar2  default null
2035   ,p_pji_attribute3                 in  varchar2  default null
2036   ,p_pji_attribute4                 in  varchar2  default null
2037   ,p_pji_attribute5                 in  varchar2  default null
2038   ,p_pji_attribute6                 in  varchar2  default null
2039   ,p_pji_attribute7                 in  varchar2  default null
2040   ,p_pji_attribute8                 in  varchar2  default null
2041   ,p_pji_attribute9                 in  varchar2  default null
2042   ,p_pji_attribute10                in  varchar2  default null
2043   ,p_pji_attribute11                in  varchar2  default null
2044   ,p_pji_attribute12                in  varchar2  default null
2045   ,p_pji_attribute13                in  varchar2  default null
2046   ,p_pji_attribute14                in  varchar2  default null
2047   ,p_pji_attribute15                in  varchar2  default null
2048   ,p_pji_attribute16                in  varchar2  default null
2049   ,p_pji_attribute17                in  varchar2  default null
2050   ,p_pji_attribute18                in  varchar2  default null
2051   ,p_pji_attribute19                in  varchar2  default null
2052   ,p_pji_attribute20                in  varchar2  default null
2053   ,p_pji_attribute21                in  varchar2  default null
2054   ,p_pji_attribute22                in  varchar2  default null
2055   ,p_pji_attribute23                in  varchar2  default null
2056   ,p_pji_attribute24                in  varchar2  default null
2057   ,p_pji_attribute25                in  varchar2  default null
2058   ,p_pji_attribute26                in  varchar2  default null
2059   ,p_pji_attribute27                in  varchar2  default null
2060   ,p_pji_attribute28                in  varchar2  default null
2061   ,p_pji_attribute29                in  varchar2  default null
2062   ,p_pji_attribute30                in  varchar2  default null
2063   ,p_pji_information_category       in  varchar2  default null
2064   ,p_pji_information1               in  varchar2  default null
2065   ,p_pji_information2               in  varchar2  default null
2066   ,p_pji_information3               in  varchar2  default null
2067   ,p_pji_information4               in  varchar2  default null
2068   ,p_pji_information5               in  varchar2  default null
2069   ,p_pji_information6               in  varchar2  default null
2070   ,p_pji_information7               in  varchar2  default null
2071   ,p_pji_information8               in  varchar2  default null
2072   ,p_pji_information9               in  varchar2  default null
2073   ,p_pji_information10              in  varchar2  default null
2074   ,p_pji_information11              in  varchar2  default null
2075   ,p_pji_information12              in  varchar2  default null
2076   ,p_pji_information13              in  varchar2  default null
2077   ,p_pji_information14              in  varchar2  default null
2078   ,p_pji_information15              in  varchar2  default null
2079   ,p_pji_information16              in  varchar2  default null
2080   ,p_pji_information17              in  varchar2  default null
2081   ,p_pji_information18              in  varchar2  default null
2082   ,p_pji_information19              in  varchar2  default null
2083   ,p_pji_information20              in  varchar2  default null
2084   ,p_pji_information21              in  varchar2  default null
2085   ,p_pji_information22              in  varchar2  default null
2086   ,p_pji_information23              in  varchar2  default null
2087   ,p_pji_information24              in  varchar2  default null
2088   ,p_pji_information25              in  varchar2  default null
2089   ,p_pji_information26              in  varchar2  default null
2090   ,p_pji_information27              in  varchar2  default null
2091   ,p_pji_information28              in  varchar2  default null
2092   ,p_pji_information29              in  varchar2  default null
2093   ,p_pji_information30              in  varchar2  default null
2094   ,p_previous_job_extra_info_id     out nocopy number
2095   ,p_object_version_number          out nocopy number
2096   ) is
2097   --
2098   -- Declare cursors and local variables
2099   --
2100   l_flag        varchar2(30);
2101   l_previous_job_extra_info_id
2102                 per_prev_job_extra_info.previous_job_extra_info_id%type;
2103   l_object_version_number
2104                 per_prev_job_extra_info.object_version_number%type;
2105   l_proc        varchar2(72) := g_package||'create_prev_job_extra_info';
2106 --
2107 begin
2108   hr_utility.set_location('Entering:'|| l_proc, 10);
2109   --
2110   -- Issue a savepoint
2111   --
2112   savepoint create_prev_job_extra_info;
2113   --
2114   -- Call Before Process User Hook
2115   --
2116   begin
2117         hr_previous_employment_bka.create_prev_job_extra_info_b
2118        (p_previous_job_id                =>     p_previous_job_id
2119        ,p_information_type               =>     p_information_type
2120        ,p_pji_attribute_category         =>     p_pji_attribute_category
2121        ,p_pji_attribute1                 =>     p_pji_attribute1
2122        ,p_pji_attribute2                 =>     p_pji_attribute2
2123        ,p_pji_attribute3                 =>     p_pji_attribute3
2124        ,p_pji_attribute4                 =>     p_pji_attribute4
2125        ,p_pji_attribute5                 =>     p_pji_attribute5
2126        ,p_pji_attribute6                 =>     p_pji_attribute6
2127        ,p_pji_attribute7                 =>     p_pji_attribute7
2128        ,p_pji_attribute8                 =>     p_pji_attribute8
2129        ,p_pji_attribute9                 =>     p_pji_attribute9
2130        ,p_pji_attribute10                =>     p_pji_attribute10
2131        ,p_pji_attribute11                =>     p_pji_attribute11
2132        ,p_pji_attribute12                =>     p_pji_attribute12
2133        ,p_pji_attribute13                =>     p_pji_attribute13
2134        ,p_pji_attribute14                =>     p_pji_attribute14
2135        ,p_pji_attribute15                =>     p_pji_attribute15
2136        ,p_pji_attribute16                =>     p_pji_attribute16
2137        ,p_pji_attribute17                =>     p_pji_attribute17
2138        ,p_pji_attribute18                =>     p_pji_attribute18
2139        ,p_pji_attribute19                =>     p_pji_attribute19
2140        ,p_pji_attribute20                =>     p_pji_attribute20
2141        ,p_pji_attribute21                =>     p_pji_attribute21
2142        ,p_pji_attribute22                =>     p_pji_attribute22
2143        ,p_pji_attribute23                =>     p_pji_attribute23
2144        ,p_pji_attribute24                =>     p_pji_attribute24
2145        ,p_pji_attribute25                =>     p_pji_attribute25
2146        ,p_pji_attribute26                =>     p_pji_attribute26
2147        ,p_pji_attribute27                =>     p_pji_attribute27
2148        ,p_pji_attribute28                =>     p_pji_attribute28
2149        ,p_pji_attribute29                =>     p_pji_attribute29
2150        ,p_pji_attribute30                =>     p_pji_attribute30
2151        ,p_pji_information_category       =>     p_pji_information_category
2152        ,p_pji_information1               =>     p_pji_information1
2153        ,p_pji_information2               =>     p_pji_information2
2154        ,p_pji_information3               =>     p_pji_information3
2155        ,p_pji_information4               =>     p_pji_information4
2156        ,p_pji_information5               =>     p_pji_information5
2157        ,p_pji_information6               =>     p_pji_information6
2158        ,p_pji_information7               =>     p_pji_information7
2159        ,p_pji_information8               =>     p_pji_information8
2160        ,p_pji_information9               =>     p_pji_information9
2161        ,p_pji_information10              =>     p_pji_information10
2162        ,p_pji_information11              =>     p_pji_information11
2163        ,p_pji_information12              =>     p_pji_information12
2164        ,p_pji_information13              =>     p_pji_information13
2165        ,p_pji_information14              =>     p_pji_information14
2166        ,p_pji_information15              =>     p_pji_information15
2167        ,p_pji_information16              =>     p_pji_information16
2168        ,p_pji_information17              =>     p_pji_information17
2169        ,p_pji_information18              =>     p_pji_information18
2170        ,p_pji_information19              =>     p_pji_information19
2171        ,p_pji_information20              =>     p_pji_information20
2172        ,p_pji_information21              =>     p_pji_information21
2173        ,p_pji_information22              =>     p_pji_information22
2174        ,p_pji_information23              =>     p_pji_information23
2175        ,p_pji_information24              =>     p_pji_information24
2176        ,p_pji_information25              =>     p_pji_information25
2177        ,p_pji_information26              =>     p_pji_information26
2178        ,p_pji_information27              =>     p_pji_information27
2179        ,p_pji_information28              =>     p_pji_information28
2180        ,p_pji_information29              =>     p_pji_information29
2181        ,p_pji_information30              =>     p_pji_information30
2182        ,p_object_version_number          =>     l_object_version_number
2183        );
2184   exception
2185       when hr_api.cannot_find_prog_unit then
2186         hr_api.cannot_find_prog_unit_error
2187           (p_module_name => 'create_prev_job_extra_info'
2188           ,p_hook_type   => 'BP'
2189           );
2190   end;
2191   --
2192   -- Validation in addition to Row Handlers
2193   -- Process Logic
2194   per_pji_ins.ins
2195   (p_previous_job_id                =>     p_previous_job_id
2196   ,p_information_type               =>     p_information_type
2197   ,p_pji_attribute_category         =>     p_pji_attribute_category
2198   ,p_pji_attribute1                 =>     p_pji_attribute1
2199   ,p_pji_attribute2                 =>     p_pji_attribute2
2200   ,p_pji_attribute3                 =>     p_pji_attribute3
2201   ,p_pji_attribute4                 =>     p_pji_attribute4
2202   ,p_pji_attribute5                 =>     p_pji_attribute5
2203   ,p_pji_attribute6                 =>     p_pji_attribute6
2204   ,p_pji_attribute7                 =>     p_pji_attribute7
2205   ,p_pji_attribute8                 =>     p_pji_attribute8
2206   ,p_pji_attribute9                 =>     p_pji_attribute9
2207   ,p_pji_attribute10                =>     p_pji_attribute10
2208   ,p_pji_attribute11                =>     p_pji_attribute11
2209   ,p_pji_attribute12                =>     p_pji_attribute12
2210   ,p_pji_attribute13                =>     p_pji_attribute13
2211   ,p_pji_attribute14                =>     p_pji_attribute14
2212   ,p_pji_attribute15                =>     p_pji_attribute15
2213   ,p_pji_attribute16                =>     p_pji_attribute16
2214   ,p_pji_attribute17                =>     p_pji_attribute17
2215   ,p_pji_attribute18                =>     p_pji_attribute18
2216   ,p_pji_attribute19                =>     p_pji_attribute19
2217   ,p_pji_attribute20                =>     p_pji_attribute20
2218   ,p_pji_attribute21                =>     p_pji_attribute21
2219   ,p_pji_attribute22                =>     p_pji_attribute22
2220   ,p_pji_attribute23                =>     p_pji_attribute23
2221   ,p_pji_attribute24                =>     p_pji_attribute24
2222   ,p_pji_attribute25                =>     p_pji_attribute25
2223   ,p_pji_attribute26                =>     p_pji_attribute26
2224   ,p_pji_attribute27                =>     p_pji_attribute27
2225   ,p_pji_attribute28                =>     p_pji_attribute28
2226   ,p_pji_attribute29                =>     p_pji_attribute29
2227   ,p_pji_attribute30                =>     p_pji_attribute30
2228   ,p_pji_information_category       =>     p_pji_information_category
2229   ,p_pji_information1               =>     p_pji_information1
2230   ,p_pji_information2               =>     p_pji_information2
2231   ,p_pji_information3               =>     p_pji_information3
2232   ,p_pji_information4               =>     p_pji_information4
2233   ,p_pji_information5               =>     p_pji_information5
2234   ,p_pji_information6               =>     p_pji_information6
2235   ,p_pji_information7               =>     p_pji_information7
2236   ,p_pji_information8               =>     p_pji_information8
2237   ,p_pji_information9               =>     p_pji_information9
2238   ,p_pji_information10              =>     p_pji_information10
2239   ,p_pji_information11              =>     p_pji_information11
2240   ,p_pji_information12              =>     p_pji_information12
2241   ,p_pji_information13              =>     p_pji_information13
2242   ,p_pji_information14              =>     p_pji_information14
2243   ,p_pji_information15              =>     p_pji_information15
2244   ,p_pji_information16              =>     p_pji_information16
2245   ,p_pji_information17              =>     p_pji_information17
2246   ,p_pji_information18              =>     p_pji_information18
2247   ,p_pji_information19              =>     p_pji_information19
2248   ,p_pji_information20              =>     p_pji_information20
2249   ,p_pji_information21              =>     p_pji_information21
2250   ,p_pji_information22              =>     p_pji_information22
2251   ,p_pji_information23              =>     p_pji_information23
2252   ,p_pji_information24              =>     p_pji_information24
2253   ,p_pji_information25              =>     p_pji_information25
2254   ,p_pji_information26              =>     p_pji_information26
2255   ,p_pji_information27              =>     p_pji_information27
2256   ,p_pji_information28              =>     p_pji_information28
2257   ,p_pji_information29              =>     p_pji_information29
2258   ,p_pji_information30              =>     p_pji_information30
2259   ,p_previous_job_extra_info_id     =>     l_previous_job_extra_info_id
2260   ,p_object_version_number          =>     l_object_version_number
2261   );
2262   -- Call After Process User Hook
2263   --
2264   begin
2265        hr_previous_employment_bka.create_prev_job_extra_info_a
2266        (p_previous_job_id                =>     p_previous_job_id
2267        ,p_information_type               =>     p_information_type
2268        ,p_pji_attribute_category         =>     p_pji_attribute_category
2269        ,p_pji_attribute1                 =>     p_pji_attribute1
2270        ,p_pji_attribute2                 =>     p_pji_attribute2
2271        ,p_pji_attribute3                 =>     p_pji_attribute3
2272        ,p_pji_attribute4                 =>     p_pji_attribute4
2273        ,p_pji_attribute5                 =>     p_pji_attribute5
2274        ,p_pji_attribute6                 =>     p_pji_attribute6
2275        ,p_pji_attribute7                 =>     p_pji_attribute7
2276        ,p_pji_attribute8                 =>     p_pji_attribute8
2277        ,p_pji_attribute9                 =>     p_pji_attribute9
2278        ,p_pji_attribute10                =>     p_pji_attribute10
2279        ,p_pji_attribute11                =>     p_pji_attribute11
2280        ,p_pji_attribute12                =>     p_pji_attribute12
2281        ,p_pji_attribute13                =>     p_pji_attribute13
2282        ,p_pji_attribute14                =>     p_pji_attribute14
2283        ,p_pji_attribute15                =>     p_pji_attribute15
2284        ,p_pji_attribute16                =>     p_pji_attribute16
2285        ,p_pji_attribute17                =>     p_pji_attribute17
2286        ,p_pji_attribute18                =>     p_pji_attribute18
2287        ,p_pji_attribute19                =>     p_pji_attribute19
2288        ,p_pji_attribute20                =>     p_pji_attribute20
2289        ,p_pji_attribute21                =>     p_pji_attribute21
2290        ,p_pji_attribute22                =>     p_pji_attribute22
2291        ,p_pji_attribute23                =>     p_pji_attribute23
2292        ,p_pji_attribute24                =>     p_pji_attribute24
2293        ,p_pji_attribute25                =>     p_pji_attribute25
2294        ,p_pji_attribute26                =>     p_pji_attribute26
2295        ,p_pji_attribute27                =>     p_pji_attribute27
2296        ,p_pji_attribute28                =>     p_pji_attribute28
2297        ,p_pji_attribute29                =>     p_pji_attribute29
2298        ,p_pji_attribute30                =>     p_pji_attribute30
2299        ,p_pji_information_category       =>     p_pji_information_category
2300        ,p_pji_information1               =>     p_pji_information1
2301        ,p_pji_information2               =>     p_pji_information2
2302        ,p_pji_information3               =>     p_pji_information3
2303        ,p_pji_information4               =>     p_pji_information4
2304        ,p_pji_information5               =>     p_pji_information5
2305        ,p_pji_information6               =>     p_pji_information6
2306        ,p_pji_information7               =>     p_pji_information7
2307        ,p_pji_information8               =>     p_pji_information8
2308        ,p_pji_information9               =>     p_pji_information9
2309        ,p_pji_information10              =>     p_pji_information10
2310        ,p_pji_information11              =>     p_pji_information11
2311        ,p_pji_information12              =>     p_pji_information12
2312        ,p_pji_information13              =>     p_pji_information13
2313        ,p_pji_information14              =>     p_pji_information14
2314        ,p_pji_information15              =>     p_pji_information15
2315        ,p_pji_information16              =>     p_pji_information16
2316        ,p_pji_information17              =>     p_pji_information17
2317        ,p_pji_information18              =>     p_pji_information18
2318        ,p_pji_information19              =>     p_pji_information19
2319        ,p_pji_information20              =>     p_pji_information20
2320        ,p_pji_information21              =>     p_pji_information21
2321        ,p_pji_information22              =>     p_pji_information22
2322        ,p_pji_information23              =>     p_pji_information23
2323        ,p_pji_information24              =>     p_pji_information24
2324        ,p_pji_information25              =>     p_pji_information25
2325        ,p_pji_information26              =>     p_pji_information26
2326        ,p_pji_information27              =>     p_pji_information27
2327        ,p_pji_information28              =>     p_pji_information28
2328        ,p_pji_information29              =>     p_pji_information29
2329        ,p_pji_information30              =>     p_pji_information30
2330        ,p_previous_job_extra_info_id     =>     l_previous_job_extra_info_id
2331        ,p_object_version_number          =>     l_object_version_number
2332        );
2333   exception
2334     when hr_api.cannot_find_prog_unit then
2335       hr_api.cannot_find_prog_unit_error
2336         (p_module_name => 'create_prev_job_extra_info'
2337         ,p_hook_type   => 'AP'
2338         );
2339   end;
2340   --
2341   -- When in validation only mode raise the Validate_Enabled exception
2342   --
2343   if p_validate then
2344     raise hr_api.validate_enabled;
2345   end if;
2346   --
2347   -- Set all output arguments
2348   --
2349   p_object_version_number       := l_object_version_number;
2350   p_previous_job_extra_info_id  := l_previous_job_extra_info_id;
2351   --
2352   hr_utility.set_location(' Leaving:'||l_proc, 70);
2353 exception
2354   when hr_api.validate_enabled then
2355     --
2356     -- As the Validate_Enabled exception has been raised
2357     -- we must rollback to the savepoint
2358     --
2359     rollback to create_prev_job_extra_info;
2360     --
2361     -- Only set output warning arguments
2362     -- (Any key or derived arguments must be set to null
2363     -- when validation only mode is being used.)
2364     --
2365     p_previous_job_extra_info_id    := null;
2366     p_object_version_number          := null;
2367     hr_utility.set_location(' Leaving:'||l_proc, 80);
2368   when others then
2369     --
2370     -- A validation or unexpected error has occured
2371     --
2372     rollback to create_prev_job_extra_info;
2373     --
2374     -- set in out parameters and set out parameters
2375     --
2376     p_previous_job_extra_info_id    := null;
2377     p_object_version_number          := null;
2378     hr_utility.set_location(' Leaving:'||l_proc, 90);
2379     raise;
2380 end create_prev_job_extra_info;
2381 --
2382 -- -----------------------------------------------------------------------
2383 -- |------------------------< update_prev_job_extra_info >---------------|
2384 -- -----------------------------------------------------------------------
2385 procedure update_prev_job_extra_info
2386      (p_validate                     in boolean  default false
2387      ,p_previous_job_id              in number
2388      ,p_information_type             in varchar2 default hr_api.g_varchar2
2389      ,p_pji_attribute_category       in varchar2 default hr_api.g_varchar2
2390      ,p_pji_attribute1               in varchar2 default hr_api.g_varchar2
2391      ,p_pji_attribute2               in varchar2 default hr_api.g_varchar2
2392      ,p_pji_attribute3               in varchar2 default hr_api.g_varchar2
2393      ,p_pji_attribute4               in varchar2 default hr_api.g_varchar2
2394      ,p_pji_attribute5               in varchar2 default hr_api.g_varchar2
2395      ,p_pji_attribute6               in varchar2 default hr_api.g_varchar2
2396      ,p_pji_attribute7               in varchar2 default hr_api.g_varchar2
2397      ,p_pji_attribute8               in varchar2 default hr_api.g_varchar2
2398      ,p_pji_attribute9               in varchar2 default hr_api.g_varchar2
2399      ,p_pji_attribute10              in varchar2 default hr_api.g_varchar2
2400      ,p_pji_attribute11              in varchar2 default hr_api.g_varchar2
2401      ,p_pji_attribute12              in varchar2 default hr_api.g_varchar2
2402      ,p_pji_attribute13              in varchar2 default hr_api.g_varchar2
2403      ,p_pji_attribute14              in varchar2 default hr_api.g_varchar2
2404      ,p_pji_attribute15              in varchar2 default hr_api.g_varchar2
2405      ,p_pji_attribute16              in varchar2 default hr_api.g_varchar2
2406      ,p_pji_attribute17              in varchar2 default hr_api.g_varchar2
2407      ,p_pji_attribute18              in varchar2 default hr_api.g_varchar2
2408      ,p_pji_attribute19              in varchar2 default hr_api.g_varchar2
2409      ,p_pji_attribute20              in varchar2 default hr_api.g_varchar2
2410      ,p_pji_attribute21              in varchar2 default hr_api.g_varchar2
2411      ,p_pji_attribute22              in varchar2 default hr_api.g_varchar2
2412      ,p_pji_attribute23              in varchar2 default hr_api.g_varchar2
2413      ,p_pji_attribute24              in varchar2 default hr_api.g_varchar2
2414      ,p_pji_attribute25              in varchar2 default hr_api.g_varchar2
2415      ,p_pji_attribute26              in varchar2 default hr_api.g_varchar2
2416      ,p_pji_attribute27              in varchar2 default hr_api.g_varchar2
2417      ,p_pji_attribute28              in varchar2 default hr_api.g_varchar2
2418      ,p_pji_attribute29              in varchar2 default hr_api.g_varchar2
2419      ,p_pji_attribute30              in varchar2 default hr_api.g_varchar2
2420      ,p_pji_information_category     in varchar2 default hr_api.g_varchar2
2421      ,p_pji_information1             in varchar2 default hr_api.g_varchar2
2422      ,p_pji_information2             in varchar2 default hr_api.g_varchar2
2423      ,p_pji_information3             in varchar2 default hr_api.g_varchar2
2424      ,p_pji_information4             in varchar2 default hr_api.g_varchar2
2425      ,p_pji_information5             in varchar2 default hr_api.g_varchar2
2426      ,p_pji_information6             in varchar2 default hr_api.g_varchar2
2427      ,p_pji_information7             in varchar2 default hr_api.g_varchar2
2428      ,p_pji_information8             in varchar2 default hr_api.g_varchar2
2429      ,p_pji_information9             in varchar2 default hr_api.g_varchar2
2430      ,p_pji_information10            in varchar2 default hr_api.g_varchar2
2431      ,p_pji_information11            in varchar2 default hr_api.g_varchar2
2432      ,p_pji_information12            in varchar2 default hr_api.g_varchar2
2433      ,p_pji_information13            in varchar2 default hr_api.g_varchar2
2434      ,p_pji_information14            in varchar2 default hr_api.g_varchar2
2435      ,p_pji_information15            in varchar2 default hr_api.g_varchar2
2436      ,p_pji_information16            in varchar2 default hr_api.g_varchar2
2437      ,p_pji_information17            in varchar2 default hr_api.g_varchar2
2438      ,p_pji_information18            in varchar2 default hr_api.g_varchar2
2439      ,p_pji_information19            in varchar2 default hr_api.g_varchar2
2440      ,p_pji_information20            in varchar2 default hr_api.g_varchar2
2441      ,p_pji_information21            in varchar2 default hr_api.g_varchar2
2442      ,p_pji_information22            in varchar2 default hr_api.g_varchar2
2443      ,p_pji_information23            in varchar2 default hr_api.g_varchar2
2444      ,p_pji_information24            in varchar2 default hr_api.g_varchar2
2445      ,p_pji_information25            in varchar2 default hr_api.g_varchar2
2446      ,p_pji_information26            in varchar2 default hr_api.g_varchar2
2447      ,p_pji_information27            in varchar2 default hr_api.g_varchar2
2448      ,p_pji_information28            in varchar2 default hr_api.g_varchar2
2449      ,p_pji_information29            in varchar2 default hr_api.g_varchar2
2450      ,p_pji_information30            in varchar2 default hr_api.g_varchar2
2451      ,p_previous_job_extra_info_id   in number
2452      ,p_object_version_number        in out nocopy number
2453      ) is
2454      --
2455      l_proc      varchar2(72) := g_package||'update_prev_job_extra_info';
2456      l_object_version_number
2457                  per_prev_job_extra_info.object_version_number%type
2458                               :=  p_object_version_number;
2459     l_ovn per_prev_job_extra_info.object_version_number%type :=  p_object_version_number;
2460   begin
2461     hr_utility.set_location('Entering:'|| l_proc, 10);
2462     --
2463     -- Issue a savepoint
2464     --
2465     savepoint update_prev_job_extra_info;
2466     --
2467       -- Call Before Process User Hook
2468     --
2469   begin
2470         hr_previous_employment_bkb.update_prev_job_extra_info_b
2471        (p_previous_job_id                =>     p_previous_job_id
2472        ,p_information_type               =>     p_information_type
2473        ,p_pji_attribute_category         =>     p_pji_attribute_category
2474        ,p_pji_attribute1                 =>     p_pji_attribute1
2475        ,p_pji_attribute2                 =>     p_pji_attribute2
2476        ,p_pji_attribute3                 =>     p_pji_attribute3
2477        ,p_pji_attribute4                 =>     p_pji_attribute4
2478        ,p_pji_attribute5                 =>     p_pji_attribute5
2479        ,p_pji_attribute6                 =>     p_pji_attribute6
2480        ,p_pji_attribute7                 =>     p_pji_attribute7
2481        ,p_pji_attribute8                 =>     p_pji_attribute8
2482        ,p_pji_attribute9                 =>     p_pji_attribute9
2483        ,p_pji_attribute10                =>     p_pji_attribute10
2484        ,p_pji_attribute11                =>     p_pji_attribute11
2485        ,p_pji_attribute12                =>     p_pji_attribute12
2486        ,p_pji_attribute13                =>     p_pji_attribute13
2487        ,p_pji_attribute14                =>     p_pji_attribute14
2488        ,p_pji_attribute15                =>     p_pji_attribute15
2489        ,p_pji_attribute16                =>     p_pji_attribute16
2490        ,p_pji_attribute17                =>     p_pji_attribute17
2491        ,p_pji_attribute18                =>     p_pji_attribute18
2492        ,p_pji_attribute19                =>     p_pji_attribute19
2493        ,p_pji_attribute20                =>     p_pji_attribute20
2494        ,p_pji_attribute21                =>     p_pji_attribute21
2495        ,p_pji_attribute22                =>     p_pji_attribute22
2496        ,p_pji_attribute23                =>     p_pji_attribute23
2497        ,p_pji_attribute24                =>     p_pji_attribute24
2498        ,p_pji_attribute25                =>     p_pji_attribute25
2499        ,p_pji_attribute26                =>     p_pji_attribute26
2500        ,p_pji_attribute27                =>     p_pji_attribute27
2501        ,p_pji_attribute28                =>     p_pji_attribute28
2502        ,p_pji_attribute29                =>     p_pji_attribute29
2503        ,p_pji_attribute30                =>     p_pji_attribute30
2504        ,p_pji_information_category       =>     p_pji_information_category
2505        ,p_pji_information1               =>     p_pji_information1
2506        ,p_pji_information2               =>     p_pji_information2
2507        ,p_pji_information3               =>     p_pji_information3
2508        ,p_pji_information4               =>     p_pji_information4
2509        ,p_pji_information5               =>     p_pji_information5
2510        ,p_pji_information6               =>     p_pji_information6
2511        ,p_pji_information7               =>     p_pji_information7
2512        ,p_pji_information8               =>     p_pji_information8
2513        ,p_pji_information9               =>     p_pji_information9
2514        ,p_pji_information10              =>     p_pji_information10
2515        ,p_pji_information11              =>     p_pji_information11
2516        ,p_pji_information12              =>     p_pji_information12
2517        ,p_pji_information13              =>     p_pji_information13
2518        ,p_pji_information14              =>     p_pji_information14
2519        ,p_pji_information15              =>     p_pji_information15
2520        ,p_pji_information16              =>     p_pji_information16
2521        ,p_pji_information17              =>     p_pji_information17
2522        ,p_pji_information18              =>     p_pji_information18
2523        ,p_pji_information19              =>     p_pji_information19
2524        ,p_pji_information20              =>     p_pji_information20
2525        ,p_pji_information21              =>     p_pji_information21
2526        ,p_pji_information22              =>     p_pji_information22
2527        ,p_pji_information23              =>     p_pji_information23
2528        ,p_pji_information24              =>     p_pji_information24
2529        ,p_pji_information25              =>     p_pji_information25
2530        ,p_pji_information26              =>     p_pji_information26
2531        ,p_pji_information27              =>     p_pji_information27
2532        ,p_pji_information28              =>     p_pji_information28
2533        ,p_pji_information29              =>     p_pji_information29
2534        ,p_pji_information30              =>     p_pji_information30
2535        ,p_previous_job_extra_info_id     =>     p_previous_job_extra_info_id
2536        ,p_object_version_number          =>     l_object_version_number
2537        );
2538     exception
2539       when hr_api.cannot_find_prog_unit then
2540         hr_api.cannot_find_prog_unit_error
2541           (p_module_name => 'update_prev_job_extra_info'
2542           ,p_hook_type   => 'BP'
2543           );
2544     end;
2545     --
2546   -- Call row handler procedure to update previous job extra info
2547   --
2548     per_pji_upd.upd
2549     (p_previous_job_extra_info_id   =>     p_previous_job_extra_info_id
2550     ,p_object_version_number        =>     l_object_version_number
2551     ,p_previous_job_id              =>     p_previous_job_id
2552     ,p_information_type             =>     p_information_type
2553     ,p_pji_attribute_category       =>     p_pji_attribute_category
2554     ,p_pji_attribute1               =>     p_pji_attribute1
2555     ,p_pji_attribute2               =>     p_pji_attribute2
2556     ,p_pji_attribute3               =>     p_pji_attribute3
2557     ,p_pji_attribute4               =>     p_pji_attribute4
2558     ,p_pji_attribute5               =>     p_pji_attribute5
2559     ,p_pji_attribute6               =>     p_pji_attribute6
2560     ,p_pji_attribute7               =>     p_pji_attribute7
2561     ,p_pji_attribute8               =>     p_pji_attribute8
2562     ,p_pji_attribute9               =>     p_pji_attribute9
2563     ,p_pji_attribute10              =>     p_pji_attribute10
2564     ,p_pji_attribute11              =>     p_pji_attribute11
2565     ,p_pji_attribute12              =>     p_pji_attribute12
2566     ,p_pji_attribute13              =>     p_pji_attribute13
2567     ,p_pji_attribute14              =>     p_pji_attribute14
2568     ,p_pji_attribute15              =>     p_pji_attribute15
2569     ,p_pji_attribute16              =>     p_pji_attribute16
2570     ,p_pji_attribute17              =>     p_pji_attribute17
2571     ,p_pji_attribute18              =>     p_pji_attribute18
2572     ,p_pji_attribute19              =>     p_pji_attribute19
2573     ,p_pji_attribute20              =>     p_pji_attribute20
2574     ,p_pji_attribute21              =>     p_pji_attribute21
2575     ,p_pji_attribute22              =>     p_pji_attribute22
2576     ,p_pji_attribute23              =>     p_pji_attribute23
2577     ,p_pji_attribute24              =>     p_pji_attribute24
2578     ,p_pji_attribute25              =>     p_pji_attribute25
2579     ,p_pji_attribute26              =>     p_pji_attribute26
2580     ,p_pji_attribute27              =>     p_pji_attribute27
2581     ,p_pji_attribute28              =>     p_pji_attribute28
2582     ,p_pji_attribute29              =>     p_pji_attribute29
2583     ,p_pji_attribute30              =>     p_pji_attribute30
2584     ,p_pji_information_category     =>     p_pji_information_category
2585     ,p_pji_information1             =>     p_pji_information1
2586     ,p_pji_information2             =>     p_pji_information2
2587     ,p_pji_information3             =>     p_pji_information3
2588     ,p_pji_information4             =>     p_pji_information4
2589     ,p_pji_information5             =>     p_pji_information5
2590     ,p_pji_information6             =>     p_pji_information6
2591     ,p_pji_information7             =>     p_pji_information7
2592     ,p_pji_information8             =>     p_pji_information8
2593     ,p_pji_information9             =>     p_pji_information9
2594     ,p_pji_information10            =>     p_pji_information10
2595     ,p_pji_information11            =>     p_pji_information11
2596     ,p_pji_information12            =>     p_pji_information12
2597     ,p_pji_information13            =>     p_pji_information13
2598     ,p_pji_information14            =>     p_pji_information14
2599     ,p_pji_information15            =>     p_pji_information15
2600     ,p_pji_information16            =>     p_pji_information16
2601     ,p_pji_information17            =>     p_pji_information17
2602     ,p_pji_information18            =>     p_pji_information18
2603     ,p_pji_information19            =>     p_pji_information19
2604     ,p_pji_information20            =>     p_pji_information20
2605     ,p_pji_information21            =>     p_pji_information21
2606     ,p_pji_information22            =>     p_pji_information22
2607     ,p_pji_information23            =>     p_pji_information23
2608     ,p_pji_information24            =>     p_pji_information24
2609     ,p_pji_information25            =>     p_pji_information25
2610     ,p_pji_information26            =>     p_pji_information26
2611     ,p_pji_information27            =>     p_pji_information27
2612     ,p_pji_information28            =>     p_pji_information28
2613     ,p_pji_information29            =>     p_pji_information29
2614     ,p_pji_information30            =>     p_pji_information30
2615     );
2616   begin
2617          hr_previous_employment_bkb.update_prev_job_extra_info_a
2618          (p_previous_job_id                =>     p_previous_job_id
2619          ,p_information_type               =>     p_information_type
2620          ,p_pji_attribute_category         =>     p_pji_attribute_category
2621          ,p_pji_attribute1                 =>     p_pji_attribute1
2622          ,p_pji_attribute2                 =>     p_pji_attribute2
2623          ,p_pji_attribute3                 =>     p_pji_attribute3
2624          ,p_pji_attribute4                 =>     p_pji_attribute4
2625          ,p_pji_attribute5                 =>     p_pji_attribute5
2626          ,p_pji_attribute6                 =>     p_pji_attribute6
2627          ,p_pji_attribute7                 =>     p_pji_attribute7
2628          ,p_pji_attribute8                 =>     p_pji_attribute8
2629          ,p_pji_attribute9                 =>     p_pji_attribute9
2630          ,p_pji_attribute10                =>     p_pji_attribute10
2631          ,p_pji_attribute11                =>     p_pji_attribute11
2632          ,p_pji_attribute12                =>     p_pji_attribute12
2633          ,p_pji_attribute13                =>     p_pji_attribute13
2634          ,p_pji_attribute14                =>     p_pji_attribute14
2635          ,p_pji_attribute15                =>     p_pji_attribute15
2636          ,p_pji_attribute16                =>     p_pji_attribute16
2637          ,p_pji_attribute17                =>     p_pji_attribute17
2638          ,p_pji_attribute18                =>     p_pji_attribute18
2639          ,p_pji_attribute19                =>     p_pji_attribute19
2640          ,p_pji_attribute20                =>     p_pji_attribute20
2641          ,p_pji_attribute21                =>     p_pji_attribute21
2642          ,p_pji_attribute22                =>     p_pji_attribute22
2643          ,p_pji_attribute23                =>     p_pji_attribute23
2644          ,p_pji_attribute24                =>     p_pji_attribute24
2645          ,p_pji_attribute25                =>     p_pji_attribute25
2646          ,p_pji_attribute26                =>     p_pji_attribute26
2647          ,p_pji_attribute27                =>     p_pji_attribute27
2648          ,p_pji_attribute28                =>     p_pji_attribute28
2649          ,p_pji_attribute29                =>     p_pji_attribute29
2650          ,p_pji_attribute30                =>     p_pji_attribute30
2651          ,p_pji_information_category       =>     p_pji_information_category
2652          ,p_pji_information1               =>     p_pji_information1
2653          ,p_pji_information2               =>     p_pji_information2
2654          ,p_pji_information3               =>     p_pji_information3
2655          ,p_pji_information4               =>     p_pji_information4
2656          ,p_pji_information5               =>     p_pji_information5
2657          ,p_pji_information6               =>     p_pji_information6
2658          ,p_pji_information7               =>     p_pji_information7
2659          ,p_pji_information8               =>     p_pji_information8
2660          ,p_pji_information9               =>     p_pji_information9
2661          ,p_pji_information10              =>     p_pji_information10
2662          ,p_pji_information11              =>     p_pji_information11
2663          ,p_pji_information12              =>     p_pji_information12
2664          ,p_pji_information13              =>     p_pji_information13
2665          ,p_pji_information14              =>     p_pji_information14
2666          ,p_pji_information15              =>     p_pji_information15
2667          ,p_pji_information16              =>     p_pji_information16
2668          ,p_pji_information17              =>     p_pji_information17
2669          ,p_pji_information18              =>     p_pji_information18
2670          ,p_pji_information19              =>     p_pji_information19
2671          ,p_pji_information20              =>     p_pji_information20
2672          ,p_pji_information21              =>     p_pji_information21
2673          ,p_pji_information22              =>     p_pji_information22
2674          ,p_pji_information23              =>     p_pji_information23
2675          ,p_pji_information24              =>     p_pji_information24
2676          ,p_pji_information25              =>     p_pji_information25
2677          ,p_pji_information26              =>     p_pji_information26
2678          ,p_pji_information27              =>     p_pji_information27
2679          ,p_pji_information28              =>     p_pji_information28
2680          ,p_pji_information29              =>     p_pji_information29
2681          ,p_pji_information30              =>     p_pji_information30
2682          ,p_previous_job_extra_info_id     =>     p_previous_job_extra_info_id
2683          ,p_object_version_number          =>     l_object_version_number
2684          );
2685     exception
2686       when hr_api.cannot_find_prog_unit then
2687         hr_api.cannot_find_prog_unit_error
2688           (p_module_name
2689               => 'hr_previous_employment_bkb.update_prev_job_extra_info_a'
2690           ,p_hook_type
2691               => 'AP'
2692           );
2693     end;
2694     --
2695     -- When in validation only mode raise the Validate_Enabled exception
2696     --
2697     if p_validate then
2698       raise hr_api.validate_enabled;
2699     end if;
2700     --
2701     --
2702     -- Set all output arguments
2703     --
2704     p_object_version_number  := l_object_version_number;
2705     --
2706     hr_utility.set_location(' Leaving:'||l_proc, 70);
2707 exception
2708   when hr_api.validate_enabled then
2709     --
2710     -- As the Validate_Enabled exception has been raised
2711     -- we must rollback to the savepoint
2712     --
2713     rollback to update_prev_job_extra_info;
2714     --
2715     -- Only set output warning arguments
2716     -- (Any key or derived arguments must be set to null
2717     -- when validation only mode is being used.)
2718     hr_utility.set_location(' Leaving:'||l_proc, 80);
2719   when others then
2720     --
2721     -- A validation or unexpected error has occured
2722     --
2723     rollback to update_prev_job_extra_info;
2724     --
2725     -- set in out parameters and set out parameters
2726     --
2727     p_object_version_number := l_ovn;
2728     hr_utility.set_location(' Leaving:'||l_proc, 90);
2729     raise;
2730 end update_prev_job_extra_info;
2731 --
2732 -- -----------------------------------------------------------------------
2733 -- |----------------------< delete_prev_job_extra_info >-----------------|
2734 -- -----------------------------------------------------------------------
2735 --
2736 procedure delete_prev_job_extra_info
2737   (p_validate                       in     boolean
2738   ,p_previous_job_extra_info_id     in      number
2739   ,p_object_version_number          in out nocopy number
2740   )
2741  is
2742  l_proc             varchar2(72)
2743                     := g_package||'delete_prev_job_extra_info';
2744  l_previous_job_extra_info_id
2745                     per_prev_job_extra_info.previous_job_extra_info_id%type;
2746  l_object_version_number
2747                     per_prev_job_extra_info.object_version_number%type
2748                     := p_object_version_number;
2749  l_ovn per_prev_job_extra_info.object_version_number%type  := p_object_version_number;
2750 begin
2751   hr_utility.set_location('Entering:'|| l_proc, 10);
2752   --
2753   -- Issue a savepoint
2754   --
2755   savepoint delete_prev_job_extra_info;
2756   --
2757   -- Call Before Process User Hook
2758   --
2759     begin
2760       hr_previous_employment_bkc.delete_prev_job_extra_info_b
2761       (p_previous_job_extra_info_id    => p_previous_job_extra_info_id
2762       ,p_object_version_number         => l_object_version_number
2763       );
2764   exception
2765         when hr_api.cannot_find_prog_unit then
2766             hr_api.cannot_find_prog_unit_error
2767             (p_module_name => 'delete_prev_job_extra_info'
2768             ,p_hook_type   => 'BP'
2769             );
2770       end;
2771   --
2772   -- Process Logic
2773   --
2774   -- Call row handler procedure to delete previous job extra info
2775   --
2776     per_pji_del.del
2777     (p_previous_job_extra_info_id    => p_previous_job_extra_info_id
2778     ,p_object_version_number         => l_object_version_number
2779     );
2780   --
2781   -- Call After Process User Hook
2782   --
2783   begin
2784     hr_previous_employment_bkc.delete_prev_job_extra_info_a
2785       (p_previous_job_extra_info_id    => p_previous_job_extra_info_id
2786       ,p_object_version_number         => l_object_version_number
2787        );
2788   exception
2789   when hr_api.cannot_find_prog_unit then
2790     hr_api.cannot_find_prog_unit_error
2791       (p_module_name => 'delete_prev_job_extra_info'
2792       ,p_hook_type   => 'AP'
2793       );
2794   end;
2795   --
2796   -- When in validation only mode raise the Validate_Enabled exception
2797   --
2798   if p_validate then
2799     raise hr_api.validate_enabled;
2800   end if;
2801   --
2802   -- Set all output arguments
2803   --
2804   p_object_version_number  := l_object_version_number;
2805   --
2806   hr_utility.set_location(' Leaving:'||l_proc, 70);
2807   --
2808 exception
2809   when hr_api.validate_enabled then
2810     --
2811     -- As the Validate_Enabled exception has been raised
2812     -- we must rollback to the savepoint
2813     --
2814     rollback to delete_prev_job_extra_info;
2815     --
2816     -- Only set output warning arguments
2817     -- (Any key or derived arguments must be set to null
2818     -- when validation only mode is being used.)
2819     --
2820     hr_utility.set_location(' Leaving:'||l_proc, 80);
2821   when others then
2822     --
2823     -- A validation or unexpected error has occured
2824     --
2825     rollback to delete_prev_job_extra_info;
2826     --
2827     -- set in out parameters and set out parameters
2828     --
2829     p_object_version_number := l_ovn;
2830     hr_utility.set_location(' Leaving:'||l_proc, 90);
2831     raise;
2832 end delete_prev_job_extra_info;
2833 --
2834 -- -----------------------------------------------------------------------
2835 -- |-------------------------< create_previous_job_usage >---------------|
2836 -- -----------------------------------------------------------------------
2837 --
2838 procedure create_previous_job_usage
2839     (p_validate                       in        boolean
2840     ,p_assignment_id                  in        number
2841     ,p_previous_employer_id           in        number
2842     ,p_previous_job_id                in        number
2843     ,p_start_date                     in        date     default null
2844     ,p_end_date                       in        date     default null
2845     ,p_period_years                   in        number   default null
2846     ,p_period_months                  in        number   default null
2847     ,p_period_days                    in        number   default null
2848     ,p_pju_attribute_category         in        varchar2 default null
2849     ,p_pju_attribute1                 in        varchar2 default null
2850     ,p_pju_attribute2                 in        varchar2 default null
2851     ,p_pju_attribute3                 in        varchar2 default null
2852     ,p_pju_attribute4                 in        varchar2 default null
2853     ,p_pju_attribute5                 in        varchar2 default null
2854     ,p_pju_attribute6                 in        varchar2 default null
2855     ,p_pju_attribute7                 in        varchar2 default null
2856     ,p_pju_attribute8                 in        varchar2 default null
2857     ,p_pju_attribute9                 in        varchar2 default null
2858     ,p_pju_attribute10                in        varchar2 default null
2859     ,p_pju_attribute11                in        varchar2 default null
2860     ,p_pju_attribute12                in        varchar2 default null
2861     ,p_pju_attribute13                in        varchar2 default null
2862     ,p_pju_attribute14                in        varchar2 default null
2863     ,p_pju_attribute15                in        varchar2 default null
2864     ,p_pju_attribute16                in        varchar2 default null
2865     ,p_pju_attribute17                in        varchar2 default null
2866     ,p_pju_attribute18                in        varchar2 default null
2867     ,p_pju_attribute19                in        varchar2 default null
2868     ,p_pju_attribute20                in        varchar2 default null
2869     ,p_pju_information_category       in        varchar2 default null
2870     ,p_pju_information1               in        varchar2 default null
2871     ,p_pju_information2               in        varchar2 default null
2872     ,p_pju_information3               in        varchar2 default null
2873     ,p_pju_information4               in        varchar2 default null
2874     ,p_pju_information5               in        varchar2 default null
2875     ,p_pju_information6               in        varchar2 default null
2876     ,p_pju_information7               in        varchar2 default null
2877     ,p_pju_information8               in        varchar2 default null
2878     ,p_pju_information9               in        varchar2 default null
2879     ,p_pju_information10              in        varchar2 default null
2880     ,p_pju_information11              in        varchar2 default null
2881     ,p_pju_information12              in        varchar2 default null
2882     ,p_pju_information13              in        varchar2 default null
2883     ,p_pju_information14              in        varchar2 default null
2884     ,p_pju_information15              in        varchar2 default null
2885     ,p_pju_information16              in        varchar2 default null
2886     ,p_pju_information17              in        varchar2 default null
2887     ,p_pju_information18              in        varchar2 default null
2888     ,p_pju_information19              in        varchar2 default null
2889     ,p_pju_information20              in        varchar2 default null
2890     ,p_previous_job_usage_id          out nocopy       number
2891     ,p_object_version_number          out nocopy       number
2892     ) is
2893   --
2894   -- Declare cursors and local variables
2895   --
2896   l_flag             varchar2(30);
2897   l_start_date      per_previous_job_usages.start_date%type;
2898   l_end_date        per_previous_job_usages.end_date%type;
2899   l_period_years    per_previous_job_usages.period_years%type;
2900   l_period_months   per_previous_job_usages.period_months%type;
2901   l_period_days     per_previous_job_usages.period_days%type;
2902   l_previous_job_usage_id
2903                     per_previous_job_usages.previous_job_usage_id%type;
2904   l_object_version_number
2905                     per_previous_job_usages.object_version_number%type;
2906   l_proc            varchar2(72) := g_package||'create_prev_job_extra_info';
2907   --
2908 begin
2909   hr_utility.set_location('Entering:'|| l_proc, 10);
2910   --
2911   -- Issue a savepoint
2912   --
2913   savepoint create_previous_job_usage;
2914   --
2915   -- Get the default values from previous jobs
2916   --
2917   per_pju_bus.get_previous_job_dates
2918              (p_previous_employer_id  =>  p_previous_employer_id
2919              ,p_previous_job_id       =>  p_previous_job_id
2920              ,p_start_date            =>  l_start_date
2921              ,p_end_date              =>  l_end_date
2922              ,p_period_years          =>  l_period_years
2923              ,p_period_months         =>  l_period_months
2924              ,p_period_days           =>  l_period_days
2925              );
2926   --
2927   -- Truncate the time portion from all IN date parameters
2928   if  p_start_date is not null and p_end_date is not null then
2929     l_start_date    :=trunc(p_start_date);
2930     l_end_date      :=trunc(p_end_date);
2931   end if;
2932   --
2933   l_period_years  :=p_period_years;
2934   l_period_months :=p_period_months;
2935   l_period_days   :=p_period_days;
2936   --
2937     if p_period_years is null
2938        and p_period_months is null
2939        and p_period_days is null then
2940          per_pem_bus.get_period_values(l_start_date
2941                                       ,l_end_date
2942                                       ,l_period_years
2943                                       ,l_period_months
2944                                       ,l_period_days);
2945     end if;
2946   --
2947   --
2948   -- Call Before Process User Hook
2949   --
2950   begin
2951       hr_previous_employment_bk7.create_previous_job_usage_b
2952       ( p_assignment_id                  =>     p_assignment_id
2953        ,p_previous_employer_id           =>     p_previous_employer_id
2954        ,p_previous_job_id                =>     p_previous_job_id
2955        ,p_start_date                     =>     l_start_date
2956        ,p_end_date                       =>     l_end_date
2957        ,p_period_years                   =>     l_period_years
2958        ,p_period_months                  =>     l_period_months
2959        ,p_period_days                    =>     l_period_days
2960        ,p_pju_attribute_category         =>     p_pju_attribute_category
2961        ,p_pju_attribute1                 =>     p_pju_attribute1
2962        ,p_pju_attribute2                 =>     p_pju_attribute2
2963        ,p_pju_attribute3                 =>     p_pju_attribute3
2964        ,p_pju_attribute4                 =>     p_pju_attribute4
2965        ,p_pju_attribute5                 =>     p_pju_attribute5
2966        ,p_pju_attribute6                 =>     p_pju_attribute6
2967        ,p_pju_attribute7                 =>     p_pju_attribute7
2968        ,p_pju_attribute8                 =>     p_pju_attribute8
2969        ,p_pju_attribute9                 =>     p_pju_attribute9
2970        ,p_pju_attribute10                =>     p_pju_attribute10
2971        ,p_pju_attribute11                =>     p_pju_attribute11
2972        ,p_pju_attribute12                =>     p_pju_attribute12
2973        ,p_pju_attribute13                =>     p_pju_attribute13
2974        ,p_pju_attribute14                =>     p_pju_attribute14
2975        ,p_pju_attribute15                =>     p_pju_attribute15
2976        ,p_pju_attribute16                =>     p_pju_attribute16
2977        ,p_pju_attribute17                =>     p_pju_attribute17
2978        ,p_pju_attribute18                =>     p_pju_attribute18
2979        ,p_pju_attribute19                =>     p_pju_attribute19
2980        ,p_pju_attribute20                =>     p_pju_attribute20
2981        ,p_pju_information_category       =>     p_pju_information_category
2982        ,p_pju_information1               =>     p_pju_information1
2983        ,p_pju_information2               =>     p_pju_information2
2984        ,p_pju_information3               =>     p_pju_information3
2985        ,p_pju_information4               =>     p_pju_information4
2986        ,p_pju_information5               =>     p_pju_information5
2987        ,p_pju_information6               =>     p_pju_information6
2988        ,p_pju_information7               =>     p_pju_information7
2989        ,p_pju_information8               =>     p_pju_information8
2990        ,p_pju_information9               =>     p_pju_information9
2991        ,p_pju_information10              =>     p_pju_information10
2992        ,p_pju_information11              =>     p_pju_information11
2993        ,p_pju_information12              =>     p_pju_information12
2994        ,p_pju_information13              =>     p_pju_information13
2995        ,p_pju_information14              =>     p_pju_information14
2996        ,p_pju_information15              =>     p_pju_information15
2997        ,p_pju_information16              =>     p_pju_information16
2998        ,p_pju_information17              =>     p_pju_information17
2999        ,p_pju_information18              =>     p_pju_information18
3000        ,p_pju_information19              =>     p_pju_information19
3001        ,p_pju_information20              =>     p_pju_information20
3002        ,p_object_version_number          =>     l_object_version_number
3003        );
3004   exception
3005       when hr_api.cannot_find_prog_unit then
3006         hr_api.cannot_find_prog_unit_error
3007           (p_module_name => 'create_prev_job_extra_info'
3008           ,p_hook_type   => 'BP'
3009           );
3010   end;
3011   --
3012   -- Validation in addition to Row Handlers
3013   -- Process Logic
3014   per_pju_ins.ins
3015   (p_assignment_id                  =>     p_assignment_id
3016   ,p_previous_employer_id           =>     p_previous_employer_id
3017   ,p_previous_job_id                =>     p_previous_job_id
3018   ,p_start_date                     =>     l_start_date
3019   ,p_end_date                       =>     l_end_date
3020   ,p_period_years                   =>     l_period_years
3021   ,p_period_months                  =>     l_period_months
3022   ,p_period_days                    =>     l_period_days
3023   ,p_pju_attribute_category         =>     p_pju_attribute_category
3024   ,p_pju_attribute1                 =>     p_pju_attribute1
3025   ,p_pju_attribute2                 =>     p_pju_attribute2
3026   ,p_pju_attribute3                 =>     p_pju_attribute3
3027   ,p_pju_attribute4                 =>     p_pju_attribute4
3028   ,p_pju_attribute5                 =>     p_pju_attribute5
3029   ,p_pju_attribute6                 =>     p_pju_attribute6
3030   ,p_pju_attribute7                 =>     p_pju_attribute7
3031   ,p_pju_attribute8                 =>     p_pju_attribute8
3032   ,p_pju_attribute9                 =>     p_pju_attribute9
3033   ,p_pju_attribute10                =>     p_pju_attribute10
3034   ,p_pju_attribute11                =>     p_pju_attribute11
3035   ,p_pju_attribute12                =>     p_pju_attribute12
3036   ,p_pju_attribute13                =>     p_pju_attribute13
3037   ,p_pju_attribute14                =>     p_pju_attribute14
3038   ,p_pju_attribute15                =>     p_pju_attribute15
3039   ,p_pju_attribute16                =>     p_pju_attribute16
3040   ,p_pju_attribute17                =>     p_pju_attribute17
3041   ,p_pju_attribute18                =>     p_pju_attribute18
3042   ,p_pju_attribute19                =>     p_pju_attribute19
3043   ,p_pju_attribute20                =>     p_pju_attribute20
3044   ,p_pju_information_category       =>     p_pju_information_category
3045   ,p_pju_information1               =>     p_pju_information1
3046   ,p_pju_information2               =>     p_pju_information2
3047   ,p_pju_information3               =>     p_pju_information3
3048   ,p_pju_information4               =>     p_pju_information4
3049   ,p_pju_information5               =>     p_pju_information5
3050   ,p_pju_information6               =>     p_pju_information6
3051   ,p_pju_information7               =>     p_pju_information7
3052   ,p_pju_information8               =>     p_pju_information8
3053   ,p_pju_information9               =>     p_pju_information9
3054   ,p_pju_information10              =>     p_pju_information10
3055   ,p_pju_information11              =>     p_pju_information11
3056   ,p_pju_information12              =>     p_pju_information12
3057   ,p_pju_information13              =>     p_pju_information13
3058   ,p_pju_information14              =>     p_pju_information14
3059   ,p_pju_information15              =>     p_pju_information15
3060   ,p_pju_information16              =>     p_pju_information16
3061   ,p_pju_information17              =>     p_pju_information17
3062   ,p_pju_information18              =>     p_pju_information18
3063   ,p_pju_information19              =>     p_pju_information19
3064   ,p_pju_information20              =>     p_pju_information20
3065   ,p_previous_job_usage_id          =>     l_previous_job_usage_id
3066   ,p_object_version_number          =>     l_object_version_number
3067   );
3068   -- Call After Process User Hook
3069   --
3070   begin
3071       hr_previous_employment_bk7.create_previous_job_usage_a
3072        ( p_assignment_id                 =>     p_assignment_id
3073        ,p_previous_employer_id           =>     p_previous_employer_id
3074        ,p_previous_job_id                =>     p_previous_job_id
3075        ,p_start_date                     =>     l_start_date
3076        ,p_end_date                       =>     l_end_date
3077        ,p_period_years                   =>     l_period_years
3078        ,p_period_months                  =>     l_period_months
3079        ,p_period_days                    =>     l_period_days
3080        ,p_pju_attribute_category         =>     p_pju_attribute_category
3081        ,p_pju_attribute1                 =>     p_pju_attribute1
3082        ,p_pju_attribute2                 =>     p_pju_attribute2
3083        ,p_pju_attribute3                 =>     p_pju_attribute3
3084        ,p_pju_attribute4                 =>     p_pju_attribute4
3085        ,p_pju_attribute5                 =>     p_pju_attribute5
3086        ,p_pju_attribute6                 =>     p_pju_attribute6
3087        ,p_pju_attribute7                 =>     p_pju_attribute7
3088        ,p_pju_attribute8                 =>     p_pju_attribute8
3089        ,p_pju_attribute9                 =>     p_pju_attribute9
3090        ,p_pju_attribute10                =>     p_pju_attribute10
3091        ,p_pju_attribute11                =>     p_pju_attribute11
3092        ,p_pju_attribute12                =>     p_pju_attribute12
3093        ,p_pju_attribute13                =>     p_pju_attribute13
3094        ,p_pju_attribute14                =>     p_pju_attribute14
3095        ,p_pju_attribute15                =>     p_pju_attribute15
3096        ,p_pju_attribute16                =>     p_pju_attribute16
3097        ,p_pju_attribute17                =>     p_pju_attribute17
3098        ,p_pju_attribute18                =>     p_pju_attribute18
3099        ,p_pju_attribute19                =>     p_pju_attribute19
3100        ,p_pju_attribute20                =>     p_pju_attribute20
3101        ,p_pju_information_category       =>     p_pju_information_category
3102        ,p_pju_information1               =>     p_pju_information1
3103        ,p_pju_information2               =>     p_pju_information2
3104        ,p_pju_information3               =>     p_pju_information3
3105        ,p_pju_information4               =>     p_pju_information4
3106        ,p_pju_information5               =>     p_pju_information5
3107        ,p_pju_information6               =>     p_pju_information6
3108        ,p_pju_information7               =>     p_pju_information7
3109        ,p_pju_information8               =>     p_pju_information8
3110        ,p_pju_information9               =>     p_pju_information9
3111        ,p_pju_information10              =>     p_pju_information10
3112        ,p_pju_information11              =>     p_pju_information11
3113        ,p_pju_information12              =>     p_pju_information12
3114        ,p_pju_information13              =>     p_pju_information13
3115        ,p_pju_information14              =>     p_pju_information14
3116        ,p_pju_information15              =>     p_pju_information15
3117        ,p_pju_information16              =>     p_pju_information16
3118        ,p_pju_information17              =>     p_pju_information17
3119        ,p_pju_information18              =>     p_pju_information18
3120        ,p_pju_information19              =>     p_pju_information19
3121        ,p_pju_information20              =>     p_pju_information20
3122        ,p_previous_job_usage_id          =>     l_previous_job_usage_id
3123        ,p_object_version_number          =>     l_object_version_number
3124     );
3125   exception
3126     when hr_api.cannot_find_prog_unit then
3127       hr_api.cannot_find_prog_unit_error
3128         (p_module_name => 'create_previous_job_usage'
3129         ,p_hook_type   => 'AP'
3130         );
3131   end;
3132   --
3133   -- When in validation only mode raise the Validate_Enabled exception
3134   --
3135   if p_validate then
3136     raise hr_api.validate_enabled;
3137   end if;
3138   --
3139   -- Set all output arguments
3140   --
3141   p_object_version_number  := l_object_version_number;
3142   p_previous_job_usage_id  := l_previous_job_usage_id;
3143   --
3144   hr_utility.set_location(' Leaving:'||l_proc, 70);
3145 exception
3146   when hr_api.validate_enabled then
3147     --
3148     -- As the Validate_Enabled exception has been raised
3149     -- we must rollback to the savepoint
3150     --
3151     rollback to create_previous_job_usage;
3152     --
3153     -- Only set output warning arguments
3154     -- (Any key or derived arguments must be set to null
3155     -- when validation only mode is being used.)
3156     --
3157     p_previous_job_usage_id    := null;
3158     p_object_version_number    := null;
3159     hr_utility.set_location(' Leaving:'||l_proc, 80);
3160   when others then
3161     --
3162     -- A validation or unexpected error has occured
3163     --
3164     rollback to create_previous_job_usage;
3165     --
3166     -- set in out parameters and set out parameters
3167     --
3168     p_previous_job_usage_id    := null;
3169     p_object_version_number    := null;
3170     hr_utility.set_location(' Leaving:'||l_proc, 90);
3171     raise;
3172 end create_previous_job_usage;
3173 --
3174 -- -----------------------------------------------------------------------
3175 -- |------------------------< update_previous_job_usage >----------------|
3176 -- -----------------------------------------------------------------------
3177 --
3178 procedure update_previous_job_usage
3179   (p_validate                       in boolean
3180   ,p_previous_job_usage_id          in number
3181   ,p_assignment_id                  in number
3182   ,p_previous_employer_id           in number
3183   ,p_previous_job_id                in number
3184   ,p_start_date                     in date     default hr_api.g_date
3185   ,p_end_date                       in date     default hr_api.g_date
3186   ,p_period_years                   in number   default hr_api.g_number
3187   ,p_period_months                  in number   default hr_api.g_number
3188   ,p_period_days                    in number   default hr_api.g_number
3189   ,p_pju_attribute_category         in varchar2 default hr_api.g_varchar2
3190   ,p_pju_attribute1                 in varchar2 default hr_api.g_varchar2
3191   ,p_pju_attribute2                 in varchar2 default hr_api.g_varchar2
3192   ,p_pju_attribute3                 in varchar2 default hr_api.g_varchar2
3193   ,p_pju_attribute4                 in varchar2 default hr_api.g_varchar2
3194   ,p_pju_attribute5                 in varchar2 default hr_api.g_varchar2
3195   ,p_pju_attribute6                 in varchar2 default hr_api.g_varchar2
3196   ,p_pju_attribute7                 in varchar2 default hr_api.g_varchar2
3197   ,p_pju_attribute8                 in varchar2 default hr_api.g_varchar2
3198   ,p_pju_attribute9                 in varchar2 default hr_api.g_varchar2
3199   ,p_pju_attribute10                in varchar2 default hr_api.g_varchar2
3200   ,p_pju_attribute11                in varchar2 default hr_api.g_varchar2
3201   ,p_pju_attribute12                in varchar2 default hr_api.g_varchar2
3202   ,p_pju_attribute13                in varchar2 default hr_api.g_varchar2
3203   ,p_pju_attribute14                in varchar2 default hr_api.g_varchar2
3204   ,p_pju_attribute15                in varchar2 default hr_api.g_varchar2
3205   ,p_pju_attribute16                in varchar2 default hr_api.g_varchar2
3206   ,p_pju_attribute17                in varchar2 default hr_api.g_varchar2
3207   ,p_pju_attribute18                in varchar2 default hr_api.g_varchar2
3208   ,p_pju_attribute19                in varchar2 default hr_api.g_varchar2
3209   ,p_pju_attribute20                in varchar2 default hr_api.g_varchar2
3210   ,p_pju_information_category       in varchar2 default hr_api.g_varchar2
3211   ,p_pju_information1               in varchar2 default hr_api.g_varchar2
3212   ,p_pju_information2               in varchar2 default hr_api.g_varchar2
3213   ,p_pju_information3               in varchar2 default hr_api.g_varchar2
3214   ,p_pju_information4               in varchar2 default hr_api.g_varchar2
3215   ,p_pju_information5               in varchar2 default hr_api.g_varchar2
3216   ,p_pju_information6               in varchar2 default hr_api.g_varchar2
3217   ,p_pju_information7               in varchar2 default hr_api.g_varchar2
3218   ,p_pju_information8               in varchar2 default hr_api.g_varchar2
3219   ,p_pju_information9               in varchar2 default hr_api.g_varchar2
3220   ,p_pju_information10              in varchar2 default hr_api.g_varchar2
3221   ,p_pju_information11              in varchar2 default hr_api.g_varchar2
3222   ,p_pju_information12              in varchar2 default hr_api.g_varchar2
3223   ,p_pju_information13              in varchar2 default hr_api.g_varchar2
3224   ,p_pju_information14              in varchar2 default hr_api.g_varchar2
3225   ,p_pju_information15              in varchar2 default hr_api.g_varchar2
3226   ,p_pju_information16              in varchar2 default hr_api.g_varchar2
3227   ,p_pju_information17              in varchar2 default hr_api.g_varchar2
3228   ,p_pju_information18              in varchar2 default hr_api.g_varchar2
3229   ,p_pju_information19              in varchar2 default hr_api.g_varchar2
3230   ,p_pju_information20              in varchar2 default hr_api.g_varchar2
3231   ,p_object_version_number          in out nocopy number
3232   ) is
3233           --
3234         l_start_date      per_previous_job_usages.start_date%type;
3235         l_end_date        per_previous_job_usages.end_date%type;
3236         --
3237         l_period_years        number;
3238         l_period_months       number;
3239         l_period_days         number;
3240         --
3241         l_proc              varchar2(72)
3242                             := g_package||'update_previous_job_usage';
3243         l_object_version_number
3244                             per_previous_job_usages.object_version_number%type
3245                             := p_object_version_number;
3246    l_ovn per_previous_job_usages.object_version_number%type := p_object_version_number;
3247   begin
3248     hr_utility.set_location('Entering:'|| l_proc, 10);
3249     --
3250     -- Issue a savepoint
3251     --
3252     savepoint update_previous_job_usage;
3253     --
3254     -- Get the default values from previous jobs
3255     --
3256     per_pju_bus.get_previous_job_dates
3257                (p_previous_employer_id  =>  p_previous_employer_id
3258                ,p_previous_job_id       =>  p_previous_job_id
3259                ,p_start_date            =>  l_start_date
3260                ,p_end_date              =>  l_end_date
3261                ,p_period_years          =>  l_period_years
3262                ,p_period_months         =>  l_period_months
3263                ,p_period_days           =>  l_period_days
3264                );
3265     --
3266     -- Truncate the time portion from all IN date parameters
3267     if p_start_date is not null and p_end_date is not null then
3268       l_start_date  :=  trunc(p_start_date);
3269       l_end_date    :=  trunc(p_end_date);
3270     end if;
3271     --
3272     l_period_years  :=  p_period_years;
3273     l_period_months :=  p_period_months;
3274     l_period_days   :=  p_period_days;
3275     --
3276     if p_period_years is null
3277        and p_period_months is null
3278        and p_period_days is null then
3279          per_pem_bus.get_period_values(l_start_date
3280                                       ,l_end_date
3281                                       ,l_period_years
3282                                       ,l_period_months
3283                                       ,l_period_days);
3284     end if;
3285     --
3286     -- Call Before Process User Hook
3287     --
3288   begin
3289         hr_previous_employment_bk8.update_previous_job_usage_b
3290        (p_assignment_id                  =>     p_assignment_id
3291        ,p_previous_employer_id           =>     p_previous_employer_id
3292        ,p_previous_job_id                =>     p_previous_job_id
3293        ,p_start_date                     =>     l_start_date
3294        ,p_end_date                       =>     l_end_date
3295        ,p_period_years                   =>     l_period_years
3296        ,p_period_months                  =>     l_period_months
3297        ,p_period_days                    =>     l_period_days
3298        ,p_pju_attribute_category         =>     p_pju_attribute_category
3299        ,p_pju_attribute1                 =>     p_pju_attribute1
3300        ,p_pju_attribute2                 =>     p_pju_attribute2
3301        ,p_pju_attribute3                 =>     p_pju_attribute3
3302        ,p_pju_attribute4                 =>     p_pju_attribute4
3303        ,p_pju_attribute5                 =>     p_pju_attribute5
3304        ,p_pju_attribute6                 =>     p_pju_attribute6
3305        ,p_pju_attribute7                 =>     p_pju_attribute7
3306        ,p_pju_attribute8                 =>     p_pju_attribute8
3307        ,p_pju_attribute9                 =>     p_pju_attribute9
3308        ,p_pju_attribute10                =>     p_pju_attribute10
3309        ,p_pju_attribute11                =>     p_pju_attribute11
3310        ,p_pju_attribute12                =>     p_pju_attribute12
3311        ,p_pju_attribute13                =>     p_pju_attribute13
3312        ,p_pju_attribute14                =>     p_pju_attribute14
3313        ,p_pju_attribute15                =>     p_pju_attribute15
3314        ,p_pju_attribute16                =>     p_pju_attribute16
3315        ,p_pju_attribute17                =>     p_pju_attribute17
3316        ,p_pju_attribute18                =>     p_pju_attribute18
3317        ,p_pju_attribute19                =>     p_pju_attribute19
3318        ,p_pju_attribute20                =>     p_pju_attribute20
3319        ,p_pju_information_category       =>     p_pju_information_category
3320        ,p_pju_information1               =>     p_pju_information1
3321        ,p_pju_information2               =>     p_pju_information2
3322        ,p_pju_information3               =>     p_pju_information3
3323        ,p_pju_information4               =>     p_pju_information4
3324        ,p_pju_information5               =>     p_pju_information5
3325        ,p_pju_information6               =>     p_pju_information6
3326        ,p_pju_information7               =>     p_pju_information7
3327        ,p_pju_information8               =>     p_pju_information8
3328        ,p_pju_information9               =>     p_pju_information9
3329        ,p_pju_information10              =>     p_pju_information10
3330        ,p_pju_information11              =>     p_pju_information11
3331        ,p_pju_information12              =>     p_pju_information12
3332        ,p_pju_information13              =>     p_pju_information13
3333        ,p_pju_information14              =>     p_pju_information14
3334        ,p_pju_information15              =>     p_pju_information15
3335        ,p_pju_information16              =>     p_pju_information16
3336        ,p_pju_information17              =>     p_pju_information17
3337        ,p_pju_information18              =>     p_pju_information18
3338        ,p_pju_information19              =>     p_pju_information19
3339        ,p_pju_information20              =>     p_pju_information20
3340        ,p_previous_job_usage_id          =>     p_previous_job_usage_id
3341        ,p_object_version_number          =>     l_object_version_number
3342        );
3343     exception
3344       when hr_api.cannot_find_prog_unit then
3345         hr_api.cannot_find_prog_unit_error
3346           (p_module_name => 'update_previous_job_usage'
3347           ,p_hook_type   => 'BP'
3348           );
3349     end;
3350   --
3351   -- Call row handler procedure to update previous job usages
3352   --
3353   per_pju_upd.upd
3354   (p_previous_job_usage_id          =>     p_previous_job_usage_id
3355   ,p_object_version_number          =>     l_object_version_number
3356   ,p_assignment_id                  =>     p_assignment_id
3357   ,p_previous_employer_id           =>     p_previous_employer_id
3358   ,p_previous_job_id                =>     p_previous_job_id
3359   ,p_start_date                     =>     l_start_date
3360   ,p_end_date                       =>     l_end_date
3361   ,p_period_years                   =>     l_period_years
3362   ,p_period_months                  =>     l_period_months
3363   ,p_period_days                    =>     l_period_days
3364   ,p_pju_attribute_category         =>     p_pju_attribute_category
3365   ,p_pju_attribute1                 =>     p_pju_attribute1
3366   ,p_pju_attribute2                 =>     p_pju_attribute2
3367   ,p_pju_attribute3                 =>     p_pju_attribute3
3368   ,p_pju_attribute4                 =>     p_pju_attribute4
3369   ,p_pju_attribute5                 =>     p_pju_attribute5
3370   ,p_pju_attribute6                 =>     p_pju_attribute6
3371   ,p_pju_attribute7                 =>     p_pju_attribute7
3372   ,p_pju_attribute8                 =>     p_pju_attribute8
3373   ,p_pju_attribute9                 =>     p_pju_attribute9
3374   ,p_pju_attribute10                =>     p_pju_attribute10
3375   ,p_pju_attribute11                =>     p_pju_attribute11
3376   ,p_pju_attribute12                =>     p_pju_attribute12
3377   ,p_pju_attribute13                =>     p_pju_attribute13
3378   ,p_pju_attribute14                =>     p_pju_attribute14
3379   ,p_pju_attribute15                =>     p_pju_attribute15
3380   ,p_pju_attribute16                =>     p_pju_attribute16
3381   ,p_pju_attribute17                =>     p_pju_attribute17
3382   ,p_pju_attribute18                =>     p_pju_attribute18
3383   ,p_pju_attribute19                =>     p_pju_attribute19
3384   ,p_pju_attribute20                =>     p_pju_attribute20
3385   ,p_pju_information_category       =>     p_pju_information_category
3386   ,p_pju_information1               =>     p_pju_information1
3387   ,p_pju_information2               =>     p_pju_information2
3388   ,p_pju_information3               =>     p_pju_information3
3389   ,p_pju_information4               =>     p_pju_information4
3390   ,p_pju_information5               =>     p_pju_information5
3391   ,p_pju_information6               =>     p_pju_information6
3392   ,p_pju_information7               =>     p_pju_information7
3393   ,p_pju_information8               =>     p_pju_information8
3394   ,p_pju_information9               =>     p_pju_information9
3395   ,p_pju_information10              =>     p_pju_information10
3396   ,p_pju_information11              =>     p_pju_information11
3397   ,p_pju_information12              =>     p_pju_information12
3398   ,p_pju_information13              =>     p_pju_information13
3399   ,p_pju_information14              =>     p_pju_information14
3400   ,p_pju_information15              =>     p_pju_information15
3401   ,p_pju_information16              =>     p_pju_information16
3402   ,p_pju_information17              =>     p_pju_information17
3403   ,p_pju_information18              =>     p_pju_information18
3404   ,p_pju_information19              =>     p_pju_information19
3405   ,p_pju_information20              =>     p_pju_information20
3406   );
3407   begin
3408        hr_previous_employment_bk8.update_previous_job_usage_a
3409        (p_assignment_id                  =>     p_assignment_id
3410        ,p_previous_employer_id           =>     p_previous_employer_id
3411        ,p_previous_job_id                =>     p_previous_job_id
3412        ,p_start_date                     =>     l_start_date
3413        ,p_end_date                       =>     l_end_date
3414        ,p_period_years                   =>     l_period_years
3415        ,p_period_months                  =>     l_period_months
3416        ,p_period_days                    =>     l_period_days
3417        ,p_pju_attribute_category         =>     p_pju_attribute_category
3418        ,p_pju_attribute1                 =>     p_pju_attribute1
3419        ,p_pju_attribute2                 =>     p_pju_attribute2
3420        ,p_pju_attribute3                 =>     p_pju_attribute3
3421        ,p_pju_attribute4                 =>     p_pju_attribute4
3422        ,p_pju_attribute5                 =>     p_pju_attribute5
3423        ,p_pju_attribute6                 =>     p_pju_attribute6
3424        ,p_pju_attribute7                 =>     p_pju_attribute7
3425        ,p_pju_attribute8                 =>     p_pju_attribute8
3426        ,p_pju_attribute9                 =>     p_pju_attribute9
3427        ,p_pju_attribute10                =>     p_pju_attribute10
3428        ,p_pju_attribute11                =>     p_pju_attribute11
3429        ,p_pju_attribute12                =>     p_pju_attribute12
3430        ,p_pju_attribute13                =>     p_pju_attribute13
3431        ,p_pju_attribute14                =>     p_pju_attribute14
3432        ,p_pju_attribute15                =>     p_pju_attribute15
3433        ,p_pju_attribute16                =>     p_pju_attribute16
3434        ,p_pju_attribute17                =>     p_pju_attribute17
3435        ,p_pju_attribute18                =>     p_pju_attribute18
3436        ,p_pju_attribute19                =>     p_pju_attribute19
3437        ,p_pju_attribute20                =>     p_pju_attribute20
3438        ,p_pju_information_category       =>     p_pju_information_category
3439        ,p_pju_information1               =>     p_pju_information1
3440        ,p_pju_information2               =>     p_pju_information2
3441        ,p_pju_information3               =>     p_pju_information3
3442        ,p_pju_information4               =>     p_pju_information4
3443        ,p_pju_information5               =>     p_pju_information5
3444        ,p_pju_information6               =>     p_pju_information6
3445        ,p_pju_information7               =>     p_pju_information7
3446        ,p_pju_information8               =>     p_pju_information8
3447        ,p_pju_information9               =>     p_pju_information9
3448        ,p_pju_information10              =>     p_pju_information10
3449        ,p_pju_information11              =>     p_pju_information11
3450        ,p_pju_information12              =>     p_pju_information12
3451        ,p_pju_information13              =>     p_pju_information13
3452        ,p_pju_information14              =>     p_pju_information14
3453        ,p_pju_information15              =>     p_pju_information15
3454        ,p_pju_information16              =>     p_pju_information16
3455        ,p_pju_information17              =>     p_pju_information17
3456        ,p_pju_information18              =>     p_pju_information18
3457        ,p_pju_information19              =>     p_pju_information19
3458        ,p_pju_information20              =>     p_pju_information20
3459        ,p_previous_job_usage_id          =>     p_previous_job_usage_id
3460        ,p_object_version_number          =>     l_object_version_number
3461        );
3462     exception
3463     when hr_api.cannot_find_prog_unit then
3464       hr_api.cannot_find_prog_unit_error
3465         (p_module_name
3466             => 'hr_previous_employment_bk8.update_previous_job_usage_a'
3467         ,p_hook_type
3468             => 'AP'
3469         );
3470     end;
3471     --
3472     -- When in validation only mode raise the Validate_Enabled exception
3473     --
3474     if p_validate then
3475       raise hr_api.validate_enabled;
3476     end if;
3477     --
3478     --
3479     -- Set all output arguments
3480     --
3481     p_object_version_number  := l_object_version_number;
3482     --
3483     hr_utility.set_location(' Leaving:'||l_proc, 70);
3484 exception
3485   when hr_api.validate_enabled then
3486     --
3487     -- As the Validate_Enabled exception has been raised
3488     -- we must rollback to the savepoint
3489     --
3490     rollback to update_previous_job_usage;
3491     --
3492     -- Only set output warning arguments
3493     -- (Any key or derived arguments must be set to null
3494     -- when validation only mode is being used.)
3495     hr_utility.set_location(' Leaving:'||l_proc, 80);
3496   when others then
3497     --
3498     -- A validation or unexpected error has occured
3499     --
3500     rollback to update_previous_job_usage;
3501     --
3502     -- set in out parameters and set out parameters
3503     --
3504     p_object_version_number := l_ovn;
3505     hr_utility.set_location(' Leaving:'||l_proc, 90);
3506     raise;
3507 end update_previous_job_usage;
3508 --
3509 -- -----------------------------------------------------------------------
3510 -- |----------------------< delete_previous_job_usage >------------------|
3511 -- -----------------------------------------------------------------------
3512 --
3513 procedure delete_previous_job_usage
3514   (p_validate                       in     boolean
3515   ,p_previous_job_usage_id          in      number
3516   ,p_object_version_number          in out nocopy number
3517   )
3518  is
3519  l_proc            varchar2(72)
3520                    := g_package||'delete_previous_job_usage';
3521  l_previous_job_usage_id
3522                    per_previous_job_usages.previous_job_usage_id%type;
3523  l_object_version_number
3524                    per_previous_job_usages.object_version_number%type
3525                    := p_object_version_number;
3526  l_ovn per_previous_job_usages.object_version_number%type  := p_object_version_number;
3527 begin
3528   hr_utility.set_location('Entering:'|| l_proc, 10);
3529   --
3530   -- Issue a savepoint
3531   --
3532   savepoint delete_previous_job_usage;
3533   --
3534   -- Call Before Process User Hook
3535   --
3536     begin
3537       hr_previous_employment_bk9.delete_previous_job_usage_b
3538       (p_previous_job_usage_id    =>  p_previous_job_usage_id
3539       ,p_object_version_number    =>  l_object_version_number
3540       );
3541   exception
3542         when hr_api.cannot_find_prog_unit then
3543             hr_api.cannot_find_prog_unit_error
3544             (p_module_name => 'delete_previous_job_usage'
3545             ,p_hook_type   => 'BP'
3546             );
3547       end;
3548   --
3549   -- Process Logic
3550   --
3551   -- Call row handler procedure to delete previous job usages
3552   --
3553     per_pju_del.del
3554     (p_previous_job_usage_id    =>  p_previous_job_usage_id
3555     ,p_object_version_number    =>  l_object_version_number
3556     );
3557   --
3558   -- Call After Process User Hook
3559   --
3560       begin
3561          hr_previous_employment_bk9.delete_previous_job_usage_a
3562          (p_previous_job_usage_id    => p_previous_job_usage_id
3563        ,p_object_version_number    => l_object_version_number
3564        );
3565     exception
3566         when hr_api.cannot_find_prog_unit then
3567           hr_api.cannot_find_prog_unit_error
3568             (p_module_name => 'delete_previous_job_usage'
3569             ,p_hook_type   => 'AP'
3570             );
3571     end;
3572   --
3573   -- When in validation only mode raise the Validate_Enabled exception
3574   --
3575   if p_validate then
3576     raise hr_api.validate_enabled;
3577   end if;
3578   --
3579   -- Set all output arguments
3580   --
3581   p_object_version_number  := l_object_version_number;
3582   --
3583   hr_utility.set_location(' Leaving:'||l_proc, 70);
3584   --
3585 exception
3586   when hr_api.validate_enabled then
3587     --
3588     -- As the Validate_Enabled exception has been raised
3589     -- we must rollback to the savepoint
3590     --
3591     rollback to delete_previous_job_usage;
3592     --
3593     -- Only set output warning arguments
3594     -- (Any key or derived arguments must be set to null
3595     -- when validation only mode is being used.)
3596     --
3597     hr_utility.set_location(' Leaving:'||l_proc, 80);
3598   when others then
3599     --
3600     -- A validation or unexpected error has occured
3601     --
3602     rollback to delete_previous_job_usage;
3603     --
3604     -- set in out parameters and set out parameters
3605     --
3606     p_object_version_number := l_ovn;
3607     hr_utility.set_location(' Leaving:'||l_proc, 90);
3608     raise;
3609 end delete_previous_job_usage;
3610 --
3611 end hr_previous_employment_api;