1 Package Body pay_evq_upd as
2 /* $Header: pyevqrhi.pkb 120.0 2005/05/29 04:49:50 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' pay_evq_upd.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------------< dt_update_dml >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 -- This procedure controls the execution of dml from the datetrack mode
17 -- of CORRECTION only. It is important to note that the object version
18 -- number is only increment by 1 because the datetrack correction is
19 -- soley for one datetracked row.
20 -- This procedure controls the actual dml update logic. The functions of
21 -- this procedure are as follows:
22 -- 1) Get the next object_version_number.
23 -- 2) To set and unset the g_api_dml status as required (as we are about to
24 -- perform dml).
25 -- 3) To update the specified row in the schema using the primary key in
26 -- the predicates.
27 -- 4) To trap any constraint violations that may have occurred.
28 -- 5) To raise any other errors.
29 --
30 -- Prerequisites:
31 -- This is an internal private procedure which must be called from the
32 -- update_dml procedure.
33 --
34 -- In Parameters:
35 -- A Pl/Sql record structure.
36 --
37 -- Post Success:
38 -- The specified row will be updated in the schema.
39 --
40 -- Post Failure:
41 -- On the update dml failure it is important to note that we always reset the
42 -- g_api_dml status to false.
43 -- If a check or unique integrity constraint violation is raised the
44 -- constraint_error procedure will be called.
45 -- If any other error is reported, the error will be raised after the
46 -- g_api_dml status is reset.
47 --
48 -- Developer Implementation Notes:
49 -- The update 'set' arguments list should be modified if any of your
50 -- attributes are not updateable.
51 --
52 -- Access Status:
53 -- Internal Row Handler Use Only.
54 --
55 -- {End Of Comments}
56 -- ----------------------------------------------------------------------------
57 Procedure dt_update_dml
58 (p_rec in out nocopy pay_evq_shd.g_rec_type
59 ,p_effective_date in date
60 ,p_datetrack_mode in varchar2
61 ,p_validation_start_date in date
62 ,p_validation_end_date in date
63 ) is
64 --
65 l_proc varchar2(72) := g_package||'dt_update_dml';
66 --
67 Begin
68 hr_utility.set_location('Entering:'||l_proc, 5);
69 --
70 If (p_datetrack_mode = hr_api.g_correction) then
71 hr_utility.set_location(l_proc, 10);
72 --
73 -- Because we are updating a row we must get the next object
74 -- version number.
75 --
76 p_rec.object_version_number :=
77 dt_api.get_object_version_number
78 (p_base_table_name => 'pay_event_qualifiers_f'
79 ,p_base_key_column => 'event_qualifier_id'
80 ,p_base_key_value => p_rec.event_qualifier_id
81 );
82 --
83 --
84 --
85 -- Update the pay_event_qualifiers_f Row
86 --
87 update pay_event_qualifiers_f
88 set
89 event_qualifier_id = p_rec.event_qualifier_id
90 ,dated_table_id = p_rec.dated_table_id
91 ,column_name = p_rec.column_name
92 ,qualifier_name = p_rec.qualifier_name
93 ,legislation_code = p_rec.legislation_code
94 ,business_group_id = p_rec.business_group_id
95 ,comparison_column = p_rec.comparison_column
96 ,qualifier_definition = p_rec.qualifier_definition
97 ,qualifier_where_clause = p_rec.qualifier_where_clause
98 ,entry_qualification = p_rec.entry_qualification
99 ,assignment_qualification = p_rec.assignment_qualification
100 ,multi_event_sql = p_rec.multi_event_sql
101 ,object_version_number = p_rec.object_version_number
102 where event_qualifier_id = p_rec.event_qualifier_id
103 and effective_start_date = p_validation_start_date
104 and effective_end_date = p_validation_end_date;
105 --
106 --
107 --
108 -- Set the effective start and end dates
109 --
110 p_rec.effective_start_date := p_validation_start_date;
111 p_rec.effective_end_date := p_validation_end_date;
112 End If;
113 --
114 hr_utility.set_location(' Leaving:'||l_proc, 15);
115 Exception
116 When hr_api.check_integrity_violated Then
117 -- A check constraint has been violated
118 --
119 pay_evq_shd.constraint_error
120 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
121 When hr_api.unique_integrity_violated Then
122 -- Unique integrity has been violated
123 --
124 pay_evq_shd.constraint_error
125 (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
126 When Others Then
127 --
128 Raise;
129 End dt_update_dml;
130 --
131 -- ----------------------------------------------------------------------------
132 -- |------------------------------< update_dml >------------------------------|
133 -- ----------------------------------------------------------------------------
134 -- {Start Of Comments}
135 --
136 -- Description:
137 -- This procedure calls the dt_update_dml control logic which handles
138 -- the actual datetrack dml.
139 --
140 -- Prerequisites:
141 -- This is an internal private procedure which must be called from the upd
142 -- procedure.
143 --
144 -- In Parameters:
145 -- A Pl/Sql record structre.
146 --
147 -- Post Success:
148 -- Processing contines.
149 --
150 -- Post Failure:
151 -- No specific error handling is required within this procedure.
152 --
153 -- Developer Implementation Notes:
154 -- The update 'set' arguments list should be modified if any of your
155 -- attributes are not updateable.
156 --
157 -- Access Status:
158 -- Internal Row Handler Use Only.
159 --
160 -- {End Of Comments}
161 -- ----------------------------------------------------------------------------
162 Procedure update_dml
163 (p_rec in out nocopy pay_evq_shd.g_rec_type
164 ,p_effective_date in date
165 ,p_datetrack_mode in varchar2
166 ,p_validation_start_date in date
167 ,p_validation_end_date in date
168 ) is
169 --
170 l_proc varchar2(72) := g_package||'update_dml';
171 --
172 Begin
173 hr_utility.set_location('Entering:'||l_proc, 5);
174 --
175 pay_evq_upd.dt_update_dml
176 (p_rec => p_rec
177 ,p_effective_date => p_effective_date
178 ,p_datetrack_mode => p_datetrack_mode
179 ,p_validation_start_date => p_validation_start_date
180 ,p_validation_end_date => p_validation_end_date
181 );
182 --
183 hr_utility.set_location(' Leaving:'||l_proc, 10);
184 End update_dml;
185 --
186 -- ----------------------------------------------------------------------------
187 -- |----------------------------< dt_pre_update >-----------------------------|
188 -- ----------------------------------------------------------------------------
189 -- {Start Of Comments}
190 --
191 -- Description:
192 -- The dt_pre_update procedure controls the execution
193 -- of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
194 -- and UPDATE_CHANGE_INSERT only. The execution required is as
195 -- follows:
196 --
197 -- 1) Providing the datetrack update mode is not 'CORRECTION'
198 -- then set the effective end date of the current row (this
199 -- will be the validation_start_date - 1).
200 -- 2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
201 -- corresponding delete_dml process to delete any future rows
202 -- where the effective_start_date is greater than or equal to
203 -- the validation_start_date.
204 -- 3) Call the insert_dml process to insert the new updated row
205 -- details.
206 --
207 -- Prerequisites:
208 -- This is an internal procedure which is called from the
209 -- pre_update procedure.
210 --
211 -- In Parameters:
212 --
213 -- Post Success:
214 -- Processing continues.
215 --
216 -- Post Failure:
217 -- If an error has occurred, an error message and exception will be raised
218 -- but not handled.
219 --
220 -- Developer Implementation Notes:
221 -- This is an internal procedure which is required by Datetrack. Don't
222 -- remove or modify.
223 --
224 -- Access Status:
225 -- Internal Row Handler Use Only.
226 --
227 -- {End Of Comments}
228 -- ----------------------------------------------------------------------------
229 Procedure dt_pre_update
230 (p_rec in out nocopy pay_evq_shd.g_rec_type
231 ,p_effective_date in date
232 ,p_datetrack_mode in varchar2
233 ,p_validation_start_date in date
234 ,p_validation_end_date in date
235 ) is
236 --
237 l_proc varchar2(72) := g_package||'dt_pre_update';
238 l_dummy_version_number number;
239 --
240 Begin
241 hr_utility.set_location('Entering:'||l_proc, 5);
242 If (p_datetrack_mode <> hr_api.g_correction) then
243 --
244 -- Update the current effective end date
245 --
246 pay_evq_shd.upd_effective_end_date
247 (p_effective_date => p_effective_date
248 ,p_base_key_value => p_rec.event_qualifier_id
249 ,p_new_effective_end_date => (p_validation_start_date - 1)
250 ,p_validation_start_date => p_validation_start_date
251 ,p_validation_end_date => p_validation_end_date
252 ,p_object_version_number => l_dummy_version_number
253 );
254 --
255 If (p_datetrack_mode = hr_api.g_update_override) then
256 --
257 -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
258 -- delete any future rows
259 --
260 pay_evq_del.delete_dml
261 (p_rec => p_rec
262 ,p_effective_date => p_effective_date
263 ,p_datetrack_mode => p_datetrack_mode
264 ,p_validation_start_date => p_validation_start_date
265 ,p_validation_end_date => p_validation_end_date
266 );
267 End If;
268 --
269 -- We must now insert the updated row
270 --
271 pay_evq_ins.insert_dml
272 (p_rec => p_rec
273 ,p_effective_date => p_effective_date
274 ,p_datetrack_mode => p_datetrack_mode
275 ,p_validation_start_date => p_validation_start_date
276 ,p_validation_end_date => p_validation_end_date
277 );
278 End If;
279 hr_utility.set_location(' Leaving:'||l_proc, 20);
280 End dt_pre_update;
281 --
282 -- ----------------------------------------------------------------------------
283 -- |------------------------------< pre_update >------------------------------|
284 -- ----------------------------------------------------------------------------
285 -- {Start Of Comments}
286 --
287 -- Description:
288 -- This private procedure contains any processing which is required before
289 -- the update dml.
290 --
291 -- Prerequisites:
292 -- This is an internal procedure which is called from the upd procedure.
293 --
294 -- In Parameters:
295 -- A Pl/Sql record structure.
296 --
297 -- Post Success:
298 -- Processing continues.
299 --
300 -- Post Failure:
301 -- If an error has occurred, an error message and exception will be raised
302 -- but not handled.
303 -- Developer Implementation Notes:
304 -- Any pre-processing required before the update dml is issued should be
305 -- coded within this procedure. It is important to note that any 3rd party
306 -- maintenance should be reviewed before placing in this procedure. The call
307 -- to the dt_update_dml procedure should NOT be removed.
308 --
309 -- Access Status:
310 -- Internal Row Handler Use Only.
311 --
312 -- {End Of Comments}
313 -- ----------------------------------------------------------------------------
314 Procedure pre_update
315 (p_rec in out nocopy pay_evq_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||'pre_update';
323 --
324 Begin
325 hr_utility.set_location('Entering:'||l_proc, 5);
326 --
327 --
328 --
329 dt_pre_update
330 (p_rec => p_rec
331 ,p_effective_date => p_effective_date
332 ,p_datetrack_mode => p_datetrack_mode
333 ,p_validation_start_date => p_validation_start_date
334 ,p_validation_end_date => p_validation_end_date
335 );
336 --
337 hr_utility.set_location(' Leaving:'||l_proc, 10);
338 End pre_update;
339 --
340 -- ----------------------------------------------------------------------------
341 -- |----------------------------< post_update >-------------------------------|
342 -- ----------------------------------------------------------------------------
343 -- {Start Of Comments}
344 --
345 -- Description:
346 -- This private procedure contains any processing which is required after
347 -- the update dml.
348 --
349 -- Prerequisites:
350 -- This is an internal procedure which is called from the upd procedure.
351 --
352 -- In Parameters:
353 -- A Pl/Sql record structure.
354 --
355 -- Post Success:
356 -- Processing continues.
357 --
358 -- Post Failure:
359 -- If an error has occurred, an error message and exception will be raised
360 -- but not handled.
361 --
362 -- Developer Implementation Notes:
363 -- Any post-processing required after the update dml is issued should be
364 -- coded within this procedure. It is important to note that any 3rd party
365 -- maintenance should be reviewed before placing in this procedure.
366 --
367 -- Access Status:
368 -- Internal Row Handler Use Only.
369 --
370 -- {End Of Comments}
371 -- ----------------------------------------------------------------------------
372 Procedure post_update
373 (p_rec in pay_evq_shd.g_rec_type
374 ,p_effective_date in date
375 ,p_datetrack_mode in varchar2
376 ,p_validation_start_date in date
377 ,p_validation_end_date in date
378 ) is
379 --
380 l_proc varchar2(72) := g_package||'post_update';
381 --
382 Begin
383 hr_utility.set_location('Entering:'||l_proc, 5);
384 begin
385 --
386 pay_evq_rku.after_update
387 (p_effective_date
388 => p_effective_date
389 ,p_datetrack_mode
390 => p_datetrack_mode
391 ,p_validation_start_date
392 => p_validation_start_date
393 ,p_validation_end_date
394 => p_validation_end_date
395 ,p_event_qualifier_id
396 => p_rec.event_qualifier_id
397 ,p_effective_start_date
398 => p_rec.effective_start_date
399 ,p_effective_end_date
400 => p_rec.effective_end_date
401 ,p_comparison_column
402 => p_rec.comparison_column
403 ,p_qualifier_definition
404 => p_rec.qualifier_definition
405 ,p_qualifier_where_clause
406 => p_rec.qualifier_where_clause
407 ,p_entry_qualification
408 => p_rec.entry_qualification
409 ,p_assignment_qualification
410 => p_rec.assignment_qualification
411 ,p_multi_event_sql
412 => p_rec.multi_event_sql
413 ,p_object_version_number
414 => p_rec.object_version_number
415 ,p_effective_start_date_o
416 => pay_evq_shd.g_old_rec.effective_start_date
417 ,p_effective_end_date_o
418 => pay_evq_shd.g_old_rec.effective_end_date
419 ,p_dated_table_id_o
420 => pay_evq_shd.g_old_rec.dated_table_id
421 ,p_column_name_o
422 => pay_evq_shd.g_old_rec.column_name
423 ,p_qualifier_name_o
424 => pay_evq_shd.g_old_rec.qualifier_name
425 ,p_legislation_code_o
426 => pay_evq_shd.g_old_rec.legislation_code
427 ,p_business_group_id_o
428 => pay_evq_shd.g_old_rec.business_group_id
429 ,p_comparison_column_o
430 => pay_evq_shd.g_old_rec.comparison_column
431 ,p_qualifier_definition_o
432 => pay_evq_shd.g_old_rec.qualifier_definition
433 ,p_qualifier_where_clause_o
434 => pay_evq_shd.g_old_rec.qualifier_where_clause
435 ,p_entry_qualification_o
436 => pay_evq_shd.g_old_rec.entry_qualification
437 ,p_assignment_qualification_o
438 => pay_evq_shd.g_old_rec.assignment_qualification
439 ,p_multi_event_sql_o
440 => pay_evq_shd.g_old_rec.multi_event_sql
441 ,p_object_version_number_o
442 => pay_evq_shd.g_old_rec.object_version_number
443 );
444 --
445 exception
446 --
447 when hr_api.cannot_find_prog_unit then
448 --
449 hr_api.cannot_find_prog_unit_error
450 (p_module_name => 'PAY_EVENT_QUALIFIERS_F'
451 ,p_hook_type => 'AU');
452 --
453 end;
454 --
455 hr_utility.set_location(' Leaving:'||l_proc, 10);
456 End post_update;
457 --
458 -- ----------------------------------------------------------------------------
459 -- |-----------------------------< convert_defs >-----------------------------|
460 -- ----------------------------------------------------------------------------
461 -- {Start Of Comments}
462 --
463 -- Description:
464 -- The Convert_Defs procedure has one very important function:
465 -- It must return the record structure for the row with all system defaulted
466 -- values converted into its corresponding parameter value for update. When
467 -- we attempt to update a row through the Upd process , certain
468 -- parameters can be defaulted which enables flexibility in the calling of
469 -- the upd process (e.g. only attributes which need to be updated need to be
470 -- specified). For the upd process to determine which attributes
471 -- have NOT been specified we need to check if the parameter has a reserved
472 -- system default value. Therefore, for all parameters which have a
473 -- corresponding reserved system default mechanism specified we need to
474 -- check if a system default is being used. If a system default is being
475 -- used then we convert the defaulted value into its corresponding attribute
476 -- value held in the g_old_rec data structure.
477 --
478 -- Prerequisites:
479 -- This private function can only be called from the upd process.
480 --
481 -- In Parameters:
482 -- A Pl/Sql record structure.
483 --
484 -- Post Success:
485 -- The record structure will be returned with all system defaulted parameter
486 -- values converted into its current row attribute value.
487 --
488 -- Post Failure:
489 -- No direct error handling is required within this function. Any possible
490 -- errors within this procedure will be a PL/SQL value error due to
491 -- conversion of datatypes or data lengths.
492 --
493 -- Developer Implementation Notes:
494 -- None.
495 --
496 -- Access Status:
497 -- Internal Row Handler Use Only.
498 --
499 -- {End Of Comments}
500 -- ----------------------------------------------------------------------------
501 Procedure convert_defs
502 (p_rec in out nocopy pay_evq_shd.g_rec_type
503 ) is
504 --
505 Begin
506 --
507 -- We must now examine each argument value in the
508 -- p_rec plsql record structure
509 -- to see if a system default is being used. If a system default
510 -- is being used then we must set to the 'current' argument value.
511 --
512 If (p_rec.dated_table_id = hr_api.g_number) then
513 p_rec.dated_table_id :=
514 pay_evq_shd.g_old_rec.dated_table_id;
515 End If;
516 If (p_rec.column_name = hr_api.g_varchar2) then
517 p_rec.column_name :=
518 pay_evq_shd.g_old_rec.column_name;
519 End If;
520 If (p_rec.qualifier_name = hr_api.g_varchar2) then
521 p_rec.qualifier_name :=
522 pay_evq_shd.g_old_rec.qualifier_name;
523 End If;
524 If (p_rec.legislation_code = hr_api.g_varchar2) then
525 p_rec.legislation_code :=
526 pay_evq_shd.g_old_rec.legislation_code;
527 End If;
528 If (p_rec.business_group_id = hr_api.g_number) then
529 p_rec.business_group_id :=
530 pay_evq_shd.g_old_rec.business_group_id;
531 End If;
532 If (p_rec.comparison_column = hr_api.g_varchar2) then
533 p_rec.comparison_column :=
534 pay_evq_shd.g_old_rec.comparison_column;
535 End If;
536 If (p_rec.qualifier_definition = hr_api.g_varchar2) then
537 p_rec.qualifier_definition :=
538 pay_evq_shd.g_old_rec.qualifier_definition;
539 End If;
540 If (p_rec.qualifier_where_clause = hr_api.g_varchar2) then
541 p_rec.qualifier_where_clause :=
542 pay_evq_shd.g_old_rec.qualifier_where_clause;
543 End If;
544 If (p_rec.entry_qualification = hr_api.g_varchar2) then
545 p_rec.entry_qualification :=
546 pay_evq_shd.g_old_rec.entry_qualification;
547 End If;
548 If (p_rec.assignment_qualification = hr_api.g_varchar2) then
549 p_rec.assignment_qualification :=
550 pay_evq_shd.g_old_rec.assignment_qualification;
551 End If;
552 If (p_rec.multi_event_sql = hr_api.g_varchar2) then
553 p_rec.multi_event_sql :=
554 pay_evq_shd.g_old_rec.multi_event_sql;
555 End If;
556 --
557 End convert_defs;
558 --
559 -- ----------------------------------------------------------------------------
560 -- |---------------------------------< upd >----------------------------------|
561 -- ----------------------------------------------------------------------------
562 Procedure upd
563 (p_effective_date in date
564 ,p_datetrack_mode in varchar2
565 ,p_rec in out nocopy pay_evq_shd.g_rec_type
566 ) is
567 --
568 l_proc varchar2(72) := g_package||'upd';
569 l_validation_start_date date;
570 l_validation_end_date date;
571 --
572 Begin
573 hr_utility.set_location('Entering:'||l_proc, 5);
574 --
575 -- Ensure that the DateTrack update mode is valid
576 --
577 dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
578 --
579 -- We must lock the row which we need to update.
580 --
581 pay_evq_shd.lck
582 (p_effective_date => p_effective_date
583 ,p_datetrack_mode => p_datetrack_mode
584 ,p_event_qualifier_id => p_rec.event_qualifier_id
585 ,p_object_version_number => p_rec.object_version_number
586 ,p_validation_start_date => l_validation_start_date
587 ,p_validation_end_date => l_validation_end_date
588 );
589 --
590 -- 1. During an update system defaults are used to determine if
591 -- arguments have been defaulted or not. We must therefore
592 -- derive the full record structure values to be updated.
593 --
594 -- 2. Call the supporting update validate operations.
595 --
596 pay_evq_upd.convert_defs(p_rec);
597 --
598 pay_evq_bus.update_validate
599 (p_rec => p_rec
600 ,p_effective_date => p_effective_date
601 ,p_datetrack_mode => p_datetrack_mode
602 ,p_validation_start_date => l_validation_start_date
603 ,p_validation_end_date => l_validation_end_date
604 );
605 --
606 -- Call to raise any errors on multi-message list
607 hr_multi_message.end_validation_set;
608 --
609 -- Call the supporting pre-update operation
610 --
611 pre_update
612 (p_rec => p_rec
613 ,p_effective_date => p_effective_date
614 ,p_datetrack_mode => p_datetrack_mode
615 ,p_validation_start_date => l_validation_start_date
616 ,p_validation_end_date => l_validation_end_date
617 );
618 --
619 -- Update the row.
620 --
621 update_dml
622 (p_rec => p_rec
623 ,p_effective_date => p_effective_date
624 ,p_datetrack_mode => p_datetrack_mode
625 ,p_validation_start_date => l_validation_start_date
626 ,p_validation_end_date => l_validation_end_date
627 );
628 --
629 -- Call the supporting post-update operation
630 --
631 post_update
632 (p_rec => p_rec
633 ,p_effective_date => p_effective_date
634 ,p_datetrack_mode => p_datetrack_mode
635 ,p_validation_start_date => l_validation_start_date
636 ,p_validation_end_date => l_validation_end_date
637 );
638 --
639 -- Call to raise any errors on multi-message list
640 hr_multi_message.end_validation_set;
641 End upd;
642 --
643 -- ----------------------------------------------------------------------------
644 -- |------------------------------< upd >-------------------------------------|
645 -- ----------------------------------------------------------------------------
646 Procedure upd
647 (p_effective_date in date
648 ,p_datetrack_mode in varchar2
649 ,p_event_qualifier_id in number
650 ,p_object_version_number in out nocopy number
651 ,p_comparison_column in varchar2 default hr_api.g_varchar2
652 ,p_qualifier_definition in varchar2 default hr_api.g_varchar2
653 ,p_qualifier_where_clause in varchar2 default hr_api.g_varchar2
654 ,p_entry_qualification in varchar2 default hr_api.g_varchar2
655 ,p_assignment_qualification in varchar2 default hr_api.g_varchar2
656 ,p_multi_event_sql in varchar2 default hr_api.g_varchar2
657 ,p_effective_start_date out nocopy date
658 ,p_effective_end_date out nocopy date
659 ) is
660 --
661 l_rec pay_evq_shd.g_rec_type;
662 l_proc varchar2(72) := g_package||'upd';
663 --
664 Begin
665 hr_utility.set_location('Entering:'||l_proc, 5);
666 --
667 -- Call conversion function to turn arguments into the
668 -- l_rec structure.
669 --
670 l_rec :=
671 pay_evq_shd.convert_args
672 (p_event_qualifier_id
673 ,null
674 ,null
675 ,hr_api.g_number
676 ,hr_api.g_varchar2
677 ,hr_api.g_varchar2
678 ,hr_api.g_varchar2
679 ,hr_api.g_number
680 ,p_comparison_column
681 ,p_qualifier_definition
682 ,p_qualifier_where_clause
683 ,p_entry_qualification
684 ,p_assignment_qualification
685 ,p_multi_event_sql
686 ,p_object_version_number
687 );
688 --
689 -- Having converted the arguments into the
690 -- plsql record structure we call the corresponding record
691 -- business process.
692 --
693 pay_evq_upd.upd
694 (p_effective_date
695 ,p_datetrack_mode
696 ,l_rec
697 );
698 --
699 -- Set the out parameters
700 --
701 p_object_version_number := l_rec.object_version_number;
702 p_effective_start_date := l_rec.effective_start_date;
703 p_effective_end_date := l_rec.effective_end_date;
704 --
705 --
706 hr_utility.set_location(' Leaving:'||l_proc, 10);
707 End upd;
708 --
709 end pay_evq_upd;