DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_ROL_INS

Source


1 Package Body per_rol_ins as
2 /* $Header: perolrhi.pkb 120.0 2005/05/31 18:34:51 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  per_rol_ins.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------------< insert_dml >------------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the actual dml insert logic. The processing of
17 --   this procedure are as follows:
18 --   1) Initialise the object_version_number to 1 if the object_version_number
19 --      is defined as an attribute for this entity.
20 --   2) To set and unset the g_api_dml status as required (as we are about to
21 --      perform dml).
22 --   3) To insert the row into the schema.
23 --   4) To trap any constraint violations that may have occurred.
24 --   5) To raise any other errors.
25 --
26 -- Prerequisites:
27 --   This is an internal private procedure which must be called from the ins
28 --   procedure and must have all mandatory attributes set (except the
29 --   object_version_number which is initialised within this procedure).
30 --
31 -- In Parameters:
32 --   A Pl/Sql record structre.
33 --
34 -- Post Success:
35 --   The specified row will be inserted into the schema.
36 --
37 -- Post Failure:
38 --   On the insert dml failure it is important to note that we always reset the
39 --   g_api_dml status to false.
40 --   If a check, unique or parent integrity constraint violation is raised the
41 --   constraint_error procedure will be called.
42 --   If any other error is reported, the error will be raised after the
43 --   g_api_dml status is reset.
44 --
45 -- Developer Implementation Notes:
46 --   None.
47 --
48 -- Access Status:
49 --   Internal Row Handler Use Only.
50 --
51 -- {End Of Comments}
52 -- ----------------------------------------------------------------------------
53 Procedure insert_dml
54   (p_rec in out nocopy per_rol_shd.g_rec_type
55   ) is
56 --
57   l_proc  varchar2(72) := g_package||'insert_dml';
58 --
59 Begin
60   hr_utility.set_location('Entering:'||l_proc, 5);
61   p_rec.object_version_number := 1;  -- Initialise the object version
62   --
63   --
64   -- Insert the row into: per_roles
65   --
66   insert into per_roles
67       (role_id
68       ,job_id
69       ,job_group_id
70       ,person_id
71       ,organization_id
72       ,start_date
73       ,end_date
74       ,confidential_date
75       ,emp_rights_flag
76       ,end_of_rights_date
77       ,primary_contact_flag
78       ,attribute_category
79       ,attribute1
80       ,attribute2
81       ,attribute3
82       ,attribute4
83       ,attribute5
84       ,attribute6
85       ,attribute7
86       ,attribute8
87       ,attribute9
88       ,attribute10
89       ,attribute11
90       ,attribute12
91       ,attribute13
92       ,attribute14
93       ,attribute15
94       ,attribute16
95       ,attribute17
96       ,attribute18
97       ,attribute19
98       ,attribute20
99       ,role_information_category
100       ,role_information1
101       ,role_information2
102       ,role_information3
103       ,role_information4
104       ,role_information5
105       ,role_information6
106       ,role_information7
107       ,role_information8
108       ,role_information9
109       ,role_information10
110       ,role_information11
111       ,role_information12
112       ,role_information13
113       ,role_information14
114       ,role_information15
115       ,role_information16
116       ,role_information17
117       ,role_information18
118       ,role_information19
119       ,role_information20
120       ,object_version_number
121       )
122   Values
123     (p_rec.role_id
124     ,p_rec.job_id
125     ,p_rec.job_group_id
126     ,p_rec.person_id
127     ,p_rec.organization_id
128     ,p_rec.start_date
129     ,p_rec.end_date
130     ,p_rec.confidential_date
131     ,p_rec.emp_rights_flag
132     ,p_rec.end_of_rights_date
133     ,p_rec.primary_contact_flag
134     ,p_rec.attribute_category
135     ,p_rec.attribute1
136     ,p_rec.attribute2
137     ,p_rec.attribute3
138     ,p_rec.attribute4
139     ,p_rec.attribute5
140     ,p_rec.attribute6
141     ,p_rec.attribute7
142     ,p_rec.attribute8
143     ,p_rec.attribute9
144     ,p_rec.attribute10
145     ,p_rec.attribute11
146     ,p_rec.attribute12
147     ,p_rec.attribute13
148     ,p_rec.attribute14
149     ,p_rec.attribute15
150     ,p_rec.attribute16
151     ,p_rec.attribute17
152     ,p_rec.attribute18
153     ,p_rec.attribute19
154     ,p_rec.attribute20
155     ,p_rec.role_information_category
156     ,p_rec.role_information1
157     ,p_rec.role_information2
158     ,p_rec.role_information3
159     ,p_rec.role_information4
160     ,p_rec.role_information5
161     ,p_rec.role_information6
162     ,p_rec.role_information7
163     ,p_rec.role_information8
164     ,p_rec.role_information9
165     ,p_rec.role_information10
166     ,p_rec.role_information11
167     ,p_rec.role_information12
168     ,p_rec.role_information13
169     ,p_rec.role_information14
170     ,p_rec.role_information15
171     ,p_rec.role_information16
172     ,p_rec.role_information17
173     ,p_rec.role_information18
174     ,p_rec.role_information19
175     ,p_rec.role_information20
176     ,p_rec.object_version_number
177     );
178   --
179   --
180   --
181   hr_utility.set_location(' Leaving:'||l_proc, 10);
182 Exception
183   When hr_api.check_integrity_violated Then
184     -- A check constraint has been violated
185     --
186     per_rol_shd.constraint_error
187       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
188   When hr_api.parent_integrity_violated Then
189     -- Parent integrity has been violated
190     --
191     per_rol_shd.constraint_error
192       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
193   When hr_api.unique_integrity_violated Then
194     -- Unique integrity has been violated
195     --
196     per_rol_shd.constraint_error
197       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
198   When Others Then
199     --
200     Raise;
201 End insert_dml;
202 --
203 -- ----------------------------------------------------------------------------
204 -- |------------------------------< pre_insert >------------------------------|
205 -- ----------------------------------------------------------------------------
206 -- {Start Of Comments}
207 --
208 -- Description:
209 --   This private procedure contains any processing which is required before
210 --   the insert dml. Presently, if the entity has a corresponding primary
211 --   key which is maintained by an associating sequence, the primary key for
212 --   the entity will be populated with the next sequence value in
213 --   preparation for the insert dml.
214 --
215 -- Prerequisites:
216 --   This is an internal procedure which is called from the ins procedure.
217 --
218 -- In Parameters:
219 --   A Pl/Sql record structre.
220 --
221 -- Post Success:
222 --   Processing continues.
223 --
224 -- Post Failure:
225 --   If an error has occurred, an error message and exception will be raised
226 --   but not handled.
227 --
228 -- Developer Implementation Notes:
229 --   Any pre-processing required before the insert dml is issued should be
230 --   coded within this procedure. As stated above, a good example is the
231 --   generation of a primary key number via a corresponding sequence.
232 --   It is important to note that any 3rd party maintenance should be reviewed
233 --   before placing in this procedure.
234 --
235 -- Access Status:
236 --   Internal Row Handler Use Only.
237 --
238 -- {End Of Comments}
239 -- ----------------------------------------------------------------------------
240 Procedure pre_insert
241   (p_rec  in out nocopy per_rol_shd.g_rec_type
242   ) is
243 --
244   l_proc  varchar2(72) := g_package||'pre_insert';
245 --
246   Cursor C_Sel1 is select per_roles_s.nextval from sys.dual;
247 --
248 Begin
249   hr_utility.set_location('Entering:'||l_proc, 5);
250   --
251   --
252   -- Select the next sequence number
253   --
254   Open C_Sel1;
255   Fetch C_Sel1 Into p_rec.role_id;
256   Close C_Sel1;
257   --
258   hr_utility.set_location(' Leaving:'||l_proc, 10);
259 End pre_insert;
260 --
261 -- ----------------------------------------------------------------------------
262 -- |-----------------------------< post_insert >------------------------------|
263 -- ----------------------------------------------------------------------------
264 -- {Start Of Comments}
265 --
266 -- Description:
267 --   This private procedure contains any processing which is required after the
268 --   insert dml.
269 --
270 -- Prerequisites:
271 --   This is an internal procedure which is called from the ins procedure.
272 --
273 -- In Parameters:
274 --   A Pl/Sql record structre.
275 --
276 -- Post Success:
277 --   Processing continues.
278 --
279 -- Post Failure:
280 --   If an error has occurred, an error message and exception will be raised
281 --   but not handled.
282 --
283 -- Developer Implementation Notes:
284 --   Any post-processing required after the insert dml is issued should be
285 --   coded within this procedure. It is important to note that any 3rd party
286 --   maintenance should be reviewed before placing in this procedure.
287 --
288 -- Access Status:
289 --   Internal Row Handler Use Only.
290 --
291 -- {End Of Comments}
292 -- ----------------------------------------------------------------------------
293 Procedure post_insert
294   (p_effective_date               in date
295   ,p_rec                          in per_rol_shd.g_rec_type
296   ) is
297 --
298   l_proc  varchar2(72) := g_package||'post_insert';
299 --
300 Begin
301   hr_utility.set_location('Entering:'||l_proc, 5);
302   begin
303     --
304     per_rol_rki.after_insert
305       (p_effective_date              => p_effective_date
306       ,p_role_id
307       => p_rec.role_id
308     ,p_job_id
309       => p_rec.job_id
310       ,p_job_group_id
311       => p_rec.job_group_id
312       ,p_person_id
313       => p_rec.person_id
314       ,p_organization_id
315       => p_rec.organization_id
316       ,p_start_date
317       => p_rec.start_date
318       ,p_end_date
319       => p_rec.end_date
320       ,p_confidential_date
321       => p_rec.confidential_date
322       ,p_emp_rights_flag
323       => p_rec.emp_rights_flag
324       ,p_end_of_rights_date
325       => p_rec.end_of_rights_date
326       ,p_primary_contact_flag
327       => p_rec.primary_contact_flag
328       ,p_attribute_category
329       => p_rec.attribute_category
330       ,p_attribute1
331       => p_rec.attribute1
332       ,p_attribute2
333       => p_rec.attribute2
334       ,p_attribute3
335       => p_rec.attribute3
336       ,p_attribute4
337       => p_rec.attribute4
338       ,p_attribute5
339       => p_rec.attribute5
340       ,p_attribute6
341       => p_rec.attribute6
342       ,p_attribute7
343       => p_rec.attribute7
344       ,p_attribute8
345       => p_rec.attribute8
346       ,p_attribute9
347       => p_rec.attribute9
348       ,p_attribute10
349       => p_rec.attribute10
350       ,p_attribute11
351       => p_rec.attribute11
352       ,p_attribute12
353       => p_rec.attribute12
354       ,p_attribute13
355       => p_rec.attribute13
356       ,p_attribute14
357       => p_rec.attribute14
358       ,p_attribute15
359       => p_rec.attribute15
360       ,p_attribute16
361       => p_rec.attribute16
362       ,p_attribute17
363       => p_rec.attribute17
364       ,p_attribute18
365       => p_rec.attribute18
366       ,p_attribute19
367       => p_rec.attribute19
368       ,p_attribute20
369       => p_rec.attribute20
370       ,p_role_information_category
371       => p_rec.role_information_category
372       ,p_role_information1
373       => p_rec.role_information1
374       ,p_role_information2
375       => p_rec.role_information2
376       ,p_role_information3
377       => p_rec.role_information3
378       ,p_role_information4
379       => p_rec.role_information4
380       ,p_role_information5
381       => p_rec.role_information5
382       ,p_role_information6
383       => p_rec.role_information6
384       ,p_role_information7
385       => p_rec.role_information7
386       ,p_role_information8
387       => p_rec.role_information8
388       ,p_role_information9
389       => p_rec.role_information9
390       ,p_role_information10
391       => p_rec.role_information10
392       ,p_role_information11
393       => p_rec.role_information11
394       ,p_role_information12
395       => p_rec.role_information12
396       ,p_role_information13
397       => p_rec.role_information13
398       ,p_role_information14
399       => p_rec.role_information14
400       ,p_role_information15
401       => p_rec.role_information15
402       ,p_role_information16
403       => p_rec.role_information16
404       ,p_role_information17
405       => p_rec.role_information17
406       ,p_role_information18
407       => p_rec.role_information18
408       ,p_role_information19
409       => p_rec.role_information19
410       ,p_role_information20
411       => p_rec.role_information20
412       ,p_object_version_number
413       => p_rec.object_version_number
414       );
415     --
416   exception
417     --
418     when hr_api.cannot_find_prog_unit then
419       --
420       hr_api.cannot_find_prog_unit_error
421         (p_module_name => 'PER_ROLES'
422         ,p_hook_type   => 'AI');
423       --
424   end;
425   --
426   hr_utility.set_location(' Leaving:'||l_proc, 10);
427 End post_insert;
428 --
429 -- ----------------------------------------------------------------------------
430 -- |---------------------------------< ins >----------------------------------|
431 -- ----------------------------------------------------------------------------
432 Procedure ins
433   (p_effective_date               in date
434   ,p_rec                          in out nocopy per_rol_shd.g_rec_type
435   ) is
436 --
437   l_proc  varchar2(72) := g_package||'ins';
438 --
439 Begin
440   hr_utility.set_location('Entering:'||l_proc, 5);
441   --
442   -- Call the supporting insert validate operations
443   --
444   per_rol_bus.insert_validate
445      (p_effective_date
446      ,p_rec
447      );
448   --
449   -- Call the supporting pre-insert operation
450   --
451   per_rol_ins.pre_insert(p_rec);
452   --
453   -- Insert the row
454   --
455   per_rol_ins.insert_dml(p_rec);
456   --
457   -- Call the supporting post-insert operation
458   --
459   per_rol_ins.post_insert
460      (p_effective_date
461      ,p_rec
462      );
463   --
464   hr_utility.set_location('Leaving:'||l_proc, 20);
465 end ins;
466 --
467 -- ----------------------------------------------------------------------------
468 -- |---------------------------------< ins >----------------------------------|
469 -- ----------------------------------------------------------------------------
470 Procedure ins
471   (p_effective_date               in     date
472   ,p_job_id                         in     number
473   ,p_job_group_id                   in     number
474   ,p_person_id                      in     number
475   ,p_organization_id                in     number
476   ,p_start_date                     in     date     default null
477   ,p_end_date                       in     date     default null
478   ,p_confidential_date              in     date     default null
479   ,p_emp_rights_flag                in     varchar2 default null
480   ,p_end_of_rights_date             in     date     default null
481   ,p_primary_contact_flag           in     varchar2 default null
482   ,p_attribute_category             in     varchar2 default null
483   ,p_attribute1                     in     varchar2 default null
484   ,p_attribute2                     in     varchar2 default null
485   ,p_attribute3                     in     varchar2 default null
486   ,p_attribute4                     in     varchar2 default null
487   ,p_attribute5                     in     varchar2 default null
488   ,p_attribute6                     in     varchar2 default null
489   ,p_attribute7                     in     varchar2 default null
490   ,p_attribute8                     in     varchar2 default null
491   ,p_attribute9                     in     varchar2 default null
492   ,p_attribute10                    in     varchar2 default null
493   ,p_attribute11                    in     varchar2 default null
494   ,p_attribute12                    in     varchar2 default null
495   ,p_attribute13                    in     varchar2 default null
496   ,p_attribute14                    in     varchar2 default null
497   ,p_attribute15                    in     varchar2 default null
498   ,p_attribute16                    in     varchar2 default null
499   ,p_attribute17                    in     varchar2 default null
500   ,p_attribute18                    in     varchar2 default null
501   ,p_attribute19                    in     varchar2 default null
502   ,p_attribute20                    in     varchar2 default null
503   ,p_role_information_category      in     varchar2 default null
504   ,p_role_information1              in     varchar2 default null
505   ,p_role_information2              in     varchar2 default null
506   ,p_role_information3              in     varchar2 default null
507   ,p_role_information4              in     varchar2 default null
508   ,p_role_information5              in     varchar2 default null
509   ,p_role_information6              in     varchar2 default null
510   ,p_role_information7              in     varchar2 default null
511   ,p_role_information8              in     varchar2 default null
512   ,p_role_information9              in     varchar2 default null
513   ,p_role_information10             in     varchar2 default null
514   ,p_role_information11             in     varchar2 default null
515   ,p_role_information12             in     varchar2 default null
516   ,p_role_information13             in     varchar2 default null
517   ,p_role_information14             in     varchar2 default null
518   ,p_role_information15             in     varchar2 default null
519   ,p_role_information16             in     varchar2 default null
520   ,p_role_information17             in     varchar2 default null
521   ,p_role_information18             in     varchar2 default null
522   ,p_role_information19             in     varchar2 default null
523   ,p_role_information20             in     varchar2 default null
524   ,p_role_id                           out nocopy number
525   ,p_object_version_number             out nocopy number
526   ) is
527 --
528   l_rec    per_rol_shd.g_rec_type;
529   l_proc  varchar2(72) := g_package||'ins';
530 --
531 Begin
532   hr_utility.set_location('Entering:'||l_proc, 5);
533   --
534   -- Call conversion function to turn arguments into the
535   -- p_rec structure.
536   --
537   l_rec :=
538   per_rol_shd.convert_args
539     (null
540     ,p_job_id
541     ,p_job_group_id
542     ,p_person_id
543     ,p_organization_id
544     ,p_start_date
545     ,p_end_date
546     ,p_confidential_date
547     ,p_emp_rights_flag
548     ,p_end_of_rights_date
549     ,p_primary_contact_flag
550     ,p_attribute_category
551     ,p_attribute1
552     ,p_attribute2
553     ,p_attribute3
554     ,p_attribute4
555     ,p_attribute5
556     ,p_attribute6
557     ,p_attribute7
558     ,p_attribute8
559     ,p_attribute9
560     ,p_attribute10
561     ,p_attribute11
562     ,p_attribute12
563     ,p_attribute13
564     ,p_attribute14
565     ,p_attribute15
566     ,p_attribute16
567     ,p_attribute17
568     ,p_attribute18
569     ,p_attribute19
570     ,p_attribute20
571     ,p_role_information_category
572     ,p_role_information1
573     ,p_role_information2
574     ,p_role_information3
575     ,p_role_information4
576     ,p_role_information5
577     ,p_role_information6
578     ,p_role_information7
579     ,p_role_information8
580     ,p_role_information9
581     ,p_role_information10
582     ,p_role_information11
583     ,p_role_information12
584     ,p_role_information13
585     ,p_role_information14
586     ,p_role_information15
587     ,p_role_information16
588     ,p_role_information17
589     ,p_role_information18
590     ,p_role_information19
591     ,p_role_information20
592     ,null
593     ,null -- fix 1370960; passing null for old_end_date
594     );
595   --
596   -- Having converted the arguments into the per_rol_rec
597   -- plsql record structure we call the corresponding record business process.
598   --
599   per_rol_ins.ins
600      (p_effective_date
601      ,l_rec
602      );
603   --
604   -- As the primary key argument(s)
605   -- are specified as an OUT's we must set these values.
606   --
607   p_role_id := l_rec.role_id;
608   p_object_version_number := l_rec.object_version_number;
609   --
610   hr_utility.set_location(' Leaving:'||l_proc, 10);
611 End ins;
612 --
613 end per_rol_ins;