[Home] [Help]
PACKAGE BODY: APPS.PAY_ITERATIVE_RULES_SWI
Source
1 Package Body pay_iterative_rules_swi As
2 /* $Header: pypitswi.pkb 120.0 2006/01/25 16:06 ndorai noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'pay_iterative_rules_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-------------------------< create_iterative_rule >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_iterative_rule
12 (p_effective_date in date
13 ,p_element_type_id in number
14 ,p_result_name in varchar2
15 ,p_iterative_rule_type in varchar2
16 ,p_input_value_id in number default null
17 ,p_severity_level in varchar2 default null
18 ,p_business_group_id in number default null
19 ,p_legislation_code in varchar2 default null
20 ,p_iterative_rule_id out nocopy number
21 ,p_object_version_number out nocopy number
22 ,p_effective_start_date out nocopy date
23 ,p_effective_end_date out nocopy date
24 ,p_return_status out nocopy varchar2
25 ) is
26 --
27 -- Variables for API Boolean parameters
28 --
29 -- Variables for IN/OUT parameters
30 --
31 -- Other variables
32 l_proc varchar2(72) := g_package ||'create_iterative_rule';
33 Begin
34 hr_utility.set_location(' Entering:' || l_proc,10);
35 --
36 -- Issue a savepoint
37 --
38 savepoint create_iterative_rule_swi;
39 --
40 -- Initialise Multiple Message Detection
41 --
42 hr_multi_message.enable_message_list;
43 --
44 -- Remember IN OUT parameter IN values
45 --
46 --
47 -- Convert constant values to their corresponding boolean value
48 --
49 --
50 -- Register Surrogate ID or user key values
51 --
52 --
53 -- Call API
54 --
55 pay_iterative_rules_api.create_iterative_rule
56 (p_effective_date => p_effective_date
57 ,p_element_type_id => p_element_type_id
58 ,p_result_name => p_result_name
59 ,p_iterative_rule_type => p_iterative_rule_type
60 ,p_input_value_id => p_input_value_id
61 ,p_severity_level => p_severity_level
62 ,p_business_group_id => p_business_group_id
63 ,p_legislation_code => p_legislation_code
64 ,p_iterative_rule_id => p_iterative_rule_id
65 ,p_object_version_number => p_object_version_number
66 ,p_effective_start_date => p_effective_start_date
67 ,p_effective_end_date => p_effective_end_date
68 );
69 --
70 -- Convert API warning boolean parameter values to specific
71 -- messages and add them to Multiple Message List
72 --
73 --
74 -- Convert API non-warning boolean parameter values
75 --
76 --
77 -- Derive the API return status value based on whether
78 -- messages of any type exist in the Multiple Message List.
79 -- Also disable Multiple Message Detection.
80 --
81 p_return_status := hr_multi_message.get_return_status_disable;
82 hr_utility.set_location(' Leaving:' || l_proc,20);
83 --
84 exception
85 when hr_multi_message.error_message_exist then
86 --
87 -- Catch the Multiple Message List exception which
88 -- indicates API processing has been aborted because
89 -- at least one message exists in the list.
90 --
91 rollback to create_iterative_rule_swi;
92 --
93 -- Reset IN OUT parameters and set OUT parameters
94 --
95 p_iterative_rule_id := null;
96 p_object_version_number := null;
97 p_effective_start_date := null;
98 p_effective_end_date := null;
99 p_return_status := hr_multi_message.get_return_status_disable;
100 hr_utility.set_location(' Leaving:' || l_proc, 30);
101 when others then
102 --
103 -- When Multiple Message Detection is enabled catch
104 -- any Application specific or other unexpected
105 -- exceptions. Adding appropriate details to the
106 -- Multiple Message List. Otherwise re-raise the
107 -- error.
108 --
109 rollback to create_iterative_rule_swi;
110 if hr_multi_message.unexpected_error_add(l_proc) then
111 hr_utility.set_location(' Leaving:' || l_proc,40);
112 raise;
113 end if;
114 --
115 -- Reset IN OUT and set OUT parameters
116 --
117 p_iterative_rule_id := null;
118 p_object_version_number := null;
119 p_effective_start_date := null;
120 p_effective_end_date := null;
121 p_return_status := hr_multi_message.get_return_status_disable;
122 hr_utility.set_location(' Leaving:' || l_proc,50);
123 end create_iterative_rule;
124 -- ----------------------------------------------------------------------------
125 -- |-------------------------< delete_iterative_rule >------------------------|
126 -- ----------------------------------------------------------------------------
127 PROCEDURE delete_iterative_rule
128 (p_effective_date in date
129 ,p_datetrack_mode in varchar2
130 ,p_iterative_rule_id in number
131 ,p_object_version_number in out nocopy number
132 ,p_effective_start_date out nocopy date
133 ,p_effective_end_date out nocopy date
134 ,p_return_status out nocopy varchar2
135 ) is
136 --
137 -- Variables for API Boolean parameters
138 --
139 -- Variables for IN/OUT parameters
140 l_object_version_number number;
141 --
142 -- Other variables
143 l_proc varchar2(72) := g_package ||'delete_iterative_rule';
144 Begin
145 hr_utility.set_location(' Entering:' || l_proc,10);
146 --
147 -- Issue a savepoint
148 --
149 savepoint delete_iterative_rule_swi;
150 --
151 -- Initialise Multiple Message Detection
152 --
153 hr_multi_message.enable_message_list;
154 --
155 -- Remember IN OUT parameter IN values
156 --
157 l_object_version_number := p_object_version_number;
158 --
159 -- Convert constant values to their corresponding boolean value
160 --
161 --
162 -- Register Surrogate ID or user key values
163 --
164 --
165 -- Call API
166 --
167 pay_iterative_rules_api.delete_iterative_rule
168 (p_effective_date => p_effective_date
169 ,p_datetrack_mode => p_datetrack_mode
170 ,p_iterative_rule_id => p_iterative_rule_id
171 ,p_object_version_number => p_object_version_number
172 ,p_effective_start_date => p_effective_start_date
173 ,p_effective_end_date => p_effective_end_date
174 );
175 --
176 -- Convert API warning boolean parameter values to specific
177 -- messages and add them to Multiple Message List
178 --
179 --
180 -- Convert API non-warning boolean parameter values
181 --
182 --
183 -- Derive the API return status value based on whether
184 -- messages of any type exist in the Multiple Message List.
185 -- Also disable Multiple Message Detection.
186 --
187 p_return_status := hr_multi_message.get_return_status_disable;
188 hr_utility.set_location(' Leaving:' || l_proc,20);
189 --
190 exception
191 when hr_multi_message.error_message_exist then
192 --
193 -- Catch the Multiple Message List exception which
194 -- indicates API processing has been aborted because
195 -- at least one message exists in the list.
196 --
197 rollback to delete_iterative_rule_swi;
198 --
199 -- Reset IN OUT parameters and set OUT parameters
200 --
201 p_object_version_number := l_object_version_number;
202 p_effective_start_date := null;
203 p_effective_end_date := null;
204 p_return_status := hr_multi_message.get_return_status_disable;
205 hr_utility.set_location(' Leaving:' || l_proc, 30);
206 when others then
207 --
208 -- When Multiple Message Detection is enabled catch
209 -- any Application specific or other unexpected
210 -- exceptions. Adding appropriate details to the
211 -- Multiple Message List. Otherwise re-raise the
212 -- error.
213 --
214 rollback to delete_iterative_rule_swi;
215 if hr_multi_message.unexpected_error_add(l_proc) then
216 hr_utility.set_location(' Leaving:' || l_proc,40);
217 raise;
218 end if;
219 --
220 -- Reset IN OUT and set OUT parameters
221 --
222 p_object_version_number := l_object_version_number;
223 p_effective_start_date := null;
224 p_effective_end_date := null;
225 p_return_status := hr_multi_message.get_return_status_disable;
226 hr_utility.set_location(' Leaving:' || l_proc,50);
227 end delete_iterative_rule;
228 -- ----------------------------------------------------------------------------
229 -- |-------------------------< update_iterative_rule >------------------------|
230 -- ----------------------------------------------------------------------------
231 PROCEDURE update_iterative_rule
232 (p_effective_date in date
233 ,p_datetrack_mode in varchar2
234 ,p_iterative_rule_id in number
235 ,p_object_version_number in out nocopy number
236 ,p_element_type_id in number default hr_api.g_number
237 ,p_result_name in varchar2 default hr_api.g_varchar2
238 ,p_iterative_rule_type in varchar2 default hr_api.g_varchar2
239 ,p_input_value_id in number default hr_api.g_number
240 ,p_severity_level in varchar2 default hr_api.g_varchar2
241 ,p_business_group_id in number default hr_api.g_number
242 ,p_legislation_code in varchar2 default hr_api.g_varchar2
243 ,p_effective_start_date out nocopy date
244 ,p_effective_end_date out nocopy date
245 ,p_return_status out nocopy varchar2
246 ) is
247 --
248 -- Variables for API Boolean parameters
249 --
250 -- Variables for IN/OUT parameters
251 l_object_version_number number;
252 --
253 -- Other variables
254 l_proc varchar2(72) := g_package ||'update_iterative_rule';
255 Begin
256 hr_utility.set_location(' Entering:' || l_proc,10);
257 --
258 -- Issue a savepoint
259 --
260 savepoint update_iterative_rule_swi;
261 --
262 -- Initialise Multiple Message Detection
263 --
264 hr_multi_message.enable_message_list;
265 --
266 -- Remember IN OUT parameter IN values
267 --
268 l_object_version_number := p_object_version_number;
269 --
270 -- Convert constant values to their corresponding boolean value
271 --
272 --
273 -- Register Surrogate ID or user key values
274 --
275 --
276 -- Call API
277 --
278 pay_iterative_rules_api.update_iterative_rule
279 (p_effective_date => p_effective_date
280 ,p_datetrack_mode => p_datetrack_mode
281 ,p_iterative_rule_id => p_iterative_rule_id
282 ,p_object_version_number => p_object_version_number
283 ,p_element_type_id => p_element_type_id
284 ,p_result_name => p_result_name
285 ,p_iterative_rule_type => p_iterative_rule_type
286 ,p_input_value_id => p_input_value_id
287 ,p_severity_level => p_severity_level
288 ,p_business_group_id => p_business_group_id
289 ,p_legislation_code => p_legislation_code
290 ,p_effective_start_date => p_effective_start_date
291 ,p_effective_end_date => p_effective_end_date
292 );
293 --
294 -- Convert API warning boolean parameter values to specific
295 -- messages and add them to Multiple Message List
296 --
297 --
298 -- Convert API non-warning boolean parameter values
299 --
300 --
301 -- Derive the API return status value based on whether
302 -- messages of any type exist in the Multiple Message List.
303 -- Also disable Multiple Message Detection.
304 --
305 p_return_status := hr_multi_message.get_return_status_disable;
306 hr_utility.set_location(' Leaving:' || l_proc,20);
307 --
308 exception
309 when hr_multi_message.error_message_exist then
310 --
311 -- Catch the Multiple Message List exception which
312 -- indicates API processing has been aborted because
313 -- at least one message exists in the list.
314 --
315 rollback to update_iterative_rule_swi;
316 --
317 -- Reset IN OUT parameters and set OUT parameters
318 --
319 p_object_version_number := l_object_version_number;
320 p_effective_start_date := null;
321 p_effective_end_date := null;
322 p_return_status := hr_multi_message.get_return_status_disable;
323 hr_utility.set_location(' Leaving:' || l_proc, 30);
324 when others then
325 --
326 -- When Multiple Message Detection is enabled catch
327 -- any Application specific or other unexpected
328 -- exceptions. Adding appropriate details to the
329 -- Multiple Message List. Otherwise re-raise the
330 -- error.
331 --
332 rollback to update_iterative_rule_swi;
333 if hr_multi_message.unexpected_error_add(l_proc) then
334 hr_utility.set_location(' Leaving:' || l_proc,40);
335 raise;
336 end if;
337 --
338 -- Reset IN OUT and set OUT parameters
339 --
340 p_object_version_number := l_object_version_number;
341 p_effective_start_date := null;
342 p_effective_end_date := null;
343 p_return_status := hr_multi_message.get_return_status_disable;
344 hr_utility.set_location(' Leaving:' || l_proc,50);
345 end update_iterative_rule;
346 end pay_iterative_rules_swi;