DBA Data[Home] [Help]

PACKAGE BODY: APPS.OTA_CFS_BUS

Source


1 Package Body ota_cfs_bus as
2 /* $Header: otcfsrhi.pkb 120.2 2005/08/24 09:49 dhmulia noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  ota_cfs_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_conference_server_id        number         default null;
15 --
16 --  ---------------------------------------------------------------------------
17 --  |----------------------< set_security_group_id >--------------------------|
18 --  ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21   (p_conference_server_id                 in number
22   ,p_associated_column1                   in varchar2 default null
23   ) is
24   --
25   -- Declare cursor
26   --
27   cursor csr_sec_grp is
28     select pbg.security_group_id,
29            pbg.legislation_code
30       from per_business_groups_perf pbg
31          , ota_conference_servers_b cfs
32      where cfs.conference_server_id = p_conference_server_id
33        and pbg.business_group_id = cfs.business_group_id;
34   --
35   -- Declare local variables
36   --
37   l_security_group_id number;
38   l_proc              varchar2(72)  :=  g_package||'set_security_group_id';
39   l_legislation_code  varchar2(150);
40   --
41 begin
42   --
43   hr_utility.set_location('Entering:'|| l_proc, 10);
44   --
45   -- Ensure that all the mandatory parameter are not null
46   --
47   hr_api.mandatory_arg_error
48     (p_api_name           => l_proc
49     ,p_argument           => 'conference_server_id'
50     ,p_argument_value     => p_conference_server_id
51     );
52   --
53   open csr_sec_grp;
54   fetch csr_sec_grp into l_security_group_id
55                        , l_legislation_code;
56   --
57   if csr_sec_grp%notfound then
58      --
59      close csr_sec_grp;
60      --
61      -- The primary key is invalid therefore we must error
62      --
63      fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
64      hr_multi_message.add
65        (p_associated_column1
66         => nvl(p_associated_column1,'CONFERENCE_SERVER_ID')
67        );
68      --
69   else
70     close csr_sec_grp;
71     --
72     -- Set the security_group_id in CLIENT_INFO
73     --
74     hr_api.set_security_group_id
75       (p_security_group_id => l_security_group_id
76       );
77     --
78     -- Set the sessions legislation context in HR_SESSION_DATA
79     --
80     hr_api.set_legislation_context(l_legislation_code);
81   end if;
82   --
83   hr_utility.set_location(' Leaving:'|| l_proc, 20);
84   --
85 end set_security_group_id;
86 --
87 --  ---------------------------------------------------------------------------
88 --  |---------------------< return_legislation_code >-------------------------|
89 --  ---------------------------------------------------------------------------
90 --
91 Function return_legislation_code
92   (p_conference_server_id                 in     number
93   )
94   Return Varchar2 Is
95   --
96   -- Declare cursor
97   --
98  cursor csr_leg_code is
99     select pbg.legislation_code
100       from per_business_groups_perf pbg
101          , ota_conference_servers_b cfs
102      where cfs.conference_server_id = p_conference_server_id
103        and pbg.business_group_id = cfs.business_group_id;
104   --
105   -- Declare local variables
106   --
107   l_legislation_code  varchar2(150);
108   l_proc              varchar2(72)  :=  g_package||'return_legislation_code';
109   --
110 Begin
111   --
112   hr_utility.set_location('Entering:'|| l_proc, 10);
113   --
114   -- Ensure that all the mandatory parameter are not null
115   --
116   hr_api.mandatory_arg_error
117     (p_api_name           => l_proc
118     ,p_argument           => 'conference_server_id'
119     ,p_argument_value     => p_conference_server_id
120     );
121   --
122   if ( nvl(ota_cfs_bus.g_conference_server_id, hr_api.g_number)
123        = p_conference_server_id) then
124     --
125     -- The legislation code has already been found with a previous
126     -- call to this function. Just return the value in the global
127     -- variable.
128     --
129     l_legislation_code := ota_cfs_bus.g_legislation_code;
130     hr_utility.set_location(l_proc, 20);
131   else
132     --
133     -- The ID is different to the last call to this function
134     -- or this is the first call to this function.
135     --
136     open csr_leg_code;
137     fetch csr_leg_code into l_legislation_code;
138     --
139     if csr_leg_code%notfound then
140       --
141       -- The primary key is invalid therefore we must error
142       --
143       close csr_leg_code;
144       fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
145       fnd_message.raise_error;
146     end if;
147     hr_utility.set_location(l_proc,30);
148     --
149     -- Set the global variables so the values are
150     -- available for the next call to this function.
151     --
152     close csr_leg_code;
153     ota_cfs_bus.g_conference_server_id        := p_conference_server_id;
154     ota_cfs_bus.g_legislation_code  := l_legislation_code;
155   end if;
156   hr_utility.set_location(' Leaving:'|| l_proc, 40);
157   return l_legislation_code;
158 end return_legislation_code;
159 
160 --
161 -- ----------------------------------------------------------------------------
162 -- |--------------------------< call_error_message >--------------------------|
163 -- ----------------------------------------------------------------------------
164 --
165 -- Description:
166 --   Passes the error information to the procedure set_message of package
167 --   hr_utility.
168 --
169 Procedure call_error_message
170   (
171    p_error_appl             varchar2
172   ,p_error_txt              varchar2
173   ) is
174   --
175   v_proc                  varchar2(72) := g_package||'call_error_message';
176   --
177 Begin
178   --
179   hr_utility.set_location('Entering:'|| v_proc, 5);
180   --
181   -- ** TEMP ** Add error message with the following text.
182   --
183   fnd_message.set_name      ( p_error_appl     ,p_error_txt);
184   fnd_message.raise_error;
185   --
186   hr_utility.set_location(' Leaving:'|| v_proc, 10);
187   --
188 End call_error_message;
189 --
190 --
191 -- ----------------------------------------------------------------------------
192 -- |------------------------------< chk_df >----------------------------------|
193 -- ----------------------------------------------------------------------------
194 --
195 -- Description:
196 --   Validates all the Descriptive Flexfield values.
197 --
198 -- Prerequisites:
199 --   All other columns have been validated.  Must be called as the
200 --   last step from insert_validate and update_validate.
201 --
202 -- In Arguments:
203 --   p_rec
204 --
205 -- Post Success:
206 --   If the Descriptive Flexfield structure column and data values are
207 --   all valid this procedure will end normally and processing will
208 --   continue.
209 --
210 -- Post Failure:
211 --   If the Descriptive Flexfield structure column value or any of
212 --   the data values are invalid then an application error is raised as
213 --   a PL/SQL exception.
214 --
215 -- Access Status:
216 --   Internal Row Handler Use Only.
217 --
218 -- ----------------------------------------------------------------------------
219 procedure chk_df
220   (p_rec in ota_cfs_shd.g_rec_type
221   ) is
222 --
223   l_proc   varchar2(72) := g_package || 'chk_df';
224 --
225 begin
226   hr_utility.set_location('Entering:'||l_proc,10);
227   --
228   if ((p_rec.conference_server_id is not null)  and (
229     nvl(ota_cfs_shd.g_old_rec.attribute_category, hr_api.g_varchar2) <>
230     nvl(p_rec.attribute_category, hr_api.g_varchar2)  or
231     nvl(ota_cfs_shd.g_old_rec.attribute1, hr_api.g_varchar2) <>
232     nvl(p_rec.attribute1, hr_api.g_varchar2)  or
233     nvl(ota_cfs_shd.g_old_rec.attribute2, hr_api.g_varchar2) <>
234     nvl(p_rec.attribute2, hr_api.g_varchar2)  or
235     nvl(ota_cfs_shd.g_old_rec.attribute3, hr_api.g_varchar2) <>
236     nvl(p_rec.attribute3, hr_api.g_varchar2)  or
237     nvl(ota_cfs_shd.g_old_rec.attribute4, hr_api.g_varchar2) <>
238     nvl(p_rec.attribute4, hr_api.g_varchar2)  or
239     nvl(ota_cfs_shd.g_old_rec.attribute5, hr_api.g_varchar2) <>
240     nvl(p_rec.attribute5, hr_api.g_varchar2)  or
241     nvl(ota_cfs_shd.g_old_rec.attribute6, hr_api.g_varchar2) <>
242     nvl(p_rec.attribute6, hr_api.g_varchar2)  or
243     nvl(ota_cfs_shd.g_old_rec.attribute7, hr_api.g_varchar2) <>
244     nvl(p_rec.attribute7, hr_api.g_varchar2)  or
245     nvl(ota_cfs_shd.g_old_rec.attribute8, hr_api.g_varchar2) <>
246     nvl(p_rec.attribute8, hr_api.g_varchar2)  or
247     nvl(ota_cfs_shd.g_old_rec.attribute9, hr_api.g_varchar2) <>
248     nvl(p_rec.attribute9, hr_api.g_varchar2)  or
249     nvl(ota_cfs_shd.g_old_rec.attribute10, hr_api.g_varchar2) <>
250     nvl(p_rec.attribute10, hr_api.g_varchar2)  or
251     nvl(ota_cfs_shd.g_old_rec.attribute11, hr_api.g_varchar2) <>
252     nvl(p_rec.attribute11, hr_api.g_varchar2)  or
253     nvl(ota_cfs_shd.g_old_rec.attribute12, hr_api.g_varchar2) <>
254     nvl(p_rec.attribute12, hr_api.g_varchar2)  or
255     nvl(ota_cfs_shd.g_old_rec.attribute13, hr_api.g_varchar2) <>
256     nvl(p_rec.attribute13, hr_api.g_varchar2)  or
257     nvl(ota_cfs_shd.g_old_rec.attribute14, hr_api.g_varchar2) <>
258     nvl(p_rec.attribute14, hr_api.g_varchar2)  or
259     nvl(ota_cfs_shd.g_old_rec.attribute15, hr_api.g_varchar2) <>
260     nvl(p_rec.attribute15, hr_api.g_varchar2)  or
261     nvl(ota_cfs_shd.g_old_rec.attribute16, hr_api.g_varchar2) <>
262     nvl(p_rec.attribute16, hr_api.g_varchar2)  or
263     nvl(ota_cfs_shd.g_old_rec.attribute17, hr_api.g_varchar2) <>
264     nvl(p_rec.attribute17, hr_api.g_varchar2)  or
265     nvl(ota_cfs_shd.g_old_rec.attribute18, hr_api.g_varchar2) <>
266     nvl(p_rec.attribute18, hr_api.g_varchar2)  or
267     nvl(ota_cfs_shd.g_old_rec.attribute19, hr_api.g_varchar2) <>
268     nvl(p_rec.attribute19, hr_api.g_varchar2)  or
269     nvl(ota_cfs_shd.g_old_rec.attribute20, hr_api.g_varchar2) <>
270     nvl(p_rec.attribute20, hr_api.g_varchar2) ))
271     or (p_rec.conference_server_id is null)  then
272     --
273     -- Only execute the validation if absolutely necessary:
274     -- a) During update, the structure column value or any
275     --    of the attribute values have actually changed.
276     -- b) During insert.
277     --
278     hr_dflex_utility.ins_or_upd_descflex_attribs
279       (p_appl_short_name                 => 'OTA'
280       ,p_descflex_name                   => 'OTA_CONFERENCE_SERVERS'
281       ,p_attribute_category              => p_rec.attribute_category
282       ,p_attribute1_name                 => 'ATTRIBUTE1'
283       ,p_attribute1_value                => p_rec.attribute1
284       ,p_attribute2_name                 => 'ATTRIBUTE2'
285       ,p_attribute2_value                => p_rec.attribute2
286       ,p_attribute3_name                 => 'ATTRIBUTE3'
287       ,p_attribute3_value                => p_rec.attribute3
288       ,p_attribute4_name                 => 'ATTRIBUTE4'
289       ,p_attribute4_value                => p_rec.attribute4
290       ,p_attribute5_name                 => 'ATTRIBUTE5'
291       ,p_attribute5_value                => p_rec.attribute5
292       ,p_attribute6_name                 => 'ATTRIBUTE6'
293       ,p_attribute6_value                => p_rec.attribute6
294       ,p_attribute7_name                 => 'ATTRIBUTE7'
295       ,p_attribute7_value                => p_rec.attribute7
296       ,p_attribute8_name                 => 'ATTRIBUTE8'
297       ,p_attribute8_value                => p_rec.attribute8
298       ,p_attribute9_name                 => 'ATTRIBUTE9'
299       ,p_attribute9_value                => p_rec.attribute9
300       ,p_attribute10_name                => 'ATTRIBUTE10'
301       ,p_attribute10_value               => p_rec.attribute10
302       ,p_attribute11_name                => 'ATTRIBUTE11'
303       ,p_attribute11_value               => p_rec.attribute11
304       ,p_attribute12_name                => 'ATTRIBUTE12'
305       ,p_attribute12_value               => p_rec.attribute12
306       ,p_attribute13_name                => 'ATTRIBUTE13'
307       ,p_attribute13_value               => p_rec.attribute13
308       ,p_attribute14_name                => 'ATTRIBUTE14'
309       ,p_attribute14_value               => p_rec.attribute14
310       ,p_attribute15_name                => 'ATTRIBUTE15'
311       ,p_attribute15_value               => p_rec.attribute15
312       ,p_attribute16_name                => 'ATTRIBUTE16'
313       ,p_attribute16_value               => p_rec.attribute16
314       ,p_attribute17_name                => 'ATTRIBUTE17'
315       ,p_attribute17_value               => p_rec.attribute17
316       ,p_attribute18_name                => 'ATTRIBUTE18'
317       ,p_attribute18_value               => p_rec.attribute18
318       ,p_attribute19_name                => 'ATTRIBUTE19'
319       ,p_attribute19_value               => p_rec.attribute19
320       ,p_attribute20_name                => 'ATTRIBUTE20'
321       ,p_attribute20_value               => p_rec.attribute20
322       );
323   end if;
324   --
325   hr_utility.set_location(' Leaving:'||l_proc,20);
326 end chk_df;
327 --
328 -- ----------------------------------------------------------------------------
329 -- |-----------------------< chk_non_updateable_args >------------------------|
330 -- ----------------------------------------------------------------------------
331 -- {Start Of Comments}
332 --
333 -- Description:
334 --   This procedure is used to ensure that non updateable attributes have
335 --   not been updated. If an attribute has been updated an error is generated.
336 --
337 -- Pre Conditions:
338 --   g_old_rec has been populated with details of the values currently in
339 --   the database.
340 --
341 -- In Arguments:
342 --   p_rec has been populated with the updated values the user would like the
343 --   record set to.
344 --
345 -- Post Success:
346 --   Processing continues if all the non updateable attributes have not
347 --   changed.
348 --
349 -- Post Failure:
350 --   An application error is raised if any of the non updatable attributes
351 --   have been altered.
352 --
353 -- {End Of Comments}
354 -- ----------------------------------------------------------------------------
355 Procedure chk_non_updateable_args
356   (p_effective_date               in date
357   ,p_rec in ota_cfs_shd.g_rec_type
358   ) IS
359 --
360   l_proc     varchar2(72) := g_package || 'chk_non_updateable_args';
361 --
362 Begin
363   --
364   -- Only proceed with the validation if a row exists for the current
365   -- record in the HR Schema.
366   --
367   IF NOT ota_cfs_shd.api_updating
368       (p_conference_server_id              => p_rec.conference_server_id
369       ,p_object_version_number             => p_rec.object_version_number
370       ) THEN
371      fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
372      fnd_message.set_token('PROCEDURE ', l_proc);
373      fnd_message.set_token('STEP ', '5');
374      fnd_message.raise_error;
375   END IF;
376   --
377   -- EDIT_HERE: Add checks to ensure non-updateable args have
378   --            not been updated.
379   --
380 End chk_non_updateable_args;
381 
382 --
383 -- ----------------------------------------------------------------------------
384 -- -----------------------< CHECK_UNIQUE >----------------------------
385 -- ----------------------------------------------------------------------------
386 --
387 --	Validates the uniqueness of the conference server name(ignoring case).
388 --
389 procedure CHECK_UNIQUE (
390 	P_NAME					     in	varchar2,
391 	P_BUSINESS_GROUP_ID			     in	number,
392       P_CONFERENCE_SERVER_ID                   in number
393 
394 	) is
395 	--
396 	W_PROC						varchar2 (72)
397 		:= G_PACKAGE || 'CHECK_UNIQUE';
398 	--
399 begin
400 	--
401 	HR_UTILITY.SET_LOCATION ('Entering:' || W_PROC, 5);
402 	--
403 	--	Do not perform the uniqueness check unless inserting, or updating
404 	--	with a value different from the current value (and not just changing
405 	--	case)
406 	--
407 		--
408 		if (not UNIQUE_CFS_NAME (
409 				P_NAME 		         =>  P_NAME,
410 				P_BUSINESS_GROUP_ID      =>  P_BUSINESS_GROUP_ID,
411                        P_CONFERENCE_SERVER_ID   => P_CONFERENCE_SERVER_ID    )) then
412                 fnd_message.set_name('OTA','OTA_443914_CFS_UNIQUE');
413 			    fnd_message.raise_error;
414 		--
415 	end if;
416 	--
417 	HR_UTILITY.SET_LOCATION (' Leaving:' || W_PROC, 10);
418 	--
419 Exception
420 WHEN app_exception.application_exception THEN
421 
422        IF hr_multi_message.exception_add(
423 	    p_associated_column1    => 'OTA_CONFERENCE_SERVERS_B.BUSINESS_GROUP_ID',
424 	    p_associated_column2    => 'OTA_CONFERENCE_SERVERS_B.CONFERENCE_SERVER_ID')
425 	   THEN
426 
427 	   --hr_utility.set_location(' Leaving:'||v_proc, 22);
428 	   RAISE;
429 
430        END IF;
431 
432 end CHECK_UNIQUE;
433 --------------------------------------------------------------------------------
434 --
435 -- ----------------------------------------------------------------------------
436 -- -------------------------< UNIQUE_CFS_NAME >-----------------------------
437 -- ----------------------------------------------------------------------------
438 --
439 --	Returns TRUE if the event has a title which is unique within its
440 --	business group. If the event id is not null, then the check avoids
441 --	comparing the title against itself. Titles are compared regardless
442 --	of case.
443 --
444 --
445 --
446 function UNIQUE_CFS_NAME (
447 	P_NAME 	     in	varchar2,
448 	P_BUSINESS_GROUP_ID  in	number,
449         P_CONFERENCE_SERVER_ID in number
450 	) return boolean is
451 --
452 	W_PROC varchar2 (72)
453 		:= G_PACKAGE || 'UNIQUE_CFS_NAME';
454 	v_name_is_unique				boolean;
455 	--
456 	cursor C1 is
457 		SELECT 1
458             FROM OTA_CONFERENCE_SERVERS_B CFS,
459                  OTA_CONFERENCE_SERVERS_TL CFT
460 		WHERE CFT.NAME  = P_NAME
461             AND   CFS.CONFERENCE_SERVER_ID = CFT.CONFERENCE_SERVER_ID
462             AND   CFT.LANGUAGE= USERENV('LANG')
463 		AND   CFS.BUSINESS_GROUP_ID = P_BUSINESS_GROUP_ID
464                 AND (  CFS.CONFERENCE_SERVER_ID <> P_CONFERENCE_SERVER_ID or
465                       P_CONFERENCE_SERVER_ID IS NULL ) ;
466 
467 /* for Bug 4570526 */
468 cursor csr_name
469 IS
470 select name
471 from ota_conference_servers_tl cft where
472 cft.conference_server_id = P_CONFERENCE_SERVER_ID
473 and CFT.LANGUAGE= USERENV('LANG');
474 
475     l_num number(10);
476     l_name ota_conference_servers_tl.name%type;
477 	--
478 begin
479 	--
480 	HR_UTILITY.SET_LOCATION ('Entering:' || W_PROC, 5);
481 	--
482 	--	Check arguments
483 	--
484 	HR_API.MANDATORY_ARG_ERROR (
485 		G_PACKAGE,
486 	 	'P_NAME',
487 		P_NAME);
488 	HR_API.MANDATORY_ARG_ERROR (
489 		G_PACKAGE,
490 		'P_BUSINESS_GROUP_ID',
491 		P_BUSINESS_GROUP_ID);
492 	--
493 	--	Unique ?
494 	--
495       /* For bug 4570526 */
496       if  p_conference_server_id is not null then
497 	For i in csr_name
498 	Loop
499 	   l_name := i.name;
500 	end loop;
501       end if;
502 
503      if upper(p_name) <> nvl(upper(l_name),upper(p_name)) or
504        p_conference_server_id is null then
505 	open C1;
506 	fetch C1
507 	  into l_num;
508 	v_name_is_unique := C1%notfound;
509 	close C1;
510      end if;
511 	--
512 	HR_UTILITY.SET_LOCATION (W_PROC, 10);
513 	return v_name_is_unique;
514 	--
515 end UNIQUE_CFS_NAME;
516 
517 procedure VALIDITY_CHECKS (
518 	P_REC				     in out nocopy OTA_CFS_SHD.G_REC_TYPE
519     ,p_name                  in varchar2
520 	) is
521 
522 Begin
523         CHECK_UNIQUE (
524     	p_name,
525 	    p_rec.business_group_id,
526 	    p_rec.CONFERENCE_SERVER_ID
527 	    );
528 
529 
530 end VALIDITY_CHECKS ;
531 
532 -- ----------------------------------------------------------------------------
533 -- |-------------------------< check_if_conf_exists >--------------------------|
534 -- ----------------------------------------------------------------------------
535 --
536 -- PUBLIC
537 -- Description:
538 --   Delete Validation.
539 --   This conference server may not be deleted if child rows in
540 --   ota_conferences exist.
541 --
542 Procedure check_if_conf_exists
543   (
544    p_conference_server_id  in  number
545   ) is
546   --
547   v_exists                varchar2(1);
548   v_proc                  varchar2(72) := g_package||'check_if_conf_exists';
549   --
550   cursor sel_conf_exists is
551     select 'Y'
552       from ota_conferences              cfr
553      where cfr.conference_server_id = p_conference_server_id;
554   --
555 Begin
556   --
557   hr_utility.set_location('Entering:'|| v_proc, 5);
558   --
559   Open  sel_conf_exists;
560   fetch sel_conf_exists into v_exists;
561   --
562   if sel_conf_exists%found then
563     --
564     close sel_conf_exists;
565     --
566     --
567     call_error_message( p_error_appl           =>   'OTA'
568                       , p_error_txt            =>  'OTA_443745_CFS_NO_DELETE'
569                       );
570     --
571   end if;
572   --
573   close sel_conf_exists;
574   --
575   hr_utility.set_location(' Leaving:'|| v_proc, 10);
576   --
577 End check_if_conf_exists;
578 
579 --
580 -- ----------------------------------------------------------------------------
581 -- |---------------------------< insert_validate >----------------------------|
582 -- ----------------------------------------------------------------------------
583 Procedure insert_validate
584   (p_effective_date               in date
585   ,p_rec                          in out nocopy ota_cfs_shd.g_rec_type
586   ,p_name                in varchar2
587 
588   ) is
589 --
590   l_proc  varchar2(72) := g_package||'insert_validate';
591 --
592 Begin
593   hr_utility.set_location('Entering:'||l_proc, 5);
594   --
595   -- Call all supporting business operations
596   --
597   hr_api.validate_bus_grp_id
598     (p_business_group_id => p_rec.business_group_id
599     ,p_associated_column1 => ota_cfs_shd.g_tab_nam
600                               || '.BUSINESS_GROUP_ID');
601 
602    VALIDITY_CHECKS (P_REC =>	P_REC,
603                     p_name => p_name );
604 
605   --
606   -- After validating the set of important attributes,
607   -- if Multiple Message detection is enabled and at least
608   -- one error has been found then abort further validation.
609   --
610   hr_multi_message.end_validation_set;
611   --
612   -- Validate Dependent Attributes
613   --
614   --
615   ota_cfs_bus.chk_df(p_rec);
616   --
617   hr_utility.set_location(' Leaving:'||l_proc, 10);
618 End insert_validate;
619 --
620 -- ----------------------------------------------------------------------------
621 -- |---------------------------< update_validate >----------------------------|
622 -- ----------------------------------------------------------------------------
623 Procedure update_validate
624   (p_effective_date               in date
625   ,p_rec                          in out nocopy ota_cfs_shd.g_rec_type
626   ,p_name                         in varchar2
627   ) is
628 --
629   l_proc  varchar2(72) := g_package||'update_validate';
630 --
631 Begin
632   hr_utility.set_location('Entering:'||l_proc, 5);
633   --
634   -- Call all supporting business operations
635   --
636   hr_api.validate_bus_grp_id
637     (p_business_group_id => p_rec.business_group_id
638     ,p_associated_column1 => ota_cfs_shd.g_tab_nam
639                               || '.BUSINESS_GROUP_ID');
640 
641   VALIDITY_CHECKS (P_REC =>	P_REC,
642                     p_name => p_name );
643 
644   --
645   -- After validating the set of important attributes,
646   -- if Multiple Message detection is enabled and at least
647   -- one error has been found then abort further validation.
648   --
649   hr_multi_message.end_validation_set;
650   --
651   -- Validate Dependent Attributes
652   --
653   chk_non_updateable_args
654     (p_effective_date              => p_effective_date
655       ,p_rec              => p_rec
656     );
657   --
658   --
659   ota_cfs_bus.chk_df(p_rec);
660   --
661   hr_utility.set_location(' Leaving:'||l_proc, 10);
662 End update_validate;
663 --
664 -- ----------------------------------------------------------------------------
665 -- |---------------------------< delete_validate >----------------------------|
666 -- ----------------------------------------------------------------------------
667 Procedure delete_validate
668   (p_rec                          in ota_cfs_shd.g_rec_type
669   ) is
670 --
671   l_proc  varchar2(72) := g_package||'delete_validate';
672 --
673 Begin
674   hr_utility.set_location('Entering:'||l_proc, 5);
675   --
676   -- Call all supporting business operations
677     check_if_conf_exists( p_conference_server_id => p_rec.conference_server_id );
678 
679   --
680   hr_utility.set_location(' Leaving:'||l_proc, 10);
681 End delete_validate;
682 --
683 end ota_cfs_bus;