[Home] [Help]
PACKAGE BODY: APPS.PER_PCL_SHD
Source
1 PACKAGE BODY per_pcl_shd AS
2 /* $Header: pepclrhi.pkb 115.9 2002/12/09 15:33:43 pkakar noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_pcl_shd.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |-------------------------< non_value_category >---------------------------|
12 -- ----------------------------------------------------------------------------
13 --
14 FUNCTION non_value_category
15 (p_category_name IN VARCHAR2) RETURN BOOLEAN IS
16 --
17 -- Declare Local Variables
18 --
19 l_proc VARCHAR2(72) := g_package || 'non_value_category';
20 l_return_value BOOLEAN;
21 --
22 BEGIN
23 --
24 hr_utility.set_location('Entering:'||l_proc, 10);
25 --
26 -- If the category is such that the value field
27 -- should not be populated then return false
28 --
29 IF p_category_name IN ('PYS','POS','PRO') THEN
30 --
31 l_return_value := TRUE;
32 --
33 hr_utility.set_location(l_proc, 20);
34 --
35 ELSE
36 --
37 l_return_value := FALSE;
38 --
39 hr_utility.set_location(l_proc, 30);
40 --
41 END IF;
42 --
43 hr_utility.set_location('Leaving :'||l_proc, 999);
44 --
45 RETURN(l_return_value);
46 --
47 END non_value_category;
48 --
49 -- ----------------------------------------------------------------------------
50 -- |----------------------< retrieve_entitlement_info >-----------------------|
51 -- ----------------------------------------------------------------------------
52 --
53 PROCEDURE retrieve_entitlement_item_info
54 (p_cagr_entitlement_id IN NUMBER
55 ,p_cagr_entitlement_item_id OUT NOCOPY NUMBER
56 ,p_category_name OUT NOCOPY VARCHAR2
57 ,p_formula_criteria OUT NOCOPY VARCHAR2)IS
58 --
59 -- Cursor to fetch the entitlement_item_id and category_name
60 --
61 CURSOR csr_get_entitlement_item_id IS
62 SELECT pce.cagr_entitlement_item_id,
63 pci.category_name,
64 pce.formula_criteria
65 FROM per_cagr_entitlements pce,
66 per_cagr_entitlement_items pci
67 WHERE pci.cagr_entitlement_item_id = pce.cagr_entitlement_item_id
68 AND pce.cagr_entitlement_id = p_cagr_entitlement_id;
69 --
70 -- Declare Local Variables
71 --
72 l_proc VARCHAR2(72) := g_package||'retrieve_entitlement_item_info';
73 --
74 BEGIN
75 --
76 hr_utility.set_location('Entering:'||l_proc, 10);
77 --
78 -- Check mandatory parameters has been set
79 --
80 hr_api.mandatory_arg_error
81 (p_api_name => l_proc
82 ,p_argument => 'CAGR_ENTITLEMENT_ID'
83 ,p_argument_value => p_cagr_entitlement_id);
84 --
85 hr_utility.set_location(l_proc, 30);
86 --
87 -- Retrieve the entitlement_item_id
88 --
89 OPEN csr_get_entitlement_item_id;
90 FETCH csr_get_entitlement_item_id INTO p_cagr_entitlement_item_id,
91 p_category_name,
92 p_formula_criteria;
93 --
94 IF csr_get_entitlement_item_id%NOTFOUND THEN
95 --
96 hr_utility.set_location(l_proc, 30);
97 --
98 CLOSE csr_get_entitlement_item_id;
99 --
100 hr_utility.set_message(800, 'HR_289330_ENT_ITEM_NOT_FOUND');
101 hr_utility.raise_error;
102 --
103 END IF;
104 --
105 hr_utility.set_location(l_proc, 40);
106 --
107 CLOSE csr_get_entitlement_item_id;
108 --
109 hr_utility.set_location('Leaving:'||l_proc, 999);
110 --
111 END retrieve_entitlement_item_info;
112 --
113 -- ----------------------------------------------------------------------------
114 -- |-------------------------< retrieve_cagr_info >---------------------------|
115 -- ----------------------------------------------------------------------------
116 --
117 PROCEDURE retrieve_cagr_info
118 (p_cagr_entitlement_id IN NUMBER
119 ,p_collective_agreement_id OUT NOCOPY NUMBER
120 ,p_business_group_id OUT NOCOPY NUMBER) IS
121 --
122 -- Declare Local Cursors
123 --
124 CURSOR csr_cagr_info IS
125 SELECT cag.collective_agreement_id,
126 cag.business_group_id
127 FROM per_cagr_entitlements pce,
128 per_collective_agreements cag
129 WHERE cag.collective_agreement_id = pce.collective_agreement_id
130 AND pce.cagr_entitlement_id = p_cagr_entitlement_id;
131 --
132 -- Declare Local Variables
133 --
134 l_proc VARCHAR2(72) := g_package || 'retrieve_cagr_info';
135 --
136 BEGIN
137 --
138 hr_utility.set_location('Entering:'||l_proc, 10);
139 --
140 -- Check mandatory parameters has been set
141 --
142 hr_api.mandatory_arg_error
143 (p_api_name => l_proc
144 ,p_argument => 'CAGR_ENTITLEMENT_ID'
145 ,p_argument_value => p_cagr_entitlement_id);
146 --
147 OPEN csr_cagr_info;
148 FETCH csr_cagr_info INTO p_collective_agreement_id, p_business_group_id;
149 --
150 IF csr_cagr_info%NOTFOUND THEN
151 --
152 CLOSE csr_cagr_info;
153 --
154 hr_utility.set_message(800, 'HR_289345_CAGR_REC_INV');
155 hr_utility.raise_error;
156 --
157 ELSE
158 --
159 CLOSE csr_cagr_info;
160 --
161 END IF;
162 --
163 hr_utility.set_location('Leaving :'||l_proc, 999);
164 --
165 END retrieve_cagr_info;
166 --
167 -- ----------------------------------------------------------------------------
168 -- |-------------------------< retrieve_value_set_id >------------------------|
169 -- ----------------------------------------------------------------------------
170 --
171 FUNCTION retrieve_value_set_id
172 (p_cagr_entitlement_item_id IN per_cagr_entitlements.cagr_entitlement_item_id%TYPE)
173 RETURN NUMBER IS
174 --
175 -- Declare Local Variables
176 --
177 l_flex_value_set_id per_cagr_entitlement_items.flex_value_set_id%TYPE;
178 l_proc VARCHAR2(72) := g_package || 'retrieve_value_set_id';
179 --
180 -- Cursor to fetch the entitlement_item_id
181 -- that entitlement_line is for.
182 --
183 CURSOR csr_get_value_set_id IS
184 SELECT flex_value_set_id
185 FROM per_cagr_entitlement_items cei
186 WHERE cei.cagr_entitlement_item_Id = P_cagr_entitlement_item_id
187 AND cei.flex_value_set_id IS NOT NULL;
188 --
189 BEGIN
190 --
191 hr_utility.set_location('Entering:'||l_proc, 10);
192 --
193 -- Check mandatory parameters has been set
194 --
195 hr_api.mandatory_arg_error
196 (p_api_name => l_proc
197 ,p_argument => 'CAGR_ENTITLEMENT_ITEM_ID'
198 ,p_argument_value => p_cagr_entitlement_item_id);
199 --
200 hr_utility.set_location(l_proc, 20);
201 --
202 OPEN csr_get_value_set_id;
203 FETCH csr_get_value_set_id INTO l_flex_value_set_id;
204 --
205 hr_utility.set_location(l_proc, 30);
206 --
207 CLOSE csr_get_value_set_id;
208 --
209 hr_utility.set_location('Leaving:'||l_proc, 10);
210 --
211 RETURN(l_flex_value_set_id);
212 --
213 END retrieve_value_set_id;
214 --
215 -- ----------------------------------------------------------------------------
216 -- |---------------------------< constraint_error >---------------------------|
217 -- ----------------------------------------------------------------------------
218 --
219 Procedure constraint_error
220 (p_constraint_name in all_constraints.constraint_name%TYPE
221 ) Is
222 --
223 l_proc varchar2(72) := g_package||'constraint_error';
224 --
225 Begin
226 --
227 If (p_constraint_name = 'PER_CAGR_ENTITLEMENT_LINES_FK1') Then
228 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
229 fnd_message.set_token('PROCEDURE', l_proc);
230 fnd_message.set_token('STEP','5');
231 fnd_message.raise_error;
232 ElsIf (p_constraint_name = 'PER_CAGR_ENTITLEMENT_LINES_FK2') Then
233 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
234 fnd_message.set_token('PROCEDURE', l_proc);
235 fnd_message.set_token('STEP','10');
236 fnd_message.raise_error;
237 ElsIf (p_constraint_name = 'PER_CAGR_ENTITLEMENT_LINES_PK') Then
238 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
239 fnd_message.set_token('PROCEDURE', l_proc);
240 fnd_message.set_token('STEP','15');
241 fnd_message.raise_error;
242 Else
243 fnd_message.set_name('PAY', 'HR_7877_API_INVALID_CONSTRAINT');
244 fnd_message.set_token('PROCEDURE', l_proc);
245 fnd_message.set_token('CONSTRAINT_NAME', p_constraint_name);
246 fnd_message.raise_error;
247 End If;
248 --
249 End constraint_error;
250 --
251 -- ----------------------------------------------------------------------------
252 -- |-----------------------------< api_updating >-----------------------------|
253 -- ----------------------------------------------------------------------------
254 Function api_updating
255 (p_effective_date in date
256 ,p_cagr_entitlement_line_id in number
257 ,p_object_version_number in number
258 ) Return Boolean Is
259 --
260 -- Cursor selects the 'current' row from the HR Schema
261 --
262 Cursor C_Sel1 is
263 select
264 cagr_entitlement_line_id
265 ,cagr_entitlement_id
266 ,mandatory
267 ,value
268 ,range_from
269 ,range_to
270 ,effective_start_date
271 ,effective_end_date
272 ,parent_spine_id
273 ,step_id
274 ,from_step_id
275 ,to_step_id
276 ,status
277 ,oipl_id
278 ,object_version_number
279 ,grade_spine_id
280 ,eligy_prfl_id
281 from per_cagr_entitlement_lines_f
282 where cagr_entitlement_line_id = p_cagr_entitlement_line_id
283 and p_effective_date
284 between effective_start_date and effective_end_date;
285 --
286 l_fct_ret boolean;
287 --
288 Begin
289 --
290 If (p_effective_date is null or
291 p_cagr_entitlement_line_id is null or
292 p_object_version_number is null) Then
293 --
294 -- One of the primary key arguments is null therefore we must
295 -- set the returning function value to false
296 --
297 l_fct_ret := false;
298 Else
299 If (p_cagr_entitlement_line_id =
300 per_pcl_shd.g_old_rec.cagr_entitlement_line_id and
301 p_object_version_number =
302 per_pcl_shd.g_old_rec.object_version_number
303 ) Then
304 --
305 -- The g_old_rec is current therefore we must
306 -- set the returning function to true
307 --
308 l_fct_ret := true;
309 Else
310 --
311 -- Select the current row
312 --
313 Open C_Sel1;
314 Fetch C_Sel1 Into per_pcl_shd.g_old_rec;
315 If C_Sel1%notfound Then
316 Close C_Sel1;
317 --
318 -- The primary key is invalid therefore we must error
319 --
320 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
321 fnd_message.raise_error;
322 End If;
323 Close C_Sel1;
324 If (p_object_version_number
325 <> per_pcl_shd.g_old_rec.object_version_number) Then
326 fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
327 fnd_message.raise_error;
328 End If;
329 l_fct_ret := true;
330 End If;
331 End If;
332 Return (l_fct_ret);
333 --
334 End api_updating;
335 --
336 -- ----------------------------------------------------------------------------
337 -- |---------------------------< find_dt_upd_modes >--------------------------|
338 -- ----------------------------------------------------------------------------
339 Procedure find_dt_upd_modes
340 (p_effective_date in date
341 ,p_base_key_value in number
342 ,p_correction out nocopy boolean
343 ,p_update out nocopy boolean
344 ,p_update_override out nocopy boolean
345 ,p_update_change_insert out nocopy boolean
346 ) is
347 --
348 l_proc varchar2(72) := g_package||'find_dt_upd_modes';
349 --
350 Begin
351 hr_utility.set_location('Entering:'||l_proc, 5);
352 --
353 -- Call the corresponding datetrack api
354 --
355 dt_api.find_dt_upd_modes
356 (p_effective_date => p_effective_date
357 ,p_base_table_name => 'per_cagr_entitlement_lines_f'
358 ,p_base_key_column => 'cagr_entitlement_line_id'
359 ,p_base_key_value => p_base_key_value
360 ,p_correction => p_correction
361 ,p_update => p_update
362 ,p_update_override => p_update_override
363 ,p_update_change_insert => p_update_change_insert
364 );
365 --
366 hr_utility.set_location(' Leaving:'||l_proc, 10);
367 End find_dt_upd_modes;
368 --
369 -- ----------------------------------------------------------------------------
370 -- |---------------------------< find_dt_del_modes >--------------------------|
371 -- ----------------------------------------------------------------------------
372 Procedure find_dt_del_modes
373 (p_effective_date in date
374 ,p_base_key_value in number
375 ,p_zap out nocopy boolean
376 ,p_delete out nocopy boolean
377 ,p_future_change out nocopy boolean
378 ,p_delete_next_change out nocopy boolean
379 ) is
380 --
381 l_proc varchar2(72) := g_package||'find_dt_del_modes';
382 --
383 l_parent_key_value1 number;
384 l_parent_key_value2 number;
385 l_parent_key_value3 number;
386 l_parent_key_value4 number;
387 --
388 Cursor C_Sel1 Is
389 select
390 t.grade_spine_id
391 ,t.step_id
392 ,t.from_step_id
393 ,t.to_step_id
394 from per_cagr_entitlement_lines_f t
395 where t.cagr_entitlement_line_id = p_base_key_value
396 and p_effective_date
397 between t.effective_start_date and t.effective_end_date;
398 --
399 Begin
400 hr_utility.set_location('Entering:'||l_proc, 5);
401 Open C_sel1;
402 Fetch C_Sel1 Into
403 l_parent_key_value1
404 ,l_parent_key_value2
405 ,l_parent_key_value3
406 ,l_parent_key_value4;
407 If C_Sel1%NOTFOUND then
408 Close C_Sel1;
409 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
410 fnd_message.set_token('PROCEDURE',l_proc);
411 fnd_message.set_token('STEP','10');
412 fnd_message.raise_error;
413 End If;
414 Close C_Sel1;
415 --
416 -- Call the corresponding datetrack api
417 --
418 dt_api.find_dt_del_modes
419 (p_effective_date => p_effective_date
420 ,p_base_table_name => 'per_cagr_entitlement_lines_f'
421 ,p_base_key_column => 'cagr_entitlement_line_id'
422 ,p_base_key_value => p_base_key_value
423 ,p_parent_table_name1 => 'per_grade_spines_f'
424 ,p_parent_key_column1 => 'grade_spine_id'
425 ,p_parent_key_value1 => l_parent_key_value1
426 ,p_parent_table_name2 => 'per_spinal_point_steps_f'
427 ,p_parent_key_column2 => 'step_id'
428 ,p_parent_key_value2 => l_parent_key_value2
429 ,p_parent_table_name3 => 'per_spinal_point_steps_f'
430 ,p_parent_key_column3 => 'step_id'
431 ,p_parent_key_value3 => l_parent_key_value3
432 ,p_parent_table_name4 => 'per_spinal_point_steps_f'
433 ,p_parent_key_column4 => 'step_id'
434 ,p_parent_key_value4 => l_parent_key_value4
435 ,p_zap => p_zap
436 ,p_delete => p_delete
437 ,p_future_change => p_future_change
438 ,p_delete_next_change => p_delete_next_change
439 );
440 --
441 hr_utility.set_location(' Leaving:'||l_proc, 10);
442 End find_dt_del_modes;
443 --
444 -- ----------------------------------------------------------------------------
445 -- |-----------------------< upd_effective_end_date >-------------------------|
446 -- ----------------------------------------------------------------------------
447 Procedure upd_effective_end_date
448 (p_effective_date in date
449 ,p_base_key_value in number
450 ,p_new_effective_end_date in date
451 ,p_validation_start_date in date
452 ,p_validation_end_date in date
453 ,p_object_version_number out nocopy number
454 ) is
455 --
456 l_proc varchar2(72) := g_package||'upd_effective_end_date';
457 l_object_version_number number;
458 --
459 Begin
460 hr_utility.set_location('Entering:'||l_proc, 5);
461 --
462 -- Because we are updating a row we must get the next object
463 -- version number.
464 --
465 l_object_version_number :=
466 dt_api.get_object_version_number
467 (p_base_table_name => 'per_cagr_entitlement_lines_f'
468 ,p_base_key_column => 'cagr_entitlement_line_id'
469 ,p_base_key_value => p_base_key_value
470 );
471 --
472 hr_utility.set_location(l_proc, 10);
473 --
474 --
475 -- Update the specified datetrack row setting the effective
476 -- end date to the specified new effective end date.
477 --
478 update per_cagr_entitlement_lines_f t
479 set t.effective_end_date = p_new_effective_end_date
480 , t.object_version_number = l_object_version_number
481 where t.cagr_entitlement_line_id = p_base_key_value
482 and p_effective_date
483 between t.effective_start_date and t.effective_end_date;
484 --
485 --
486 p_object_version_number := l_object_version_number;
487 hr_utility.set_location(' Leaving:'||l_proc, 15);
488 --
489 End upd_effective_end_date;
490 --
491 -- ----------------------------------------------------------------------------
492 -- |---------------------------------< lck >----------------------------------|
493 -- ----------------------------------------------------------------------------
494 Procedure lck
495 (p_effective_date in date
496 ,p_datetrack_mode in varchar2
497 ,p_cagr_entitlement_line_id in number
498 ,p_object_version_number in number
499 ,p_validation_start_date out nocopy date
500 ,p_validation_end_date out nocopy date
501 ) is
502 --
503 l_proc varchar2(72) := g_package||'lck';
504 l_validation_start_date date;
505 l_validation_end_date date;
506 l_argument varchar2(30);
507 --
508 -- Cursor C_Sel1 selects the current locked row as of session date
509 -- ensuring that the object version numbers match.
510 --
511 Cursor C_Sel1 is
512 select
513 cagr_entitlement_line_id
514 ,cagr_entitlement_id
515 ,mandatory
516 ,value
517 ,range_from
518 ,range_to
519 ,effective_start_date
520 ,effective_end_date
521 ,parent_spine_id
522 ,step_id
523 ,from_step_id
524 ,to_step_id
525 ,status
526 ,oipl_id
527 ,object_version_number
528 ,grade_spine_id
529 ,eligy_prfl_id
530 from per_cagr_entitlement_lines_f
531 where cagr_entitlement_line_id = p_cagr_entitlement_line_id
532 and p_effective_date
533 between effective_start_date and effective_end_date
534 for update nowait;
535 --
536 --
537 --
538 Begin
539 hr_utility.set_location('Entering:'||l_proc, 5);
540 --
541 -- Ensure that all the mandatory arguments are not null
542 --
543 hr_api.mandatory_arg_error(p_api_name => l_proc
544 ,p_argument => 'effective_date'
545 ,p_argument_value => p_effective_date
546 );
547 --
548 hr_api.mandatory_arg_error(p_api_name => l_proc
549 ,p_argument => 'datetrack_mode'
550 ,p_argument_value => p_datetrack_mode
551 );
552 --
553 hr_api.mandatory_arg_error(p_api_name => l_proc
554 ,p_argument => 'cagr_entitlement_line_id'
555 ,p_argument_value => p_cagr_entitlement_line_id
556 );
557 --
558 hr_api.mandatory_arg_error(p_api_name => l_proc
559 ,p_argument => 'object_version_number'
560 ,p_argument_value => p_object_version_number
561 );
562 --
563 -- Check to ensure the datetrack mode is not INSERT.
564 --
565 If (p_datetrack_mode <> hr_api.g_insert) then
566 --
567 -- We must select and lock the current row.
568 --
569 Open C_Sel1;
570 Fetch C_Sel1 Into per_pcl_shd.g_old_rec;
571 If C_Sel1%notfound then
572 Close C_Sel1;
573 --
574 -- The primary key is invalid therefore we must error
575 --
576 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
577 fnd_message.raise_error;
578 End If;
579 Close C_Sel1;
580 If (p_object_version_number
581 <> per_pcl_shd.g_old_rec.object_version_number) Then
582 fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
583 fnd_message.raise_error;
584 End If;
585 --
586 --
587 -- Validate the datetrack mode mode getting the validation start
588 -- and end dates for the specified datetrack operation.
589 --
590 dt_api.validate_dt_mode
591 (p_effective_date => p_effective_date
592 ,p_datetrack_mode => p_datetrack_mode
593 ,p_base_table_name => 'per_cagr_entitlement_lines_f'
594 ,p_base_key_column => 'cagr_entitlement_line_id'
595 ,p_base_key_value => p_cagr_entitlement_line_id
596 ,p_parent_table_name1 => 'per_grade_spines_f'
597 ,p_parent_key_column1 => 'grade_spine_id'
598 ,p_parent_key_value1 => per_pcl_shd.g_old_rec.grade_spine_id
599 ,p_parent_table_name2 => 'per_spinal_point_steps_f'
600 ,p_parent_key_column2 => 'step_id'
601 ,p_parent_key_value2 => per_pcl_shd.g_old_rec.step_id
602 ,p_parent_table_name3 => 'per_spinal_point_steps_f'
603 ,p_parent_key_column3 => 'step_id'
604 ,p_parent_key_value3 => per_pcl_shd.g_old_rec.from_step_id
605 ,p_parent_table_name4 => 'per_spinal_point_steps_f'
606 ,p_parent_key_column4 => 'step_id'
607 ,p_parent_key_value4 => per_pcl_shd.g_old_rec.to_step_id
608 ,p_enforce_foreign_locking => true
609 ,p_validation_start_date => l_validation_start_date
610 ,p_validation_end_date => l_validation_end_date
611 );
612 Else
613 --
614 -- We are doing a datetrack 'INSERT' which is illegal within this
615 -- procedure therefore we must error (note: to lck on insert the
616 -- private procedure ins_lck should be called).
617 --
618 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
619 fnd_message.set_token('PROCEDURE', l_proc);
620 fnd_message.set_token('STEP','20');
621 fnd_message.raise_error;
622 End If;
623 --
624 -- Set the validation start and end date OUT arguments
625 --
626 p_validation_start_date := l_validation_start_date;
627 p_validation_end_date := l_validation_end_date;
628 --
629 hr_utility.set_location(' Leaving:'||l_proc, 30);
630 --
631 -- We need to trap the ORA LOCK exception
632 --
633 Exception
634 When HR_Api.Object_Locked then
635 --
636 -- The object is locked therefore we need to supply a meaningful
637 -- error message.
638 --
639 fnd_message.set_name('PAY', 'HR_7165_OBJECT_LOCKED');
640 fnd_message.set_token('TABLE_NAME', 'per_cagr_entitlement_lines_f');
641 fnd_message.raise_error;
642 End lck;
643 --
644 -- ----------------------------------------------------------------------------
645 -- |-----------------------------< convert_args >-----------------------------|
646 -- ----------------------------------------------------------------------------
647 Function convert_args
648 (p_cagr_entitlement_line_id in number
649 ,p_cagr_entitlement_id in number
650 ,p_mandatory in varchar2
651 ,p_value in varchar2
652 ,p_range_from in varchar2
653 ,p_range_to in varchar2
654 ,p_effective_start_date in date
655 ,p_effective_end_date in date
656 ,p_parent_spine_id in number
657 ,p_step_id in number
658 ,p_from_step_id in number
659 ,p_to_step_id in number
660 ,p_status in varchar2
661 ,p_oipl_id in number
662 ,p_object_version_number in number
663 ,p_grade_spine_id in number
664 ,p_eligy_prfl_id in number
665 )
666 Return g_rec_type is
667 --
668 l_rec g_rec_type;
669 --
670 Begin
671 --
672 -- Convert arguments into local l_rec structure.
673 --
674 l_rec.cagr_entitlement_line_id := p_cagr_entitlement_line_id;
675 l_rec.cagr_entitlement_id := p_cagr_entitlement_id;
676 l_rec.mandatory := p_mandatory;
677 l_rec.value := p_value;
678 l_rec.range_from := p_range_from;
679 l_rec.range_to := p_range_to;
680 l_rec.effective_start_date := p_effective_start_date;
681 l_rec.effective_end_date := p_effective_end_date;
682 l_rec.parent_spine_id := p_parent_spine_id;
683 l_rec.step_id := p_step_id;
684 l_rec.from_step_id := p_from_step_id;
685 l_rec.to_step_id := p_to_step_id;
686 l_rec.status := p_status;
687 l_rec.oipl_id := p_oipl_id;
688 l_rec.object_version_number := p_object_version_number;
689 l_rec.grade_spine_id := p_grade_spine_id;
690 l_rec.eligy_prfl_id := p_eligy_prfl_id;
691 --
692 -- Return the plsql record structure.
693 --
694 Return(l_rec);
695 --
696 End convert_args;
697 --
698 end per_pcl_shd;