DBA Data[Home] [Help]

PACKAGE BODY: APPS.IRC_IAV_INS

Source


1 Package Body irc_iav_ins as
2 /* $Header: iriavrhi.pkb 120.1 2005/12/22 21:07:08 gganesan noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  irc_iav_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_agency_vacancy_id_i  number   default null;
14 --
15 -- ----------------------------------------------------------------------------
16 -- |------------------------< set_base_key_value >----------------------------|
17 -- ----------------------------------------------------------------------------
18 procedure set_base_key_value
19   (p_agency_vacancy_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   irc_iav_ins.g_agency_vacancy_id_i := p_agency_vacancy_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 irc_iav_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: irc_agency_vacancies
88   --
89   insert into irc_agency_vacancies
90       (agency_vacancy_id
91       ,agency_id
92       ,vacancy_id
93       ,start_date
94       ,end_date
95       ,max_allowed_applicants
96       ,manage_applicants_allowed
97       ,attribute_category
98       ,attribute1
99       ,attribute2
100       ,attribute3
101       ,attribute4
102       ,attribute5
103       ,attribute6
104       ,attribute7
105       ,attribute8
106       ,attribute9
107       ,attribute10
108       ,attribute11
109       ,attribute12
110       ,attribute13
111       ,attribute14
112       ,attribute15
113       ,attribute16
114       ,attribute17
115       ,attribute18
116       ,attribute19
117       ,attribute20
118       ,attribute21
119       ,attribute22
120       ,attribute23
121       ,attribute24
122       ,attribute25
123       ,attribute26
124       ,attribute27
125       ,attribute28
126       ,attribute29
127       ,attribute30
128       ,object_version_number
129       )
130   Values
131     (p_rec.agency_vacancy_id
132     ,p_rec.agency_id
133     ,p_rec.vacancy_id
134     ,p_rec.start_date
135     ,p_rec.end_date
136     ,p_rec.max_allowed_applicants
137     ,p_rec.manage_applicants_allowed
138     ,p_rec.attribute_category
139     ,p_rec.attribute1
140     ,p_rec.attribute2
141     ,p_rec.attribute3
142     ,p_rec.attribute4
143     ,p_rec.attribute5
144     ,p_rec.attribute6
145     ,p_rec.attribute7
146     ,p_rec.attribute8
147     ,p_rec.attribute9
148     ,p_rec.attribute10
149     ,p_rec.attribute11
150     ,p_rec.attribute12
151     ,p_rec.attribute13
152     ,p_rec.attribute14
153     ,p_rec.attribute15
154     ,p_rec.attribute16
155     ,p_rec.attribute17
156     ,p_rec.attribute18
157     ,p_rec.attribute19
158     ,p_rec.attribute20
159     ,p_rec.attribute21
160     ,p_rec.attribute22
161     ,p_rec.attribute23
162     ,p_rec.attribute24
163     ,p_rec.attribute25
164     ,p_rec.attribute26
165     ,p_rec.attribute27
166     ,p_rec.attribute28
167     ,p_rec.attribute29
168     ,p_rec.attribute30
169     ,p_rec.object_version_number
170     );
171   --
172   --
173   --
174   hr_utility.set_location(' Leaving:'||l_proc, 10);
175 Exception
176   When hr_api.check_integrity_violated Then
177     -- A check constraint has been violated
178     --
179     irc_iav_shd.constraint_error
180       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
181   When hr_api.parent_integrity_violated Then
182     -- Parent integrity has been violated
183     --
184     irc_iav_shd.constraint_error
185       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
186   When hr_api.unique_integrity_violated Then
187     -- Unique integrity has been violated
188     --
189     irc_iav_shd.constraint_error
190       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
191   When Others Then
192     --
193     Raise;
194 End insert_dml;
195 --
196 -- ----------------------------------------------------------------------------
197 -- |------------------------------< pre_insert >------------------------------|
198 -- ----------------------------------------------------------------------------
199 -- {Start Of Comments}
200 --
201 -- Description:
202 --   This private procedure contains any processing which is required before
203 --   the insert dml. Presently, if the entity has a corresponding primary
204 --   key which is maintained by an associating sequence, the primary key for
205 --   the entity will be populated with the next sequence value in
206 --   preparation for the insert dml.
207 --
208 -- Prerequisites:
209 --   This is an internal procedure which is called from the ins procedure.
210 --
211 -- In Parameters:
212 --   A Pl/Sql record structure.
213 --
214 -- Post Success:
215 --   Processing continues.
216 --
217 -- Post Failure:
218 --   If an error has occurred, an error message and exception will be raised
219 --   but not handled.
220 --
221 -- Developer Implementation Notes:
222 --   Any pre-processing required before the insert dml is issued should be
223 --   coded within this procedure. As stated above, a good example is the
224 --   generation of a primary key number via a corresponding sequence.
225 --   It is important to note that any 3rd party maintenance should be reviewed
226 --   before placing in this procedure.
227 --
228 -- Access Status:
229 --   Internal Row Handler Use Only.
230 --
231 -- {End Of Comments}
232 -- ----------------------------------------------------------------------------
233 Procedure pre_insert
234   (p_rec  in out nocopy irc_iav_shd.g_rec_type
235   ) is
236 --
237   Cursor C_Sel1 is select irc_agency_vacancies_s.nextval from sys.dual;
238 --
239   Cursor C_Sel2 is
240     Select null
241       from irc_agency_vacancies
242      where agency_vacancy_id =
243              irc_iav_ins.g_agency_vacancy_id_i;
244 --
245   l_proc   varchar2(72) := g_package||'pre_insert';
246   l_exists varchar2(1);
247 --
248 Begin
249   hr_utility.set_location('Entering:'||l_proc, 5);
250   --
251   If (irc_iav_ins.g_agency_vacancy_id_i is not null) Then
252     --
253     -- Verify registered primary key values not already in use
254     --
255     Open C_Sel2;
256     Fetch C_Sel2 into l_exists;
257     If C_Sel2%found Then
258        Close C_Sel2;
259        --
260        -- The primary key values are already in use.
261        --
262        fnd_message.set_name('PER','PER_289391_KEY_ALREADY_USED');
263        fnd_message.set_token('TABLE_NAME','irc_agency_vacancies');
264        fnd_message.raise_error;
265     End If;
266     Close C_Sel2;
267     --
268     -- Use registered key values and clear globals
269     --
270     p_rec.agency_vacancy_id :=
271       irc_iav_ins.g_agency_vacancy_id_i;
272     irc_iav_ins.g_agency_vacancy_id_i := null;
273   Else
274     --
275     -- No registerd key values, so select the next sequence number
276     --
277     --
278     -- Select the next sequence number
279     --
280     Open C_Sel1;
281     Fetch C_Sel1 Into p_rec.agency_vacancy_id;
282     Close C_Sel1;
283   End If;
284   --
285   hr_utility.set_location(' Leaving:'||l_proc, 10);
286 End pre_insert;
287 --
288 -- ----------------------------------------------------------------------------
289 -- |-----------------------------< post_insert >------------------------------|
290 -- ----------------------------------------------------------------------------
291 -- {Start Of Comments}
292 --
293 -- Description:
294 --   This private procedure contains any processing which is required after
295 --   the insert dml.
296 --
297 -- Prerequisites:
298 --   This is an internal procedure which is called from the ins procedure.
299 --
300 -- In Parameters:
301 --   A Pl/Sql record structre.
302 --
303 -- Post Success:
304 --   Processing continues.
305 --
306 -- Post Failure:
307 --   If an error has occurred, an error message and exception will be raised
308 --   but not handled.
309 --
310 -- Developer Implementation Notes:
311 --   Any post-processing required after the insert dml is issued should be
312 --   coded within this procedure. It is important to note that any 3rd party
313 --   maintenance should be reviewed before placing in this procedure.
314 --
315 -- Access Status:
316 --   Internal Row Handler Use Only.
317 --
318 -- {End Of Comments}
319 -- ----------------------------------------------------------------------------
320 Procedure post_insert
321   (p_rec                          in irc_iav_shd.g_rec_type
322   ) is
323 --
324   l_proc  varchar2(72) := g_package||'post_insert';
325 --
326 Begin
327   hr_utility.set_location('Entering:'||l_proc, 5);
328   begin
329     --
330     irc_iav_rki.after_insert
331       (p_agency_vacancy_id
332       => p_rec.agency_vacancy_id
333       ,p_agency_id
334       => p_rec.agency_id
335       ,p_vacancy_id
336       => p_rec.vacancy_id
337       ,p_start_date
338       => p_rec.start_date
339       ,p_end_date
340       => p_rec.end_date
341       ,p_max_allowed_applicants
342       => p_rec.max_allowed_applicants
343       ,p_manage_applicants_allowed
344       => p_rec.manage_applicants_allowed
345       ,p_attribute_category
346       => p_rec.attribute_category
347       ,p_attribute1
348       => p_rec.attribute1
349       ,p_attribute2
350       => p_rec.attribute2
351       ,p_attribute3
352       => p_rec.attribute3
353       ,p_attribute4
354       => p_rec.attribute4
355       ,p_attribute5
356       => p_rec.attribute5
357       ,p_attribute6
358       => p_rec.attribute6
359       ,p_attribute7
360       => p_rec.attribute7
361       ,p_attribute8
362       => p_rec.attribute8
363       ,p_attribute9
364       => p_rec.attribute9
365       ,p_attribute10
366       => p_rec.attribute10
367       ,p_attribute11
368       => p_rec.attribute11
369       ,p_attribute12
370       => p_rec.attribute12
371       ,p_attribute13
372       => p_rec.attribute13
373       ,p_attribute14
374       => p_rec.attribute14
375       ,p_attribute15
376       => p_rec.attribute15
377       ,p_attribute16
378       => p_rec.attribute16
379       ,p_attribute17
380       => p_rec.attribute17
381       ,p_attribute18
382       => p_rec.attribute18
383       ,p_attribute19
384       => p_rec.attribute19
385       ,p_attribute20
386       => p_rec.attribute20
387       ,p_attribute21
388       => p_rec.attribute21
389       ,p_attribute22
390       => p_rec.attribute22
391       ,p_attribute23
392       => p_rec.attribute23
393       ,p_attribute24
394       => p_rec.attribute24
395       ,p_attribute25
396       => p_rec.attribute25
397       ,p_attribute26
398       => p_rec.attribute26
399       ,p_attribute27
400       => p_rec.attribute27
401       ,p_attribute28
402       => p_rec.attribute28
403       ,p_attribute29
404       => p_rec.attribute29
405       ,p_attribute30
406       => p_rec.attribute30
407       ,p_object_version_number
408       => p_rec.object_version_number
409       );
410     --
411   exception
412     --
413     when hr_api.cannot_find_prog_unit then
414       --
415       hr_api.cannot_find_prog_unit_error
416         (p_module_name => 'IRC_AGENCY_VACANCIES'
417         ,p_hook_type   => 'AI');
418       --
419   end;
420   --
421   hr_utility.set_location(' Leaving:'||l_proc, 10);
422 End post_insert;
423 --
424 -- ----------------------------------------------------------------------------
425 -- |---------------------------------< ins >----------------------------------|
426 -- ----------------------------------------------------------------------------
427 Procedure ins
428   (p_rec                          in out nocopy irc_iav_shd.g_rec_type
429   ) is
430 --
431   l_proc  varchar2(72) := g_package||'ins';
432 --
433 Begin
434   hr_utility.set_location('Entering:'||l_proc, 5);
435   --
436   -- Call the supporting insert validate operations
437   --
438   irc_iav_bus.insert_validate
439      (p_rec
440      );
441   --
442   -- Call to raise any errors on multi-message list
443   hr_multi_message.end_validation_set;
444   --
445   -- Call the supporting pre-insert operation
446   --
447   irc_iav_ins.pre_insert(p_rec);
448   --
449   -- Insert the row
450   --
451   irc_iav_ins.insert_dml(p_rec);
452   --
453   -- Call the supporting post-insert operation
454   --
455   irc_iav_ins.post_insert
456      (p_rec
457      );
458   --
459   -- Call to raise any errors on multi-message list
460   hr_multi_message.end_validation_set;
461   --
462   hr_utility.set_location('Leaving:'||l_proc, 20);
463 end ins;
464 --
465 -- ----------------------------------------------------------------------------
466 -- |---------------------------------< ins >----------------------------------|
467 -- ----------------------------------------------------------------------------
468 Procedure ins
469   (p_agency_id                      in     number
470   ,p_vacancy_id                     in     number
471   ,p_max_allowed_applicants         in     number
472   ,p_manage_applicants_allowed      in     varchar2
473   ,p_start_date                     in     date     default null
474   ,p_end_date                       in     date     default null
475   ,p_attribute_category             in     varchar2 default null
476   ,p_attribute1                     in     varchar2 default null
477   ,p_attribute2                     in     varchar2 default null
478   ,p_attribute3                     in     varchar2 default null
479   ,p_attribute4                     in     varchar2 default null
480   ,p_attribute5                     in     varchar2 default null
481   ,p_attribute6                     in     varchar2 default null
482   ,p_attribute7                     in     varchar2 default null
483   ,p_attribute8                     in     varchar2 default null
484   ,p_attribute9                     in     varchar2 default null
485   ,p_attribute10                    in     varchar2 default null
486   ,p_attribute11                    in     varchar2 default null
487   ,p_attribute12                    in     varchar2 default null
488   ,p_attribute13                    in     varchar2 default null
489   ,p_attribute14                    in     varchar2 default null
490   ,p_attribute15                    in     varchar2 default null
491   ,p_attribute16                    in     varchar2 default null
492   ,p_attribute17                    in     varchar2 default null
493   ,p_attribute18                    in     varchar2 default null
494   ,p_attribute19                    in     varchar2 default null
495   ,p_attribute20                    in     varchar2 default null
496   ,p_attribute21                    in     varchar2 default null
497   ,p_attribute22                    in     varchar2 default null
498   ,p_attribute23                    in     varchar2 default null
499   ,p_attribute24                    in     varchar2 default null
500   ,p_attribute25                    in     varchar2 default null
501   ,p_attribute26                    in     varchar2 default null
502   ,p_attribute27                    in     varchar2 default null
503   ,p_attribute28                    in     varchar2 default null
504   ,p_attribute29                    in     varchar2 default null
505   ,p_attribute30                    in     varchar2 default null
506   ,p_agency_vacancy_id                 out nocopy number
507   ,p_object_version_number             out nocopy number
508   ) is
509 --
510   l_rec   irc_iav_shd.g_rec_type;
511   l_proc  varchar2(72) := g_package||'ins';
512 --
513 Begin
514   hr_utility.set_location('Entering:'||l_proc, 5);
515   --
516   -- Call conversion function to turn arguments into the
517   -- p_rec structure.
518   --
519   l_rec :=
520   irc_iav_shd.convert_args
521     (null
522     ,p_agency_id
523     ,p_vacancy_id
524     ,p_start_date
525     ,p_end_date
526     ,p_max_allowed_applicants
527     ,p_manage_applicants_allowed
528     ,p_attribute_category
529     ,p_attribute1
530     ,p_attribute2
531     ,p_attribute3
532     ,p_attribute4
533     ,p_attribute5
534     ,p_attribute6
535     ,p_attribute7
536     ,p_attribute8
537     ,p_attribute9
538     ,p_attribute10
539     ,p_attribute11
540     ,p_attribute12
541     ,p_attribute13
542     ,p_attribute14
543     ,p_attribute15
544     ,p_attribute16
545     ,p_attribute17
546     ,p_attribute18
547     ,p_attribute19
548     ,p_attribute20
549     ,p_attribute21
550     ,p_attribute22
551     ,p_attribute23
552     ,p_attribute24
553     ,p_attribute25
554     ,p_attribute26
555     ,p_attribute27
556     ,p_attribute28
557     ,p_attribute29
558     ,p_attribute30
559     ,null
560     );
561   --
562   -- Having converted the arguments into the irc_iav_rec
563   -- plsql record structure we call the corresponding record business process.
564   --
565   irc_iav_ins.ins
566      (l_rec
567      );
568   --
569   -- As the primary key argument(s)
570   -- are specified as an OUT's we must set these values.
571   --
572   p_agency_vacancy_id := l_rec.agency_vacancy_id;
573   p_object_version_number := l_rec.object_version_number;
574   --
575   hr_utility.set_location(' Leaving:'||l_proc, 10);
576 End ins;
577 --
578 end irc_iav_ins;