DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_SFR_BUS

Source


1 Package Body pay_sfr_bus as
2 /* $Header: pysfrrhi.pkb 120.0 2005/05/29 08:40:36 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  pay_sfr_bus.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |-----------------------< chk_non_updateable_args >------------------------|
12 -- ----------------------------------------------------------------------------
13 Procedure chk_non_updateable_args
14   (p_rec     in     pay_sfr_shd.g_rec_type
15   ) is
16   --
17   -- Cursor to disallow update if a core formula result rule has been
18   -- generated from this shadow formula result rule.
19   --
20   cursor csr_disallow_update is
21   select null
22   from   pay_template_core_objects tco
23   where  tco.core_object_type = pay_tco_shd.g_sfr_lookup_type
27   l_updating boolean;
24   and    tco.shadow_object_id = p_rec.formula_result_rule_id;
25 --
26   l_proc  varchar2(72) := g_package||'chk_non_updateable_args';
28   l_error    exception;
29   l_argument varchar2(30);
30   l_api_updating boolean;
31   l_disallow varchar2(1);
32 --
33 Begin
34   hr_utility.set_location('Entering:'||l_proc, 5);
35   l_api_updating := pay_sfr_shd.api_updating
36     (p_formula_result_rule_id => p_rec.formula_result_rule_id
37     ,p_object_version_number  => p_rec.object_version_number
38     );
39   if not l_api_updating then
40     hr_utility.set_message(801,'HR_6153_ALL_PROCEDURE_FAIL');
41     hr_utility.set_message_token('PROCEDURE', l_proc);
42     hr_utility.set_message_token('STEP', '10');
43     hr_utility.raise_error;
44   end if;
45   --
46   hr_utility.set_location(l_proc, 15);
47   --
48   -- Check that the update is actually allowed.
49   --
50   open csr_disallow_update;
51   fetch csr_disallow_update into l_disallow;
52   if csr_disallow_update%found then
53     hr_utility.set_location(l_proc, 20);
54     close csr_disallow_update;
55     fnd_message.set_name('PAY', 'PAY_50094_SFR_CORE_ROW_EXISTS');
56     fnd_message.raise_error;
57   end if;
58   close csr_disallow_update;
59   --
60   -- p_shadow_element_type_id
61   --
62   if nvl(p_rec.shadow_element_type_id, hr_api.g_number) <>
63      nvl(pay_sfr_shd.g_old_rec.shadow_element_type_id, hr_api.g_number)
64   then
65     hr_utility.set_location(l_proc, 25);
66     l_argument := 'p_shadow_element_type_id';
67     raise l_error;
68   end if;
69   hr_utility.set_location(' Leaving:'||l_proc, 25);
70 exception
71     when l_error then
72        hr_utility.set_location('Leaving:'||l_proc, 30);
73        hr_api.argument_changed_error
74          (p_api_name => l_proc
75          ,p_argument => l_argument);
76     when others then
77        hr_utility.set_location('Leaving:'||l_proc, 35);
78        raise;
79 End chk_non_updateable_args;
80 -- ----------------------------------------------------------------------------
81 -- |----------------------< chk_shadow_element_type_id >----------------------|
82 -- ----------------------------------------------------------------------------
83 Procedure chk_shadow_element_type_id
84   (p_shadow_element_type_id     in     number
85   ) is
86   --
87   -- Cursor to check that the element type exists.
88   --
89   cursor csr_shadow_element_type_exists is
90   select null
91   from   pay_shadow_element_types pset
92   where  pset.element_type_id = p_shadow_element_type_id;
93 --
94   l_proc  varchar2(72) := g_package||'chk_shadow_element_type_id';
95   l_exists varchar2(1);
96 --
97 Begin
98   hr_utility.set_location('Entering:'||l_proc, 5);
99   --
100   -- Check that the shadow element type is not null.
101   --
102   hr_api.mandatory_arg_error
103   (p_api_name       => l_proc
104   ,p_argument       => 'p_shadow_element_type_id'
105   ,p_argument_value => p_shadow_element_type_id
106   );
107   --
108   -- Check that the shadow element type exists.
109   --
110   open csr_shadow_element_type_exists;
111   fetch csr_shadow_element_type_exists into l_exists;
112   if csr_shadow_element_type_exists%notfound then
113     hr_utility.set_location(' Leaving:'||l_proc, 10);
114     close csr_shadow_element_type_exists;
115     fnd_message.set_name('PAY', 'PAY_50095_ETM_INVALID_ELE_TYPE');
116     fnd_message.raise_error;
117   end if;
118   close csr_shadow_element_type_exists;
119   hr_utility.set_location(' Leaving:'||l_proc, 20);
120 End chk_shadow_element_type_id;
121 -- ----------------------------------------------------------------------------
122 -- |-----------------------< chk_result_rule_type >---------------------------|
123 -- ----------------------------------------------------------------------------
124 Procedure chk_result_rule_type
125 (p_effective_date         in date
126 ,p_result_rule_type         in varchar2
127 ,p_formula_result_rule_id in number
128 ,p_object_version_number  in number
129 ) is
130 --
131   l_proc  varchar2(72) := g_package||'chk_result_rule_type';
132   l_api_updating boolean;
133 --
134 Begin
135   hr_utility.set_location('Entering:'||l_proc, 5);
136   l_api_updating := pay_sfr_shd.api_updating
137   (p_formula_result_rule_id => p_formula_result_rule_id
138   ,p_object_version_number  => p_object_version_number
139   );
140   if (l_api_updating and
141       nvl(p_result_rule_type, hr_api.g_varchar2) <>
142       nvl(pay_sfr_shd.g_old_rec.result_rule_type, hr_api.g_varchar2))
143      or not l_api_updating
144   then
145     --
146     -- Result rule type is mandatory.
147     --
148     hr_api.mandatory_arg_error
149     (p_api_name       => l_proc
150     ,p_argument       => 'p_result_rule_type'
151     ,p_argument_value => p_result_rule_type
152     );
153     --
154     -- Validate against hr_lookups.
155     --
156     if hr_api.not_exists_in_hr_lookups
157        (p_effective_date => p_effective_date
158        ,p_lookup_type    => 'RESULT_RULE_TYPE'
159        ,p_lookup_code    => p_result_rule_type
160        )
161     then
162       hr_utility.set_location(' Leaving:'||l_proc, 10);
163       fnd_message.set_name('PAY', 'HR_52966_INVALID_LOOKUP');
164       fnd_message.set_token('LOOKUP_TYPE', 'RESULT_RULE_TYPE');
165       fnd_message.set_token('COLUMN', 'RESULT_RULE_TYPE');
166       fnd_message.raise_error;
170 End chk_result_rule_type;
167     end if;
168   end if;
169   hr_utility.set_location(' Leaving:'||l_proc, 20);
171 -- ----------------------------------------------------------------------------
172 -- |--------------------------< chk_element_type_id >-------------------------|
173 -- ----------------------------------------------------------------------------
174 Procedure chk_element_type_id
175   (p_element_type_id        in     number
176   ,p_element_name           in     varchar2
177   ,p_shadow_element_type_id in     number
178   ,p_result_rule_type       in     varchar2
179   ,p_formula_result_rule_id in     number
180   ,p_object_version_number  in     number
181   ) is
182   --
183   -- Cursor to check that the element type exists (and is in the same
184   -- template as the shadow element type).
185   --
186   cursor csr_element_type_exists is
187   select null
188   from   pay_shadow_element_types pset
189   ,      pay_shadow_element_types pset1
190   where  pset.element_type_id  = p_shadow_element_type_id
191   and    pset1.element_type_id = p_element_type_id
192   and    pset1.template_id     = pset.template_id;
193 --
194   l_proc  varchar2(72) := g_package||'chk_element_type_id';
195   l_exists varchar2(1);
196   l_api_updating boolean;
197 --
198 Begin
199   hr_utility.set_location('Entering:'||l_proc, 5);
200   l_api_updating := pay_sfr_shd.api_updating
201     (p_formula_result_rule_id => p_formula_result_rule_id
202     ,p_object_version_number  => p_object_version_number
203     );
204   if (l_api_updating and nvl(p_element_type_id, hr_api.g_number) <>
205       nvl(pay_sfr_shd.g_old_rec.element_type_id, hr_api.g_number)) or
206      not l_api_updating
207   then
208     if p_element_type_id is not null then
209       --
210       -- Check that the element type exists.
211       --
212       open csr_element_type_exists;
213       fetch csr_element_type_exists into l_exists;
214       if csr_element_type_exists%notfound then
215         hr_utility.set_location(' Leaving:'||l_proc, 10);
216         close csr_element_type_exists;
217         fnd_message.set_name('PAY', 'PAY_50096_SFR_ELE_ETM_MISMATCH');
218         fnd_message.raise_error;
219       end if;
220       close csr_element_type_exists;
221     end if;
222   end if;
223   --
224   -- Confirm that at least one of p_element_type_id and p_element_name is
225   -- null.
226   --
227   if p_element_type_id is not null and p_element_name is not null then
228     hr_utility.set_location(' Leaving:'||l_proc, 15);
229     fnd_message.set_name('PAY', 'PAY_50214_SFR_ELE_NOT_NULL');
230     fnd_message.raise_error;
231   end if;
232   hr_utility.set_location(' Leaving:'||l_proc, 20);
233 End chk_element_type_id;
234 -- ----------------------------------------------------------------------------
235 -- |--------------------------< chk_input_value_id >--------------------------|
236 -- ----------------------------------------------------------------------------
237 Procedure chk_input_value_id
238   (p_input_value_id         in     number
239   ,p_shadow_element_type_id in     number
240   ,p_result_rule_type       in     varchar2
241   ,p_formula_result_rule_id in     number
242   ,p_object_version_number  in     number
243   ) is
244   --
245   -- Cursor to check that the input value exists (and is in the same
246   -- template as the shadow element type).
247   --
248   cursor csr_input_value_exists is
249   select null
250   from   pay_shadow_element_types pset
251   ,      pay_shadow_element_types pset1
252   ,      pay_shadow_input_values  psiv
253   where  pset.element_type_id = p_shadow_element_type_id
254   and    pset1.template_id    = pset.template_id
255   and    psiv.input_value_id  = p_input_value_id
256   and    psiv.element_type_id = pset1.element_type_id;
257 --
258   l_proc  varchar2(72) := g_package||'chk_input_value_id';
259   l_exists varchar2(1);
260   l_api_updating boolean;
261 --
262 Begin
263   hr_utility.set_location('Entering:'||l_proc, 5);
264   l_api_updating := pay_sfr_shd.api_updating
265     (p_formula_result_rule_id => p_formula_result_rule_id
266     ,p_object_version_number  => p_object_version_number
267     );
268   if (l_api_updating and nvl(p_input_value_id, hr_api.g_number) <>
269       nvl(pay_sfr_shd.g_old_rec.input_value_id, hr_api.g_number)) or
270      not l_api_updating
271   then
272     if p_input_value_id is not null then
273       --
274       -- Check that the input value exists.
275       --
276       open csr_input_value_exists;
277       fetch csr_input_value_exists into l_exists;
278       if csr_input_value_exists%notfound then
279         hr_utility.set_location(' Leaving:'||l_proc, 10);
280         close csr_input_value_exists;
281         fnd_message.set_name('PAY', 'PAY_50098_ETM_INVALID_INP_VAL');
282         fnd_message.raise_error;
283       end if;
284       close csr_input_value_exists;
285     end if;
286   end if;
287   hr_utility.set_location(' Leaving:'||l_proc, 20);
288 End chk_input_value_id;
289 -- ----------------------------------------------------------------------------
290 -- |---------------------------< chk_result_name >---------------------------|
291 -- ----------------------------------------------------------------------------
292 Procedure chk_result_name
293   (p_result_name            in     varchar2
294   ,p_formula_result_rule_id in    number
295   ,p_object_version_number  in     number
296   ) is
297 --
298   l_proc  varchar2(72) := g_package||'chk_result_name';
299   l_legislation_code varchar2(2000);
300   l_exists           varchar2(1);
301   l_value            varchar2(2000);
302   l_output           varchar2(2000);
303   l_rgeflg           varchar2(2000);
304   l_api_updating     boolean;
305 --
306 Begin
307   hr_utility.set_location('Entering:'||l_proc, 5);
308   l_api_updating := pay_sfr_shd.api_updating
309   (p_formula_result_rule_id => p_formula_result_rule_id
310   ,p_object_version_number  => p_object_version_number
311   );
312   if (l_api_updating and nvl(p_result_name, hr_api.g_varchar2) <>
313       nvl(pay_sfr_shd.g_old_rec.result_name, hr_api.g_varchar2)) or
314       not l_api_updating
315   then
316     --
317     -- Check that the name format is correct (not null database item name).
318     --
319     l_value := p_result_name;
320     hr_chkfmt.checkformat
321     (value   => l_value
322     ,format  => 'PAY_NAME'
323     ,output  => l_output
324     ,minimum => null
325     ,maximum => null
326     ,nullok  => 'N'
327     ,rgeflg  => l_rgeflg
328     ,curcode => null
329     );
330   end if;
331   hr_utility.set_location(' Leaving:'||l_proc, 20);
332 End chk_result_name;
333 -- ----------------------------------------------------------------------------
334 -- |-------------------------< chk_severity_level >---------------------------|
335 -- ----------------------------------------------------------------------------
336 Procedure chk_severity_level
337 (p_effective_date         in date
338 ,p_severity_level         in varchar2
339 ,p_result_rule_type       in varchar2
340 ,p_formula_result_rule_id in number
341 ,p_object_version_number  in number
342 ) is
343 --
344   l_proc  varchar2(72) := g_package||'chk_severity_level';
345   l_api_updating boolean;
346   l_result_rule_changed boolean;
347 --
348 Begin
349   hr_utility.set_location('Entering:'||l_proc, 5);
350   l_api_updating := pay_sfr_shd.api_updating
351   (p_formula_result_rule_id => p_formula_result_rule_id
352   ,p_object_version_number  => p_object_version_number
353   );
354   l_result_rule_changed :=
355   l_api_updating and nvl(p_result_rule_type, hr_api.g_varchar2) <>
356   nvl(pay_sfr_shd.g_old_rec.result_rule_type, hr_api.g_varchar2);
357   --
358   if (l_api_updating and
359       nvl(p_severity_level, hr_api.g_varchar2) <>
360       nvl(pay_sfr_shd.g_old_rec.severity_level, hr_api.g_varchar2))
361      or not l_api_updating or l_result_rule_changed
362   then
363     --
364     -- Severity level is mandatory if result rule type is 'M'.
365     --
366     if p_result_rule_type = 'M' then
367       hr_api.mandatory_arg_error
368       (p_api_name       => l_proc
369       ,p_argument       => 'p_severity_level'
370       ,p_argument_value => p_severity_level
371       );
372       --
373       -- Validate against hr_lookups.
374       --
375       if hr_api.not_exists_in_hr_lookups
376          (p_effective_date => p_effective_date
377          ,p_lookup_type    => 'MESSAGE_LEVEL'
378          ,p_lookup_code    => p_severity_level
379          )
380       then
381         hr_utility.set_location(' Leaving:'||l_proc, 10);
382         fnd_message.set_name('PAY', 'HR_52966_INVALID_LOOKUP');
383         fnd_message.set_token('LOOKUP_TYPE', 'MESSAGE_LEVEL');
384         fnd_message.set_token('COLUMN', 'SEVERITY_LEVEL');
385         fnd_message.raise_error;
386       end if;
387     --
388     -- Severity level must be null otherwise.
389     --
390     elsif p_severity_level is not null then
391       hr_utility.set_location(' Leaving:'||l_proc, 10);
392       fnd_message.set_name('PAY', 'PAY_50097_SFR_SEV_LVL_NOT_NULL');
393       fnd_message.set_token('RESULT_RULE_TYPE', p_result_rule_type);
394       fnd_message.raise_error;
395     end if;
396   end if;
397   hr_utility.set_location(' Leaving:'||l_proc, 20);
401 -- ----------------------------------------------------------------------------
398 End chk_severity_level;
399 -- ----------------------------------------------------------------------------
400 -- |-------------------------< chk_exclusion_rule_id >------------------------|
402 Procedure chk_exclusion_rule_id
403   (p_exclusion_rule_id      in     number
404   ,p_shadow_element_type_id in     number
405   ,p_formula_result_rule_id in     number
406   ,p_object_version_number  in     number
407   ) is
408   --
409   -- Cursor to check that the exclusion_rule_id is valid.
410   --
411   cursor csr_exclusion_rule_id_valid is
412   select null
413   from  pay_shadow_element_types     pset
414   ,     pay_template_exclusion_rules ter
415   where pset.element_type_id  = p_shadow_element_type_id
416   and   ter.template_id       = pset.template_id
417   and   ter.exclusion_rule_id = p_exclusion_rule_id;
418 --
419   l_proc  varchar2(72) := g_package||'chk_exclusion_rule_id';
420   l_api_updating boolean;
421   l_valid        varchar2(1);
422 --
423 Begin
424   hr_utility.set_location('Entering:'||l_proc, 5);
425   l_api_updating := pay_sfr_shd.api_updating
426   (p_formula_result_rule_id        => p_formula_result_rule_id
427   ,p_object_version_number => p_object_version_number
428   );
429   if (l_api_updating and nvl(p_exclusion_rule_id, hr_api.g_number) <>
430       nvl(pay_sfr_shd.g_old_rec.exclusion_rule_id, hr_api.g_number)) or
431      not l_api_updating
432   then
433     if p_exclusion_rule_id is not null then
434       open csr_exclusion_rule_id_valid;
435       fetch csr_exclusion_rule_id_valid into l_valid;
436       if csr_exclusion_rule_id_valid%notfound then
437         hr_utility.set_location('Leaving:'||l_proc, 10);
438         close csr_exclusion_rule_id_valid;
439         fnd_message.set_name('PAY', 'PAY_50100_ETM_INVALID_EXC_RULE');
440         fnd_message.raise_error;
441       end if;
442       close csr_exclusion_rule_id_valid;
443     end if;
444   end if;
445   hr_utility.set_location(' Leaving:'||l_proc, 15);
446 End chk_exclusion_rule_id;
447 -- ----------------------------------------------------------------------------
448 -- |------------------------------< chk_delete >------------------------------|
449 -- ----------------------------------------------------------------------------
450 Procedure chk_delete
451   (p_formula_result_rule_id     in     number
452   ) is
453   --
454   -- Cursors to check for rows referencing the balance classification.
455   --
456   cursor csr_core_objects is
457   select null
458   from   pay_template_core_objects tco
459   where  tco.core_object_type = pay_tco_shd.g_sfr_lookup_type
460   and    tco.shadow_object_id = p_formula_result_rule_id;
461 --
462   l_proc  varchar2(72) := g_package||'chk_delete';
463   l_error  exception;
464   l_exists varchar2(1);
465 --
466 Begin
467   hr_utility.set_location('Entering:'||l_proc, 5);
468   --
469   open csr_core_objects;
470   fetch csr_core_objects into l_exists;
471   if csr_core_objects%found then
472     hr_utility.set_location(' Leaving:'||l_proc, 10);
473     close csr_core_objects;
474     raise l_error;
475   end if;
476   close csr_core_objects;
477   hr_utility.set_location(' Leaving:'||l_proc, 25);
478 exception
479   when l_error then
480     fnd_message.set_name('PAY', 'PAY_50099_SFR_INVALID_DELETE');
481     fnd_message.raise_error;
482   when others then
483     hr_utility.set_location(' Leaving:'||l_proc, 30);
484     raise;
485 End chk_delete;
486 -- ----------------------------------------------------------------------------
487 -- |---------------------------< insert_validate >----------------------------|
488 -- ----------------------------------------------------------------------------
489 Procedure insert_validate
490 (p_effective_date in date
491 ,p_rec in pay_sfr_shd.g_rec_type
492 ) is
493 --
494   l_proc  varchar2(72) := g_package||'insert_validate';
495 --
496 Begin
497   hr_utility.set_location('Entering:'||l_proc, 5);
498   --
499   -- Call all supporting business operations
500   --
501   chk_shadow_element_type_id(p_rec.shadow_element_type_id);
502   --
503   chk_result_rule_type
504   (p_effective_date         => p_effective_date
505   ,p_result_rule_type       => p_rec.result_rule_type
506   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
507   ,p_object_version_number  => p_rec.object_version_number
508   );
509   --
510   chk_element_type_id
511   (p_element_type_id        => p_rec.element_type_id
512   ,p_element_name           => p_rec.element_name
513   ,p_shadow_element_type_id => p_rec.shadow_element_type_id
514   ,p_result_rule_type       => p_rec.result_rule_type
515   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
516   ,p_object_version_number  => p_rec.object_version_number
517   );
518   --
519   chk_input_value_id
520   (p_input_value_id         => p_rec.input_value_id
521   ,p_shadow_element_type_id => p_rec.shadow_element_type_id
522   ,p_result_rule_type       => p_rec.result_rule_type
523   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
524   ,p_object_version_number  => p_rec.object_version_number
525   );
526   --
527   chk_result_name
528   (p_result_name            => p_rec.result_name
529   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
530   ,p_object_version_number  => p_rec.object_version_number
531   );
532   --
533   chk_severity_level
534   (p_effective_date         => p_effective_date
535   ,p_severity_level         => p_rec.severity_level
536   ,p_result_rule_type       => p_rec.result_rule_type
537   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
538   ,p_object_version_number  => p_rec.object_version_number
539   );
540   --
541   chk_exclusion_rule_id
542   (p_exclusion_rule_id      => p_rec.exclusion_rule_id
543   ,p_shadow_element_type_id => p_rec.shadow_element_type_id
544   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
545   ,p_object_version_number  => p_rec.object_version_number
546   );
547   hr_utility.set_location(' Leaving:'||l_proc, 10);
548 End insert_validate;
549 --
550 -- ----------------------------------------------------------------------------
551 -- |---------------------------< update_validate >----------------------------|
552 -- ----------------------------------------------------------------------------
553 Procedure update_validate
554 (p_effective_date in date
555 ,p_rec in pay_sfr_shd.g_rec_type
556 ) is
557 --
558   l_proc  varchar2(72) := g_package||'update_validate';
559 --
560 Begin
561   hr_utility.set_location('Entering:'||l_proc, 5);
562   --
563   -- Call all supporting business operations
564   --
565   chk_non_updateable_args(p_rec);
566   --
567   chk_result_rule_type
568   (p_effective_date         => p_effective_date
569   ,p_result_rule_type       => p_rec.result_rule_type
570   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
571   ,p_object_version_number  => p_rec.object_version_number
572   );
573   --
574   chk_element_type_id
575   (p_element_type_id        => p_rec.element_type_id
576   ,p_element_name           => p_rec.element_name
577   ,p_shadow_element_type_id => p_rec.shadow_element_type_id
578   ,p_result_rule_type       => p_rec.result_rule_type
579   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
580   ,p_object_version_number  => p_rec.object_version_number
581   );
582   --
583   chk_input_value_id
584   (p_input_value_id         => p_rec.input_value_id
585   ,p_shadow_element_type_id => p_rec.shadow_element_type_id
586   ,p_result_rule_type       => p_rec.result_rule_type
587   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
588   ,p_object_version_number  => p_rec.object_version_number
589   );
590   --
591   chk_result_name
592   (p_result_name            => p_rec.result_name
593   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
594   ,p_object_version_number  => p_rec.object_version_number
595   );
596   --
597   chk_severity_level
598   (p_effective_date         => p_effective_date
599   ,p_severity_level         => p_rec.severity_level
600   ,p_result_rule_type       => p_rec.result_rule_type
601   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
602   ,p_object_version_number  => p_rec.object_version_number
603   );
604   --
605   chk_exclusion_rule_id
606   (p_exclusion_rule_id      => p_rec.exclusion_rule_id
607   ,p_shadow_element_type_id => p_rec.shadow_element_type_id
608   ,p_formula_result_rule_id => p_rec.formula_result_rule_id
609   ,p_object_version_number  => p_rec.object_version_number
610   );
611   --
612   hr_utility.set_location(' Leaving:'||l_proc, 10);
613 End update_validate;
614 --
615 -- ----------------------------------------------------------------------------
616 -- |---------------------------< delete_validate >----------------------------|
617 -- ----------------------------------------------------------------------------
618 Procedure delete_validate(p_rec in pay_sfr_shd.g_rec_type) is
619 --
620   l_proc  varchar2(72) := g_package||'delete_validate';
621 --
622 Begin
623   hr_utility.set_location('Entering:'||l_proc, 5);
624   --
625   -- Call all supporting business operations
626   --
627   chk_delete(p_rec.formula_result_rule_id);
628   --
629   hr_utility.set_location(' Leaving:'||l_proc, 10);
630 End delete_validate;
631 --
632 end pay_sfr_bus;