DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_ELEMENT_LINK_SWI

Source


1 Package Body pay_element_link_swi As
2 /* $Header: pypelswi.pkb 115.0 2002/12/31 02:15:03 ndorai noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'pay_element_link_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_element_link >-------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_element_link
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_element_type_id              in     number
15   ,p_business_group_id            in     number
16   ,p_costable_type                in     varchar2
17   ,p_payroll_id                   in     number    default null
18   ,p_job_id                       in     number    default null
19   ,p_position_id                  in     number    default null
20   ,p_people_group_id              in     number    default null
21   ,p_cost_allocation_keyflex_id   in     number    default null
22   ,p_organization_id              in     number    default null
23   ,p_location_id                  in     number    default null
24   ,p_grade_id                     in     number    default null
25   ,p_balancing_keyflex_id         in     number    default null
26   ,p_element_set_id               in     number    default null
27   ,p_pay_basis_id                 in     number    default null
28   ,p_link_to_all_payrolls_flag    in     varchar2  default null
29   ,p_standard_link_flag           in     varchar2  default null
30   ,p_transfer_to_gl_flag          in     varchar2  default null
31   ,p_comments                     in     varchar2  default null
32   ,p_employment_category          in     varchar2  default null
33   ,p_qualifying_age               in     number    default null
34   ,p_qualifying_length_of_service in     number    default null
35   ,p_qualifying_units             in     varchar2  default null
36   ,p_attribute_category           in     varchar2  default null
37   ,p_attribute1                   in     varchar2  default null
38   ,p_attribute2                   in     varchar2  default null
39   ,p_attribute3                   in     varchar2  default null
40   ,p_attribute4                   in     varchar2  default null
41   ,p_attribute5                   in     varchar2  default null
42   ,p_attribute6                   in     varchar2  default null
43   ,p_attribute7                   in     varchar2  default null
44   ,p_attribute8                   in     varchar2  default null
45   ,p_attribute9                   in     varchar2  default null
46   ,p_attribute10                  in     varchar2  default null
47   ,p_attribute11                  in     varchar2  default null
48   ,p_attribute12                  in     varchar2  default null
49   ,p_attribute13                  in     varchar2  default null
50   ,p_attribute14                  in     varchar2  default null
51   ,p_attribute15                  in     varchar2  default null
52   ,p_attribute16                  in     varchar2  default null
53   ,p_attribute17                  in     varchar2  default null
54   ,p_attribute18                  in     varchar2  default null
55   ,p_attribute19                  in     varchar2  default null
56   ,p_attribute20                  in     varchar2  default null
57   ,p_cost_segment1                in     varchar2  default null
58   ,p_cost_segment2                in     varchar2  default null
59   ,p_cost_segment3                in     varchar2  default null
60   ,p_cost_segment4                in     varchar2  default null
61   ,p_cost_segment5                in     varchar2  default null
62   ,p_cost_segment6                in     varchar2  default null
63   ,p_cost_segment7                in     varchar2  default null
64   ,p_cost_segment8                in     varchar2  default null
65   ,p_cost_segment9                in     varchar2  default null
66   ,p_cost_segment10               in     varchar2  default null
67   ,p_cost_segment11               in     varchar2  default null
68   ,p_cost_segment12               in     varchar2  default null
69   ,p_cost_segment13               in     varchar2  default null
70   ,p_cost_segment14               in     varchar2  default null
71   ,p_cost_segment15               in     varchar2  default null
72   ,p_cost_segment16               in     varchar2  default null
73   ,p_cost_segment17               in     varchar2  default null
74   ,p_cost_segment18               in     varchar2  default null
75   ,p_cost_segment19               in     varchar2  default null
76   ,p_cost_segment20               in     varchar2  default null
77   ,p_cost_segment21               in     varchar2  default null
78   ,p_cost_segment22               in     varchar2  default null
79   ,p_cost_segment23               in     varchar2  default null
80   ,p_cost_segment24               in     varchar2  default null
81   ,p_cost_segment25               in     varchar2  default null
82   ,p_cost_segment26               in     varchar2  default null
83   ,p_cost_segment27               in     varchar2  default null
84   ,p_cost_segment28               in     varchar2  default null
85   ,p_cost_segment29               in     varchar2  default null
86   ,p_cost_segment30               in     varchar2  default null
87   ,p_balance_segment1             in     varchar2  default null
88   ,p_balance_segment2             in     varchar2  default null
89   ,p_balance_segment3             in     varchar2  default null
90   ,p_balance_segment4             in     varchar2  default null
91   ,p_balance_segment5             in     varchar2  default null
92   ,p_balance_segment6             in     varchar2  default null
93   ,p_balance_segment7             in     varchar2  default null
94   ,p_balance_segment8             in     varchar2  default null
95   ,p_balance_segment9             in     varchar2  default null
96   ,p_balance_segment10            in     varchar2  default null
97   ,p_balance_segment11            in     varchar2  default null
98   ,p_balance_segment12            in     varchar2  default null
99   ,p_balance_segment13            in     varchar2  default null
100   ,p_balance_segment14            in     varchar2  default null
101   ,p_balance_segment15            in     varchar2  default null
102   ,p_balance_segment16            in     varchar2  default null
103   ,p_balance_segment17            in     varchar2  default null
104   ,p_balance_segment18            in     varchar2  default null
105   ,p_balance_segment19            in     varchar2  default null
106   ,p_balance_segment20            in     varchar2  default null
107   ,p_balance_segment21            in     varchar2  default null
108   ,p_balance_segment22            in     varchar2  default null
109   ,p_balance_segment23            in     varchar2  default null
110   ,p_balance_segment24            in     varchar2  default null
111   ,p_balance_segment25            in     varchar2  default null
112   ,p_balance_segment26            in     varchar2  default null
113   ,p_balance_segment27            in     varchar2  default null
114   ,p_balance_segment28            in     varchar2  default null
115   ,p_balance_segment29            in     varchar2  default null
116   ,p_balance_segment30            in     varchar2  default null
117   ,p_cost_concat_segments         in     varchar2
118   ,p_balance_concat_segments      in     varchar2
119   ,p_element_link_id                 out nocopy number
120   ,p_comment_id                      out nocopy number
121   ,p_object_version_number           out nocopy number
122   ,p_effective_start_date            out nocopy date
123   ,p_effective_end_date              out nocopy date
124   ,p_return_status                   out nocopy varchar2
125   ) is
126   --
127   -- Variables for API Boolean parameters
128   l_validate                      boolean;
129   --
130   -- Variables for IN/OUT parameters
131   --
132   -- Other variables
133   l_proc    varchar2(72) := g_package ||'create_element_link';
134 Begin
135   hr_utility.set_location(' Entering:' || l_proc,10);
136   --
137   -- Issue a savepoint
138   --
139   savepoint create_element_link_swi;
140   --
141   -- Initialise Multiple Message Detection
142   --
143   hr_multi_message.enable_message_list;
144   --
145   -- Remember IN OUT parameter IN values
146   --
147   --
148   -- Convert constant values to their corresponding boolean value
149   --
150   l_validate :=
151     hr_api.constant_to_boolean
152       (p_constant_value => p_validate);
153   --
154   -- Register Surrogate ID or user key values
155   --
156   --
157   -- Call API
158   --
159   pay_element_link_api.create_element_link
160     (p_validate                     => l_validate
161     ,p_effective_date               => p_effective_date
162     ,p_element_type_id              => p_element_type_id
163     ,p_business_group_id            => p_business_group_id
164     ,p_costable_type                => p_costable_type
165     ,p_payroll_id                   => p_payroll_id
166     ,p_job_id                       => p_job_id
167     ,p_position_id                  => p_position_id
168     ,p_people_group_id              => p_people_group_id
169     ,p_cost_allocation_keyflex_id   => p_cost_allocation_keyflex_id
170     ,p_organization_id              => p_organization_id
171     ,p_location_id                  => p_location_id
172     ,p_grade_id                     => p_grade_id
173     ,p_balancing_keyflex_id         => p_balancing_keyflex_id
174     ,p_element_set_id               => p_element_set_id
175     ,p_pay_basis_id                 => p_pay_basis_id
176     ,p_link_to_all_payrolls_flag    => p_link_to_all_payrolls_flag
177     ,p_standard_link_flag           => p_standard_link_flag
178     ,p_transfer_to_gl_flag          => p_transfer_to_gl_flag
179     ,p_comments                     => p_comments
180     ,p_employment_category          => p_employment_category
181     ,p_qualifying_age               => p_qualifying_age
182     ,p_qualifying_length_of_service => p_qualifying_length_of_service
183     ,p_qualifying_units             => p_qualifying_units
184     ,p_attribute_category           => p_attribute_category
185     ,p_attribute1                   => p_attribute1
186     ,p_attribute2                   => p_attribute2
187     ,p_attribute3                   => p_attribute3
188     ,p_attribute4                   => p_attribute4
189     ,p_attribute5                   => p_attribute5
190     ,p_attribute6                   => p_attribute6
191     ,p_attribute7                   => p_attribute7
192     ,p_attribute8                   => p_attribute8
193     ,p_attribute9                   => p_attribute9
194     ,p_attribute10                  => p_attribute10
195     ,p_attribute11                  => p_attribute11
196     ,p_attribute12                  => p_attribute12
197     ,p_attribute13                  => p_attribute13
198     ,p_attribute14                  => p_attribute14
199     ,p_attribute15                  => p_attribute15
200     ,p_attribute16                  => p_attribute16
201     ,p_attribute17                  => p_attribute17
202     ,p_attribute18                  => p_attribute18
203     ,p_attribute19                  => p_attribute19
204     ,p_attribute20                  => p_attribute20
205     ,p_cost_segment1                => p_cost_segment1
206     ,p_cost_segment2                => p_cost_segment2
207     ,p_cost_segment3                => p_cost_segment3
208     ,p_cost_segment4                => p_cost_segment4
209     ,p_cost_segment5                => p_cost_segment5
210     ,p_cost_segment6                => p_cost_segment6
211     ,p_cost_segment7                => p_cost_segment7
212     ,p_cost_segment8                => p_cost_segment8
213     ,p_cost_segment9                => p_cost_segment9
214     ,p_cost_segment10               => p_cost_segment10
215     ,p_cost_segment11               => p_cost_segment11
216     ,p_cost_segment12               => p_cost_segment12
217     ,p_cost_segment13               => p_cost_segment13
218     ,p_cost_segment14               => p_cost_segment14
219     ,p_cost_segment15               => p_cost_segment15
220     ,p_cost_segment16               => p_cost_segment16
221     ,p_cost_segment17               => p_cost_segment17
222     ,p_cost_segment18               => p_cost_segment18
223     ,p_cost_segment19               => p_cost_segment19
224     ,p_cost_segment20               => p_cost_segment20
225     ,p_cost_segment21               => p_cost_segment21
226     ,p_cost_segment22               => p_cost_segment22
227     ,p_cost_segment23               => p_cost_segment23
228     ,p_cost_segment24               => p_cost_segment24
229     ,p_cost_segment25               => p_cost_segment25
230     ,p_cost_segment26               => p_cost_segment26
231     ,p_cost_segment27               => p_cost_segment27
232     ,p_cost_segment28               => p_cost_segment28
233     ,p_cost_segment29               => p_cost_segment29
234     ,p_cost_segment30               => p_cost_segment30
235     ,p_balance_segment1             => p_balance_segment1
236     ,p_balance_segment2             => p_balance_segment2
237     ,p_balance_segment3             => p_balance_segment3
238     ,p_balance_segment4             => p_balance_segment4
239     ,p_balance_segment5             => p_balance_segment5
240     ,p_balance_segment6             => p_balance_segment6
241     ,p_balance_segment7             => p_balance_segment7
242     ,p_balance_segment8             => p_balance_segment8
243     ,p_balance_segment9             => p_balance_segment9
244     ,p_balance_segment10            => p_balance_segment10
245     ,p_balance_segment11            => p_balance_segment11
246     ,p_balance_segment12            => p_balance_segment12
247     ,p_balance_segment13            => p_balance_segment13
248     ,p_balance_segment14            => p_balance_segment14
249     ,p_balance_segment15            => p_balance_segment15
250     ,p_balance_segment16            => p_balance_segment16
251     ,p_balance_segment17            => p_balance_segment17
252     ,p_balance_segment18            => p_balance_segment18
253     ,p_balance_segment19            => p_balance_segment19
254     ,p_balance_segment20            => p_balance_segment20
255     ,p_balance_segment21            => p_balance_segment21
256     ,p_balance_segment22            => p_balance_segment22
257     ,p_balance_segment23            => p_balance_segment23
258     ,p_balance_segment24            => p_balance_segment24
259     ,p_balance_segment25            => p_balance_segment25
260     ,p_balance_segment26            => p_balance_segment26
261     ,p_balance_segment27            => p_balance_segment27
262     ,p_balance_segment28            => p_balance_segment28
263     ,p_balance_segment29            => p_balance_segment29
264     ,p_balance_segment30            => p_balance_segment30
265     ,p_cost_concat_segments         => p_cost_concat_segments
266     ,p_balance_concat_segments      => p_balance_concat_segments
267     ,p_element_link_id              => p_element_link_id
268     ,p_comment_id                   => p_comment_id
269     ,p_object_version_number        => p_object_version_number
270     ,p_effective_start_date         => p_effective_start_date
271     ,p_effective_end_date           => p_effective_end_date
272     );
273   --
274   -- Convert API warning boolean parameter values to specific
275   -- messages and add them to Multiple Message List
276   --
277   --
278   -- Convert API non-warning boolean parameter values
279   --
280   --
281   -- Derive the API return status value based on whether
282   -- messages of any type exist in the Multiple Message List.
283   -- Also disable Multiple Message Detection.
284   --
285   p_return_status := hr_multi_message.get_return_status_disable;
286   hr_utility.set_location(' Leaving:' || l_proc,20);
287   --
288 exception
289   when hr_multi_message.error_message_exist then
290     --
291     -- Catch the Multiple Message List exception which
292     -- indicates API processing has been aborted because
293     -- at least one message exists in the list.
294     --
295     rollback to create_element_link_swi;
296     --
297     -- Reset IN OUT parameters and set OUT parameters
298     --
299     p_element_link_id              := null;
300     p_comment_id                   := null;
301     p_object_version_number        := null;
302     p_effective_start_date         := null;
303     p_effective_end_date           := null;
304     p_return_status := hr_multi_message.get_return_status_disable;
305     hr_utility.set_location(' Leaving:' || l_proc, 30);
306   when others then
307     --
308     -- When Multiple Message Detection is enabled catch
309     -- any Application specific or other unexpected
310     -- exceptions.  Adding appropriate details to the
311     -- Multiple Message List.  Otherwise re-raise the
312     -- error.
313     --
314     rollback to create_element_link_swi;
315     if hr_multi_message.unexpected_error_add(l_proc) then
316        hr_utility.set_location(' Leaving:' || l_proc,40);
317        raise;
318     end if;
319     --
320     -- Reset IN OUT and set OUT parameters
321     --
322     p_element_link_id              := null;
323     p_comment_id                   := null;
324     p_object_version_number        := null;
325     p_effective_start_date         := null;
326     p_effective_end_date           := null;
327     p_return_status := hr_multi_message.get_return_status_disable;
328     hr_utility.set_location(' Leaving:' || l_proc,50);
329 end create_element_link;
330 -- ----------------------------------------------------------------------------
331 -- |--------------------------< delete_element_link >-------------------------|
332 -- ----------------------------------------------------------------------------
333 PROCEDURE delete_element_link
334   (p_validate                     in     number    default hr_api.g_false_num
335   ,p_effective_date               in     date
336   ,p_element_link_id              in     number
337   ,p_datetrack_delete_mode        in     varchar2
338   ,p_object_version_number        in out nocopy number
339   ,p_effective_start_date            out nocopy date
340   ,p_effective_end_date              out nocopy date
341   ,p_return_status                   out nocopy varchar2
342   ) is
343   --
344   -- Variables for API Boolean parameters
345   l_validate                      boolean;
346   l_entries_warning               boolean;
347   --
348   -- Variables for IN/OUT parameters
349   l_object_version_number         number;
350   --
351   -- Other variables
352   l_proc    varchar2(72) := g_package ||'delete_element_link';
353 Begin
354   hr_utility.set_location(' Entering:' || l_proc,10);
355   --
356   -- Issue a savepoint
357   --
358   savepoint delete_element_link_swi;
359   --
360   -- Initialise Multiple Message Detection
361   --
362   hr_multi_message.enable_message_list;
363   --
364   -- Remember IN OUT parameter IN values
365   --
366   l_object_version_number         := p_object_version_number;
367   --
368   -- Convert constant values to their corresponding boolean value
369   --
370   l_validate :=
371     hr_api.constant_to_boolean
372       (p_constant_value => p_validate);
373   --
374   -- Register Surrogate ID or user key values
375   --
376   --
377   -- Call API
378   --
379   pay_element_link_api.delete_element_link
380     (p_validate                     => l_validate
381     ,p_effective_date               => p_effective_date
382     ,p_element_link_id              => p_element_link_id
383     ,p_datetrack_delete_mode        => p_datetrack_delete_mode
384     ,p_object_version_number        => p_object_version_number
385     ,p_effective_start_date         => p_effective_start_date
386     ,p_effective_end_date           => p_effective_end_date
387     ,p_entries_warning              => l_entries_warning
388     );
389   --
390   -- Convert API warning boolean parameter values to specific
391   -- messages and add them to Multiple Message List
392   --
393   if l_entries_warning then
394      /*fnd_message.set_name('EDIT HERE: APP_CODE', 'EDIT_HERE: MESSAGE_NAME ');*/
395       hr_multi_message.add
396         (p_message_type => hr_multi_message.g_warning_msg
397         );
398   end if;  --
399   -- Convert API non-warning boolean parameter values
400   --
401   --
402   -- Derive the API return status value based on whether
403   -- messages of any type exist in the Multiple Message List.
404   -- Also disable Multiple Message Detection.
405   --
406   p_return_status := hr_multi_message.get_return_status_disable;
407   hr_utility.set_location(' Leaving:' || l_proc,20);
408   --
409 exception
410   when hr_multi_message.error_message_exist then
411     --
412     -- Catch the Multiple Message List exception which
413     -- indicates API processing has been aborted because
414     -- at least one message exists in the list.
415     --
416     rollback to delete_element_link_swi;
417     --
418     -- Reset IN OUT parameters and set OUT parameters
419     --
420     p_object_version_number        := l_object_version_number;
421     p_effective_start_date         := null;
422     p_effective_end_date           := null;
423     p_return_status := hr_multi_message.get_return_status_disable;
424     hr_utility.set_location(' Leaving:' || l_proc, 30);
425   when others then
426     --
427     -- When Multiple Message Detection is enabled catch
428     -- any Application specific or other unexpected
429     -- exceptions.  Adding appropriate details to the
430     -- Multiple Message List.  Otherwise re-raise the
431     -- error.
432     --
433     rollback to delete_element_link_swi;
434     if hr_multi_message.unexpected_error_add(l_proc) then
435        hr_utility.set_location(' Leaving:' || l_proc,40);
436        raise;
437     end if;
438     --
439     -- Reset IN OUT and set OUT parameters
440     --
441     p_object_version_number        := l_object_version_number;
442     p_effective_start_date         := null;
443     p_effective_end_date           := null;
444     p_return_status := hr_multi_message.get_return_status_disable;
445     hr_utility.set_location(' Leaving:' || l_proc,50);
446 end delete_element_link;
447 -- ----------------------------------------------------------------------------
448 -- |--------------------------< update_element_link >-------------------------|
449 -- ----------------------------------------------------------------------------
450 PROCEDURE update_element_link
451   (p_validate                     in     number    default hr_api.g_false_num
452   ,p_effective_date               in     date
453   ,p_element_link_id              in     number
454   ,p_datetrack_mode               in     varchar2
455   ,p_costable_type                in     varchar2  default hr_api.g_varchar2
456   ,p_element_set_id               in     number    default hr_api.g_number
457   ,p_multiply_value_flag          in     varchar2  default hr_api.g_varchar2
458   ,p_standard_link_flag           in     varchar2  default hr_api.g_varchar2
459   ,p_transfer_to_gl_flag          in     varchar2  default hr_api.g_varchar2
460   ,p_comments                     in     varchar2  default hr_api.g_varchar2
461   ,p_comment_id                   in     varchar2  default hr_api.g_varchar2
462   ,p_employment_category          in     varchar2  default hr_api.g_varchar2
463   ,p_qualifying_age               in     number    default hr_api.g_number
464   ,p_qualifying_length_of_service in     number    default hr_api.g_number
465   ,p_qualifying_units             in     varchar2  default hr_api.g_varchar2
466   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
467   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
468   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
469   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
470   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
471   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
472   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
473   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
474   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
475   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
476   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
477   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
478   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
479   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
480   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
481   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
482   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
483   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
484   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
485   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
486   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
487   ,p_cost_segment1                in     varchar2  default hr_api.g_varchar2
488   ,p_cost_segment2                in     varchar2  default hr_api.g_varchar2
489   ,p_cost_segment3                in     varchar2  default hr_api.g_varchar2
490   ,p_cost_segment4                in     varchar2  default hr_api.g_varchar2
491   ,p_cost_segment5                in     varchar2  default hr_api.g_varchar2
492   ,p_cost_segment6                in     varchar2  default hr_api.g_varchar2
493   ,p_cost_segment7                in     varchar2  default hr_api.g_varchar2
494   ,p_cost_segment8                in     varchar2  default hr_api.g_varchar2
495   ,p_cost_segment9                in     varchar2  default hr_api.g_varchar2
496   ,p_cost_segment10               in     varchar2  default hr_api.g_varchar2
497   ,p_cost_segment11               in     varchar2  default hr_api.g_varchar2
498   ,p_cost_segment12               in     varchar2  default hr_api.g_varchar2
499   ,p_cost_segment13               in     varchar2  default hr_api.g_varchar2
500   ,p_cost_segment14               in     varchar2  default hr_api.g_varchar2
501   ,p_cost_segment15               in     varchar2  default hr_api.g_varchar2
502   ,p_cost_segment16               in     varchar2  default hr_api.g_varchar2
503   ,p_cost_segment17               in     varchar2  default hr_api.g_varchar2
504   ,p_cost_segment18               in     varchar2  default hr_api.g_varchar2
505   ,p_cost_segment19               in     varchar2  default hr_api.g_varchar2
506   ,p_cost_segment20               in     varchar2  default hr_api.g_varchar2
507   ,p_cost_segment21               in     varchar2  default hr_api.g_varchar2
508   ,p_cost_segment22               in     varchar2  default hr_api.g_varchar2
509   ,p_cost_segment23               in     varchar2  default hr_api.g_varchar2
510   ,p_cost_segment24               in     varchar2  default hr_api.g_varchar2
511   ,p_cost_segment25               in     varchar2  default hr_api.g_varchar2
512   ,p_cost_segment26               in     varchar2  default hr_api.g_varchar2
513   ,p_cost_segment27               in     varchar2  default hr_api.g_varchar2
514   ,p_cost_segment28               in     varchar2  default hr_api.g_varchar2
515   ,p_cost_segment29               in     varchar2  default hr_api.g_varchar2
516   ,p_cost_segment30               in     varchar2  default hr_api.g_varchar2
517   ,p_balance_segment1             in     varchar2  default hr_api.g_varchar2
518   ,p_balance_segment2             in     varchar2  default hr_api.g_varchar2
519   ,p_balance_segment3             in     varchar2  default hr_api.g_varchar2
520   ,p_balance_segment4             in     varchar2  default hr_api.g_varchar2
521   ,p_balance_segment5             in     varchar2  default hr_api.g_varchar2
522   ,p_balance_segment6             in     varchar2  default hr_api.g_varchar2
523   ,p_balance_segment7             in     varchar2  default hr_api.g_varchar2
524   ,p_balance_segment8             in     varchar2  default hr_api.g_varchar2
525   ,p_balance_segment9             in     varchar2  default hr_api.g_varchar2
526   ,p_balance_segment10            in     varchar2  default hr_api.g_varchar2
527   ,p_balance_segment11            in     varchar2  default hr_api.g_varchar2
528   ,p_balance_segment12            in     varchar2  default hr_api.g_varchar2
529   ,p_balance_segment13            in     varchar2  default hr_api.g_varchar2
530   ,p_balance_segment14            in     varchar2  default hr_api.g_varchar2
531   ,p_balance_segment15            in     varchar2  default hr_api.g_varchar2
532   ,p_balance_segment16            in     varchar2  default hr_api.g_varchar2
533   ,p_balance_segment17            in     varchar2  default hr_api.g_varchar2
534   ,p_balance_segment18            in     varchar2  default hr_api.g_varchar2
535   ,p_balance_segment19            in     varchar2  default hr_api.g_varchar2
536   ,p_balance_segment20            in     varchar2  default hr_api.g_varchar2
537   ,p_balance_segment21            in     varchar2  default hr_api.g_varchar2
538   ,p_balance_segment22            in     varchar2  default hr_api.g_varchar2
539   ,p_balance_segment23            in     varchar2  default hr_api.g_varchar2
540   ,p_balance_segment24            in     varchar2  default hr_api.g_varchar2
541   ,p_balance_segment25            in     varchar2  default hr_api.g_varchar2
542   ,p_balance_segment26            in     varchar2  default hr_api.g_varchar2
543   ,p_balance_segment27            in     varchar2  default hr_api.g_varchar2
544   ,p_balance_segment28            in     varchar2  default hr_api.g_varchar2
545   ,p_balance_segment29            in     varchar2  default hr_api.g_varchar2
546   ,p_balance_segment30            in     varchar2  default hr_api.g_varchar2
547   ,p_cost_concat_segments_in      in     varchar2  default hr_api.g_varchar2
548   ,p_balance_concat_segments_in   in     varchar2  default hr_api.g_varchar2
549   ,p_object_version_number        in out nocopy number
550   ,p_cost_allocation_keyflex_id      out nocopy number
551   ,p_balancing_keyflex_id            out nocopy number
552   ,p_cost_concat_segments_out        out nocopy varchar2
553   ,p_balance_concat_segments_out     out nocopy varchar2
554   ,p_effective_start_date            out nocopy date
555   ,p_effective_end_date              out nocopy date
556   ,p_return_status                   out nocopy varchar2
557   ) is
558   --
559   -- Variables for API Boolean parameters
560   l_validate                      boolean;
561   --
562   -- Variables for IN/OUT parameters
563   l_object_version_number         number;
564   --
565   -- Other variables
566   l_proc    varchar2(72) := g_package ||'update_element_link';
567 Begin
568   hr_utility.set_location(' Entering:' || l_proc,10);
569   --
570   -- Issue a savepoint
571   --
572   savepoint update_element_link_swi;
573   --
574   -- Initialise Multiple Message Detection
575   --
576   hr_multi_message.enable_message_list;
577   --
578   -- Remember IN OUT parameter IN values
579   --
580   l_object_version_number         := p_object_version_number;
581   --
582   -- Convert constant values to their corresponding boolean value
583   --
584   l_validate :=
585     hr_api.constant_to_boolean
586       (p_constant_value => p_validate);
587   --
588   -- Register Surrogate ID or user key values
589   --
590   --
591   -- Call API
592   --
593   pay_element_link_api.update_element_link
594     (p_validate                     => l_validate
595     ,p_effective_date               => p_effective_date
596     ,p_element_link_id              => p_element_link_id
597     ,p_datetrack_mode               => p_datetrack_mode
598     ,p_costable_type                => p_costable_type
599     ,p_element_set_id               => p_element_set_id
600     ,p_multiply_value_flag          => p_multiply_value_flag
601     ,p_standard_link_flag           => p_standard_link_flag
602     ,p_transfer_to_gl_flag          => p_transfer_to_gl_flag
603     ,p_comments                     => p_comments
604     ,p_comment_id                   => p_comment_id
605     ,p_employment_category          => p_employment_category
606     ,p_qualifying_age               => p_qualifying_age
607     ,p_qualifying_length_of_service => p_qualifying_length_of_service
608     ,p_qualifying_units             => p_qualifying_units
609     ,p_attribute_category           => p_attribute_category
610     ,p_attribute1                   => p_attribute1
611     ,p_attribute2                   => p_attribute2
612     ,p_attribute3                   => p_attribute3
613     ,p_attribute4                   => p_attribute4
614     ,p_attribute5                   => p_attribute5
615     ,p_attribute6                   => p_attribute6
616     ,p_attribute7                   => p_attribute7
617     ,p_attribute8                   => p_attribute8
618     ,p_attribute9                   => p_attribute9
619     ,p_attribute10                  => p_attribute10
620     ,p_attribute11                  => p_attribute11
621     ,p_attribute12                  => p_attribute12
622     ,p_attribute13                  => p_attribute13
623     ,p_attribute14                  => p_attribute14
624     ,p_attribute15                  => p_attribute15
625     ,p_attribute16                  => p_attribute16
626     ,p_attribute17                  => p_attribute17
627     ,p_attribute18                  => p_attribute18
628     ,p_attribute19                  => p_attribute19
629     ,p_attribute20                  => p_attribute20
630     ,p_cost_segment1                => p_cost_segment1
631     ,p_cost_segment2                => p_cost_segment2
632     ,p_cost_segment3                => p_cost_segment3
633     ,p_cost_segment4                => p_cost_segment4
634     ,p_cost_segment5                => p_cost_segment5
635     ,p_cost_segment6                => p_cost_segment6
636     ,p_cost_segment7                => p_cost_segment7
637     ,p_cost_segment8                => p_cost_segment8
638     ,p_cost_segment9                => p_cost_segment9
639     ,p_cost_segment10               => p_cost_segment10
640     ,p_cost_segment11               => p_cost_segment11
641     ,p_cost_segment12               => p_cost_segment12
642     ,p_cost_segment13               => p_cost_segment13
643     ,p_cost_segment14               => p_cost_segment14
644     ,p_cost_segment15               => p_cost_segment15
645     ,p_cost_segment16               => p_cost_segment16
646     ,p_cost_segment17               => p_cost_segment17
647     ,p_cost_segment18               => p_cost_segment18
648     ,p_cost_segment19               => p_cost_segment19
649     ,p_cost_segment20               => p_cost_segment20
650     ,p_cost_segment21               => p_cost_segment21
651     ,p_cost_segment22               => p_cost_segment22
652     ,p_cost_segment23               => p_cost_segment23
653     ,p_cost_segment24               => p_cost_segment24
654     ,p_cost_segment25               => p_cost_segment25
655     ,p_cost_segment26               => p_cost_segment26
656     ,p_cost_segment27               => p_cost_segment27
657     ,p_cost_segment28               => p_cost_segment28
658     ,p_cost_segment29               => p_cost_segment29
659     ,p_cost_segment30               => p_cost_segment30
660     ,p_balance_segment1             => p_balance_segment1
661     ,p_balance_segment2             => p_balance_segment2
662     ,p_balance_segment3             => p_balance_segment3
663     ,p_balance_segment4             => p_balance_segment4
664     ,p_balance_segment5             => p_balance_segment5
665     ,p_balance_segment6             => p_balance_segment6
666     ,p_balance_segment7             => p_balance_segment7
667     ,p_balance_segment8             => p_balance_segment8
668     ,p_balance_segment9             => p_balance_segment9
669     ,p_balance_segment10            => p_balance_segment10
670     ,p_balance_segment11            => p_balance_segment11
671     ,p_balance_segment12            => p_balance_segment12
672     ,p_balance_segment13            => p_balance_segment13
673     ,p_balance_segment14            => p_balance_segment14
674     ,p_balance_segment15            => p_balance_segment15
675     ,p_balance_segment16            => p_balance_segment16
676     ,p_balance_segment17            => p_balance_segment17
677     ,p_balance_segment18            => p_balance_segment18
678     ,p_balance_segment19            => p_balance_segment19
679     ,p_balance_segment20            => p_balance_segment20
680     ,p_balance_segment21            => p_balance_segment21
681     ,p_balance_segment22            => p_balance_segment22
682     ,p_balance_segment23            => p_balance_segment23
683     ,p_balance_segment24            => p_balance_segment24
684     ,p_balance_segment25            => p_balance_segment25
685     ,p_balance_segment26            => p_balance_segment26
686     ,p_balance_segment27            => p_balance_segment27
687     ,p_balance_segment28            => p_balance_segment28
688     ,p_balance_segment29            => p_balance_segment29
689     ,p_balance_segment30            => p_balance_segment30
690     ,p_cost_concat_segments_in      => p_cost_concat_segments_in
691     ,p_balance_concat_segments_in   => p_balance_concat_segments_in
692     ,p_object_version_number        => p_object_version_number
693     ,p_cost_allocation_keyflex_id   => p_cost_allocation_keyflex_id
694     ,p_balancing_keyflex_id         => p_balancing_keyflex_id
695     ,p_cost_concat_segments_out     => p_cost_concat_segments_out
696     ,p_balance_concat_segments_out  => p_balance_concat_segments_out
697     ,p_effective_start_date         => p_effective_start_date
698     ,p_effective_end_date           => p_effective_end_date
699     );
700   --
701   -- Convert API warning boolean parameter values to specific
702   -- messages and add them to Multiple Message List
703   --
704   --
705   -- Convert API non-warning boolean parameter values
706   --
707   --
708   -- Derive the API return status value based on whether
709   -- messages of any type exist in the Multiple Message List.
710   -- Also disable Multiple Message Detection.
711   --
712   p_return_status := hr_multi_message.get_return_status_disable;
713   hr_utility.set_location(' Leaving:' || l_proc,20);
714   --
715 exception
716   when hr_multi_message.error_message_exist then
717     --
718     -- Catch the Multiple Message List exception which
719     -- indicates API processing has been aborted because
720     -- at least one message exists in the list.
721     --
722     rollback to update_element_link_swi;
723     --
724     -- Reset IN OUT parameters and set OUT parameters
725     --
726     p_object_version_number        := l_object_version_number;
727     p_cost_allocation_keyflex_id   := null;
728     p_balancing_keyflex_id         := null;
729     p_cost_concat_segments_out     := null;
730     p_balance_concat_segments_out  := null;
731     p_effective_start_date         := null;
732     p_effective_end_date           := null;
733     p_return_status := hr_multi_message.get_return_status_disable;
734     hr_utility.set_location(' Leaving:' || l_proc, 30);
735   when others then
736     --
737     -- When Multiple Message Detection is enabled catch
738     -- any Application specific or other unexpected
739     -- exceptions.  Adding appropriate details to the
740     -- Multiple Message List.  Otherwise re-raise the
741     -- error.
742     --
743     rollback to update_element_link_swi;
744     if hr_multi_message.unexpected_error_add(l_proc) then
745        hr_utility.set_location(' Leaving:' || l_proc,40);
746        raise;
747     end if;
748     --
749     -- Reset IN OUT and set OUT parameters
750     --
751     p_object_version_number        := l_object_version_number;
752     p_cost_allocation_keyflex_id   := null;
753     p_balancing_keyflex_id         := null;
754     p_cost_concat_segments_out     := null;
755     p_balance_concat_segments_out  := null;
756     p_effective_start_date         := null;
757     p_effective_end_date           := null;
758     p_return_status := hr_multi_message.get_return_status_disable;
759     hr_utility.set_location(' Leaving:' || l_proc,50);
760 end update_element_link;
761 end pay_element_link_swi;