DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_PJO_INS

Source


1 Package Body per_pjo_ins as
2 /* $Header: pepjorhi.pkb 120.1 2008/07/08 13:06:55 brsinha noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  per_pjo_ins.';  -- Global package name
9 --
10 -- The following global variables are only to be used by
11 -- the set_base_key_value and pre_insert procedures.
12 --
13 g_previous_job_id_i  number   default null;
14 --
15 -- ----------------------------------------------------------------------------
16 -- |------------------------< set_base_key_value >----------------------------|
17 -- ----------------------------------------------------------------------------
18 procedure set_base_key_value
19   (p_previous_job_id  in  number) is
20 --
21   l_proc       varchar2(72) := g_package||'set_base_key_value';
22 --
23 Begin
24   hr_utility.set_location('Entering:'||l_proc, 10);
25   --
26   per_pjo_ins.g_previous_job_id_i := p_previous_job_id;
27   --
28   hr_utility.set_location(' Leaving:'||l_proc, 20);
29 End set_base_key_value;
30 --
31 --
32 -- ----------------------------------------------------------------------------
33 -- |------------------------------< insert_dml >------------------------------|
34 -- ----------------------------------------------------------------------------
35 -- {Start Of Comments}
36 --
37 -- Description:
38 --   This procedure controls the actual dml insert logic. The processing of
39 --   this procedure are as follows:
40 --   1) Initialise the object_version_number to 1 if the object_version_number
41 --      is defined as an attribute for this entity.
42 --   2) To set and unset the g_api_dml status as required (as we are about to
43 --      perform dml).
44 --   3) To insert the row into the schema.
45 --   4) To trap any constraint violations that may have occurred.
46 --   5) To raise any other errors.
47 --
48 -- Prerequisites:
49 --   This is an internal private procedure which must be called from the ins
50 --   procedure and must have all mandatory attributes set (except the
51 --   object_version_number which is initialised within this procedure).
52 --
53 -- In Parameters:
54 --   A Pl/Sql record structre.
55 --
56 -- Post Success:
57 --   The specified row will be inserted into the schema.
58 --
59 -- Post Failure:
60 --   On the insert dml failure it is important to note that we always reset the
61 --   g_api_dml status to false.
62 --   If a check, unique or parent integrity constraint violation is raised the
63 --   constraint_error procedure will be called.
64 --   If any other error is reported, the error will be raised after the
65 --   g_api_dml status is reset.
66 --
67 -- Developer Implementation Notes:
68 --   None.
69 --
70 -- Access Status:
71 --   Internal Row Handler Use Only.
72 --
73 -- {End Of Comments}
74 -- ----------------------------------------------------------------------------
75 Procedure insert_dml
76   (p_rec in out nocopy per_pjo_shd.g_rec_type
77   ) is
78 --
79   l_proc  varchar2(72) := g_package||'insert_dml';
80 --
81 Begin
82   hr_utility.set_location('Entering:'||l_proc, 5);
83   p_rec.object_version_number := 1;  -- Initialise the object version
84   --
85   --
86   --
87   -- Insert the row into: per_previous_jobs
88   --
89   insert into per_previous_jobs
90       (previous_job_id
91       ,previous_employer_id
92       ,start_date
93       ,end_date
94       ,period_years
95       ,period_days
96       ,job_name
97       ,employment_category
98       ,description
99       ,pjo_attribute_category
100       ,pjo_attribute1
101       ,pjo_attribute2
102       ,pjo_attribute3
103       ,pjo_attribute4
104       ,pjo_attribute5
105       ,pjo_attribute6
106       ,pjo_attribute7
107       ,pjo_attribute8
108       ,pjo_attribute9
109       ,pjo_attribute10
110       ,pjo_attribute11
111       ,pjo_attribute12
112       ,pjo_attribute13
113       ,pjo_attribute14
114       ,pjo_attribute15
115       ,pjo_attribute16
116       ,pjo_attribute17
117       ,pjo_attribute18
118       ,pjo_attribute19
119       ,pjo_attribute20
120       ,pjo_attribute21
121       ,pjo_attribute22
122       ,pjo_attribute23
123       ,pjo_attribute24
124       ,pjo_attribute25
125       ,pjo_attribute26
126       ,pjo_attribute27
127       ,pjo_attribute28
128       ,pjo_attribute29
129       ,pjo_attribute30
130       ,pjo_information_category
131       ,pjo_information1
132       ,pjo_information2
133       ,pjo_information3
134       ,pjo_information4
135       ,pjo_information5
136       ,pjo_information6
137       ,pjo_information7
138       ,pjo_information8
139       ,pjo_information9
140       ,pjo_information10
141       ,pjo_information11
142       ,pjo_information12
143       ,pjo_information13
144       ,pjo_information14
145       ,pjo_information15
146       ,pjo_information16
147       ,pjo_information17
148       ,pjo_information18
149       ,pjo_information19
150       ,pjo_information20
151       ,pjo_information21
152       ,pjo_information22
153       ,pjo_information23
154       ,pjo_information24
155       ,pjo_information25
156       ,pjo_information26
157       ,pjo_information27
158       ,pjo_information28
159       ,pjo_information29
160       ,pjo_information30
161       ,object_version_number
162       ,all_assignments
163       ,period_months
164       )
165   Values
166     (p_rec.previous_job_id
167     ,p_rec.previous_employer_id
168     ,p_rec.start_date
169     ,p_rec.end_date
170     ,p_rec.period_years
171     ,p_rec.period_days
172     ,p_rec.job_name
173     ,p_rec.employment_category
174     ,p_rec.description
175     ,p_rec.pjo_attribute_category
176     ,p_rec.pjo_attribute1
177     ,p_rec.pjo_attribute2
178     ,p_rec.pjo_attribute3
179     ,p_rec.pjo_attribute4
180     ,p_rec.pjo_attribute5
181     ,p_rec.pjo_attribute6
182     ,p_rec.pjo_attribute7
183     ,p_rec.pjo_attribute8
184     ,p_rec.pjo_attribute9
185     ,p_rec.pjo_attribute10
186     ,p_rec.pjo_attribute11
187     ,p_rec.pjo_attribute12
188     ,p_rec.pjo_attribute13
189     ,p_rec.pjo_attribute14
190     ,p_rec.pjo_attribute15
191     ,p_rec.pjo_attribute16
192     ,p_rec.pjo_attribute17
193     ,p_rec.pjo_attribute18
194     ,p_rec.pjo_attribute19
195     ,p_rec.pjo_attribute20
196     ,p_rec.pjo_attribute21
197     ,p_rec.pjo_attribute22
198     ,p_rec.pjo_attribute23
199     ,p_rec.pjo_attribute24
200     ,p_rec.pjo_attribute25
201     ,p_rec.pjo_attribute26
202     ,p_rec.pjo_attribute27
203     ,p_rec.pjo_attribute28
204     ,p_rec.pjo_attribute29
205     ,p_rec.pjo_attribute30
206     ,p_rec.pjo_information_category
207     ,p_rec.pjo_information1
208     ,p_rec.pjo_information2
209     ,p_rec.pjo_information3
210     ,p_rec.pjo_information4
211     ,p_rec.pjo_information5
212     ,p_rec.pjo_information6
213     ,p_rec.pjo_information7
214     ,p_rec.pjo_information8
215     ,p_rec.pjo_information9
216     ,p_rec.pjo_information10
217     ,p_rec.pjo_information11
218     ,p_rec.pjo_information12
219     ,p_rec.pjo_information13
220     ,p_rec.pjo_information14
221     ,p_rec.pjo_information15
222     ,p_rec.pjo_information16
223     ,p_rec.pjo_information17
224     ,p_rec.pjo_information18
225     ,p_rec.pjo_information19
226     ,p_rec.pjo_information20
227     ,p_rec.pjo_information21
228     ,p_rec.pjo_information22
229     ,p_rec.pjo_information23
230     ,p_rec.pjo_information24
231     ,p_rec.pjo_information25
232     ,p_rec.pjo_information26
233     ,p_rec.pjo_information27
234     ,p_rec.pjo_information28
235     ,p_rec.pjo_information29
236     ,p_rec.pjo_information30
237     ,p_rec.object_version_number
238     ,p_rec.all_assignments
239     ,p_rec.period_months
240     );
241   --
242   --
243   --
244   hr_utility.set_location(' Leaving:'||l_proc, 10);
245 Exception
246   When hr_api.check_integrity_violated Then
247     -- A check constraint has been violated
248     --
249     per_pjo_shd.constraint_error
250       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
251   When hr_api.parent_integrity_violated Then
252     -- Parent integrity has been violated
253     --
254     per_pjo_shd.constraint_error
255       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
256   When hr_api.unique_integrity_violated Then
257     -- Unique integrity has been violated
258     --
259     per_pjo_shd.constraint_error
260       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
261   When Others Then
262     --
263     Raise;
264 End insert_dml;
265 --
266 -- ----------------------------------------------------------------------------
267 -- |------------------------------< pre_insert >------------------------------|
268 -- ----------------------------------------------------------------------------
269 -- {Start Of Comments}
270 --
271 -- Description:
272 --   This private procedure contains any processing which is required before
273 --   the insert dml. Presently, if the entity has a corresponding primary
274 --   key which is maintained by an associating sequence, the primary key for
275 --   the entity will be populated with the next sequence value in
276 --   preparation for the insert dml.
277 --
278 -- Prerequisites:
279 --   This is an internal procedure which is called from the ins procedure.
280 --
281 -- In Parameters:
282 --   A Pl/Sql record structure.
283 --
284 -- Post Success:
285 --   Processing continues.
286 --
287 -- Post Failure:
288 --   If an error has occurred, an error message and exception will be raised
289 --   but not handled.
290 --
291 -- Developer Implementation Notes:
292 --   Any pre-processing required before the insert dml is issued should be
293 --   coded within this procedure. As stated above, a good example is the
294 --   generation of a primary key number via a corresponding sequence.
295 --   It is important to note that any 3rd party maintenance should be reviewed
296 --   before placing in this procedure.
297 --
298 -- Access Status:
299 --   Internal Row Handler Use Only.
300 --
301 -- {End Of Comments}
302 -- ----------------------------------------------------------------------------
303 Procedure pre_insert
304   (p_rec  in out nocopy per_pjo_shd.g_rec_type
305   ) is
306 --
307   Cursor C_Sel1 is select per_previous_jobs_s.nextval from sys.dual;
308 --
309   Cursor C_Sel2 is
310     Select null
311       from per_previous_jobs
312      where previous_job_id =
313              per_pjo_ins.g_previous_job_id_i;
314 --
315   l_proc   varchar2(72) := g_package||'pre_insert';
316   l_exists varchar2(1);
317 --
318 Begin
319   hr_utility.set_location('Entering:'||l_proc, 5);
320   --
321   If (per_pjo_ins.g_previous_job_id_i is not null) Then
322     --
323     -- Verify registered primary key values not already in use
324     --
325     Open C_Sel2;
326     Fetch C_Sel2 into l_exists;
327     If C_Sel2%found Then
328        Close C_Sel2;
329        --
330        -- The primary key values are already in use.
331        --
332        fnd_message.set_name('PER','PER_289391_KEY_ALREADY_USED');
333        fnd_message.set_token('TABLE_NAME','per_previous_jobs');
334        fnd_message.raise_error;
335     End If;
336     Close C_Sel2;
337     --
338     -- Use registered key values and clear globals
339     --
340     p_rec.previous_job_id :=
341       per_pjo_ins.g_previous_job_id_i;
342     per_pjo_ins.g_previous_job_id_i := null;
343   Else
344     --
345     -- No registerd key values, so select the next sequence number
346     --
347     --
348     -- Select the next sequence number
349     --
350     Open C_Sel1;
351     Fetch C_Sel1 Into p_rec.previous_job_id;
352     Close C_Sel1;
353   End If;
354   --
355   hr_utility.set_location(' Leaving:'||l_proc, 10);
356 End pre_insert;
357 --
358 -- ----------------------------------------------------------------------------
359 -- |-----------------------------< post_insert >------------------------------|
360 -- ----------------------------------------------------------------------------
361 -- {Start Of Comments}
362 --
363 -- Description:
364 --   This private procedure contains any processing which is required after
365 --   the insert dml.
366 --
367 -- Prerequisites:
368 --   This is an internal procedure which is called from the ins procedure.
369 --
370 -- In Parameters:
371 --   A Pl/Sql record structre.
372 --
373 -- Post Success:
374 --   Processing continues.
375 --
376 -- Post Failure:
377 --   If an error has occurred, an error message and exception will be raised
378 --   but not handled.
379 --
380 -- Developer Implementation Notes:
381 --   Any post-processing required after the insert dml is issued should be
382 --   coded within this procedure. It is important to note that any 3rd party
383 --   maintenance should be reviewed before placing in this procedure.
384 --
385 -- Access Status:
386 --   Internal Row Handler Use Only.
387 --
388 -- {End Of Comments}
389 -- ----------------------------------------------------------------------------
390 Procedure post_insert
391   (p_effective_date               in date
392   ,p_rec                          in per_pjo_shd.g_rec_type
393   ) is
394 --
395   l_proc  varchar2(72) := g_package||'post_insert';
396 --
397 Begin
398   hr_utility.set_location('Entering:'||l_proc, 5);
399   begin
400     --
401     per_pjo_rki.after_insert
402       (p_effective_date              => p_effective_date
403       ,p_previous_job_id
404       => p_rec.previous_job_id
405       ,p_previous_employer_id
406       => p_rec.previous_employer_id
407       ,p_start_date
408       => p_rec.start_date
409       ,p_end_date
410       => p_rec.end_date
411       ,p_period_years
412       => p_rec.period_years
413       ,p_period_days
414       => p_rec.period_days
415       ,p_job_name
416       => p_rec.job_name
417       ,p_employment_category
418       => p_rec.employment_category
419       ,p_description
420       => p_rec.description
421       ,p_pjo_attribute_category
422       => p_rec.pjo_attribute_category
423       ,p_pjo_attribute1
424       => p_rec.pjo_attribute1
425       ,p_pjo_attribute2
426       => p_rec.pjo_attribute2
427       ,p_pjo_attribute3
428       => p_rec.pjo_attribute3
429       ,p_pjo_attribute4
430       => p_rec.pjo_attribute4
431       ,p_pjo_attribute5
432       => p_rec.pjo_attribute5
433       ,p_pjo_attribute6
434       => p_rec.pjo_attribute6
435       ,p_pjo_attribute7
436       => p_rec.pjo_attribute7
437       ,p_pjo_attribute8
438       => p_rec.pjo_attribute8
439       ,p_pjo_attribute9
440       => p_rec.pjo_attribute9
441       ,p_pjo_attribute10
442       => p_rec.pjo_attribute10
443       ,p_pjo_attribute11
444       => p_rec.pjo_attribute11
445       ,p_pjo_attribute12
446       => p_rec.pjo_attribute12
447       ,p_pjo_attribute13
448       => p_rec.pjo_attribute13
449       ,p_pjo_attribute14
450       => p_rec.pjo_attribute14
451       ,p_pjo_attribute15
452       => p_rec.pjo_attribute15
453       ,p_pjo_attribute16
454       => p_rec.pjo_attribute16
455       ,p_pjo_attribute17
456       => p_rec.pjo_attribute17
457       ,p_pjo_attribute18
458       => p_rec.pjo_attribute18
459       ,p_pjo_attribute19
460       => p_rec.pjo_attribute19
461       ,p_pjo_attribute20
462       => p_rec.pjo_attribute20
463       ,p_pjo_attribute21
464       => p_rec.pjo_attribute21
465       ,p_pjo_attribute22
466       => p_rec.pjo_attribute22
467       ,p_pjo_attribute23
468       => p_rec.pjo_attribute23
469       ,p_pjo_attribute24
470       => p_rec.pjo_attribute24
471       ,p_pjo_attribute25
472       => p_rec.pjo_attribute25
473       ,p_pjo_attribute26
474       => p_rec.pjo_attribute26
475       ,p_pjo_attribute27
476       => p_rec.pjo_attribute27
477       ,p_pjo_attribute28
478       => p_rec.pjo_attribute28
479       ,p_pjo_attribute29
480       => p_rec.pjo_attribute29
481       ,p_pjo_attribute30
482       => p_rec.pjo_attribute30
483       ,p_pjo_information_category
484       => p_rec.pjo_information_category
485       ,p_pjo_information1
486       => p_rec.pjo_information1
487       ,p_pjo_information2
488       => p_rec.pjo_information2
489       ,p_pjo_information3
490       => p_rec.pjo_information3
491       ,p_pjo_information4
492       => p_rec.pjo_information4
493       ,p_pjo_information5
494       => p_rec.pjo_information5
495       ,p_pjo_information6
496       => p_rec.pjo_information6
497       ,p_pjo_information7
498       => p_rec.pjo_information7
499       ,p_pjo_information8
500       => p_rec.pjo_information8
501       ,p_pjo_information9
502       => p_rec.pjo_information9
503       ,p_pjo_information10
504       => p_rec.pjo_information10
505       ,p_pjo_information11
506       => p_rec.pjo_information11
507       ,p_pjo_information12
508       => p_rec.pjo_information12
509       ,p_pjo_information13
510       => p_rec.pjo_information13
511       ,p_pjo_information14
512       => p_rec.pjo_information14
513       ,p_pjo_information15
514       => p_rec.pjo_information15
515       ,p_pjo_information16
516       => p_rec.pjo_information16
517       ,p_pjo_information17
518       => p_rec.pjo_information17
519       ,p_pjo_information18
520       => p_rec.pjo_information18
521       ,p_pjo_information19
522       => p_rec.pjo_information19
523       ,p_pjo_information20
524       => p_rec.pjo_information20
525       ,p_pjo_information21
526       => p_rec.pjo_information21
527       ,p_pjo_information22
528       => p_rec.pjo_information22
529       ,p_pjo_information23
530       => p_rec.pjo_information23
531       ,p_pjo_information24
532       => p_rec.pjo_information24
533       ,p_pjo_information25
534       => p_rec.pjo_information25
535       ,p_pjo_information26
536       => p_rec.pjo_information26
537       ,p_pjo_information27
538       => p_rec.pjo_information27
539       ,p_pjo_information28
540       => p_rec.pjo_information28
541       ,p_pjo_information29
542       => p_rec.pjo_information29
543       ,p_pjo_information30
544       => p_rec.pjo_information30
545       ,p_object_version_number
546       => p_rec.object_version_number
547       ,p_all_assignments
548       => p_rec.all_assignments
549       ,p_period_months
550       => p_rec.period_months
551       );
552     --
553   exception
554     --
555     when hr_api.cannot_find_prog_unit then
556       --
557       hr_api.cannot_find_prog_unit_error
558         (p_module_name => 'PER_PREVIOUS_JOBS'
559         ,p_hook_type   => 'AI');
560       --
561   end;
562   --
563   hr_utility.set_location(' Leaving:'||l_proc, 10);
564 End post_insert;
565 --
566 -- ----------------------------------------------------------------------------
567 -- |---------------------------------< ins >----------------------------------|
568 -- ----------------------------------------------------------------------------
569 Procedure ins
570   (p_effective_date               in date
571   ,p_rec                          in out nocopy per_pjo_shd.g_rec_type
572   ) is
573 --
574   l_proc  varchar2(72) := g_package||'ins';
575 --
576 Begin
577   hr_utility.set_location('Entering:'||l_proc, 5);
578   --
579   -- Call the supporting insert validate operations
580   --
581   per_pjo_bus.insert_validate
582      (p_effective_date
583      ,p_rec
584      );
585   --
586   -- Call to raise any errors on multi-message list
587   hr_multi_message.end_validation_set;
588   -- Call the supporting pre-insert operation
589   --
590   per_pjo_ins.pre_insert(p_rec);
591   --
592   -- Insert the row
593   --
594   per_pjo_ins.insert_dml(p_rec);
595   --
596   -- Call the supporting post-insert operation
597   --
598   per_pjo_ins.post_insert
599      (p_effective_date
600      ,p_rec
601      );
602   --
603   -- Call to raise any errors on multi-message list
604   hr_multi_message.end_validation_set;
605   hr_utility.set_location('Leaving:'||l_proc, 20);
606 end ins;
607 --
608 -- ----------------------------------------------------------------------------
609 -- |---------------------------------< ins >----------------------------------|
610 -- ----------------------------------------------------------------------------
611 Procedure ins
612   (p_effective_date               in     date
613   ,p_previous_employer_id           in     number
614   ,p_start_date                     in     date     default null
615   ,p_end_date                       in     date     default null
616   ,p_period_years                   in     number   default null
617   ,p_period_days                    in     number   default null
618   ,p_job_name                       in     varchar2 default null
619   ,p_employment_category            in     varchar2 default null
620   ,p_description                    in     varchar2 default null
621   ,p_pjo_attribute_category         in     varchar2 default null
622   ,p_pjo_attribute1                 in     varchar2 default null
623   ,p_pjo_attribute2                 in     varchar2 default null
624   ,p_pjo_attribute3                 in     varchar2 default null
625   ,p_pjo_attribute4                 in     varchar2 default null
626   ,p_pjo_attribute5                 in     varchar2 default null
627   ,p_pjo_attribute6                 in     varchar2 default null
628   ,p_pjo_attribute7                 in     varchar2 default null
629   ,p_pjo_attribute8                 in     varchar2 default null
630   ,p_pjo_attribute9                 in     varchar2 default null
631   ,p_pjo_attribute10                in     varchar2 default null
632   ,p_pjo_attribute11                in     varchar2 default null
633   ,p_pjo_attribute12                in     varchar2 default null
634   ,p_pjo_attribute13                in     varchar2 default null
635   ,p_pjo_attribute14                in     varchar2 default null
636   ,p_pjo_attribute15                in     varchar2 default null
637   ,p_pjo_attribute16                in     varchar2 default null
638   ,p_pjo_attribute17                in     varchar2 default null
639   ,p_pjo_attribute18                in     varchar2 default null
640   ,p_pjo_attribute19                in     varchar2 default null
641   ,p_pjo_attribute20                in     varchar2 default null
642   ,p_pjo_attribute21                in     varchar2 default null
643   ,p_pjo_attribute22                in     varchar2 default null
644   ,p_pjo_attribute23                in     varchar2 default null
645   ,p_pjo_attribute24                in     varchar2 default null
646   ,p_pjo_attribute25                in     varchar2 default null
647   ,p_pjo_attribute26                in     varchar2 default null
648   ,p_pjo_attribute27                in     varchar2 default null
649   ,p_pjo_attribute28                in     varchar2 default null
650   ,p_pjo_attribute29                in     varchar2 default null
651   ,p_pjo_attribute30                in     varchar2 default null
652   ,p_pjo_information_category       in     varchar2 default null
653   ,p_pjo_information1               in     varchar2 default null
654   ,p_pjo_information2               in     varchar2 default null
655   ,p_pjo_information3               in     varchar2 default null
656   ,p_pjo_information4               in     varchar2 default null
657   ,p_pjo_information5               in     varchar2 default null
658   ,p_pjo_information6               in     varchar2 default null
659   ,p_pjo_information7               in     varchar2 default null
660   ,p_pjo_information8               in     varchar2 default null
661   ,p_pjo_information9               in     varchar2 default null
662   ,p_pjo_information10              in     varchar2 default null
663   ,p_pjo_information11              in     varchar2 default null
664   ,p_pjo_information12              in     varchar2 default null
665   ,p_pjo_information13              in     varchar2 default null
666   ,p_pjo_information14              in     varchar2 default null
667   ,p_pjo_information15              in     varchar2 default null
668   ,p_pjo_information16              in     varchar2 default null
669   ,p_pjo_information17              in     varchar2 default null
670   ,p_pjo_information18              in     varchar2 default null
671   ,p_pjo_information19              in     varchar2 default null
672   ,p_pjo_information20              in     varchar2 default null
673   ,p_pjo_information21              in     varchar2 default null
674   ,p_pjo_information22              in     varchar2 default null
675   ,p_pjo_information23              in     varchar2 default null
676   ,p_pjo_information24              in     varchar2 default null
677   ,p_pjo_information25              in     varchar2 default null
678   ,p_pjo_information26              in     varchar2 default null
679   ,p_pjo_information27              in     varchar2 default null
680   ,p_pjo_information28              in     varchar2 default null
681   ,p_pjo_information29              in     varchar2 default null
682   ,p_pjo_information30              in     varchar2 default null
683   ,p_all_assignments                in     varchar2 default null
684   ,p_period_months                  in     number   default null
685   ,p_previous_job_id                   out nocopy number
686   ,p_object_version_number             out nocopy number
687   ) is
688 --
689   l_rec   per_pjo_shd.g_rec_type;
690   l_proc  varchar2(72) := g_package||'ins';
691 --
692 Begin
693   hr_utility.set_location('Entering:'||l_proc, 5);
694   --
695   -- Call conversion function to turn arguments into the
696   -- p_rec structure.
697   --
698   l_rec :=
699   per_pjo_shd.convert_args
700     (null
701     ,p_previous_employer_id
702     ,p_start_date
703     ,p_end_date
704     ,p_period_years
705     ,p_period_days
706     ,p_job_name
707     ,p_employment_category
708     ,p_description
709     ,p_pjo_attribute_category
710     ,p_pjo_attribute1
711     ,p_pjo_attribute2
712     ,p_pjo_attribute3
713     ,p_pjo_attribute4
714     ,p_pjo_attribute5
715     ,p_pjo_attribute6
716     ,p_pjo_attribute7
717     ,p_pjo_attribute8
718     ,p_pjo_attribute9
719     ,p_pjo_attribute10
720     ,p_pjo_attribute11
721     ,p_pjo_attribute12
722     ,p_pjo_attribute13
723     ,p_pjo_attribute14
724     ,p_pjo_attribute15
725     ,p_pjo_attribute16
726     ,p_pjo_attribute17
727     ,p_pjo_attribute18
728     ,p_pjo_attribute19
729     ,p_pjo_attribute20
730     ,p_pjo_attribute21
731     ,p_pjo_attribute22
732     ,p_pjo_attribute23
733     ,p_pjo_attribute24
734     ,p_pjo_attribute25
735     ,p_pjo_attribute26
736     ,p_pjo_attribute27
737     ,p_pjo_attribute28
738     ,p_pjo_attribute29
739     ,p_pjo_attribute30
740     ,p_pjo_information_category
741     ,p_pjo_information1
742     ,p_pjo_information2
743     ,p_pjo_information3
744     ,p_pjo_information4
745     ,p_pjo_information5
746     ,p_pjo_information6
747     ,p_pjo_information7
748     ,p_pjo_information8
749     ,p_pjo_information9
750     ,p_pjo_information10
751     ,p_pjo_information11
752     ,p_pjo_information12
753     ,p_pjo_information13
754     ,p_pjo_information14
755     ,p_pjo_information15
756     ,p_pjo_information16
757     ,p_pjo_information17
758     ,p_pjo_information18
759     ,p_pjo_information19
760     ,p_pjo_information20
761     ,p_pjo_information21
762     ,p_pjo_information22
763     ,p_pjo_information23
764     ,p_pjo_information24
765     ,p_pjo_information25
766     ,p_pjo_information26
767     ,p_pjo_information27
768     ,p_pjo_information28
769     ,p_pjo_information29
770     ,p_pjo_information30
771     ,null
772     ,p_all_assignments
773     ,p_period_months
774     );
775   --
776   -- Having converted the arguments into the per_pjo_rec
777   -- plsql record structure we call the corresponding record business process.
778   --
779   per_pjo_ins.ins
780      (p_effective_date
781      ,l_rec
782      );
783   --
784   -- As the primary key argument(s)
785   -- are specified as an OUT's we must set these values.
786   --
787   p_previous_job_id := l_rec.previous_job_id;
788   p_object_version_number := l_rec.object_version_number;
789   --
790   hr_utility.set_location(' Leaving:'||l_proc, 10);
791 End ins;
792 --
793 end per_pjo_ins;