DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_SUPPLEMENTARY_ROLE_API

Source


1 Package Body per_supplementary_role_api as
2 /* $Header: perolapi.pkb 120.0.12010000.2 2008/08/06 09:35:26 ubhat ship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := 'per_supplementary_role_api';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-------------------------< create_supplementary_role >--------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_supplementary_role
13   (p_validate                      in     boolean  default false
14   ,p_effective_date                in     date
15   ,p_job_id                        in     number
16   ,p_job_group_id                  in     number
17   ,p_person_id                     in     number
18   ,p_organization_id               in     number   default null
19   ,p_start_date                    in     date
20   ,p_end_date                      in     date     default null
21   ,p_confidential_date             in     date     default null
22   ,p_emp_rights_flag               in     varchar2 default 'N'
23   ,p_end_of_rights_date            in     date     default null
24   ,p_primary_contact_flag          in     varchar2 default 'N'
25   ,p_attribute_category            in     varchar2 default null
26   ,p_attribute1                    in     varchar2 default null
27   ,p_attribute2                    in     varchar2 default null
28   ,p_attribute3                    in     varchar2 default null
29   ,p_attribute4                    in     varchar2 default null
30   ,p_attribute5                    in     varchar2 default null
31   ,p_attribute6                    in     varchar2 default null
32   ,p_attribute7                    in     varchar2 default null
33   ,p_attribute8                    in     varchar2 default null
34   ,p_attribute9                    in     varchar2 default null
35   ,p_attribute10                   in     varchar2 default null
36   ,p_attribute11                   in     varchar2 default null
37   ,p_attribute12                   in     varchar2 default null
38   ,p_attribute13                   in     varchar2 default null
39   ,p_attribute14                   in     varchar2 default null
40   ,p_attribute15                   in     varchar2 default null
41   ,p_attribute16                   in     varchar2 default null
42   ,p_attribute17                   in     varchar2 default null
43   ,p_attribute18                   in     varchar2 default null
44   ,p_attribute19                   in     varchar2 default null
45   ,p_attribute20                   in     varchar2 default null
46   ,p_role_information_category      in     varchar2 default null
47   ,p_role_information1              in     varchar2 default null
48   ,p_role_information2              in     varchar2 default null
49   ,p_role_information3              in     varchar2 default null
50   ,p_role_information4              in     varchar2 default null
51   ,p_role_information5              in     varchar2 default null
52   ,p_role_information6              in     varchar2 default null
53   ,p_role_information7              in     varchar2 default null
54   ,p_role_information8              in     varchar2 default null
55   ,p_role_information9              in     varchar2 default null
56   ,p_role_information10             in     varchar2 default null
57   ,p_role_information11             in     varchar2 default null
58   ,p_role_information12             in     varchar2 default null
59   ,p_role_information13             in     varchar2 default null
60   ,p_role_information14             in     varchar2 default null
61   ,p_role_information15             in     varchar2 default null
62   ,p_role_information16             in     varchar2 default null
63   ,p_role_information17             in     varchar2 default null
64   ,p_role_information18             in     varchar2 default null
65   ,p_role_information19             in     varchar2 default null
66   ,p_role_information20             in     varchar2 default null
67   ,p_role_id                        out nocopy number
68   ,p_object_version_number          out nocopy number
69   ) is
70   --
71   -- Declare cursors and local variables
72   --
73   l_proc                   varchar2(72) := g_package||'create_role';
74   l_role_id                per_roles.role_id%TYPE;
75   l_object_version_number  per_roles.object_version_number%TYPE;
76   l_effective_date         date;
77   l_start_date             per_roles.start_date%TYPE;
78   l_end_date               per_roles.end_date%TYPE;
79   l_confidential_date      per_roles.confidential_date%TYPE;
80   l_end_of_rights_date     per_roles.end_of_rights_date%TYPE;
81   --
82 begin
83   hr_utility.set_location('Entering:'|| l_proc, 10);
84   --
85   -- Issue a savepoint
86   --
87   savepoint create_role;
88   --
89   -- Truncate the time portion from all IN date parameters
90   --
91   l_effective_date := trunc(p_effective_date);
92   l_start_date := trunc(p_start_date);
93   l_end_date   := trunc(p_end_date);
94   l_confidential_date := trunc(p_confidential_date);
95   l_end_of_rights_date := trunc(p_end_of_rights_date);
96   --
97   -- Call Before Process User Hook
98   --
99 begin
100  per_supplementary_role_bk1.create_supplementary_role_b
101   (p_effective_date              => l_effective_date
102   ,p_job_id                      => p_job_id
103   ,p_job_group_id                => p_job_group_id
104   ,p_person_id                   => p_person_id
105   ,p_organization_id             => p_organization_id
106   ,p_start_date                  => l_start_date
107   ,p_end_date                    => l_end_date
108   ,p_confidential_date           => l_confidential_date
109   ,p_emp_rights_flag             => p_emp_rights_flag
110   ,p_end_of_rights_date          => l_end_of_rights_date
111   ,p_primary_contact_flag        => p_primary_contact_flag
112   ,p_attribute_category          => p_attribute_category
113   ,p_attribute1                  => p_attribute1
114   ,p_attribute2                  => p_attribute2
115   ,p_attribute3                  => p_attribute3
116   ,p_attribute4                  => p_attribute4
117   ,p_attribute5                  => p_attribute5
118   ,p_attribute6                  => p_attribute6
119   ,p_attribute7                  => p_attribute7
120   ,p_attribute8                  => p_attribute8
121   ,p_attribute9                  => p_attribute9
122   ,p_attribute10                 => p_attribute10
123   ,p_attribute11                 => p_attribute11
124   ,p_attribute12                 => p_attribute12
125   ,p_attribute13                 => p_attribute13
126   ,p_attribute14                 => p_attribute14
127   ,p_attribute15                 => p_attribute15
128   ,p_attribute16                 => p_attribute16
129   ,p_attribute17                 => p_attribute17
130   ,p_attribute18                 => p_attribute18
131   ,p_attribute19                 => p_attribute19
132   ,p_attribute20                 => p_attribute20
133   ,p_role_information_category   => p_role_information_category
134   ,p_role_information1           => p_role_information1
135   ,p_role_information2           => p_role_information2
136   ,p_role_information3           => p_role_information3
137   ,p_role_information4           => p_role_information4
138   ,p_role_information5           => p_role_information5
139   ,p_role_information6           => p_role_information6
140   ,p_role_information7           => p_role_information7
141   ,p_role_information8           => p_role_information8
142   ,p_role_information9           => p_role_information9
143   ,p_role_information10          => p_role_information10
144   ,p_role_information11          => p_role_information11
145   ,p_role_information12          => p_role_information12
146   ,p_role_information13          => p_role_information13
147   ,p_role_information14          => p_role_information14
148   ,p_role_information15          => p_role_information15
149   ,p_role_information16          => p_role_information16
150   ,p_role_information17          => p_role_information17
151   ,p_role_information18          => p_role_information18
152   ,p_role_information19          => p_role_information19
153   ,p_role_information20          => p_role_information20
154   );
155   exception
156     when hr_api.cannot_find_prog_unit then
157       hr_api.cannot_find_prog_unit_error
158         (p_module_name => 'create_supplementary_role_b'
159         ,p_hook_type   => 'BP'
160         );
161   end;
162   --
163   -- Validation in addition to Row Handlers
164   --
165   --
166   hr_utility.set_location('before call to rh',3);
167   -- Process Logic
168   --
169  per_rol_ins.ins
170   (p_effective_date                => l_effective_date
171   ,p_job_id                        => p_job_id
172   ,p_job_group_id                  => p_job_group_id
173   ,p_person_id                     => p_person_id
174   ,p_organization_id               => p_organization_id
175   ,p_start_date                    => l_start_date
176   ,p_end_date                      => l_end_date
177   ,p_confidential_date             => l_confidential_date
178   ,p_emp_rights_flag               => p_emp_rights_flag
179   ,p_end_of_rights_date            => l_end_of_rights_date
180   ,p_primary_contact_flag          => p_primary_contact_flag
181   ,p_attribute_category            => p_attribute_category
182   ,p_attribute1                    => p_attribute1
183   ,p_attribute2                    => p_attribute2
184   ,p_attribute3                    => p_attribute3
185   ,p_attribute4                    => p_attribute4
186   ,p_attribute5                    => p_attribute5
187   ,p_attribute6                    => p_attribute6
188   ,p_attribute7                    => p_attribute7
189   ,p_attribute8                    => p_attribute8
190   ,p_attribute9                    => p_attribute9
191   ,p_attribute10                   => p_attribute10
192   ,p_attribute11                   => p_attribute11
193   ,p_attribute12                   => p_attribute12
194   ,p_attribute13                   => p_attribute13
195   ,p_attribute14                   => p_attribute14
196   ,p_attribute15                   => p_attribute15
197   ,p_attribute16                   => p_attribute16
198   ,p_attribute17                   => p_attribute17
199   ,p_attribute18        => p_attribute18
200   ,p_attribute19                   => p_attribute19
201   ,p_attribute20                   => p_attribute20
202   ,p_role_information_category     => p_role_information_category
203   ,p_role_information1             => p_role_information1
204   ,p_role_information2             => p_role_information2
205   ,p_role_information3             => p_role_information3
206   ,p_role_information4             => p_role_information4
207   ,p_role_information5             => p_role_information5
208   ,p_role_information6             => p_role_information6
209   ,p_role_information7             => p_role_information7
210   ,p_role_information8             => p_role_information8
211   ,p_role_information9             => p_role_information9
212   ,p_role_information10            => p_role_information10
213   ,p_role_information11            => p_role_information11
214   ,p_role_information12            => p_role_information12
215   ,p_role_information13            => p_role_information13
216   ,p_role_information14            => p_role_information14
217   ,p_role_information15            => p_role_information15
218   ,p_role_information16            => p_role_information16
219   ,p_role_information17            => p_role_information17
220   ,p_role_information18            => p_role_information18
221   ,p_role_information19            => p_role_information19
222   ,p_role_information20            => p_role_information20
223   ,p_role_id                       => l_role_id
224   ,p_object_version_number         => l_object_version_number);
225   --
226   -- Call After Process User Hook
227   --
228   begin
229 --
230  per_supplementary_role_bk1.create_supplementary_role_a
231   (p_effective_date              => l_effective_date
232   ,p_job_id                      => p_job_id
233   ,p_job_group_id                => p_job_group_id
234   ,p_person_id                   => p_person_id
235   ,p_organization_id             => p_organization_id
236   ,p_start_date                  => l_start_date
237   ,p_end_date                    => l_end_date
238   ,p_confidential_date           => l_confidential_date
239   ,p_emp_rights_flag             => p_emp_rights_flag
240   ,p_end_of_rights_date          => l_end_of_rights_date
241   ,p_primary_contact_flag        => p_primary_contact_flag
242   ,p_attribute_category          => p_attribute_category
243   ,p_attribute1                  => p_attribute1
244   ,p_attribute2                  => p_attribute2
245   ,p_attribute3                  => p_attribute3
246   ,p_attribute4                  => p_attribute4
247   ,p_attribute5                  => p_attribute5
248   ,p_attribute6                  => p_attribute6
249   ,p_attribute7                  => p_attribute7
250   ,p_attribute8                  => p_attribute8
251   ,p_attribute9                  => p_attribute9
252   ,p_attribute10                 => p_attribute10
253   ,p_attribute11                 => p_attribute11
254   ,p_attribute12                 => p_attribute12
255   ,p_attribute13                 => p_attribute13
256   ,p_attribute14                 => p_attribute14
257   ,p_attribute15                 => p_attribute15
258   ,p_attribute16                 => p_attribute16
259   ,p_attribute17                 => p_attribute17
260   ,p_attribute18                 => p_attribute18
261   ,p_attribute19                 => p_attribute19
262   ,p_attribute20                 => p_attribute20
263   ,p_role_information_category   => p_role_information_category
264   ,p_role_information1           => p_role_information1
265   ,p_role_information2           => p_role_information2
266   ,p_role_information3           => p_role_information3
267   ,p_role_information4           => p_role_information4
268   ,p_role_information5           => p_role_information5
269   ,p_role_information6           => p_role_information6
270   ,p_role_information7           => p_role_information7
271   ,p_role_information8           => p_role_information8
272   ,p_role_information9           => p_role_information9
273   ,p_role_information10          => p_role_information10
274   ,p_role_information11          => p_role_information11
275   ,p_role_information12          => p_role_information12
276   ,p_role_information13          => p_role_information13
277   ,p_role_information14          => p_role_information14
278   ,p_role_information15          => p_role_information15
279   ,p_role_information16          => p_role_information16
280   ,p_role_information17          => p_role_information17
281   ,p_role_information18          => p_role_information18
282   ,p_role_information19          => p_role_information19
283   ,p_role_information20          => p_role_information20
284   ,p_role_id                     => l_role_id
285   ,p_object_version_number       => l_object_version_number
286        );
287   exception
288     when hr_api.cannot_find_prog_unit then
289       hr_api.cannot_find_prog_unit_error
290         (p_module_name => 'create_supplementary_role_a'
291         ,p_hook_type   => 'AP'
292         );
293   end;
294   --
295   -- When in validation only mode raise the Validate_Enabled exception
296   --
297   if p_validate then
298     raise hr_api.validate_enabled;
299   end if;
300   --
301   -- Set all output arguments
302   --
303   p_role_id                := l_role_id;
304   p_object_version_number  := l_object_version_number;
305   --
306   hr_utility.set_location(' Leaving:'||l_proc, 70);
307 exception
308   when hr_api.validate_enabled then
309     --
310     -- As the Validate_Enabled exception has been raised
311     -- we must rollback to the savepoint
312     --
313     rollback to create_role;
314     --
315     -- Only set output warning arguments
316     -- (Any key or derived arguments must be set to null
317     -- when validation only mode is being used.)
318     --
319     p_role_id                := null;
320     p_object_version_number  := null;
321     hr_utility.set_location(' Leaving:'||l_proc, 80);
322   when others then
323     --
324     -- A validation or unexpected error has occured
325     --
326     p_role_id                := null;
327     p_object_version_number  := null;
328     rollback to create_role;
329     hr_utility.set_location(' Leaving:'||l_proc, 90);
330     raise;
331 end create_supplementary_role;
332 --
333 -- ----------------------------------------------------------------------------
334 -- |-------------------------< update_supplementary_role >-------------------|
335 -- ----------------------------------------------------------------------------
336 --
337 procedure update_supplementary_role
338   (p_validate                      in     boolean  default false
339   ,p_effective_date                in     date
340   ,p_role_id                       in     number
341   ,p_object_version_number         in out nocopy number
342   ,p_start_date                    in     date     default hr_api.g_date
343   ,p_end_date                      in     date     default hr_api.g_date
344   ,p_confidential_date             in     date     default hr_api.g_date
345   ,p_emp_rights_flag               in     varchar2 default hr_api.g_varchar2
346   ,p_end_of_rights_date            in     date     default hr_api.g_date
347   ,p_primary_contact_flag          in     varchar2 default hr_api.g_varchar2
348   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
349   ,p_attribute1                    in     varchar2 default hr_api.g_varchar2
350   ,p_attribute2                    in     varchar2 default hr_api.g_varchar2
351   ,p_attribute3                    in     varchar2 default hr_api.g_varchar2
352   ,p_attribute4                    in     varchar2 default hr_api.g_varchar2
353   ,p_attribute5                    in     varchar2 default hr_api.g_varchar2
354   ,p_attribute6                    in     varchar2 default hr_api.g_varchar2
355   ,p_attribute7                    in     varchar2 default hr_api.g_varchar2
356   ,p_attribute8                    in     varchar2 default hr_api.g_varchar2
357   ,p_attribute9                    in     varchar2 default hr_api.g_varchar2
358   ,p_attribute10                   in     varchar2 default hr_api.g_varchar2
359   ,p_attribute11                   in     varchar2 default hr_api.g_varchar2
360   ,p_attribute12                   in     varchar2 default hr_api.g_varchar2
361   ,p_attribute13                   in     varchar2 default hr_api.g_varchar2
362   ,p_attribute14                   in     varchar2 default hr_api.g_varchar2
363   ,p_attribute15                   in     varchar2 default hr_api.g_varchar2
364   ,p_attribute16                   in     varchar2 default hr_api.g_varchar2
365   ,p_attribute17                   in     varchar2 default hr_api.g_varchar2
366   ,p_attribute18                   in     varchar2 default hr_api.g_varchar2
367   ,p_attribute19                   in     varchar2 default hr_api.g_varchar2
368   ,p_attribute20                   in     varchar2 default hr_api.g_varchar2
369   ,p_role_information_category      in     varchar2 default hr_api.g_varchar2
370   ,p_role_information1              in     varchar2 default hr_api.g_varchar2
371   ,p_role_information2              in     varchar2 default hr_api.g_varchar2
372   ,p_role_information3              in     varchar2 default hr_api.g_varchar2
373   ,p_role_information4              in     varchar2 default hr_api.g_varchar2
374   ,p_role_information5              in     varchar2 default hr_api.g_varchar2
375   ,p_role_information6              in     varchar2 default hr_api.g_varchar2
376   ,p_role_information7              in     varchar2 default hr_api.g_varchar2
377   ,p_role_information8              in     varchar2 default hr_api.g_varchar2
378   ,p_role_information9              in     varchar2 default hr_api.g_varchar2
379   ,p_role_information10             in     varchar2 default hr_api.g_varchar2
380   ,p_role_information11             in     varchar2 default hr_api.g_varchar2
381   ,p_role_information12             in     varchar2 default hr_api.g_varchar2
382   ,p_role_information13             in     varchar2 default hr_api.g_varchar2
383   ,p_role_information14             in     varchar2 default hr_api.g_varchar2
384   ,p_role_information15             in     varchar2 default hr_api.g_varchar2
385   ,p_role_information16             in     varchar2 default hr_api.g_varchar2
386   ,p_role_information17             in     varchar2 default hr_api.g_varchar2
387   ,p_role_information18             in     varchar2 default hr_api.g_varchar2
388   ,p_role_information19             in     varchar2 default hr_api.g_varchar2
389   ,p_role_information20             in     varchar2 default hr_api.g_varchar2
390   ,p_old_end_date                   in     date     default hr_api.g_date     -- fix 1370960
391   ) is
392   --
393   -- Declare cursors and local variables
394   --
395   l_proc                   varchar2(72) := g_package||'update_role';
396   l_role_id                per_roles.role_id%TYPE;
397   l_object_version_number  per_roles.object_version_number%TYPE;
398   l_effective_date         date;
399   l_start_date             per_roles.start_date%TYPE;
400   l_end_date               per_roles.end_date%TYPE;
401   l_confidential_date      per_roles.confidential_date%TYPE;
402   l_end_of_rights_date     per_roles.end_of_rights_date%TYPE;
403   l_old_end_date           per_roles.old_end_date%TYPE; -- fix 1370960
404   l_temp_ovn               number;
405   --
406 begin
407   hr_utility.set_location('Entering:'|| l_proc, 10);
408   --
409   -- Issue a savepoint
410   --
411   savepoint update_role;
412   --
413   -- Store initial values for IN OUT parameters
414   --
415   l_object_version_number := p_object_version_number;
416   l_temp_ovn              := p_object_version_number;
417   --
418   -- Truncate the time portion from all IN date parameters
419   --
420   l_effective_date := trunc(p_effective_date);
421   l_start_date     := trunc(p_start_date);
422   l_end_date       := trunc(p_end_date);
423   l_confidential_date := trunc(p_confidential_date);
424   l_end_of_rights_date := trunc(p_end_of_rights_date);
425   l_old_end_date   := trunc(p_old_end_date); -- fix 1370960
426   --
427   -- Call Before Process User Hook
428   --
429   begin
430  per_supplementary_role_bk2.update_supplementary_role_b
431   (p_effective_date              => l_effective_date
432   ,p_role_id                     => p_role_id
433   ,p_object_version_number       => p_object_version_number
434   ,p_start_date                  => l_start_date
435   ,p_end_date                    => l_end_date
436   ,p_confidential_date           => l_confidential_date
437   ,p_emp_rights_flag             => p_emp_rights_flag
438   ,p_end_of_rights_date          => l_end_of_rights_date
439   ,p_primary_contact_flag        => p_primary_contact_flag
440   ,p_attribute_category          => p_attribute_category
441   ,p_attribute1                  => p_attribute1
442   ,p_attribute2                  => p_attribute2
443   ,p_attribute3                  => p_attribute3
444   ,p_attribute4                  => p_attribute4
445   ,p_attribute5                  => p_attribute5
446   ,p_attribute6                  => p_attribute6
447   ,p_attribute7                  => p_attribute7
448   ,p_attribute8                  => p_attribute8
449   ,p_attribute9                  => p_attribute9
450   ,p_attribute10                 => p_attribute10
451   ,p_attribute11                 => p_attribute11
452   ,p_attribute12                 => p_attribute12
453   ,p_attribute13                 => p_attribute13
454   ,p_attribute14                 => p_attribute14
455   ,p_attribute15                 => p_attribute15
456   ,p_attribute16                 => p_attribute16
457   ,p_attribute17                 => p_attribute17
458   ,p_attribute18                 => p_attribute18
459   ,p_attribute19                 => p_attribute19
460   ,p_attribute20                 => p_attribute20
461   ,p_role_information_category   => p_role_information_category
462   ,p_role_information1           => p_role_information1
463   ,p_role_information2           => p_role_information2
464   ,p_role_information3           => p_role_information3
465   ,p_role_information4           => p_role_information4
466   ,p_role_information5           => p_role_information5
467   ,p_role_information6           => p_role_information6
468   ,p_role_information7           => p_role_information7
469   ,p_role_information8           => p_role_information8
470   ,p_role_information9           => p_role_information9
471   ,p_role_information10          => p_role_information10
472   ,p_role_information11          => p_role_information11
473   ,p_role_information12          => p_role_information12
474   ,p_role_information13          => p_role_information13
475   ,p_role_information14          => p_role_information14
476   ,p_role_information15          => p_role_information15
477   ,p_role_information16          => p_role_information16
478   ,p_role_information17          => p_role_information17
479   ,p_role_information18          => p_role_information18
480   ,p_role_information19          => p_role_information19
481   ,p_role_information20          => p_role_information20
482       );
483   exception
484     when hr_api.cannot_find_prog_unit then
485       hr_api.cannot_find_prog_unit_error
486         (p_module_name => 'update_supplementary_role_b'
487         ,p_hook_type   => 'BP'
488         );
489   end;
490   --
491   -- Validation in addition to Row Handlers
492   --
493   --
494   -- Process Logic
495   --
496  per_rol_upd.upd
497   (p_effective_date              => l_effective_date
498   ,p_role_id                     => p_role_id
499   ,p_object_version_number       => l_object_version_number
500   ,p_start_date                  => l_start_date
501   ,p_end_date                    => l_end_date
502   ,p_confidential_date           => l_confidential_date
503   ,p_emp_rights_flag             => p_emp_rights_flag
504   ,p_end_of_rights_date          => l_end_of_rights_date
505   ,p_primary_contact_flag        => p_primary_contact_flag
506   ,p_attribute_category          => p_attribute_category
507   ,p_attribute1                  => p_attribute1
508   ,p_attribute2                  => p_attribute2
509   ,p_attribute3                  => p_attribute3
510   ,p_attribute4                  => p_attribute4
511   ,p_attribute5                  => p_attribute5
512   ,p_attribute6                  => p_attribute6
513   ,p_attribute7                  => p_attribute7
514   ,p_attribute8                  => p_attribute8
515   ,p_attribute9                  => p_attribute9
516   ,p_attribute10                 => p_attribute10
517   ,p_attribute11                 => p_attribute11
518   ,p_attribute12                 => p_attribute12
519   ,p_attribute13                 => p_attribute13
520   ,p_attribute14                 => p_attribute14
521   ,p_attribute15                 => p_attribute15
522   ,p_attribute16                 => p_attribute16
523   ,p_attribute17                 => p_attribute17
524   ,p_attribute18                 => p_attribute18
525   ,p_attribute19                 => p_attribute19
526   ,p_attribute20                 => p_attribute20
527   ,p_role_information_category   => p_role_information_category
528   ,p_role_information1           => p_role_information1
529   ,p_role_information2           => p_role_information2
530   ,p_role_information3           => p_role_information3
531   ,p_role_information4           => p_role_information4
532   ,p_role_information5           => p_role_information5
533   ,p_role_information6           => p_role_information6
534   ,p_role_information7           => p_role_information7
535   ,p_role_information8           => p_role_information8
536   ,p_role_information9           => p_role_information9
537   ,p_role_information10          => p_role_information10
538   ,p_role_information11          => p_role_information11
539   ,p_role_information12          => p_role_information12
540   ,p_role_information13          => p_role_information13
541   ,p_role_information14          => p_role_information14
542   ,p_role_information15          => p_role_information15
543   ,p_role_information16          => p_role_information16
544   ,p_role_information17          => p_role_information17
545   ,p_role_information18          => p_role_information18
546   ,p_role_information19          => p_role_information19
547   ,p_role_information20          => p_role_information20
548   ,p_old_end_date                => l_old_end_date -- fix 1370960
549   );
550   --
551   -- Call After Process User Hook
552   --
553   begin
554  per_supplementary_role_bk2.update_supplementary_role_a
555   (p_effective_date              => l_effective_date
556   ,p_role_id                     => p_role_id
557   ,p_object_version_number       => l_object_version_number
558   ,p_start_date                  => l_start_date
559   ,p_end_date                    => l_end_date
560   ,p_confidential_date           => l_confidential_date
561   ,p_emp_rights_flag             => p_emp_rights_flag
562   ,p_end_of_rights_date          => l_end_of_rights_date
563   ,p_primary_contact_flag        => p_primary_contact_flag
564   ,p_attribute_category          => p_attribute_category
565   ,p_attribute1                  => p_attribute1
566   ,p_attribute2                  => p_attribute2
567   ,p_attribute3                  => p_attribute3
568   ,p_attribute4                  => p_attribute4
569   ,p_attribute5                  => p_attribute5
570   ,p_attribute6                  => p_attribute6
571   ,p_attribute7                  => p_attribute7
572   ,p_attribute8                  => p_attribute8
573   ,p_attribute9                  => p_attribute9
574   ,p_attribute10                 => p_attribute10
575   ,p_attribute11                 => p_attribute11
576   ,p_attribute12                 => p_attribute12
577   ,p_attribute13                 => p_attribute13
578   ,p_attribute14                 => p_attribute14
579   ,p_attribute15                 => p_attribute15
580   ,p_attribute16                 => p_attribute16
581   ,p_attribute17                 => p_attribute17
582   ,p_attribute18                 => p_attribute18
583   ,p_attribute19                 => p_attribute19
584   ,p_attribute20                 => p_attribute20
585   ,p_role_information_category   => p_role_information_category
586   ,p_role_information1           => p_role_information1
587   ,p_role_information2           => p_role_information2
588   ,p_role_information3           => p_role_information3
589   ,p_role_information4           => p_role_information4
590   ,p_role_information5           => p_role_information5
591   ,p_role_information6           => p_role_information6
592   ,p_role_information7           => p_role_information7
593   ,p_role_information8           => p_role_information8
594   ,p_role_information9           => p_role_information9
595   ,p_role_information10          => p_role_information10
596   ,p_role_information11          => p_role_information11
597   ,p_role_information12          => p_role_information12
598   ,p_role_information13          => p_role_information13
599   ,p_role_information14          => p_role_information14
600   ,p_role_information15          => p_role_information15
601   ,p_role_information16          => p_role_information16
602   ,p_role_information17          => p_role_information17
603   ,p_role_information18          => p_role_information18
604   ,p_role_information19          => p_role_information19
605   ,p_role_information20          => p_role_information20
606        );
607   exception
608     when hr_api.cannot_find_prog_unit then
609       hr_api.cannot_find_prog_unit_error
610         (p_module_name => 'update_supplementary_role_a'
611         ,p_hook_type   => 'AP'
612         );
613   end;
614   --
615   -- When in validation only mode raise the Validate_Enabled exception
616   --
617   if p_validate then
618     raise hr_api.validate_enabled;
619   end if;
620   --
621   -- Set all output arguments
622   --
623   p_object_version_number  := l_object_version_number;
624   --
625   hr_utility.set_location(' Leaving:'||l_proc, 70);
626 exception
627   when hr_api.validate_enabled then
628     --
629     -- As the Validate_Enabled exception has been raised
630     -- we must rollback to the savepoint
631     --
632     rollback to update_role;
633     --
634     -- Only set output warning arguments
635     -- (Any key or derived arguments must be set to null
636     -- when validation only mode is being used.)
637     --
638     hr_utility.set_location(' Leaving:'||l_proc, 80);
639   when others then
640     --
641     -- A validation or unexpected error has occured
642     --
643     p_object_version_number := l_temp_ovn;
644     rollback to update_role;
645     hr_utility.set_location(' Leaving:'||l_proc, 90);
646     raise;
647 end update_supplementary_role;
648 --
649 --
650 -- ----------------------------------------------------------------------------
651 -- |-------------------------< delete_supplementary_role >--------------------|
652 -- ----------------------------------------------------------------------------
653 --
654 procedure delete_supplementary_role
655   (p_validate                      in     boolean  default false
656   ,p_role_id                       in     number
657   ,p_object_version_number         in     number
658   ) is
659   --
660   -- Declare cursors and local variables
661   --
662   l_proc                  varchar2(72) := g_package||'delete_role';
663   l_election_candidate_id     per_election_candidates.election_candidate_id%TYPE;
664   l_election_ovn     per_election_candidates.object_version_number%TYPE;
665   l_election_role_id       per_election_candidates.role_id%TYPE;
666   --
667   -- Cursor to select candidates to have the role id removed from
668   --
669   cursor csr_candidate_update (p_role_id number) is
670   select election_candidate_id, object_version_number
671   from per_election_candidates
672   where role_id = p_role_id;
673   --
674 begin
675   hr_utility.set_location('Entering:'|| l_proc, 5);
676   --
677   -- Issue a savepoint if operating in validation only mode.
678   --
679   savepoint delete_role;
680   --
681   -- Call Before Process User Hook
682   --
683   begin
684     per_supplementary_role_bk3.delete_supplementary_role_b
685      (p_role_id                 => p_role_id,
686       p_object_version_number   => p_object_version_number
687      );
688      exception
689        when hr_api.cannot_find_prog_unit then
690          hr_api.cannot_find_prog_unit_error
691           (p_module_name => 'delete_supplementary_role_b',
692            p_hook_type   => 'BP'
693           );
694   end;
695   --
696   --
697   hr_utility.set_location(l_proc, 7);
698  -- Changes made for bug 5475480.
699  -- First un-link the role from candidate record and then delete the person role record.
700   l_election_role_id := null;
701   --
702   open csr_candidate_update(p_role_id);
703 
704   loop
705    fetch csr_candidate_update into l_election_candidate_id, l_election_ovn;
706    exit when csr_candidate_update%notfound;
707     hr_elc_candidate_api.update_election_candidate
708     (p_election_candidate_id      => l_election_candidate_id
709     ,p_object_version_number      => l_election_ovn
710     ,p_role_id                    => l_election_role_id);
711   end loop;
712   close csr_candidate_update;
713 
714   --
715   -- Process Logic
716   --
717   per_rol_del.del
718   (p_role_id                       => p_role_id
719   ,p_object_version_number         => p_object_version_number
720   );
721   --
722   hr_utility.set_location(l_proc, 8);
723   --
724   --
725   -- Call After Process User Hook
726   begin
727     per_supplementary_role_bk3.delete_supplementary_role_a
728      (p_role_id                 => p_role_id,
729       p_object_version_number   => p_object_version_number
730      );
731       exception
732         when hr_api.cannot_find_prog_unit then
733           hr_api.cannot_find_prog_unit_error
734            (p_module_name  => 'delete_supplementary_role_a',
735             p_hook_type   => 'AP'
736            );
737   end;
738   --
739   -- When in validation only mode raise the Validate_Enabled exception
740   --
741   if p_validate then
742     raise hr_api.validate_enabled;
743   end if;
744   --
745   hr_utility.set_location(' Leaving:'||l_proc, 11);
746 exception
747   when hr_api.validate_enabled then
748     --
749     -- As the Validate_Enabled exception has been raised
750     -- we must rollback to the savepoint
751     --
752     ROLLBACK TO delete_role;
753     --
754     hr_utility.set_location(' Leaving:'||l_proc, 12);
755   --
756   when others then
757   --
758   --
759   ROLLBACK TO delete_role;
760   --
761   raise;
762   --
763 end delete_supplementary_role;
764 --
765 end per_supplementary_role_api;