1 Package Body hr_opt_bus as
2 /* $Header: hroptrhi.pkb 120.1 2005/09/29 07:03 santosin noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hr_opt_bus.'; -- Global package name
9 --
10 -- The following two global variables are only to be
11 -- used by the return_legislation_code function.
12 --
13 g_legislation_code varchar2(150) default null;
14 g_option_id number default null;
15 --
16 -- ----------------------------------------------------------------------------
17 -- |-----------------------< chk_non_updateable_args >------------------------|
18 -- ----------------------------------------------------------------------------
19 -- {Start Of Comments}
20 --
21 -- Description:
22 -- This procedure is used to ensure that non updateable attributes have
23 -- not been updated. If an attribute has been updated an error is generated.
24 --
25 -- Pre Conditions:
26 -- g_old_rec has been populated with details of the values currently in
27 -- the database.
28 --
29 -- In Arguments:
30 -- p_rec has been populated with the updated values the user would like the
31 -- record set to.
32 --
33 -- Post Success:
34 -- Processing continues if all the non updateable attributes have not
35 -- changed.
36 --
37 -- Post Failure:
38 -- An application error is raised if any of the non updatable attributes
39 -- have been altered.
40 --
41 -- {End Of Comments}
42 -- ----------------------------------------------------------------------------
43 Procedure chk_non_updateable_args
44 (
45 p_rec in hr_opt_shd.g_rec_type
46 ) IS
47 --
48 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
49 --
50 Begin
51 --
52 -- Only proceed with the validation if a row exists for the current
53 -- record in the HR Schema.
54 --
55 IF NOT hr_opt_shd.api_updating
56 (p_option_id => p_rec.option_id
57 ,p_object_version_number => p_rec.object_version_number
58 ) THEN
59 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
60 fnd_message.set_token('PROCEDURE ', l_proc);
61 fnd_message.set_token('STEP ', '5');
62 fnd_message.raise_error;
63 END IF;
64
65 if nvl(p_rec.option_type_id, hr_api.g_number) <>
66 nvl(hr_opt_shd.g_old_rec.option_type_id
67 ,hr_api.g_number
68 ) then
69 hr_api.argument_changed_error
70 (p_api_name => l_proc
71 ,p_argument => 'OPTION_TYPE_ID'
72 ,p_base_table => hr_opt_shd.g_tab_nam
73 );
74 end if;
75
76 if nvl(p_rec.option_level, hr_api.g_number) <>
77 nvl(hr_opt_shd.g_old_rec.option_level
78 ,hr_api.g_number
79 ) then
80 hr_api.argument_changed_error
81 (p_api_name => l_proc
82 ,p_argument => 'OPTION_LEVEL'
83 ,p_base_table => hr_opt_shd.g_tab_nam
84 );
85 end if;
86
87
88 if nvl(p_rec.option_level_id, hr_api.g_varchar2) <>
89 nvl(hr_opt_shd.g_old_rec.option_level_id
90 ,hr_api.g_varchar2
91 ) then
92 hr_api.argument_changed_error
93 (p_api_name => l_proc
94 ,p_argument => 'OPTION_LEVEL_ID'
95 ,p_base_table => hr_opt_shd.g_tab_nam
96 );
97 end if;
98
99 if nvl(p_rec.integration_id, hr_api.g_number) <>
100 nvl(hr_opt_shd.g_old_rec.integration_id
101 ,hr_api.g_number
102 ) then
103 hr_api.argument_changed_error
104 (p_api_name => l_proc
105 ,p_argument => 'INTEGRATION_ID'
106 ,p_base_table => hr_opt_shd.g_tab_nam
107 );
108 end if;
109
110
111 End chk_non_updateable_args;
112
113 -- ----------------------------------------------------------------------------
114 -- |-----------------------< CHK_OPTION_TYPE_ID>------------------------|
115 -- ----------------------------------------------------------------------------
116 -- {Start Of Comments}
117 --
118 -- Description:
119 -- This procedure ensures option_type_id is present in hr_ki_option_types
120 -- and it is mandatory.
121 -- Pre Conditions:
122 -- g_old_rec has been populated with details of the values currently in
123 -- the database.
124 --
125 -- In Arguments:
126 -- p_option_type_id
127 -- Post Success:
128 -- Processing continues if option type id is valid
129 --
130 -- Post Failure:
131 -- An application error is raised if option type id is invalid
132 --
133 -- {End Of Comments}
134 -- ----------------------------------------------------------------------------
135 Procedure CHK_OPTION_TYPE_ID
136 (p_option_type_id in number
137 ) IS
138 --
139 l_proc varchar2(72) := g_package || 'CHK_OPTION_TYPE_ID';
140 l_key varchar2(30) ;
141 cursor csr_name is
142 select option_type_id
143 from hr_ki_option_types
144 where option_type_id = p_option_type_id;
145
146 --
147 Begin
148 hr_utility.set_location('Entering:'||l_proc,10);
149
150 hr_api.mandatory_arg_error
151 (p_api_name => l_proc
152 ,p_argument => 'OPTION_TYPE_ID'
153 ,p_argument_value => p_option_type_id
154 );
155
156 open csr_name;
157 fetch csr_name into l_key;
158 hr_utility.set_location('After fetching:'||l_proc,20);
159 if (csr_name%notfound) then
160 close csr_name;
161 fnd_message.set_name('PER','PER_449953_OPT_OP_TY_ID_ABSENT');
162 fnd_message.raise_error;
163 end if;
164
165 close csr_name;
166
167 hr_utility.set_location(' Leaving:'||l_proc,30);
168 exception
169 when app_exception.application_exception then
170 if hr_multi_message.exception_add
171 (p_associated_column1 => 'HR_KI_OPTIONS.OPTION_TYPE_ID'
172 )then
173 hr_utility.set_location(' Leaving:'||l_proc, 40);
174 raise;
175 end if;
176 hr_utility.set_location(' Leaving:'||l_proc,50);
177 End CHK_OPTION_TYPE_ID;
178
179 -- ----------------------------------------------------------------------------
180 -- |-----------------------< CHK_OPTION_LEVEL>------------------------|
181 -- ----------------------------------------------------------------------------
182 -- {Start Of Comments}
183 --
184 -- Description:
185 -- This procedure ensures if option level value presnt in HR_LOOKUPS
186 -- Pre Conditions:
187 -- g_old_rec has been populated with details of the values currently in
188 -- the database.
189 --
190 -- In Arguments:
191 -- p_option_level,p_effective_date
192 --
193 -- Post Success:
194 -- Processing continues if option level is valid
195 --
196 -- Post Failure:
197 -- An application error is raised if option level is invalid
198 --
199 -- {End Of Comments}
200 -- ----------------------------------------------------------------------------
201 Procedure CHK_OPTION_LEVEL
202 (p_option_level in number
203 ,p_effective_date in date
204
205 ) IS
206 --
207 l_proc varchar2(72) := g_package || 'CHK_OPTION_LEVEL';
208 --
209 Begin
210 hr_utility.set_location('Entering:'||l_proc,10);
211
212 hr_api.mandatory_arg_error
213 (p_api_name => l_proc
214 ,p_argument => 'OPTION_LEVEL'
215 ,p_argument_value => p_option_level
216 );
217
218
219 hr_utility.set_location('validating:'||l_proc,20);
220
221 --Is it neccessary to validate against not_exists_in_fnd_lookups?
222 if hr_api.not_exists_in_hrstanlookups
223 (p_effective_date => p_effective_date
224 ,p_lookup_type => 'HR_KPI_OPTION_LEVEL'
225 ,p_lookup_code => p_option_level
226 ) then
227 fnd_message.set_name('PER', 'PER_449956_OPT_OP_LEV_INVALID');
228 fnd_message.raise_error;
229 end if;
230
231 exception
232 when app_exception.application_exception then
233 if hr_multi_message.exception_add
234 (p_associated_column1 => 'HR_KI_OPTIONS.OPTION_LEVEL'
235 )then
236 hr_utility.set_location(' Leaving:'||l_proc, 30);
237 raise;
238 end if;
239 hr_utility.set_location(' Leaving:'||l_proc,40);
240 End CHK_OPTION_LEVEL;
241
242
243 -- ----------------------------------------------------------------------------
244 -- |-----------------------< CHK_OPTION_LEVEL_ID>------------------------|
245 -- ----------------------------------------------------------------------------
246 -- {Start Of Comments}
247 --
248 -- Description:
249 -- This procedure ensures that the option level id value is not null
250 -- if OPTION_LEVEL is not 100(SITE LEVEL)
251 --
252 -- Pre Conditions:
253 -- g_old_rec has been populated with details of the values currently in
254 -- the database.
255 --
256 -- In Arguments:
257 -- p_option_level,p_option_level_id
258 --
259 -- Post Success:
260 -- Processing continues if option level id is valid
261 --
262 -- Post Failure:
263 -- An application error is raised if option level id is invalid
264 --
265 -- {End Of Comments}
266 -- ----------------------------------------------------------------------------
267
268 Procedure CHK_OPTION_LEVEL_ID
269 (p_option_level in number
270 ,p_option_level_id in varchar2
271
272 ) IS
273 --
274 l_proc varchar2(72) := g_package || 'CHK_OPTION_LEVEL_ID';
275 l_site_value number(15) := 100;
276 l_app_value number(15) := 80;
277 l_resp_value number(15) := 60;
278 l_user_value number(15) := 20;
279
280 l_resp_id number;
281 l_app_id number;
282 l_user_id number;
283 l_application_id number;
284 l_responsibility_id number;
285 l_separator varchar2(1):='#';
286
287 l_app_id_val_after varchar2(100):='';
288 l_app_id_val_before varchar2(100):='';
289 l_temp_option_level_id varchar2(50);
290
291
292 cursor fnd_resp(l_a_id number,l_r_id number) is
293 select responsibility_id
294 from fnd_responsibility
295 where responsibility_id =l_r_id
296 and application_id=l_a_id;
297
298
299 cursor fnd_app is
300 select application_id
301 from fnd_application
302 where application_id =p_option_level_id ;
303
304
305 cursor fnd_us is
306 select user_id
307 from fnd_user
308 where user_id=p_option_level_id ;
309
310
311 --
312 Begin
313 hr_utility.set_location('Entering:'||l_proc,10);
314
315 -- Only proceed with OPTION_LEVEL_ID validation when the
316 -- Multiple Message List does not already contain an errors
317 -- associated with the OPTION_LEVEL column.
318 --
319 if hr_multi_message.no_exclusive_error
320 (p_check_column1 => 'HR_KI_OPTIONS.OPTION_LEVEL'
321 ,p_associated_column1 => 'HR_KI_OPTIONS.OPTION_LEVEL'
322 ) then
323
324
325 --check if level is NOT SITE
326 IF p_option_level <> l_site_value THEN
327
328 --level_id should not be null
329 hr_api.mandatory_arg_error
330 (p_api_name => l_proc
331 ,p_argument => 'OPTION_LEVEL_ID'
332 ,p_argument_value => p_option_level_id
333 );
334
335 hr_utility.set_location('level id is not null:'||l_proc, 20);
336
337 --if level is application
338 --check validity of id against fnd_application table
339 IF p_option_level=l_app_value THEN
340
341
342 open fnd_app;
343 fetch fnd_app into l_app_id;
344 if (fnd_app%notfound)then
345 close fnd_app;
346 fnd_message.set_name('PER','PER_449958_OPT_OP_APP_ID_ERR');
347 fnd_message.raise_error;
348 end if;
349 close fnd_app;
350
351 --if level is responsibility
352 --check validity of id against fnd_responsibility table
353 elsIF p_option_level=l_resp_value THEN
354
355 -- check if the value forms a numerical value
356 --set to temp string for validation
357
358 l_temp_option_level_id := p_option_level_id;
359 l_temp_option_level_id:=replace(l_temp_option_level_id,l_separator, '');
360
361 --replace all number occurances with null
362 --throw error if final string is not null
363 for i in 0 .. 9 loop
364 l_temp_option_level_id := replace(l_temp_option_level_id, i, '');
365 end loop;
366 if(l_temp_option_level_id is not null) then
367 fnd_message.set_name('PER','PER_449959_OPT_OP_RESP_ID_ERR');
368 fnd_message.raise_error;
369 end if;
370
371 --throw error if No occurance of ':'
372 if (instr(p_option_level_id,l_separator) = 0) then
373 fnd_message.set_name('PER','PER_449959_OPT_OP_RESP_ID_ERR');
374 fnd_message.raise_error;
375 end if;
376
377 --get the values
378 l_responsibility_id:=to_number(substr(p_option_level_id,1,
379 instr(p_option_level_id,l_separator)-1));
380
381 l_application_id:=to_number(substr(p_option_level_id,
382 instr(p_option_level_id,l_separator)+1));
383
384 if l_responsibility_id is null then
385 fnd_message.set_name('PER','PER_449959_OPT_OP_RESP_ID_ERR');
386 fnd_message.raise_error;
387 end if;
388
389 if l_application_id is null then
390 fnd_message.set_name('PER','PER_449959_OPT_OP_RESP_ID_ERR');
391 fnd_message.raise_error;
392 end if;
393
394 --open cursor with extracted values
395 open fnd_resp(l_application_id,l_responsibility_id);
396 fetch fnd_resp into l_resp_id;
397 if (fnd_resp%notfound)then
398 close fnd_resp;
399 fnd_message.set_name('PER','PER_449959_OPT_OP_RESP_ID_ERR');
400 fnd_message.raise_error;
401 END IF;
402 close fnd_resp;
403
404 --if level is User
405 --check validity of id against fnd_user table
406
407 elsIF p_option_level=l_user_value THEN
408 open fnd_us;
409 fetch fnd_us into l_user_id;
410 if (fnd_us%notfound)then
411 close fnd_us;
412 fnd_message.set_name('PER','PER_449960_OPT_OP_US_ID_ERR');
413 fnd_message.raise_error;
414 END IF;
415 close fnd_us;
416
417 end if;
418
419 --IF level is SITE then option_level_id must be null
420 else
421 IF p_option_level_id is not null THEN
422 fnd_message.set_name('PER','PER_449957_OPT_OP_LE_ID_INVAL');
423 fnd_message.raise_error;
424 END IF;
425
426 END IF;
427
428 END IF;
429
430 exception
431 when app_exception.application_exception then
432 if hr_multi_message.exception_add
433 (p_same_associated_columns => 'Y'
434 )then
435 hr_utility.set_location(' Leaving:'||l_proc, 30);
436 raise;
437 end if;
438 hr_utility.set_location(' Leaving:'||l_proc,40);
439 End CHK_OPTION_LEVEL_ID;
440
441 -- ----------------------------------------------------------------------------
442 -- |-----------------------< CHK_ENCRYPTED>-----------------------------------|
443 -- ----------------------------------------------------------------------------
444 -- {Start Of Comments}
445 --
446 -- Description:
447 -- This procedure ensures if encrypted value is either Y or N
448 -- Pre Conditions:
449 -- g_old_rec has been populated with details of the values currently in
450 -- the database.
451 --
452 -- In Arguments:
453 -- p_encrypted,p_value
454 --
455 -- Post Success:
456 -- Processing continues if encrypted column value is valid
457 --
458 -- Post Failure:
459 -- An application error is raised if encrypted column value is invalid
460 --
461 -- {End Of Comments}
462 -- ----------------------------------------------------------------------------
463 Procedure CHK_ENCRYPTED
464 (p_encrypted in varchar2
465 ,p_value in varchar2
466 ) IS
467 --
468 l_proc varchar2(72) := g_package || 'CHK_ENCRYPTED';
469 --
470 Begin
471 hr_utility.set_location('Entering:'||l_proc,10);
472
473 --encrypted column should not be null
474 hr_api.mandatory_arg_error
475 (p_api_name => l_proc
476 ,p_argument => 'ENCRYPTED'
477 ,p_argument_value => p_encrypted
478 );
479
480 hr_utility.set_location('validating:'||l_proc,20);
481
482 if upper(p_encrypted) ='Y' or upper(p_encrypted)='N' then
483 null;
484 else
485 fnd_message.set_name('PER', 'PER_449954_OPT_ENCRYPTED_INVAL');
486 fnd_message.raise_error;
487
488 end if;
489
490 exception
491 when app_exception.application_exception then
492 if hr_multi_message.exception_add
493 (p_associated_column1 => 'HR_KI_OPTIONS.ENCRYPTED'
494 )then
495 hr_utility.set_location(' Leaving:'||l_proc, 30);
496 raise;
497 end if;
498 hr_utility.set_location(' Leaving:'||l_proc,40);
499 End CHK_ENCRYPTED;
500
501 -- ----------------------------------------------------------------------------
502 -- |-----------------------< chk_integration_id>------------------------|
503 -- ----------------------------------------------------------------------------
504 -- {Start Of Comments}
505 --
506 -- Description:
507 -- This procedure ensures integration_id is present in hr_ki_integrations
508 -- and it is mandatory.
509 -- Pre Conditions:
510 -- g_old_rec has been populated with details of the values currently in
511 -- the database.
512 --
513 -- In Arguments:
514 -- p_integration_id
515 --
516 -- Post Success:
517 -- Processing continues if integration_id is valid
518 --
519 -- Post Failure:
520 -- An application error is raised if integration_id is invalid
521 --
522 -- {End Of Comments}
523 -- ----------------------------------------------------------------------------
524
525 Procedure chk_integration_id
526 (p_integration_id in number
527 ) IS
528 --
529 l_proc varchar2(72) := g_package || 'chk_integration_id';
530 l_key varchar2(30) ;
531 cursor csr_int is
532 select INTEGRATION_ID
533 from hr_ki_integrations
534 where integration_id = p_integration_id;
535
536
537 --
538 Begin
539 hr_utility.set_location('Entering:'||l_proc,10);
540
541 --integration_id should not be null
542
543 hr_api.mandatory_arg_error
544 (p_api_name => l_proc
545 ,p_argument => 'INTEGRATION_ID'
546 ,p_argument_value => p_integration_id
547 );
548
549
550 hr_utility.set_location('Validating:'||l_proc,20);
551
552
553 open csr_int;
554 fetch csr_int into l_key;
555 hr_utility.set_location('After fetching :'||l_proc,30);
556 if (csr_int%notfound) then
557 close csr_int;
558 fnd_message.set_name('PER','PER_449955_OPT_INT_ID_ABSENT');
559 fnd_message.raise_error;
560 end if;
561 close csr_int;
562
563 hr_utility.set_location(' Leaving:'||l_proc,40);
564 exception
565 when app_exception.application_exception then
566 if hr_multi_message.exception_add
567 (p_associated_column1 => 'HR_KI_OPTIONS.INTEGRATION_ID'
568 )then
569 hr_utility.set_location(' Leaving:'||l_proc, 50);
570 raise;
571 end if;
572 hr_utility.set_location(' Leaving:'||l_proc,60);
573 End chk_integration_id;
574
575
576
577 -- ----------------------------------------------------------------------------
578 -- |-----------------------< CHK_UNIQUE_RECORD>------------------------|
579 -- ----------------------------------------------------------------------------
580 -- {Start Of Comments}
581 --
582 -- Description:
583 -- This procedure ensures if record is unique for combination of
584 -- option_type_id,integration_id,option_level,option_level_id
585 --
586 -- Pre Conditions:
587 -- g_old_rec has been populated with details of the values currently in
588 -- the database.
589 --
590 -- In Arguments:
591 -- p_option_type_id,p_integration_id,p_option_level_id,p_option_level
592 --
593 -- Post Success:
594 -- Processing continues record is valid
595 --
596 -- Post Failure:
597 -- An application error is raised for invalid record
598 --
599 -- {End Of Comments}
600 -- ----------------------------------------------------------------------------
601 Procedure CHK_UNIQUE_RECORD
602 (
603 p_option_type_id in number
604 ,p_integration_id in number
605 ,p_option_level in number
606 ,p_option_level_id in varchar2
607
608 ) IS
609 --
610 l_proc varchar2(72) := g_package || 'CHK_UNIQUE_RECORD';
611 l_found varchar2(1);
612
613 cursor csr_int_options is
614 select null
615 from hr_ki_options
616 where (option_type_id = p_option_type_id
617 and integration_id = p_integration_id
618 and option_level=p_option_level)
619 and (option_level_id=p_option_level_id
620 or option_level_id is null);
621 --
622 Begin
623 hr_utility.set_location('Entering:'||l_proc,10);
624
625 -- Only proceed with unique record validation when the
626 -- Multiple Message List does not already contain an errors
627 -- associated with the OPTION_TYPE_ID,INTEGRATION_ID,OPTION_LEVEL
628 -- OPTION_LEVEL_ID columns.
629 --
630 if hr_multi_message.no_exclusive_error
631 (p_check_column1 => 'HR_KI_OPTIONS.OPTION_TYPE_ID'
632 ,p_associated_column1 => 'HR_KI_OPTIONS.OPTION_TYPE_ID'
633 ,p_check_column2 => 'HR_KI_OPTIONS.INTEGRATION_ID'
634 ,p_associated_column2 => 'HR_KI_OPTIONS.INTEGRATION_ID'
635 ,p_check_column3 => 'HR_KI_OPTIONS.OPTION_LEVEL'
636 ,p_associated_column3 => 'HR_KI_OPTIONS.OPTION_LEVEL'
637 ,p_check_column4 => 'HR_KI_OPTIONS.OPTION_LEVEL_ID'
638 ,p_associated_column4 => 'HR_KI_OPTIONS.OPTION_LEVEL_ID'
639 ) then
640
641 open csr_int_options;
642 fetch csr_int_options into l_found;
643
644 if (csr_int_options%found) then
645 close csr_int_options;
646 fnd_message.set_name('PER','PER_449952_OPT_INVALID_COMB');
647 fnd_message.raise_error;
648 end if;
649 close csr_int_options;
650
651 end if;
652
653 exception
654 when app_exception.application_exception then
655 if hr_multi_message.exception_add
656 (p_same_associated_columns => 'Y'
657 )then
658 hr_utility.set_location(' Leaving:'||l_proc, 40);
659 raise;
660 end if;
661 hr_utility.set_location(' Leaving:'||l_proc,50);
662 End CHK_UNIQUE_RECORD;
663
664
665 --
666 -- ----------------------------------------------------------------------------
667 -- |---------------------------< insert_validate >----------------------------|
668 -- ----------------------------------------------------------------------------
669 Procedure insert_validate
670 (p_effective_date in date
671 ,p_rec in hr_opt_shd.g_rec_type
672 ) is
673 --
674 l_proc varchar2(72) := g_package||'insert_validate';
675 --
676 Begin
677 hr_utility.set_location('Entering:'||l_proc, 5);
678 --
679 -- Call all supporting business operations
680 --
681 --
682 -- "-- No business group context. HR_STANDARD_LOOKUPS used for validation."
683 -- "-- CLIENT_INFO not set. No lookup validation or joins to HR_LOOKUPS."
684 --
685 -- Validate Dependent Attributes
686 --
687 --
688 CHK_OPTION_TYPE_ID
689 (
690 p_option_type_id => p_rec.option_type_id
691 );
692
693 CHK_OPTION_LEVEL
694 (
695 p_option_level => p_rec.option_level
696 ,p_effective_date =>p_effective_date
697 );
698
699 CHK_OPTION_LEVEL_ID
700 (
701 p_option_level => p_rec.option_level
702 ,p_option_level_id =>p_rec.option_level_id
703 );
704
705 CHK_ENCRYPTED
706 (
707 p_encrypted => p_rec.encrypted
708 ,p_value =>p_rec.value
709 );
710
711 CHK_INTEGRATION_ID
712 (
713 p_integration_id => p_rec.integration_id
714 );
715
716 CHK_UNIQUE_RECORD
717 (
718 p_option_type_id => p_rec.option_type_id
719 ,p_integration_id => p_rec.integration_id
720 ,p_option_level => p_rec.option_level
721 ,p_option_level_id =>p_rec.option_level_id
722
723 );
724
725 hr_utility.set_location(' Leaving:'||l_proc, 10);
726 End insert_validate;
727 --
728 -- ----------------------------------------------------------------------------
729 -- |---------------------------< update_validate >----------------------------|
730 -- ----------------------------------------------------------------------------
731 Procedure update_validate
732 (
733 p_rec in hr_opt_shd.g_rec_type
734 ) is
735 --
736 l_proc varchar2(72) := g_package||'update_validate';
737 --
738 Begin
739 hr_utility.set_location('Entering:'||l_proc, 5);
740 --
741 -- Call all supporting business operations
742 --
743 --
744 -- "-- No business group context. HR_STANDARD_LOOKUPS used for validation."
745 -- "-- CLIENT_INFO not set. No lookup validation or joins to HR_LOOKUPS."
746 --
747 -- Validate Dependent Attributes
748 --
749 chk_non_updateable_args
750 (
751 p_rec => p_rec
752 );
753
754 CHK_ENCRYPTED
755 (
756 p_encrypted => p_rec.encrypted
757 ,p_value =>p_rec.value
758 );
759 --
760 --
761 hr_utility.set_location(' Leaving:'||l_proc, 10);
762 End update_validate;
763 --
764 -- ----------------------------------------------------------------------------
765 -- |---------------------------< delete_validate >----------------------------|
766 -- ----------------------------------------------------------------------------
767 Procedure delete_validate
768 (p_rec in hr_opt_shd.g_rec_type
769 ) is
770 --
771 l_proc varchar2(72) := g_package||'delete_validate';
772 --
773 Begin
774 hr_utility.set_location('Entering:'||l_proc, 5);
775 --
776 -- Call all supporting business operations
777 --
778 hr_utility.set_location(' Leaving:'||l_proc, 10);
779 End delete_validate;
780 --
781 end hr_opt_bus;