DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_OPT_BUS

Source


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;