DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_EPS_INS

Source


1 Package Body ben_eps_ins as
2 /* $Header: beepsrhi.pkb 120.1 2006/02/21 04:03:44 sturlapa noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  ben_eps_ins.';  -- Global package name
9 -- The following global variables are only to be used by
10 -- the set_base_key_value and pre_insert procedures.
11 --
12 g_elig_pstn_prte_id_i  number   default null;
13 --
14 -- ----------------------------------------------------------------------------
15 -- |------------------------< set_base_key_value >----------------------------|
16 -- ----------------------------------------------------------------------------
17 procedure set_base_key_value
18   (p_elig_pstn_prte_id  in  number) is
19 --
20   l_proc       varchar2(72) := g_package||'set_base_key_value';
21 --
22 Begin
23   hr_utility.set_location('Entering:'||l_proc, 10);
24   --
25   ben_eps_ins.g_elig_pstn_prte_id_i := p_elig_pstn_prte_id;
26   --
27   hr_utility.set_location(' Leaving:'||l_proc, 20);
28 End set_base_key_value;
29 --
30 
31 --
32 -- ----------------------------------------------------------------------------
33 -- |----------------------------< dt_insert_dml >-----------------------------|
34 -- ----------------------------------------------------------------------------
35 -- {Start Of Comments}
36 --
37 -- Description:
38 --   This procedure controls the actual dml insert logic for datetrack. The
39 --   functions of this procedure are as follows:
40 --   1) Get the object_version_number.
41 --   2) To set the effective start and end dates to the corresponding
42 --      validation start and end dates. Also, the object version number
43 --      record attribute is set.
44 --   3) To set and unset the g_api_dml status as required (as we are about to
45 --      perform dml).
46 --   4) To insert the row into the schema with the derived effective start
47 --      and end dates and the object version number.
48 --   5) To trap any constraint violations that may have occurred.
49 --   6) To raise any other errors.
50 --
51 -- Prerequisites:
52 --   This is an internal private procedure which must be called from the
53 --   insert_dml and pre_update (logic permitting) procedure and must have
54 --   all mandatory arguments set.
55 --
56 -- In Parameters:
57 --   A Pl/Sql record structre.
58 --
59 -- Post Success:
60 --   The specified row will be inserted into the schema.
61 --
62 -- Post Failure:
63 --   On the insert dml failure it is important to note that we always reset the
64 --   g_api_dml status to false.
65 --   If a check or unique integrity constraint violation is raised the
66 --   constraint_error procedure will be called.
67 --   If any other error is reported, the error will be raised after the
68 --   g_api_dml status is reset.
69 --
70 -- Developer Implementation Notes:
71 --   This is an internal datetrack maintenance procedure which should
72 --   not be modified in anyway.
73 --
74 -- Access Status:
75 --   Internal Row Handler Use Only.
76 --
77 -- {End Of Comments}
78 -- ----------------------------------------------------------------------------
79 Procedure dt_insert_dml
80 	(p_rec 			 in out nocopy ben_eps_shd.g_rec_type,
81 	 p_effective_date	 in	date,
82 	 p_datetrack_mode	 in	varchar2,
83 	 p_validation_start_date in	date,
84 	 p_validation_end_date	 in	date) is
85 --
86 -- Cursor to select 'old' created AOL who column values
87 --
88   Cursor C_Sel1 Is
89     select t.created_by,
90            t.creation_date
91     from   ben_elig_pstn_prte_f t
92     where  t.elig_pstn_prte_id       = p_rec.elig_pstn_prte_id
93     and    t.effective_start_date =
94              ben_eps_shd.g_old_rec.effective_start_date
95     and    t.effective_end_date   = (p_validation_start_date - 1);
96 --
97   l_proc		varchar2(72) := g_package||'dt_insert_dml';
98   l_created_by          ben_elig_pstn_prte_f.created_by%TYPE;
99   l_creation_date       ben_elig_pstn_prte_f.creation_date%TYPE;
100   l_last_update_date   	ben_elig_pstn_prte_f.last_update_date%TYPE;
101   l_last_updated_by     ben_elig_pstn_prte_f.last_updated_by%TYPE;
102   l_last_update_login   ben_elig_pstn_prte_f.last_update_login%TYPE;
103 --
104 Begin
105   hr_utility.set_location('Entering:'||l_proc, 5);
106   --
107   -- Get the object version number for the insert
108   --
109   p_rec.object_version_number :=
110     dt_api.get_object_version_number
111 	(p_base_table_name => 'ben_elig_pstn_prte_f',
112 	 p_base_key_column => 'elig_pstn_prte_id',
113 	 p_base_key_value  => p_rec.elig_pstn_prte_id);
114   --
115   -- Set the effective start and end dates to the corresponding
116   -- validation start and end dates
117   --
118   p_rec.effective_start_date := p_validation_start_date;
119   p_rec.effective_end_date   := p_validation_end_date;
120   --
121   -- If the datetrack_mode is not INSERT then we must populate the WHO
122   -- columns with the 'old' creation values and 'new' updated values.
123   --
124   If (p_datetrack_mode <> 'INSERT') then
125     hr_utility.set_location(l_proc, 10);
126     --
127     -- Select the 'old' created values
128     --
129     Open C_Sel1;
130     Fetch C_Sel1 Into l_created_by, l_creation_date;
131     If C_Sel1%notfound Then
132       --
133       -- The previous 'old' created row has not been found. We need
134       -- to error as an internal datetrack problem exists.
135       --
136       Close C_Sel1;
137       fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
138       fnd_message.set_token('PROCEDURE', l_proc);
139       fnd_message.set_token('STEP','10');
140       fnd_message.raise_error;
141     End If;
142     Close C_Sel1;
143     --
144     -- Set the AOL updated WHO values
145     --
146     l_last_update_date   := sysdate;
147     l_last_updated_by    := fnd_global.user_id;
148     l_last_update_login  := fnd_global.login_id;
149   End If;
150   --
151   ben_eps_shd.g_api_dml := true;  -- Set the api dml status
152   --
153   -- Insert the row into: ben_elig_pstn_prte_f
154   --
155   insert into ben_elig_pstn_prte_f
156   (	elig_pstn_prte_id,
157 	effective_start_date,
158 	effective_end_date,
159 	excld_flag,
160 	ordr_num,
161 	position_id,
162 	eligy_prfl_id,
163 	business_group_id,
164 	eps_attribute_category,
165 	eps_attribute1,
166 	eps_attribute2,
167 	eps_attribute3,
168 	eps_attribute4,
169 	eps_attribute5,
170 	eps_attribute6,
171 	eps_attribute7,
172 	eps_attribute8,
173 	eps_attribute9,
174 	eps_attribute10,
175 	eps_attribute11,
176 	eps_attribute12,
177 	eps_attribute13,
178 	eps_attribute14,
179 	eps_attribute15,
180 	eps_attribute16,
181 	eps_attribute17,
182 	eps_attribute18,
183 	eps_attribute19,
184 	eps_attribute20,
185 	eps_attribute21,
186 	eps_attribute22,
187 	eps_attribute23,
188 	eps_attribute24,
189 	eps_attribute25,
190 	eps_attribute26,
191 	eps_attribute27,
192 	eps_attribute28,
193 	eps_attribute29,
194 	eps_attribute30,
195 	object_version_number
196    	, created_by,
197    	creation_date,
198    	last_update_date,
199    	last_updated_by,
200    	last_update_login ,
201 	criteria_score,
202 	criteria_weight
203   )
204   Values
205   (	p_rec.elig_pstn_prte_id,
206 	p_rec.effective_start_date,
207 	p_rec.effective_end_date,
208 	p_rec.excld_flag,
209 	p_rec.ordr_num,
210 	p_rec.position_id,
211 	p_rec.eligy_prfl_id,
212 	p_rec.business_group_id,
213 	p_rec.eps_attribute_category,
214 	p_rec.eps_attribute1,
215 	p_rec.eps_attribute2,
216 	p_rec.eps_attribute3,
217 	p_rec.eps_attribute4,
218 	p_rec.eps_attribute5,
219 	p_rec.eps_attribute6,
220 	p_rec.eps_attribute7,
221 	p_rec.eps_attribute8,
222 	p_rec.eps_attribute9,
223 	p_rec.eps_attribute10,
224 	p_rec.eps_attribute11,
225 	p_rec.eps_attribute12,
226 	p_rec.eps_attribute13,
227 	p_rec.eps_attribute14,
228 	p_rec.eps_attribute15,
229 	p_rec.eps_attribute16,
230 	p_rec.eps_attribute17,
231 	p_rec.eps_attribute18,
232 	p_rec.eps_attribute19,
233 	p_rec.eps_attribute20,
234 	p_rec.eps_attribute21,
235 	p_rec.eps_attribute22,
236 	p_rec.eps_attribute23,
237 	p_rec.eps_attribute24,
238 	p_rec.eps_attribute25,
239 	p_rec.eps_attribute26,
240 	p_rec.eps_attribute27,
241 	p_rec.eps_attribute28,
242 	p_rec.eps_attribute29,
243 	p_rec.eps_attribute30,
244 	p_rec.object_version_number
245 	, l_created_by,
246    	l_creation_date,
247    	l_last_update_date,
248    	l_last_updated_by,
249    	l_last_update_login ,
250 	p_rec.criteria_score,
251 	p_rec.criteria_weight
252   );
253   --
254   ben_eps_shd.g_api_dml := false;   -- Unset the api dml status
255   hr_utility.set_location(' Leaving:'||l_proc, 15);
256 --
257 Exception
258   When hr_api.check_integrity_violated Then
259     -- A check constraint has been violated
260     ben_eps_shd.g_api_dml := false;   -- Unset the api dml status
261     ben_eps_shd.constraint_error
262       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
263   When hr_api.unique_integrity_violated Then
264     -- Unique integrity has been violated
265     ben_eps_shd.g_api_dml := false;   -- Unset the api dml status
266     ben_eps_shd.constraint_error
267       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
268   When Others Then
269     ben_eps_shd.g_api_dml := false;   -- Unset the api dml status
270     Raise;
271 End dt_insert_dml;
272 --
273 -- ----------------------------------------------------------------------------
274 -- |------------------------------< insert_dml >------------------------------|
275 -- ----------------------------------------------------------------------------
276 Procedure insert_dml
277 	(p_rec 			 in out nocopy ben_eps_shd.g_rec_type,
278 	 p_effective_date	 in	date,
279 	 p_datetrack_mode	 in	varchar2,
280 	 p_validation_start_date in	date,
281 	 p_validation_end_date	 in	date) is
282 --
283   l_proc	varchar2(72) := g_package||'insert_dml';
284 --
285 Begin
286   hr_utility.set_location('Entering:'||l_proc, 5);
287   --
288   dt_insert_dml(p_rec			=> p_rec,
289 		p_effective_date	=> p_effective_date,
290 		p_datetrack_mode	=> p_datetrack_mode,
291        		p_validation_start_date	=> p_validation_start_date,
292 		p_validation_end_date	=> p_validation_end_date);
293   --
294   hr_utility.set_location(' Leaving:'||l_proc, 10);
295 End insert_dml;
296 --
297 -- ----------------------------------------------------------------------------
298 -- |------------------------------< pre_insert >------------------------------|
299 -- ----------------------------------------------------------------------------
300 -- {Start Of Comments}
301 --
302 -- Description:
303 --   This private procedure contains any processing which is required before
304 --   the insert dml. Presently, if the entity has a corresponding primary
305 --   key which is maintained by an associating sequence, the primary key for
306 --   the entity will be populated with the next sequence value in
307 --   preparation for the insert dml.
308 --   Also, if comments are defined for this entity, the comments insert
309 --   logic will also be called, generating a comment_id if required.
310 --
311 -- Prerequisites:
312 --   This is an internal procedure which is called from the ins procedure.
313 --
314 -- In Parameters:
315 --   A Pl/Sql record structre.
316 --
317 -- Post Success:
318 --   Processing continues.
319 --
320 -- Post Failure:
321 --   If an error has occurred, an error message and exception will be raised
322 --   but not handled.
323 --
324 -- Developer Implementation Notes:
325 --   Any pre-processing required before the insert dml is issued should be
326 --   coded within this procedure. As stated above, a good example is the
327 --   generation of a primary key number via a corresponding sequence.
328 --   It is important to note that any 3rd party maintenance should be reviewed
329 --   before placing in this procedure.
330 --
331 -- Access Status:
332 --   Internal Row Handler Use Only.
333 --
334 -- {End Of Comments}
335 -- ----------------------------------------------------------------------------
336 Procedure pre_insert
337 	(p_rec  			in out nocopy ben_eps_shd.g_rec_type,
338 	 p_effective_date		in date,
339 	 p_datetrack_mode		in varchar2,
340 	 p_validation_start_date	in date,
341 	 p_validation_end_date		in date) is
342 --
343 cursor c1 is
344     select BEN_ELIG_pstn_prte_F_S.nextval
345     from   sys.dual;
346 --
347 --
348 Cursor C_Sel2 is
349     Select null
350       from ben_elig_pstn_prte_f
351      where elig_pstn_prte_id = ben_eps_ins.g_elig_pstn_prte_id_i;
352 --
353   l_proc        varchar2(72) := g_package||'pre_insert';
354   l_exists      varchar2(1);
355 --
356 Begin
357   hr_utility.set_location('Entering:'||l_proc, 5);
358   --
359     If (ben_eps_ins.g_elig_pstn_prte_id_i is not null) Then
360     --
361 	    -- Verify registered primary key values not already in use
362 	    --
363 	    Open C_Sel2;
364 	    Fetch C_Sel2 into l_exists;
365 	    If C_Sel2%found Then
366 	       Close C_Sel2;
367 	       --
368 	       -- The primary key values are already in use.
369 	       --
370 	       fnd_message.set_name('PER','PER_289391_KEY_ALREADY_USED');
371 	       fnd_message.set_token('TABLE_NAME','ben_elig_pstn_prte_f');
372 	       fnd_message.raise_error;
373 	    End If;
374 	    Close C_Sel2;
375 	    --
376 	    -- Use registered key values and clear globals
377 	    --
378 	    p_rec.elig_pstn_prte_id:= ben_eps_ins.g_elig_pstn_prte_id_i;
379 	    ben_eps_ins.g_elig_pstn_prte_id_i := null;
380      Else
381 	    hr_utility.set_location('Entering:'||l_proc, 5);
382 	  --
383 	  --
384 	    open c1;
385 	    --
386 	    fetch c1 into p_rec.elig_pstn_prte_id;
387 	    --
388 	   close c1;
389   end if;
390   --
391   hr_utility.set_location(' Leaving:'||l_proc, 10);
392 End pre_insert;
393 --
394 -- ----------------------------------------------------------------------------
395 -- |-----------------------------< post_insert >------------------------------|
396 -- ----------------------------------------------------------------------------
397 -- {Start Of Comments}
398 --
399 -- Description:
400 --   This private procedure contains any processing which is required after the
401 --   insert dml.
402 --
403 -- Prerequisites:
404 --   This is an internal procedure which is called from the ins procedure.
405 --
406 -- In Parameters:
407 --   A Pl/Sql record structre.
408 --
409 -- Post Success:
410 --   Processing continues.
411 --
412 -- Post Failure:
413 --   If an error has occurred, an error message and exception will be raised
414 --   but not handled.
415 --
416 -- Developer Implementation Notes:
417 --   Any post-processing required after the insert dml is issued should be
418 --   coded within this procedure. It is important to note that any 3rd party
419 --   maintenance should be reviewed before placing in this procedure.
420 --
421 -- Access Status:
422 --   Internal Row Handler Use Only.
423 --
424 -- {End Of Comments}
425 -- ----------------------------------------------------------------------------
426 Procedure post_insert
427 	(p_rec 			 in ben_eps_shd.g_rec_type,
428 	 p_effective_date	 in date,
429 	 p_datetrack_mode	 in varchar2,
430 	 p_validation_start_date in date,
431 	 p_validation_end_date	 in date) is
432 --
433   l_proc	varchar2(72) := g_package||'post_insert';
434 --
435 Begin
436   hr_utility.set_location('Entering:'||l_proc, 5);
437 --
438   --
439   -- Start of API User Hook for post_insert.
440   --
441   begin
442     --
443     ben_eps_rki.after_insert
444       (
445   p_elig_pstn_prte_id        =>p_rec.elig_pstn_prte_id
446  ,p_effective_start_date          =>p_rec.effective_start_date
447  ,p_effective_end_date            =>p_rec.effective_end_date
448  ,p_excld_flag                    =>p_rec.excld_flag
449  ,p_ordr_num                      =>p_rec.ordr_num
450  ,p_position_id                       =>p_rec.position_id
451  ,p_eligy_prfl_id                 =>p_rec.eligy_prfl_id
452  ,p_business_group_id             =>p_rec.business_group_id
453  ,p_eps_attribute_category        =>p_rec.eps_attribute_category
454  ,p_eps_attribute1                =>p_rec.eps_attribute1
455  ,p_eps_attribute2                =>p_rec.eps_attribute2
456  ,p_eps_attribute3                =>p_rec.eps_attribute3
457  ,p_eps_attribute4                =>p_rec.eps_attribute4
458  ,p_eps_attribute5                =>p_rec.eps_attribute5
459  ,p_eps_attribute6                =>p_rec.eps_attribute6
460  ,p_eps_attribute7                =>p_rec.eps_attribute7
461  ,p_eps_attribute8                =>p_rec.eps_attribute8
462  ,p_eps_attribute9                =>p_rec.eps_attribute9
463  ,p_eps_attribute10               =>p_rec.eps_attribute10
464  ,p_eps_attribute11               =>p_rec.eps_attribute11
465  ,p_eps_attribute12               =>p_rec.eps_attribute12
466  ,p_eps_attribute13               =>p_rec.eps_attribute13
467  ,p_eps_attribute14               =>p_rec.eps_attribute14
468  ,p_eps_attribute15               =>p_rec.eps_attribute15
469  ,p_eps_attribute16               =>p_rec.eps_attribute16
470  ,p_eps_attribute17               =>p_rec.eps_attribute17
471  ,p_eps_attribute18               =>p_rec.eps_attribute18
472  ,p_eps_attribute19               =>p_rec.eps_attribute19
473  ,p_eps_attribute20               =>p_rec.eps_attribute20
474  ,p_eps_attribute21               =>p_rec.eps_attribute21
475  ,p_eps_attribute22               =>p_rec.eps_attribute22
476  ,p_eps_attribute23               =>p_rec.eps_attribute23
477  ,p_eps_attribute24               =>p_rec.eps_attribute24
478  ,p_eps_attribute25               =>p_rec.eps_attribute25
479  ,p_eps_attribute26               =>p_rec.eps_attribute26
480  ,p_eps_attribute27               =>p_rec.eps_attribute27
481  ,p_eps_attribute28               =>p_rec.eps_attribute28
482  ,p_eps_attribute29               =>p_rec.eps_attribute29
483  ,p_eps_attribute30               =>p_rec.eps_attribute30
484  ,p_object_version_number         =>p_rec.object_version_number
485  ,p_effective_date                =>p_effective_date
486  ,p_validation_start_date         =>p_validation_start_date
487  ,p_validation_end_date           =>p_validation_end_date
488  ,p_criteria_score                =>p_rec.criteria_score
489  ,p_criteria_weight               =>p_rec.criteria_weight
490       );
491     --
492   exception
493     --
494     when hr_api.cannot_find_prog_unit then
495       --
496       hr_api.cannot_find_prog_unit_error
497         (p_module_name => 'ben_elig_pstn_prte_f'
498         ,p_hook_type   => 'AI');
499       --
500   end;
501   --
502   -- End of API User Hook for post_insert.
503   --
504   --
505   hr_utility.set_location(' Leaving:'||l_proc, 10);
506 End post_insert;
507 --
508 -- ----------------------------------------------------------------------------
509 -- |-------------------------------< ins_lck >--------------------------------|
510 -- ----------------------------------------------------------------------------
511 -- {Start Of Comments}
512 --
513 -- Description:
514 --   The ins_lck process has one main function to perform. When inserting
515 --   a datetracked row, we must validate the DT mode.
516 --   be manipulated.
517 --
518 -- Prerequisites:
519 --   This procedure can only be called for the datetrack mode of INSERT.
520 --
521 -- In Parameters:
522 --
523 -- Post Success:
524 --   On successful completion of the ins_lck process the parental
525 --   datetracked rows will be locked providing the p_enforce_foreign_locking
526 --   argument value is TRUE.
527 --   If the p_enforce_foreign_locking argument value is FALSE then the
528 --   parential rows are not locked.
529 --
530 -- Post Failure:
531 --   The Lck process can fail for:
532 --   1) When attempting to lock the row the row could already be locked by
533 --      another user. This will raise the HR_Api.Object_Locked exception.
534 --   2) When attempting to the lock the parent which doesn't exist.
535 --      For the entity to be locked the parent must exist!
536 --
537 -- Developer Implementation Notes:
538 --   None.
539 --
540 -- Access Status:
541 --   Internal Row Handler Use Only.
542 --
543 -- {End Of Comments}
544 -- ----------------------------------------------------------------------------
545 Procedure ins_lck
546 	(p_effective_date	 in  date,
547 	 p_datetrack_mode	 in  varchar2,
548 	 p_rec	 		 in  ben_eps_shd.g_rec_type,
549 	 p_validation_start_date out nocopy date,
550 	 p_validation_end_date	 out nocopy date) is
551 --
552   l_proc		  varchar2(72) := g_package||'ins_lck';
553   l_validation_start_date date;
554   l_validation_end_date	  date;
555 --
556 Begin
557   hr_utility.set_location('Entering:'||l_proc, 5);
558   --
559   -- Validate the datetrack mode mode getting the validation start
560   -- and end dates for the specified datetrack operation.
561   --
562   dt_api.validate_dt_mode
563 	(p_effective_date	   => p_effective_date,
564 	 p_datetrack_mode	   => p_datetrack_mode,
565 	 p_base_table_name	   => 'ben_elig_pstn_prte_f',
566 	 p_base_key_column	   => 'elig_pstn_prte_id',
567 	 p_base_key_value 	   => p_rec.elig_pstn_prte_id,
568          p_enforce_foreign_locking => true,
569 	 p_validation_start_date   => l_validation_start_date,
570  	 p_validation_end_date	   => l_validation_end_date);
571   --
572   -- Set the validation start and end date OUT arguments
573   --
574   p_validation_start_date := l_validation_start_date;
575   p_validation_end_date   := l_validation_end_date;
576   --
577   hr_utility.set_location(' Leaving:'||l_proc, 10);
578 --
579 End ins_lck;
580 --
581 -- ----------------------------------------------------------------------------
582 -- |---------------------------------< ins >----------------------------------|
583 -- ----------------------------------------------------------------------------
584 Procedure ins
585   (
586   p_rec		   in out nocopy ben_eps_shd.g_rec_type,
587   p_effective_date in     date
588   ) is
589 --
590   l_proc			varchar2(72) := g_package||'ins';
591   l_datetrack_mode		varchar2(30) := 'INSERT';
592   l_validation_start_date	date;
593   l_validation_end_date		date;
594 --
595 Begin
596   hr_utility.set_location('Entering:'||l_proc, 5);
597   --
598   -- Call the lock operation
599   --
600   ins_lck
601 	(p_effective_date	 => p_effective_date,
602 	 p_datetrack_mode	 => l_datetrack_mode,
603 	 p_rec	 		 => p_rec,
604 	 p_validation_start_date => l_validation_start_date,
605 	 p_validation_end_date	 => l_validation_end_date);
606   --
607   -- Call the supporting insert validate operations
608   --
609   ben_eps_bus.insert_validate
610 	(p_rec			 => p_rec,
611 	 p_effective_date	 => p_effective_date,
612 	 p_datetrack_mode	 => l_datetrack_mode,
613 	 p_validation_start_date => l_validation_start_date,
614 	 p_validation_end_date	 => l_validation_end_date);
615   --
616   -- Call the supporting pre-insert operation
617   --
618   pre_insert
619  	(p_rec			 => p_rec,
620 	 p_effective_date	 => p_effective_date,
621 	 p_datetrack_mode	 => l_datetrack_mode,
622 	 p_validation_start_date => l_validation_start_date,
623 	 p_validation_end_date	 => l_validation_end_date);
624   --
625   -- Insert the row
626   --
627   insert_dml
628  	(p_rec			 => p_rec,
629 	 p_effective_date	 => p_effective_date,
630 	 p_datetrack_mode	 => l_datetrack_mode,
631 	 p_validation_start_date => l_validation_start_date,
632 	 p_validation_end_date	 => l_validation_end_date);
633   --
634   -- Call the supporting post-insert operation
635   --
636   post_insert
637  	(p_rec			 => p_rec,
638 	 p_effective_date	 => p_effective_date,
639 	 p_datetrack_mode	 => l_datetrack_mode,
640 	 p_validation_start_date => l_validation_start_date,
641 	 p_validation_end_date	 => l_validation_end_date);
642 end ins;
643 --
644 -- ----------------------------------------------------------------------------
645 -- |---------------------------------< ins >----------------------------------|
646 -- ----------------------------------------------------------------------------
647 Procedure ins
648   (
649   p_elig_pstn_prte_id       out nocopy number,
650   p_effective_start_date         out nocopy date,
651   p_effective_end_date           out nocopy date,
652   p_excld_flag                   in varchar2         default 'N',
653   p_ordr_num                     in number           default null,
654   p_position_id                      in number,
655   p_eligy_prfl_id                in number,
656   p_business_group_id            in number,
657   p_eps_attribute_category       in varchar2         default null,
658   p_eps_attribute1               in varchar2         default null,
659   p_eps_attribute2               in varchar2         default null,
660   p_eps_attribute3               in varchar2         default null,
661   p_eps_attribute4               in varchar2         default null,
662   p_eps_attribute5               in varchar2         default null,
663   p_eps_attribute6               in varchar2         default null,
664   p_eps_attribute7               in varchar2         default null,
665   p_eps_attribute8               in varchar2         default null,
666   p_eps_attribute9               in varchar2         default null,
667   p_eps_attribute10              in varchar2         default null,
668   p_eps_attribute11              in varchar2         default null,
669   p_eps_attribute12              in varchar2         default null,
670   p_eps_attribute13              in varchar2         default null,
671   p_eps_attribute14              in varchar2         default null,
672   p_eps_attribute15              in varchar2         default null,
673   p_eps_attribute16              in varchar2         default null,
674   p_eps_attribute17              in varchar2         default null,
675   p_eps_attribute18              in varchar2         default null,
676   p_eps_attribute19              in varchar2         default null,
677   p_eps_attribute20              in varchar2         default null,
678   p_eps_attribute21              in varchar2         default null,
679   p_eps_attribute22              in varchar2         default null,
680   p_eps_attribute23              in varchar2         default null,
681   p_eps_attribute24              in varchar2         default null,
682   p_eps_attribute25              in varchar2         default null,
683   p_eps_attribute26              in varchar2         default null,
684   p_eps_attribute27              in varchar2         default null,
685   p_eps_attribute28              in varchar2         default null,
686   p_eps_attribute29              in varchar2         default null,
687   p_eps_attribute30              in varchar2         default null,
688   p_object_version_number        out nocopy number,
689   p_effective_date		 in date ,
690   p_criteria_score               in number           default null,
691   p_criteria_weight              in number           default null
692   ) is
693 --
694   l_rec		ben_eps_shd.g_rec_type;
695   l_proc	varchar2(72) := g_package||'ins';
696 --
697 Begin
698   hr_utility.set_location('Entering:'||l_proc, 5);
699   --
700   -- Call conversion function to turn arguments into the
701   -- p_rec structure.
702   --
703   l_rec :=
704   ben_eps_shd.convert_args
705   (
706   null,
707   null,
708   null,
709   p_excld_flag,
710   p_ordr_num,
711   p_position_id,
712   p_eligy_prfl_id,
713   p_business_group_id,
714   p_eps_attribute_category,
715   p_eps_attribute1,
716   p_eps_attribute2,
717   p_eps_attribute3,
718   p_eps_attribute4,
719   p_eps_attribute5,
720   p_eps_attribute6,
721   p_eps_attribute7,
722   p_eps_attribute8,
723   p_eps_attribute9,
724   p_eps_attribute10,
725   p_eps_attribute11,
726   p_eps_attribute12,
727   p_eps_attribute13,
728   p_eps_attribute14,
729   p_eps_attribute15,
730   p_eps_attribute16,
731   p_eps_attribute17,
732   p_eps_attribute18,
733   p_eps_attribute19,
734   p_eps_attribute20,
735   p_eps_attribute21,
736   p_eps_attribute22,
737   p_eps_attribute23,
738   p_eps_attribute24,
739   p_eps_attribute25,
740   p_eps_attribute26,
741   p_eps_attribute27,
742   p_eps_attribute28,
743   p_eps_attribute29,
744   p_eps_attribute30,
745   null ,
746   p_criteria_score,
747   p_criteria_weight
748   );
749   --
750   -- Having converted the arguments into the ben_eps_rec
751   -- plsql record structure we call the corresponding record
752   -- business process.
753   --
754   ins(l_rec, p_effective_date);
755   --
756   -- Set the OUT arguments.
757   --
758   p_elig_pstn_prte_id        	:= l_rec.elig_pstn_prte_id;
759   p_effective_start_date  	:= l_rec.effective_start_date;
760   p_effective_end_date    	:= l_rec.effective_end_date;
761   p_object_version_number 	:= l_rec.object_version_number;
762   --
763   --
764   hr_utility.set_location(' Leaving:'||l_proc, 10);
765 End ins;
766 --
767 end ben_eps_ins;