[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;