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