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