DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_BBA_BUS

Source


1 Package Body per_bba_bus as
2 /* $Header: pebbarhi.pkb 115.8 2002/12/02 13:03:45 apholt noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  per_bba_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_balance_amount_id      number         default null;
15 --
16 --  ---------------------------------------------------------------------------
17 --  |----------------------< set_security_group_id >--------------------------|
18 --  ---------------------------------------------------------------------------
19 --
20 procedure set_security_group_id
21   (p_balance_amount_id                    in number
22   ) is
23   --
24   -- Declare cursor
25   --
26   cursor csr_sec_grp is
27     select inf.org_information14
28       from hr_organization_information inf
29          , per_bf_balance_amounts bba
30      where bba.balance_amount_id = p_balance_amount_id
31        and inf.organization_id   = bba.business_group_id
32        and inf.org_information_context || '' = 'Business Group Information';
33   --
34   -- Declare local variables
35   --
36   l_security_group_id number;
37   l_proc              varchar2(72)  :=  g_package||'set_security_group_id';
38   --
39 begin
40   --
41   hr_utility.set_location('Entering:'|| l_proc, 10);
42   --
43   -- Ensure that all the mandatory parameter are not null
44   --
45   hr_api.mandatory_arg_error(p_api_name           => l_proc,
46                              p_argument           => 'BALANCE_AMOUNT_ID',
47                              p_argument_value     => p_balance_amount_id);
48   --
49   open csr_sec_grp;
50   fetch csr_sec_grp into l_security_group_id;
51   --
52   if csr_sec_grp%notfound then
53      --
54      close csr_sec_grp;
55      --
56      -- The primary key is invalid therefore we must error
57      --
58      fnd_message.set_name('PER','HR_7220_INVALID_PRIMARY_KEY');
59      fnd_message.raise_error;
60      --
61   end if;
62   close csr_sec_grp;
63   --
64   -- Set the security_group_id in CLIENT_INFO
65   --
66   hr_api.set_security_group_id
67     (p_security_group_id => l_security_group_id
68     );
69   --
70   hr_utility.set_location(' Leaving:'|| l_proc, 20);
71   --
72 end set_security_group_id;
73 --
74 --  ---------------------------------------------------------------------------
75 --  |---------------------< return_legislation_code >-------------------------|
76 --  ---------------------------------------------------------------------------
77 --
78 function return_legislation_code
79   (p_balance_amount_id                    in number) return varchar2 is
80   --
81   -- Declare cursor
82   --
83   cursor csr_leg_code is
84     select pbg.legislation_code
85       from per_business_groups pbg
86          , per_bf_balance_amounts bba
87      where bba.balance_amount_id = p_balance_amount_id
88        and pbg.business_group_id = bba.business_group_id;
89   --
90   -- Declare local variables
91   --
92   l_legislation_code  varchar2(150);
93   l_proc              varchar2(72)  :=  g_package||'return_legislation_code';
94   --
95 begin
96   --
97   hr_utility.set_location('Entering:'|| l_proc, 10);
98   --
99   -- Ensure that all the mandatory parameter are not null
100   --
101   hr_api.mandatory_arg_error(p_api_name           => l_proc,
102                              p_argument           => 'BALANCE_AMOUNT_ID',
103                              p_argument_value     => p_balance_amount_id);
104   --
105   if ( nvl(g_balance_amount_id, hr_api.g_number) = p_balance_amount_id) then
106     --
107     -- The legislation code has already been found with a previous
108     -- call to this function. Just return the value in the global
109     -- variable.
110     --
111     l_legislation_code := g_legislation_code;
112     hr_utility.set_location(l_proc, 20);
113   else
114     --
115     -- The ID is different to the last call to this function
116     -- or this is the first call to this function.
117     --
118     open csr_leg_code;
119     fetch csr_leg_code into l_legislation_code;
120     --
121     if csr_leg_code%notfound then
122       --
123       -- The primary key is invalid therefore we must error
124       --
125       close csr_leg_code;
126       fnd_message.set_name('PER','HR_7220_INVALID_PRIMARY_KEY');
127       fnd_message.raise_error;
128     end if;
129     hr_utility.set_location(l_proc,30);
130     --
131     -- Set the global variables so the values are
132     -- available for the next call to this function.
133     --
134     close csr_leg_code;
135     g_balance_amount_id                 := p_balance_amount_id;
136     g_legislation_code                  := l_legislation_code;
137   end if;
138   hr_utility.set_location(' Leaving:'|| l_proc, 40);
139   return l_legislation_code;
140 end return_legislation_code;
141 --
142 -- ----------------------------------------------------------------------------
143 -- |------------------------------< chk_df >----------------------------------|
144 -- ----------------------------------------------------------------------------
145 --
146 -- Description:
147 --   Validates all the Descriptive Flexfield values.
148 --
149 -- Prerequisites:
150 --   All other columns have been validated.  Must be called as the
151 --   last step from insert_validate and update_validate.
152 --
153 -- In Arguments:
154 --   p_rec
155 --
156 -- Post Success:
157 --   If the Descriptive Flexfield structure column and data values are
158 --   all valid this procedure will end normally and processing will
159 --   continue.
160 --
161 -- Post Failure:
162 --   If the Descriptive Flexfield structure column value or any of
163 --   the data values are invalid then an application error is raised as
164 --   a PL/SQL exception.
165 --
166 -- Access Status:
167 --   Internal Row Handler Use Only.
168 --
169 -- ----------------------------------------------------------------------------
170 procedure chk_df
171   (p_rec in per_bba_shd.g_rec_type
172   ) is
173 --
174   l_proc   varchar2(72) := g_package || 'chk_df';
175 --
176 begin
177   hr_utility.set_location('Entering:'||l_proc,10);
178   --
179   if ((p_rec.balance_amount_id is not null)  and (
180     nvl(per_bba_shd.g_old_rec.bba_attribute_category, hr_api.g_varchar2) <>
181     nvl(p_rec.bba_attribute_category, hr_api.g_varchar2)  or
182     nvl(per_bba_shd.g_old_rec.bba_attribute1, hr_api.g_varchar2) <>
183     nvl(p_rec.bba_attribute1, hr_api.g_varchar2)  or
184     nvl(per_bba_shd.g_old_rec.bba_attribute2, hr_api.g_varchar2) <>
185     nvl(p_rec.bba_attribute2, hr_api.g_varchar2)  or
186     nvl(per_bba_shd.g_old_rec.bba_attribute3, hr_api.g_varchar2) <>
187     nvl(p_rec.bba_attribute3, hr_api.g_varchar2)  or
188     nvl(per_bba_shd.g_old_rec.bba_attribute4, hr_api.g_varchar2) <>
189     nvl(p_rec.bba_attribute4, hr_api.g_varchar2)  or
190     nvl(per_bba_shd.g_old_rec.bba_attribute5, hr_api.g_varchar2) <>
191     nvl(p_rec.bba_attribute5, hr_api.g_varchar2)  or
192     nvl(per_bba_shd.g_old_rec.bba_attribute6, hr_api.g_varchar2) <>
193     nvl(p_rec.bba_attribute6, hr_api.g_varchar2)  or
194     nvl(per_bba_shd.g_old_rec.bba_attribute7, hr_api.g_varchar2) <>
195     nvl(p_rec.bba_attribute7, hr_api.g_varchar2)  or
196     nvl(per_bba_shd.g_old_rec.bba_attribute8, hr_api.g_varchar2) <>
197     nvl(p_rec.bba_attribute8, hr_api.g_varchar2)  or
198     nvl(per_bba_shd.g_old_rec.bba_attribute9, hr_api.g_varchar2) <>
199     nvl(p_rec.bba_attribute9, hr_api.g_varchar2)  or
200     nvl(per_bba_shd.g_old_rec.bba_attribute10, hr_api.g_varchar2) <>
201     nvl(p_rec.bba_attribute10, hr_api.g_varchar2)  or
202     nvl(per_bba_shd.g_old_rec.bba_attribute11, hr_api.g_varchar2) <>
203     nvl(p_rec.bba_attribute11, hr_api.g_varchar2)  or
204     nvl(per_bba_shd.g_old_rec.bba_attribute12, hr_api.g_varchar2) <>
205     nvl(p_rec.bba_attribute12, hr_api.g_varchar2)  or
206     nvl(per_bba_shd.g_old_rec.bba_attribute13, hr_api.g_varchar2) <>
207     nvl(p_rec.bba_attribute13, hr_api.g_varchar2)  or
208     nvl(per_bba_shd.g_old_rec.bba_attribute14, hr_api.g_varchar2) <>
209     nvl(p_rec.bba_attribute14, hr_api.g_varchar2)  or
210     nvl(per_bba_shd.g_old_rec.bba_attribute15, hr_api.g_varchar2) <>
211     nvl(p_rec.bba_attribute15, hr_api.g_varchar2)  or
212     nvl(per_bba_shd.g_old_rec.bba_attribute16, hr_api.g_varchar2) <>
213     nvl(p_rec.bba_attribute16, hr_api.g_varchar2)  or
214     nvl(per_bba_shd.g_old_rec.bba_attribute17, hr_api.g_varchar2) <>
215     nvl(p_rec.bba_attribute17, hr_api.g_varchar2)  or
216     nvl(per_bba_shd.g_old_rec.bba_attribute18, hr_api.g_varchar2) <>
217     nvl(p_rec.bba_attribute18, hr_api.g_varchar2)  or
218     nvl(per_bba_shd.g_old_rec.bba_attribute19, hr_api.g_varchar2) <>
219     nvl(p_rec.bba_attribute19, hr_api.g_varchar2)  or
220     nvl(per_bba_shd.g_old_rec.bba_attribute20, hr_api.g_varchar2) <>
221     nvl(p_rec.bba_attribute20, hr_api.g_varchar2)  or
222     nvl(per_bba_shd.g_old_rec.bba_attribute21, hr_api.g_varchar2) <>
223     nvl(p_rec.bba_attribute21, hr_api.g_varchar2)  or
224     nvl(per_bba_shd.g_old_rec.bba_attribute22, hr_api.g_varchar2) <>
225     nvl(p_rec.bba_attribute22, hr_api.g_varchar2)  or
226     nvl(per_bba_shd.g_old_rec.bba_attribute23, hr_api.g_varchar2) <>
227     nvl(p_rec.bba_attribute23, hr_api.g_varchar2)  or
228     nvl(per_bba_shd.g_old_rec.bba_attribute24, hr_api.g_varchar2) <>
229     nvl(p_rec.bba_attribute24, hr_api.g_varchar2)  or
230     nvl(per_bba_shd.g_old_rec.bba_attribute25, hr_api.g_varchar2) <>
231     nvl(p_rec.bba_attribute25, hr_api.g_varchar2)  or
232     nvl(per_bba_shd.g_old_rec.bba_attribute26, hr_api.g_varchar2) <>
233     nvl(p_rec.bba_attribute26, hr_api.g_varchar2)  or
234     nvl(per_bba_shd.g_old_rec.bba_attribute27, hr_api.g_varchar2) <>
235     nvl(p_rec.bba_attribute27, hr_api.g_varchar2)  or
236     nvl(per_bba_shd.g_old_rec.bba_attribute28, hr_api.g_varchar2) <>
237     nvl(p_rec.bba_attribute28, hr_api.g_varchar2)  or
238     nvl(per_bba_shd.g_old_rec.bba_attribute29, hr_api.g_varchar2) <>
239     nvl(p_rec.bba_attribute29, hr_api.g_varchar2)  or
240     nvl(per_bba_shd.g_old_rec.bba_attribute30, hr_api.g_varchar2) <>
241     nvl(p_rec.bba_attribute30, hr_api.g_varchar2) ))
242     or (p_rec.balance_amount_id is null)  then
243     --
244     -- Only execute the validation if absolutely necessary:
245     -- a) During update, the structure column value or any
246     --    of the attribute values have actually changed.
247     -- b) During insert.
248     --
249     hr_dflex_utility.ins_or_upd_descflex_attribs
250       (p_appl_short_name                 => 'PER'
251       ,p_descflex_name                   => 'PER_BF_BALANCE_AMOUNTS'
252       ,p_attribute_category              => p_rec.bba_attribute_category
253       ,p_attribute1_name                 => 'BBA_ATTRIBUTE1'
254       ,p_attribute1_value                => p_rec.bba_attribute1
255       ,p_attribute2_name                 => 'BBA_ATTRIBUTE2'
256       ,p_attribute2_value                => p_rec.bba_attribute2
257       ,p_attribute3_name                 => 'BBA_ATTRIBUTE3'
258       ,p_attribute3_value                => p_rec.bba_attribute3
259       ,p_attribute4_name                 => 'BBA_ATTRIBUTE4'
260       ,p_attribute4_value                => p_rec.bba_attribute4
261       ,p_attribute5_name                 => 'BBA_ATTRIBUTE5'
262       ,p_attribute5_value                => p_rec.bba_attribute5
263       ,p_attribute6_name                 => 'BBA_ATTRIBUTE6'
264       ,p_attribute6_value                => p_rec.bba_attribute6
265       ,p_attribute7_name                 => 'BBA_ATTRIBUTE7'
266       ,p_attribute7_value                => p_rec.bba_attribute7
267       ,p_attribute8_name                 => 'BBA_ATTRIBUTE8'
268       ,p_attribute8_value                => p_rec.bba_attribute8
269       ,p_attribute9_name                 => 'BBA_ATTRIBUTE9'
270       ,p_attribute9_value                => p_rec.bba_attribute9
271       ,p_attribute10_name                => 'BBA_ATTRIBUTE10'
272       ,p_attribute10_value               => p_rec.bba_attribute10
273       ,p_attribute11_name                => 'BBA_ATTRIBUTE11'
274       ,p_attribute11_value               => p_rec.bba_attribute11
275       ,p_attribute12_name                => 'BBA_ATTRIBUTE12'
276       ,p_attribute12_value               => p_rec.bba_attribute12
277       ,p_attribute13_name                => 'BBA_ATTRIBUTE13'
278       ,p_attribute13_value               => p_rec.bba_attribute13
279       ,p_attribute14_name                => 'BBA_ATTRIBUTE14'
280       ,p_attribute14_value               => p_rec.bba_attribute14
281       ,p_attribute15_name                => 'BBA_ATTRIBUTE15'
282       ,p_attribute15_value               => p_rec.bba_attribute15
283       ,p_attribute16_name                => 'BBA_ATTRIBUTE16'
284       ,p_attribute16_value               => p_rec.bba_attribute16
285       ,p_attribute17_name                => 'BBA_ATTRIBUTE17'
286       ,p_attribute17_value               => p_rec.bba_attribute17
287       ,p_attribute18_name                => 'BBA_ATTRIBUTE18'
288       ,p_attribute18_value               => p_rec.bba_attribute18
289       ,p_attribute19_name                => 'BBA_ATTRIBUTE19'
290       ,p_attribute19_value               => p_rec.bba_attribute19
291       ,p_attribute20_name                => 'BBA_ATTRIBUTE20'
292       ,p_attribute20_value               => p_rec.bba_attribute20
293       ,p_attribute21_name                => 'BBA_ATTRIBUTE21'
294       ,p_attribute21_value               => p_rec.bba_attribute21
295       ,p_attribute22_name                => 'BBA_ATTRIBUTE22'
296       ,p_attribute22_value               => p_rec.bba_attribute22
297       ,p_attribute23_name                => 'BBA_ATTRIBUTE23'
298       ,p_attribute23_value               => p_rec.bba_attribute23
299       ,p_attribute24_name                => 'BBA_ATTRIBUTE24'
300       ,p_attribute24_value               => p_rec.bba_attribute24
301       ,p_attribute25_name                => 'BBA_ATTRIBUTE25'
302       ,p_attribute25_value               => p_rec.bba_attribute25
303       ,p_attribute26_name                => 'BBA_ATTRIBUTE26'
304       ,p_attribute26_value               => p_rec.bba_attribute26
305       ,p_attribute27_name                => 'BBA_ATTRIBUTE27'
306       ,p_attribute27_value               => p_rec.bba_attribute27
307       ,p_attribute28_name                => 'BBA_ATTRIBUTE28'
311       ,p_attribute30_name                => 'BBA_ATTRIBUTE30'
308       ,p_attribute28_value               => p_rec.bba_attribute28
309       ,p_attribute29_name                => 'BBA_ATTRIBUTE29'
310       ,p_attribute29_value               => p_rec.bba_attribute29
312       ,p_attribute30_value               => p_rec.bba_attribute30
313       );
314   end if;
315 --
316   hr_utility.set_location(' Leaving:'||l_proc,20);
317 end chk_df;
318 --
319 -- ----------------------------------------------------------------------------
320 -- |----------------------< check_non_updateable_args >-----------------------|
321 -- ----------------------------------------------------------------------------
322 -- {Start Of Comments}
323 --
324 -- Description:
325 --   This procedure is used to ensure that non updateable attributes have
326 --   not been updated. If an attribute has been updated an error is generated.
327 --
328 -- Pre Conditions:
329 --   g_old_rec has been populated with details of the values currently in
330 --   the database.
331 --
332 -- In Arguments:
333 --   p_rec has been populated with the updated values the user would like the
334 --   record set to.
335 --
336 -- Post Success:
337 --   Processing continues if all the non updateable attributes have not
338 --   changed.
339 --
340 -- Post Failure:
341 --   An application error is raised if any of the non updatable attributes
342 --   have been altered.
343 --
344 -- {End Of Comments}
345 -- ----------------------------------------------------------------------------
346 Procedure chk_non_updateable_args(p_rec in per_bba_shd.g_rec_type) IS
347 --
348   l_proc     varchar2(72) := g_package || 'check_non_updateable_args';
349   l_error    EXCEPTION;
350   l_argument varchar2(30);
351 --
352 Begin
353   hr_utility.set_location('Entering:'||l_proc,5);
354   --
355   -- Only proceed with the validation if a row exists for the current
356   -- record in the HR Schema.
357   --
358   IF NOT per_bba_shd.api_updating
359       (p_balance_amount_id                      => p_rec.balance_amount_id
360        ,p_object_version_number                => p_rec.object_version_number
361       ) THEN
362      hr_utility.set_message(800, 'HR_6153_ALL_PROCEDURE_FAIL');
363      hr_utility.set_message_token('PROCEDURE ', l_proc);
364      hr_utility.set_message_token('STEP ', '5');
365   END IF;
366   --
367   hr_utility.set_location(l_proc,10);
368   --
369   IF nvl(p_rec.balance_type_id, hr_api.g_number) <>
370   per_bba_shd.g_old_rec.balance_type_id then
371   l_argument:='balance_type_id';
372   raise l_error;
373   END IF;
374   hr_utility.set_location(l_proc,20);
375   --
376   IF nvl(p_rec.processed_assignment_id, hr_api.g_number) <>
377   per_bba_shd.g_old_rec.processed_assignment_id then
378   l_argument:='processed_assignment_id';
379   raise l_error;
380   END IF;
381   hr_utility.set_location(l_proc,30);
382   --
383   IF nvl(p_rec.business_group_id, hr_api.g_number) <>
384   per_bba_shd.g_old_rec.business_group_id then
385   l_argument:='business_group_id';
386   raise l_error;
387   END IF;
388   hr_utility.set_location(l_proc,40);
389   --
390   EXCEPTION
391     WHEN l_error THEN
392        hr_api.argument_changed_error
393          (p_api_name => l_proc
394          ,p_argument => l_argument);
395     WHEN OTHERS THEN
396        RAISE;
397   hr_utility.set_location(' Leaving:'||l_proc,20);
398 End chk_non_updateable_args;
399 --
400 -- ----------------------------------------------------------------------------
401 -- |----------------------< chk_processed_asg_id >----------------------------|
402 -- ----------------------------------------------------------------------------
403 -- {Start Of Comments}
404 --
405 -- Description:
406 --   Check that the processed_asg_idexists in the table
407 --   PER_BF_PROCESSED_ASSIGNMENTS
408 --
409 -- Pre Conditions:
410 --
411 -- In Arguments:
412 --   p_processed_assignment_id
413 -- Post Success:
414 --   Processing continues.
415 --
416 -- Post Failure:
417 --   An application error is raised.
418 --
419 -- {End Of Comments}
420 -- ----------------------------------------------------------------------------
421 PROCEDURE chk_processed_asg_id
422  (p_processed_assignment_id  IN NUMBER)
423 IS
424   --
425   CURSOR csr_chk_processed_asg_id IS
426   SELECT 1
427   FROM PER_BF_PROCESSED_ASSIGNMENTS
428   WHERE processed_assignment_id = p_processed_assignment_id;
429   --
430   l_temp   VARCHAR2(1);
431   l_proc     varchar2(72) := g_package || 'chk_processed_asg_id';
432 BEGIN
433   hr_utility.set_location('Entering:'||l_proc,5);
434   --
435   OPEN csr_chk_processed_asg_id ;
436   FETCH csr_chk_processed_asg_id INTO l_temp;
437   --
438   IF csr_chk_processed_asg_id%NOTFOUND THEN
439     --
440     CLOSE csr_chk_processed_asg_id;
441     --
442     -- The ID hasn't been found, so error
443     --
444     per_bba_shd.constraint_error
445          (p_constraint_name => 'PER_BF_BALANCE_AMOUNTS_FK3');
446     --
447   END IF;
448   CLOSE csr_chk_processed_asg_id;
449   --
450   hr_utility.set_location(' Leaving:'||l_proc,20);
451 END chk_processed_asg_id;
452 --
453 -- ----------------------------------------------------------------------------
457 --
454 -- |----------------------< chk_balance_type_id >-----------------------------|
455 -- ----------------------------------------------------------------------------
456 -- {Start Of Comments}
458 -- Description:
459 --   Check that the balance_type_id exists in the table
460 --   PER_BF_BALANCE_AMOUNTS
461 --
462 -- Pre Conditions:
463 --
464 -- In Arguments:
465 --   p_balance_type_id
466 --   p_business_group_id
467 -- Post Success:
468 --   Processing continues.
469 --
470 -- Post Failure:
471 --   An application error is raised.
472 --
473 -- {End Of Comments}
474 -- ----------------------------------------------------------------------------
475 PROCEDURE CHK_BALANCE_TYPE_ID
476   (p_balance_type_id	 IN NUMBER
477   ,p_business_group_id   IN NUMBER
478   )
479 IS
480   CURSOR csr_chk_balance_type_id IS
481   SELECT 1
482   FROM per_bf_balance_types
483   WHERE balance_type_id = p_balance_type_id
484   AND business_group_id = p_business_group_id;
485   --
486   l_temp   VARCHAR2(1);
487   --
488 BEGIN
489   OPEN csr_chk_balance_type_id;
490   FETCH csr_chk_balance_type_id INTO l_temp;
491   IF csr_chk_balance_type_id%NOTFOUND THEN
492     --
493     CLOSE csr_chk_balance_type_id;
494     --
495     -- The balance type either doesn't exist or is in a different BG
496     -- so error.
497     --
498     per_bba_shd.constraint_error
499        (p_constraint_name => 'PER_BF_BALANCE_AMOUNTS_FK2');
500     --
501   END IF;
502   --
503   CLOSE csr_chk_balance_type_id;
504   --
505   --
506 END CHK_BALANCE_TYPE_ID;
507 -- ----------------------------------------------------------------------------
508 -- |---------------------------< insert_validate >----------------------------|
509 -- ----------------------------------------------------------------------------
510 Procedure insert_validate(p_effective_date   in  date,
511                           p_rec in per_bba_shd.g_rec_type
512                          ) is
513 --
514   l_proc  varchar2(72) := g_package||'insert_validate';
515 --
516 Begin
517   hr_utility.set_location('Entering:'||l_proc, 5);
518   --
519   -- Call all supporting business operations
520   --
521   hr_api.validate_bus_grp_id(p_rec.business_group_id);  -- Validate Bus Grp
522   --
523  CHK_PROCESSED_ASG_ID
524  (p_processed_assignment_id  => p_rec.processed_assignment_id);
525   --
526   CHK_BALANCE_TYPE_ID
527   (p_balance_type_id	 => p_rec.balance_type_id
528   ,p_business_group_id   => p_rec.business_group_id
529   );
530   -- Validate flexfields
531   -- ===================
532   chk_df(p_rec => p_rec);
533   --
534   hr_utility.set_location(' Leaving:'||l_proc, 10);
535 End insert_validate;
536 --
537 -- ----------------------------------------------------------------------------
538 -- |---------------------------< update_validate >----------------------------|
539 -- ----------------------------------------------------------------------------
540 Procedure update_validate(p_effective_date   in  date,
541                           p_rec in per_bba_shd.g_rec_type
542                          ) is
543 --
544   l_proc  varchar2(72) := g_package||'update_validate';
545 --
546 Begin
547   hr_utility.set_location('Entering:'||l_proc, 5);
548   --
549   -- Call all supporting business operations
550   --
551   hr_api.validate_bus_grp_id(p_rec.business_group_id);  -- Validate Bus Grp
552   --
553   chk_non_updateable_args(p_rec => p_rec);
554   --
555   -- Validate flexfields
556   -- ===================
557   chk_df(p_rec => p_rec);
558   --
559   --
560   hr_utility.set_location(' Leaving:'||l_proc, 10);
561 End update_validate;
562 --
563 -- ----------------------------------------------------------------------------
564 -- |---------------------------< delete_validate >----------------------------|
565 -- ----------------------------------------------------------------------------
566 Procedure delete_validate(p_rec in per_bba_shd.g_rec_type) is
567 --
568   l_proc  varchar2(72) := g_package||'delete_validate';
569 --
570 Begin
571   hr_utility.set_location('Entering:'||l_proc, 5);
572   --
573   -- Call all supporting business operations
574   --
575   hr_utility.set_location(' Leaving:'||l_proc, 10);
576 End delete_validate;
577 --
578 end per_bba_bus;