[Home] [Help]
PACKAGE BODY: APPS.HR_POSITION_SWI
Source
1 Package Body hr_position_swi As
2 /* $Header: hrposswi.pkb 115.2 2003/05/22 08:03:10 ndorai noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'hr_position_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------------< create_position >---------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_position
12 (p_position_id out nocopy number
13 ,p_effective_start_date out nocopy date
14 ,p_effective_end_date out nocopy date
15 ,p_position_definition_id out nocopy number
16 ,p_name out nocopy varchar2
17 ,p_object_version_number out nocopy number
18 ,p_job_id in number
19 ,p_organization_id in number
20 ,p_effective_date in date
21 ,p_date_effective in date
22 ,p_validate in number default hr_api.g_false_num
23 ,p_availability_status_id in number default null
24 ,p_business_group_id in number default null
25 ,p_entry_step_id in number default null
26 ,p_entry_grade_rule_id in number default null
27 ,p_location_id in number default null
28 ,p_pay_freq_payroll_id in number default null
29 ,p_position_transaction_id in number default null
30 ,p_prior_position_id in number default null
31 ,p_relief_position_id in number default null
32 ,p_entry_grade_id in number default null
33 ,p_successor_position_id in number default null
34 ,p_supervisor_position_id in number default null
35 ,p_amendment_date in date default null
36 ,p_amendment_recommendation in varchar2 default null
37 ,p_amendment_ref_number in varchar2 default null
38 ,p_bargaining_unit_cd in varchar2 default null
39 ,p_comments in long default null
40 ,p_current_job_prop_end_date in date default null
41 ,p_current_org_prop_end_date in date default null
42 ,p_avail_status_prop_end_date in date default null
43 ,p_date_end in date default null
44 ,p_earliest_hire_date in date default null
45 ,p_fill_by_date in date default null
46 ,p_frequency in varchar2 default null
47 ,p_fte in number default null
48 ,p_max_persons in number default null
49 ,p_overlap_period in number default null
50 ,p_overlap_unit_cd in varchar2 default null
51 ,p_pay_term_end_day_cd in varchar2 default null
52 ,p_pay_term_end_month_cd in varchar2 default null
53 ,p_permanent_temporary_flag in varchar2 default null
54 ,p_permit_recruitment_flag in varchar2 default null
55 ,p_position_type in varchar2 default null
56 ,p_posting_description in varchar2 default null
57 ,p_probation_period in number default null
58 ,p_probation_period_unit_cd in varchar2 default null
59 ,p_replacement_required_flag in varchar2 default null
60 ,p_review_flag in varchar2 default null
61 ,p_seasonal_flag in varchar2 default null
62 ,p_security_requirements in varchar2 default null
63 ,p_status in varchar2 default null
64 ,p_term_start_day_cd in varchar2 default null
65 ,p_term_start_month_cd in varchar2 default null
66 ,p_time_normal_finish in varchar2 default null
67 ,p_time_normal_start in varchar2 default null
68 ,p_update_source_cd in varchar2 default null
69 ,p_working_hours in number default null
70 ,p_works_council_approval_flag in varchar2 default null
71 ,p_work_period_type_cd in varchar2 default null
72 ,p_work_term_end_day_cd in varchar2 default null
73 ,p_work_term_end_month_cd in varchar2 default null
74 ,p_proposed_fte_for_layoff in number default null
75 ,p_proposed_date_for_layoff in date default null
76 ,p_pay_basis_id in number default null
77 ,p_supervisor_id in number default null
78 ,p_information1 in varchar2 default null
79 ,p_information2 in varchar2 default null
80 ,p_information3 in varchar2 default null
81 ,p_information4 in varchar2 default null
82 ,p_information5 in varchar2 default null
83 ,p_information6 in varchar2 default null
84 ,p_information7 in varchar2 default null
85 ,p_information8 in varchar2 default null
86 ,p_information9 in varchar2 default null
87 ,p_information10 in varchar2 default null
88 ,p_information11 in varchar2 default null
89 ,p_information12 in varchar2 default null
90 ,p_information13 in varchar2 default null
91 ,p_information14 in varchar2 default null
92 ,p_information15 in varchar2 default null
93 ,p_information16 in varchar2 default null
94 ,p_information17 in varchar2 default null
95 ,p_information18 in varchar2 default null
96 ,p_information19 in varchar2 default null
97 ,p_information20 in varchar2 default null
98 ,p_information21 in varchar2 default null
99 ,p_information22 in varchar2 default null
100 ,p_information23 in varchar2 default null
101 ,p_information24 in varchar2 default null
102 ,p_information25 in varchar2 default null
103 ,p_information26 in varchar2 default null
104 ,p_information27 in varchar2 default null
105 ,p_information28 in varchar2 default null
106 ,p_information29 in varchar2 default null
107 ,p_information30 in varchar2 default null
108 ,p_information_category in varchar2 default null
109 ,p_attribute1 in varchar2 default null
110 ,p_attribute2 in varchar2 default null
111 ,p_attribute3 in varchar2 default null
112 ,p_attribute4 in varchar2 default null
113 ,p_attribute5 in varchar2 default null
114 ,p_attribute6 in varchar2 default null
115 ,p_attribute7 in varchar2 default null
116 ,p_attribute8 in varchar2 default null
117 ,p_attribute9 in varchar2 default null
118 ,p_attribute10 in varchar2 default null
119 ,p_attribute11 in varchar2 default null
120 ,p_attribute12 in varchar2 default null
121 ,p_attribute13 in varchar2 default null
122 ,p_attribute14 in varchar2 default null
123 ,p_attribute15 in varchar2 default null
124 ,p_attribute16 in varchar2 default null
125 ,p_attribute17 in varchar2 default null
126 ,p_attribute18 in varchar2 default null
127 ,p_attribute19 in varchar2 default null
128 ,p_attribute20 in varchar2 default null
129 ,p_attribute21 in varchar2 default null
130 ,p_attribute22 in varchar2 default null
131 ,p_attribute23 in varchar2 default null
132 ,p_attribute24 in varchar2 default null
133 ,p_attribute25 in varchar2 default null
134 ,p_attribute26 in varchar2 default null
135 ,p_attribute27 in varchar2 default null
136 ,p_attribute28 in varchar2 default null
137 ,p_attribute29 in varchar2 default null
138 ,p_attribute30 in varchar2 default null
139 ,p_attribute_category in varchar2 default null
140 ,p_segment1 in varchar2 default null
141 ,p_segment2 in varchar2 default null
142 ,p_segment3 in varchar2 default null
143 ,p_segment4 in varchar2 default null
144 ,p_segment5 in varchar2 default null
145 ,p_segment6 in varchar2 default null
146 ,p_segment7 in varchar2 default null
147 ,p_segment8 in varchar2 default null
148 ,p_segment9 in varchar2 default null
149 ,p_segment10 in varchar2 default null
150 ,p_segment11 in varchar2 default null
151 ,p_segment12 in varchar2 default null
152 ,p_segment13 in varchar2 default null
153 ,p_segment14 in varchar2 default null
154 ,p_segment15 in varchar2 default null
155 ,p_segment16 in varchar2 default null
156 ,p_segment17 in varchar2 default null
157 ,p_segment18 in varchar2 default null
158 ,p_segment19 in varchar2 default null
159 ,p_segment20 in varchar2 default null
160 ,p_segment21 in varchar2 default null
161 ,p_segment22 in varchar2 default null
162 ,p_segment23 in varchar2 default null
163 ,p_segment24 in varchar2 default null
164 ,p_segment25 in varchar2 default null
165 ,p_segment26 in varchar2 default null
166 ,p_segment27 in varchar2 default null
167 ,p_segment28 in varchar2 default null
168 ,p_segment29 in varchar2 default null
169 ,p_segment30 in varchar2 default null
170 ,p_concat_segments in varchar2 default null
171 ,p_request_id in number default null
172 ,p_program_application_id in number default null
173 ,p_program_id in number default null
174 ,p_program_update_date in date default null
175 ,p_security_profile_id in number default null
176 ,p_return_status out nocopy varchar2
177 ) is
178 --
179 -- Variables for API Boolean parameters
180 l_validate boolean;
181 --
182 -- Variables for IN/OUT parameters
183 --
184 -- Other variables
185 l_proc varchar2(72) := g_package ||'create_position';
186 Begin
187 hr_utility.set_location(' Entering:' || l_proc,10);
188 --
189 -- Issue a savepoint
190 --
191 savepoint create_position_swi;
192 --
193 -- Initialise Multiple Message Detection
194 --
195 hr_multi_message.enable_message_list;
196 --
197 -- Remember IN OUT parameter IN values
198 --
199 --
200 -- Convert constant values to their corresponding boolean value
201 --
202 l_validate :=
203 hr_api.constant_to_boolean
204 (p_constant_value => p_validate);
205 --
206 -- Register Surrogate ID or user key values
207 --
208 --
209 -- Call API
210 --
211 hr_position_api.create_position
212 (p_position_id => p_position_id
213 ,p_effective_start_date => p_effective_start_date
214 ,p_effective_end_date => p_effective_end_date
215 ,p_position_definition_id => p_position_definition_id
216 ,p_name => p_name
217 ,p_object_version_number => p_object_version_number
218 ,p_job_id => p_job_id
219 ,p_organization_id => p_organization_id
220 ,p_effective_date => p_effective_date
221 ,p_date_effective => p_date_effective
222 ,p_validate => l_validate
223 ,p_availability_status_id => p_availability_status_id
224 ,p_business_group_id => p_business_group_id
225 ,p_entry_step_id => p_entry_step_id
226 ,p_entry_grade_rule_id => p_entry_grade_rule_id
227 ,p_location_id => p_location_id
228 ,p_pay_freq_payroll_id => p_pay_freq_payroll_id
229 ,p_position_transaction_id => p_position_transaction_id
230 ,p_prior_position_id => p_prior_position_id
231 ,p_relief_position_id => p_relief_position_id
232 ,p_entry_grade_id => p_entry_grade_id
233 ,p_successor_position_id => p_successor_position_id
234 ,p_supervisor_position_id => p_supervisor_position_id
235 ,p_amendment_date => p_amendment_date
236 ,p_amendment_recommendation => p_amendment_recommendation
237 ,p_amendment_ref_number => p_amendment_ref_number
238 ,p_bargaining_unit_cd => p_bargaining_unit_cd
239 ,p_comments => p_comments
240 ,p_current_job_prop_end_date => p_current_job_prop_end_date
241 ,p_current_org_prop_end_date => p_current_org_prop_end_date
242 ,p_avail_status_prop_end_date => p_avail_status_prop_end_date
243 ,p_date_end => p_date_end
244 ,p_earliest_hire_date => p_earliest_hire_date
245 ,p_fill_by_date => p_fill_by_date
246 ,p_frequency => p_frequency
247 ,p_fte => p_fte
248 ,p_max_persons => p_max_persons
249 ,p_overlap_period => p_overlap_period
250 ,p_overlap_unit_cd => p_overlap_unit_cd
251 ,p_pay_term_end_day_cd => p_pay_term_end_day_cd
252 ,p_pay_term_end_month_cd => p_pay_term_end_month_cd
253 ,p_permanent_temporary_flag => p_permanent_temporary_flag
254 ,p_permit_recruitment_flag => p_permit_recruitment_flag
255 ,p_position_type => p_position_type
256 ,p_posting_description => p_posting_description
257 ,p_probation_period => p_probation_period
258 ,p_probation_period_unit_cd => p_probation_period_unit_cd
259 ,p_replacement_required_flag => p_replacement_required_flag
260 ,p_review_flag => p_review_flag
261 ,p_seasonal_flag => p_seasonal_flag
262 ,p_security_requirements => p_security_requirements
263 ,p_status => p_status
264 ,p_term_start_day_cd => p_term_start_day_cd
265 ,p_term_start_month_cd => p_term_start_month_cd
266 ,p_time_normal_finish => p_time_normal_finish
267 ,p_time_normal_start => p_time_normal_start
268 ,p_update_source_cd => p_update_source_cd
269 ,p_working_hours => p_working_hours
270 ,p_works_council_approval_flag => p_works_council_approval_flag
271 ,p_work_period_type_cd => p_work_period_type_cd
272 ,p_work_term_end_day_cd => p_work_term_end_day_cd
273 ,p_work_term_end_month_cd => p_work_term_end_month_cd
274 ,p_proposed_fte_for_layoff => p_proposed_fte_for_layoff
275 ,p_proposed_date_for_layoff => p_proposed_date_for_layoff
276 ,p_pay_basis_id => p_pay_basis_id
277 ,p_supervisor_id => p_supervisor_id
278 ,p_information1 => p_information1
279 ,p_information2 => p_information2
280 ,p_information3 => p_information3
281 ,p_information4 => p_information4
282 ,p_information5 => p_information5
283 ,p_information6 => p_information6
284 ,p_information7 => p_information7
285 ,p_information8 => p_information8
286 ,p_information9 => p_information9
287 ,p_information10 => p_information10
288 ,p_information11 => p_information11
289 ,p_information12 => p_information12
290 ,p_information13 => p_information13
291 ,p_information14 => p_information14
292 ,p_information15 => p_information15
293 ,p_information16 => p_information16
294 ,p_information17 => p_information17
295 ,p_information18 => p_information18
296 ,p_information19 => p_information19
297 ,p_information20 => p_information20
298 ,p_information21 => p_information21
299 ,p_information22 => p_information22
300 ,p_information23 => p_information23
301 ,p_information24 => p_information24
302 ,p_information25 => p_information25
303 ,p_information26 => p_information26
304 ,p_information27 => p_information27
305 ,p_information28 => p_information28
306 ,p_information29 => p_information29
307 ,p_information30 => p_information30
308 ,p_information_category => p_information_category
309 ,p_attribute1 => p_attribute1
310 ,p_attribute2 => p_attribute2
311 ,p_attribute3 => p_attribute3
312 ,p_attribute4 => p_attribute4
313 ,p_attribute5 => p_attribute5
314 ,p_attribute6 => p_attribute6
315 ,p_attribute7 => p_attribute7
316 ,p_attribute8 => p_attribute8
317 ,p_attribute9 => p_attribute9
318 ,p_attribute10 => p_attribute10
319 ,p_attribute11 => p_attribute11
320 ,p_attribute12 => p_attribute12
321 ,p_attribute13 => p_attribute13
322 ,p_attribute14 => p_attribute14
323 ,p_attribute15 => p_attribute15
324 ,p_attribute16 => p_attribute16
325 ,p_attribute17 => p_attribute17
326 ,p_attribute18 => p_attribute18
327 ,p_attribute19 => p_attribute19
328 ,p_attribute20 => p_attribute20
329 ,p_attribute21 => p_attribute21
330 ,p_attribute22 => p_attribute22
331 ,p_attribute23 => p_attribute23
332 ,p_attribute24 => p_attribute24
333 ,p_attribute25 => p_attribute25
334 ,p_attribute26 => p_attribute26
335 ,p_attribute27 => p_attribute27
336 ,p_attribute28 => p_attribute28
337 ,p_attribute29 => p_attribute29
338 ,p_attribute30 => p_attribute30
339 ,p_attribute_category => p_attribute_category
340 ,p_segment1 => p_segment1
341 ,p_segment2 => p_segment2
342 ,p_segment3 => p_segment3
343 ,p_segment4 => p_segment4
344 ,p_segment5 => p_segment5
345 ,p_segment6 => p_segment6
346 ,p_segment7 => p_segment7
347 ,p_segment8 => p_segment8
348 ,p_segment9 => p_segment9
349 ,p_segment10 => p_segment10
350 ,p_segment11 => p_segment11
351 ,p_segment12 => p_segment12
352 ,p_segment13 => p_segment13
353 ,p_segment14 => p_segment14
354 ,p_segment15 => p_segment15
355 ,p_segment16 => p_segment16
356 ,p_segment17 => p_segment17
357 ,p_segment18 => p_segment18
358 ,p_segment19 => p_segment19
359 ,p_segment20 => p_segment20
360 ,p_segment21 => p_segment21
361 ,p_segment22 => p_segment22
362 ,p_segment23 => p_segment23
363 ,p_segment24 => p_segment24
364 ,p_segment25 => p_segment25
365 ,p_segment26 => p_segment26
366 ,p_segment27 => p_segment27
367 ,p_segment28 => p_segment28
368 ,p_segment29 => p_segment29
369 ,p_segment30 => p_segment30
370 ,p_concat_segments => p_concat_segments
371 ,p_request_id => p_request_id
372 ,p_program_application_id => p_program_application_id
373 ,p_program_id => p_program_id
374 ,p_program_update_date => p_program_update_date
375 ,p_security_profile_id => p_security_profile_id
376 );
377 --
378 -- Convert API warning boolean parameter values to specific
379 -- messages and add them to Multiple Message List
380 --
381 --
382 -- Convert API non-warning boolean parameter values
383 --
384 --
385 -- Derive the API return status value based on whether
386 -- messages of any type exist in the Multiple Message List.
387 -- Also disable Multiple Message Detection.
388 --
389 p_return_status := hr_multi_message.get_return_status_disable;
390 hr_utility.set_location(' Leaving:' || l_proc,20);
391 --
392 exception
393 when hr_multi_message.error_message_exist then
394 --
395 -- Catch the Multiple Message List exception which
396 -- indicates API processing has been aborted because
397 -- at least one message exists in the list.
398 --
399 rollback to create_position_swi;
400 --
401 -- Reset IN OUT parameters and set OUT parameters
402 --
403 p_position_id := null;
404 p_effective_start_date := null;
405 p_effective_end_date := null;
406 p_position_definition_id := null;
407 p_name := null;
408 p_object_version_number := null;
409 p_return_status := hr_multi_message.get_return_status_disable;
410 hr_utility.set_location(' Leaving:' || l_proc, 30);
411 when others then
412 --
413 -- When Multiple Message Detection is enabled catch
414 -- any Application specific or other unexpected
415 -- exceptions. Adding appropriate details to the
416 -- Multiple Message List. Otherwise re-raise the
417 -- error.
418 --
419 rollback to create_position_swi;
420 if hr_multi_message.unexpected_error_add(l_proc) then
421 hr_utility.set_location(' Leaving:' || l_proc,40);
422 raise;
423 end if;
424 --
425 -- Reset IN OUT and set OUT parameters
426 --
427 p_position_id := null;
428 p_effective_start_date := null;
429 p_effective_end_date := null;
430 p_position_definition_id := null;
431 p_name := null;
432 p_object_version_number := null;
433 p_return_status := hr_multi_message.get_return_status_disable;
434 hr_utility.set_location(' Leaving:' || l_proc,50);
435 end create_position;
436 -- ----------------------------------------------------------------------------
437 -- |----------------------------< delete_position >---------------------------|
438 -- ----------------------------------------------------------------------------
439 PROCEDURE delete_position
440 (p_validate in number default hr_api.g_false_num
441 ,p_position_id in number
442 ,p_effective_start_date out nocopy date
443 ,p_effective_end_date out nocopy date
444 ,p_object_version_number in out nocopy number
445 ,p_effective_date in date
446 ,p_datetrack_mode in varchar2
447 ,p_security_profile_id in number default hr_api.g_number
448 ,p_return_status out nocopy varchar2
449 ) is
450 --
451 -- Variables for API Boolean parameters
452 l_validate boolean;
453 --
454 -- Variables for IN/OUT parameters
455 l_object_version_number number;
456 --
457 -- Other variables
458 l_proc varchar2(72) := g_package ||'delete_position';
459 Begin
460 hr_utility.set_location(' Entering:' || l_proc,10);
461 --
462 -- Issue a savepoint
463 --
464 savepoint delete_position_swi;
465 --
466 -- Initialise Multiple Message Detection
467 --
468 hr_multi_message.enable_message_list;
469 --
470 -- Remember IN OUT parameter IN values
471 --
472 l_object_version_number := p_object_version_number;
473 --
474 -- Convert constant values to their corresponding boolean value
475 --
476 l_validate :=
477 hr_api.constant_to_boolean
478 (p_constant_value => p_validate);
479 --
480 -- Register Surrogate ID or user key values
481 --
482 --
483 -- Call API
484 --
485 hr_position_api.delete_position
486 (p_validate => l_validate
487 ,p_position_id => p_position_id
488 ,p_effective_start_date => p_effective_start_date
489 ,p_effective_end_date => p_effective_end_date
490 ,p_object_version_number => p_object_version_number
491 ,p_effective_date => p_effective_date
492 ,p_datetrack_mode => p_datetrack_mode
493 ,p_security_profile_id => p_security_profile_id
494 );
495 --
496 -- Convert API warning boolean parameter values to specific
497 -- messages and add them to Multiple Message List
498 --
499 --
500 -- Convert API non-warning boolean parameter values
501 --
502 --
503 -- Derive the API return status value based on whether
504 -- messages of any type exist in the Multiple Message List.
505 -- Also disable Multiple Message Detection.
506 --
507 p_return_status := hr_multi_message.get_return_status_disable;
508 hr_utility.set_location(' Leaving:' || l_proc,20);
509 --
510 exception
511 when hr_multi_message.error_message_exist then
512 --
513 -- Catch the Multiple Message List exception which
514 -- indicates API processing has been aborted because
515 -- at least one message exists in the list.
516 --
517 rollback to delete_position_swi;
518 --
519 -- Reset IN OUT parameters and set OUT parameters
520 --
521 p_effective_start_date := null;
522 p_effective_end_date := null;
523 p_object_version_number := l_object_version_number;
524 p_return_status := hr_multi_message.get_return_status_disable;
525 hr_utility.set_location(' Leaving:' || l_proc, 30);
526 when others then
527 --
528 -- When Multiple Message Detection is enabled catch
529 -- any Application specific or other unexpected
530 -- exceptions. Adding appropriate details to the
531 -- Multiple Message List. Otherwise re-raise the
532 -- error.
533 --
534 rollback to delete_position_swi;
535 if hr_multi_message.unexpected_error_add(l_proc) then
536 hr_utility.set_location(' Leaving:' || l_proc,40);
537 raise;
538 end if;
539 --
540 -- Reset IN OUT and set OUT parameters
541 --
542 p_effective_start_date := null;
543 p_effective_end_date := null;
544 p_object_version_number := l_object_version_number;
545 p_return_status := hr_multi_message.get_return_status_disable;
546 hr_utility.set_location(' Leaving:' || l_proc,50);
547 end delete_position;
548 -- ----------------------------------------------------------------------------
549 -- |----------------------------------< lck >---------------------------------|
550 -- ----------------------------------------------------------------------------
551 PROCEDURE lck
552 (p_position_id in number
553 ,p_object_version_number in number
554 ,p_effective_date in date
555 ,p_datetrack_mode in varchar2
556 ,p_validation_start_date out nocopy date
557 ,p_validation_end_date out nocopy date
558 ,p_return_status out nocopy varchar2
559 ) is
560 --
561 -- Variables for API Boolean parameters
562 --
563 -- Variables for IN/OUT parameters
564 --
565 -- Other variables
566 l_proc varchar2(72) := g_package ||'lck';
567 Begin
568 hr_utility.set_location(' Entering:' || l_proc,10);
569 --
570 -- Issue a savepoint
571 --
572 savepoint lck_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 --
581 -- Convert constant values to their corresponding boolean value
582 --
583 --
584 -- Register Surrogate ID or user key values
585 --
586 --
587 -- Call API
588 --
589 hr_position_api.lck
590 (p_position_id => p_position_id
591 ,p_object_version_number => p_object_version_number
592 ,p_effective_date => p_effective_date
593 ,p_datetrack_mode => p_datetrack_mode
594 ,p_validation_start_date => p_validation_start_date
595 ,p_validation_end_date => p_validation_end_date
596 );
597 --
598 -- Convert API warning boolean parameter values to specific
599 -- messages and add them to Multiple Message List
600 --
601 --
602 -- Convert API non-warning boolean parameter values
603 --
604 --
605 -- Derive the API return status value based on whether
606 -- messages of any type exist in the Multiple Message List.
607 -- Also disable Multiple Message Detection.
608 --
609 p_return_status := hr_multi_message.get_return_status_disable;
610 hr_utility.set_location(' Leaving:' || l_proc,20);
611 --
612 exception
613 when hr_multi_message.error_message_exist then
614 --
615 -- Catch the Multiple Message List exception which
616 -- indicates API processing has been aborted because
617 -- at least one message exists in the list.
618 --
619 rollback to lck_swi;
620 --
621 -- Reset IN OUT parameters and set OUT parameters
622 --
623 p_validation_start_date := null;
624 p_validation_end_date := null;
625 p_return_status := hr_multi_message.get_return_status_disable;
626 hr_utility.set_location(' Leaving:' || l_proc, 30);
627 when others then
628 --
629 -- When Multiple Message Detection is enabled catch
630 -- any Application specific or other unexpected
631 -- exceptions. Adding appropriate details to the
632 -- Multiple Message List. Otherwise re-raise the
633 -- error.
634 --
635 rollback to lck_swi;
636 if hr_multi_message.unexpected_error_add(l_proc) then
637 hr_utility.set_location(' Leaving:' || l_proc,40);
638 raise;
639 end if;
640 --
641 -- Reset IN OUT and set OUT parameters
642 --
643 p_validation_start_date := null;
644 p_validation_end_date := null;
645 p_return_status := hr_multi_message.get_return_status_disable;
646 hr_utility.set_location(' Leaving:' || l_proc,50);
647 end lck;
648 -- ----------------------------------------------------------------------------
649 -- |----------------------------< update_position >---------------------------|
650 -- ----------------------------------------------------------------------------
651 PROCEDURE update_position
652 (p_validate in number default hr_api.g_false_num
653 ,p_position_id in number
654 ,p_effective_start_date out nocopy date
655 ,p_effective_end_date out nocopy date
656 ,p_position_definition_id out nocopy number
657 ,p_name out nocopy varchar2
658 ,p_availability_status_id in number default hr_api.g_number
659 ,p_entry_step_id in number default hr_api.g_number
660 ,p_entry_grade_rule_id in number default hr_api.g_number
661 ,p_location_id in number default hr_api.g_number
662 ,p_pay_freq_payroll_id in number default hr_api.g_number
663 ,p_position_transaction_id in number default hr_api.g_number
664 ,p_prior_position_id in number default hr_api.g_number
665 ,p_relief_position_id in number default hr_api.g_number
666 ,p_entry_grade_id in number default hr_api.g_number
667 ,p_successor_position_id in number default hr_api.g_number
668 ,p_supervisor_position_id in number default hr_api.g_number
669 ,p_amendment_date in date default hr_api.g_date
670 ,p_amendment_recommendation in varchar2 default hr_api.g_varchar2
671 ,p_amendment_ref_number in varchar2 default hr_api.g_varchar2
672 ,p_bargaining_unit_cd in varchar2 default hr_api.g_varchar2
673 ,p_comments in long default hr_api.g_varchar2
674 ,p_current_job_prop_end_date in date default hr_api.g_date
675 ,p_current_org_prop_end_date in date default hr_api.g_date
676 ,p_avail_status_prop_end_date in date default hr_api.g_date
677 ,p_date_effective in date default hr_api.g_date
678 ,p_date_end in date default hr_api.g_date
679 ,p_earliest_hire_date in date default hr_api.g_date
680 ,p_fill_by_date in date default hr_api.g_date
681 ,p_frequency in varchar2 default hr_api.g_varchar2
682 ,p_fte in number default hr_api.g_number
683 ,p_max_persons in number default hr_api.g_number
684 ,p_overlap_period in number default hr_api.g_number
685 ,p_overlap_unit_cd in varchar2 default hr_api.g_varchar2
686 ,p_pay_term_end_day_cd in varchar2 default hr_api.g_varchar2
687 ,p_pay_term_end_month_cd in varchar2 default hr_api.g_varchar2
688 ,p_permanent_temporary_flag in varchar2 default hr_api.g_varchar2
689 ,p_permit_recruitment_flag in varchar2 default hr_api.g_varchar2
690 ,p_position_type in varchar2 default hr_api.g_varchar2
691 ,p_posting_description in varchar2 default hr_api.g_varchar2
692 ,p_probation_period in number default hr_api.g_number
693 ,p_probation_period_unit_cd in varchar2 default hr_api.g_varchar2
694 ,p_replacement_required_flag in varchar2 default hr_api.g_varchar2
695 ,p_review_flag in varchar2 default hr_api.g_varchar2
696 ,p_seasonal_flag in varchar2 default hr_api.g_varchar2
697 ,p_security_requirements in varchar2 default hr_api.g_varchar2
698 ,p_status in varchar2 default hr_api.g_varchar2
699 ,p_term_start_day_cd in varchar2 default hr_api.g_varchar2
700 ,p_term_start_month_cd in varchar2 default hr_api.g_varchar2
701 ,p_time_normal_finish in varchar2 default hr_api.g_varchar2
702 ,p_time_normal_start in varchar2 default hr_api.g_varchar2
703 ,p_update_source_cd in varchar2 default hr_api.g_varchar2
704 ,p_working_hours in number default hr_api.g_number
705 ,p_works_council_approval_flag in varchar2 default hr_api.g_varchar2
706 ,p_work_period_type_cd in varchar2 default hr_api.g_varchar2
707 ,p_work_term_end_day_cd in varchar2 default hr_api.g_varchar2
708 ,p_work_term_end_month_cd in varchar2 default hr_api.g_varchar2
709 ,p_proposed_fte_for_layoff in number default hr_api.g_number
710 ,p_proposed_date_for_layoff in date default hr_api.g_date
711 ,p_pay_basis_id in number default hr_api.g_number
712 ,p_supervisor_id in number default hr_api.g_number
713 ,p_information1 in varchar2 default hr_api.g_varchar2
714 ,p_information2 in varchar2 default hr_api.g_varchar2
715 ,p_information3 in varchar2 default hr_api.g_varchar2
716 ,p_information4 in varchar2 default hr_api.g_varchar2
717 ,p_information5 in varchar2 default hr_api.g_varchar2
718 ,p_information6 in varchar2 default hr_api.g_varchar2
719 ,p_information7 in varchar2 default hr_api.g_varchar2
720 ,p_information8 in varchar2 default hr_api.g_varchar2
721 ,p_information9 in varchar2 default hr_api.g_varchar2
722 ,p_information10 in varchar2 default hr_api.g_varchar2
723 ,p_information11 in varchar2 default hr_api.g_varchar2
724 ,p_information12 in varchar2 default hr_api.g_varchar2
725 ,p_information13 in varchar2 default hr_api.g_varchar2
726 ,p_information14 in varchar2 default hr_api.g_varchar2
727 ,p_information15 in varchar2 default hr_api.g_varchar2
728 ,p_information16 in varchar2 default hr_api.g_varchar2
729 ,p_information17 in varchar2 default hr_api.g_varchar2
730 ,p_information18 in varchar2 default hr_api.g_varchar2
731 ,p_information19 in varchar2 default hr_api.g_varchar2
732 ,p_information20 in varchar2 default hr_api.g_varchar2
733 ,p_information21 in varchar2 default hr_api.g_varchar2
734 ,p_information22 in varchar2 default hr_api.g_varchar2
735 ,p_information23 in varchar2 default hr_api.g_varchar2
736 ,p_information24 in varchar2 default hr_api.g_varchar2
737 ,p_information25 in varchar2 default hr_api.g_varchar2
738 ,p_information26 in varchar2 default hr_api.g_varchar2
739 ,p_information27 in varchar2 default hr_api.g_varchar2
740 ,p_information28 in varchar2 default hr_api.g_varchar2
741 ,p_information29 in varchar2 default hr_api.g_varchar2
742 ,p_information30 in varchar2 default hr_api.g_varchar2
743 ,p_information_category in varchar2 default hr_api.g_varchar2
744 ,p_attribute1 in varchar2 default hr_api.g_varchar2
745 ,p_attribute2 in varchar2 default hr_api.g_varchar2
746 ,p_attribute3 in varchar2 default hr_api.g_varchar2
747 ,p_attribute4 in varchar2 default hr_api.g_varchar2
748 ,p_attribute5 in varchar2 default hr_api.g_varchar2
749 ,p_attribute6 in varchar2 default hr_api.g_varchar2
750 ,p_attribute7 in varchar2 default hr_api.g_varchar2
751 ,p_attribute8 in varchar2 default hr_api.g_varchar2
752 ,p_attribute9 in varchar2 default hr_api.g_varchar2
753 ,p_attribute10 in varchar2 default hr_api.g_varchar2
754 ,p_attribute11 in varchar2 default hr_api.g_varchar2
755 ,p_attribute12 in varchar2 default hr_api.g_varchar2
756 ,p_attribute13 in varchar2 default hr_api.g_varchar2
757 ,p_attribute14 in varchar2 default hr_api.g_varchar2
758 ,p_attribute15 in varchar2 default hr_api.g_varchar2
759 ,p_attribute16 in varchar2 default hr_api.g_varchar2
760 ,p_attribute17 in varchar2 default hr_api.g_varchar2
761 ,p_attribute18 in varchar2 default hr_api.g_varchar2
762 ,p_attribute19 in varchar2 default hr_api.g_varchar2
763 ,p_attribute20 in varchar2 default hr_api.g_varchar2
764 ,p_attribute21 in varchar2 default hr_api.g_varchar2
765 ,p_attribute22 in varchar2 default hr_api.g_varchar2
766 ,p_attribute23 in varchar2 default hr_api.g_varchar2
767 ,p_attribute24 in varchar2 default hr_api.g_varchar2
768 ,p_attribute25 in varchar2 default hr_api.g_varchar2
769 ,p_attribute26 in varchar2 default hr_api.g_varchar2
770 ,p_attribute27 in varchar2 default hr_api.g_varchar2
771 ,p_attribute28 in varchar2 default hr_api.g_varchar2
772 ,p_attribute29 in varchar2 default hr_api.g_varchar2
773 ,p_attribute30 in varchar2 default hr_api.g_varchar2
774 ,p_attribute_category in varchar2 default hr_api.g_varchar2
775 ,p_segment1 in varchar2 default hr_api.g_varchar2
776 ,p_segment2 in varchar2 default hr_api.g_varchar2
777 ,p_segment3 in varchar2 default hr_api.g_varchar2
778 ,p_segment4 in varchar2 default hr_api.g_varchar2
779 ,p_segment5 in varchar2 default hr_api.g_varchar2
780 ,p_segment6 in varchar2 default hr_api.g_varchar2
781 ,p_segment7 in varchar2 default hr_api.g_varchar2
782 ,p_segment8 in varchar2 default hr_api.g_varchar2
783 ,p_segment9 in varchar2 default hr_api.g_varchar2
784 ,p_segment10 in varchar2 default hr_api.g_varchar2
785 ,p_segment11 in varchar2 default hr_api.g_varchar2
786 ,p_segment12 in varchar2 default hr_api.g_varchar2
787 ,p_segment13 in varchar2 default hr_api.g_varchar2
788 ,p_segment14 in varchar2 default hr_api.g_varchar2
789 ,p_segment15 in varchar2 default hr_api.g_varchar2
790 ,p_segment16 in varchar2 default hr_api.g_varchar2
791 ,p_segment17 in varchar2 default hr_api.g_varchar2
792 ,p_segment18 in varchar2 default hr_api.g_varchar2
793 ,p_segment19 in varchar2 default hr_api.g_varchar2
794 ,p_segment20 in varchar2 default hr_api.g_varchar2
795 ,p_segment21 in varchar2 default hr_api.g_varchar2
796 ,p_segment22 in varchar2 default hr_api.g_varchar2
797 ,p_segment23 in varchar2 default hr_api.g_varchar2
798 ,p_segment24 in varchar2 default hr_api.g_varchar2
799 ,p_segment25 in varchar2 default hr_api.g_varchar2
800 ,p_segment26 in varchar2 default hr_api.g_varchar2
801 ,p_segment27 in varchar2 default hr_api.g_varchar2
802 ,p_segment28 in varchar2 default hr_api.g_varchar2
803 ,p_segment29 in varchar2 default hr_api.g_varchar2
804 ,p_segment30 in varchar2 default hr_api.g_varchar2
805 ,p_concat_segments in varchar2 default hr_api.g_varchar2
806 ,p_request_id in number default hr_api.g_number
807 ,p_program_application_id in number default hr_api.g_number
808 ,p_program_id in number default hr_api.g_number
809 ,p_program_update_date in date default hr_api.g_date
810 ,p_object_version_number in out nocopy number
811 ,p_effective_date in date
812 ,p_datetrack_mode in varchar2
813 ,p_return_status out nocopy varchar2
814 ) is
815 --
816 -- Variables for API Boolean parameters
817 l_validate boolean;
818 l_valid_grades_changed_warning boolean;
819 --
820 -- Variables for IN/OUT parameters
821 l_object_version_number number;
822 --
823 -- Other variables
824 l_proc varchar2(72) := g_package ||'update_position';
825 Begin
826 hr_utility.set_location(' Entering:' || l_proc,10);
827 --
828 -- Issue a savepoint
829 --
830 savepoint update_position_swi;
831 --
832 -- Initialise Multiple Message Detection
833 --
834 hr_multi_message.enable_message_list;
835 --
836 -- Remember IN OUT parameter IN values
837 --
838 l_object_version_number := p_object_version_number;
839 --
840 -- Convert constant values to their corresponding boolean value
841 --
842 l_validate :=
843 hr_api.constant_to_boolean
844 (p_constant_value => p_validate);
845 --
846 -- Register Surrogate ID or user key values
847 --
848 --
849 -- Call API
850 --
851 hr_position_api.update_position
852 (p_validate => l_validate
853 ,p_position_id => p_position_id
854 ,p_effective_start_date => p_effective_start_date
855 ,p_effective_end_date => p_effective_end_date
856 ,p_position_definition_id => p_position_definition_id
857 ,p_valid_grades_changed_warning => l_valid_grades_changed_warning
858 ,p_name => p_name
859 ,p_availability_status_id => p_availability_status_id
860 ,p_entry_step_id => p_entry_step_id
861 ,p_entry_grade_rule_id => p_entry_grade_rule_id
862 ,p_location_id => p_location_id
863 ,p_pay_freq_payroll_id => p_pay_freq_payroll_id
864 ,p_position_transaction_id => p_position_transaction_id
865 ,p_prior_position_id => p_prior_position_id
866 ,p_relief_position_id => p_relief_position_id
867 ,p_entry_grade_id => p_entry_grade_id
868 ,p_successor_position_id => p_successor_position_id
869 ,p_supervisor_position_id => p_supervisor_position_id
870 ,p_amendment_date => p_amendment_date
871 ,p_amendment_recommendation => p_amendment_recommendation
872 ,p_amendment_ref_number => p_amendment_ref_number
873 ,p_bargaining_unit_cd => p_bargaining_unit_cd
874 ,p_comments => p_comments
875 ,p_current_job_prop_end_date => p_current_job_prop_end_date
876 ,p_current_org_prop_end_date => p_current_org_prop_end_date
877 ,p_avail_status_prop_end_date => p_avail_status_prop_end_date
878 ,p_date_effective => p_date_effective
879 ,p_date_end => p_date_end
880 ,p_earliest_hire_date => p_earliest_hire_date
881 ,p_fill_by_date => p_fill_by_date
882 ,p_frequency => p_frequency
883 ,p_fte => p_fte
884 ,p_max_persons => p_max_persons
885 ,p_overlap_period => p_overlap_period
886 ,p_overlap_unit_cd => p_overlap_unit_cd
887 ,p_pay_term_end_day_cd => p_pay_term_end_day_cd
888 ,p_pay_term_end_month_cd => p_pay_term_end_month_cd
889 ,p_permanent_temporary_flag => p_permanent_temporary_flag
890 ,p_permit_recruitment_flag => p_permit_recruitment_flag
891 ,p_position_type => p_position_type
892 ,p_posting_description => p_posting_description
893 ,p_probation_period => p_probation_period
894 ,p_probation_period_unit_cd => p_probation_period_unit_cd
895 ,p_replacement_required_flag => p_replacement_required_flag
896 ,p_review_flag => p_review_flag
897 ,p_seasonal_flag => p_seasonal_flag
898 ,p_security_requirements => p_security_requirements
899 ,p_status => p_status
900 ,p_term_start_day_cd => p_term_start_day_cd
901 ,p_term_start_month_cd => p_term_start_month_cd
902 ,p_time_normal_finish => p_time_normal_finish
903 ,p_time_normal_start => p_time_normal_start
904 ,p_update_source_cd => p_update_source_cd
905 ,p_working_hours => p_working_hours
906 ,p_works_council_approval_flag => p_works_council_approval_flag
907 ,p_work_period_type_cd => p_work_period_type_cd
908 ,p_work_term_end_day_cd => p_work_term_end_day_cd
909 ,p_work_term_end_month_cd => p_work_term_end_month_cd
910 ,p_proposed_fte_for_layoff => p_proposed_fte_for_layoff
911 ,p_proposed_date_for_layoff => p_proposed_date_for_layoff
912 ,p_pay_basis_id => p_pay_basis_id
913 ,p_supervisor_id => p_supervisor_id
914 ,p_information1 => p_information1
915 ,p_information2 => p_information2
916 ,p_information3 => p_information3
917 ,p_information4 => p_information4
918 ,p_information5 => p_information5
919 ,p_information6 => p_information6
920 ,p_information7 => p_information7
921 ,p_information8 => p_information8
922 ,p_information9 => p_information9
923 ,p_information10 => p_information10
924 ,p_information11 => p_information11
925 ,p_information12 => p_information12
926 ,p_information13 => p_information13
927 ,p_information14 => p_information14
928 ,p_information15 => p_information15
929 ,p_information16 => p_information16
930 ,p_information17 => p_information17
931 ,p_information18 => p_information18
932 ,p_information19 => p_information19
933 ,p_information20 => p_information20
934 ,p_information21 => p_information21
935 ,p_information22 => p_information22
936 ,p_information23 => p_information23
937 ,p_information24 => p_information24
938 ,p_information25 => p_information25
939 ,p_information26 => p_information26
940 ,p_information27 => p_information27
941 ,p_information28 => p_information28
942 ,p_information29 => p_information29
943 ,p_information30 => p_information30
944 ,p_information_category => p_information_category
945 ,p_attribute1 => p_attribute1
946 ,p_attribute2 => p_attribute2
947 ,p_attribute3 => p_attribute3
948 ,p_attribute4 => p_attribute4
949 ,p_attribute5 => p_attribute5
950 ,p_attribute6 => p_attribute6
951 ,p_attribute7 => p_attribute7
952 ,p_attribute8 => p_attribute8
953 ,p_attribute9 => p_attribute9
954 ,p_attribute10 => p_attribute10
955 ,p_attribute11 => p_attribute11
956 ,p_attribute12 => p_attribute12
957 ,p_attribute13 => p_attribute13
958 ,p_attribute14 => p_attribute14
959 ,p_attribute15 => p_attribute15
960 ,p_attribute16 => p_attribute16
961 ,p_attribute17 => p_attribute17
962 ,p_attribute18 => p_attribute18
963 ,p_attribute19 => p_attribute19
964 ,p_attribute20 => p_attribute20
965 ,p_attribute21 => p_attribute21
966 ,p_attribute22 => p_attribute22
967 ,p_attribute23 => p_attribute23
968 ,p_attribute24 => p_attribute24
969 ,p_attribute25 => p_attribute25
970 ,p_attribute26 => p_attribute26
971 ,p_attribute27 => p_attribute27
972 ,p_attribute28 => p_attribute28
973 ,p_attribute29 => p_attribute29
974 ,p_attribute30 => p_attribute30
975 ,p_attribute_category => p_attribute_category
976 ,p_segment1 => p_segment1
977 ,p_segment2 => p_segment2
978 ,p_segment3 => p_segment3
979 ,p_segment4 => p_segment4
980 ,p_segment5 => p_segment5
981 ,p_segment6 => p_segment6
982 ,p_segment7 => p_segment7
983 ,p_segment8 => p_segment8
984 ,p_segment9 => p_segment9
985 ,p_segment10 => p_segment10
986 ,p_segment11 => p_segment11
987 ,p_segment12 => p_segment12
988 ,p_segment13 => p_segment13
989 ,p_segment14 => p_segment14
990 ,p_segment15 => p_segment15
991 ,p_segment16 => p_segment16
992 ,p_segment17 => p_segment17
993 ,p_segment18 => p_segment18
994 ,p_segment19 => p_segment19
995 ,p_segment20 => p_segment20
996 ,p_segment21 => p_segment21
997 ,p_segment22 => p_segment22
998 ,p_segment23 => p_segment23
999 ,p_segment24 => p_segment24
1000 ,p_segment25 => p_segment25
1001 ,p_segment26 => p_segment26
1002 ,p_segment27 => p_segment27
1003 ,p_segment28 => p_segment28
1004 ,p_segment29 => p_segment29
1005 ,p_segment30 => p_segment30
1006 ,p_concat_segments => p_concat_segments
1007 ,p_request_id => p_request_id
1008 ,p_program_application_id => p_program_application_id
1009 ,p_program_id => p_program_id
1010 ,p_program_update_date => p_program_update_date
1011 ,p_object_version_number => p_object_version_number
1012 ,p_effective_date => p_effective_date
1013 ,p_datetrack_mode => p_datetrack_mode
1014 );
1015 --
1016 -- Convert API warning boolean parameter values to specific
1017 -- messages and add them to Multiple Message List
1018 --
1019 if l_valid_grades_changed_warning then
1020 fnd_message.set_name('PER', 'HR_51095_VGR_POS_GRD_COMBO');
1021 hr_multi_message.add
1022 (p_message_type => hr_multi_message.g_warning_msg
1023 );
1024 end if; --
1025 -- Convert API non-warning boolean parameter values
1026 --
1027 --
1028 -- Derive the API return status value based on whether
1029 -- messages of any type exist in the Multiple Message List.
1030 -- Also disable Multiple Message Detection.
1031 --
1032 p_return_status := hr_multi_message.get_return_status_disable;
1033 hr_utility.set_location(' Leaving:' || l_proc,20);
1034 --
1035 exception
1036 when hr_multi_message.error_message_exist then
1037 --
1038 -- Catch the Multiple Message List exception which
1039 -- indicates API processing has been aborted because
1040 -- at least one message exists in the list.
1041 --
1042 rollback to update_position_swi;
1043 --
1044 -- Reset IN OUT parameters and set OUT parameters
1045 --
1046 p_effective_start_date := null;
1047 p_effective_end_date := null;
1048 p_position_definition_id := null;
1049 p_name := null;
1050 p_object_version_number := l_object_version_number;
1051 p_return_status := hr_multi_message.get_return_status_disable;
1052 hr_utility.set_location(' Leaving:' || l_proc, 30);
1053 when others then
1054 --
1055 -- When Multiple Message Detection is enabled catch
1056 -- any Application specific or other unexpected
1057 -- exceptions. Adding appropriate details to the
1058 -- Multiple Message List. Otherwise re-raise the
1059 -- error.
1060 --
1061 rollback to update_position_swi;
1062 if hr_multi_message.unexpected_error_add(l_proc) then
1063 hr_utility.set_location(' Leaving:' || l_proc,40);
1064 raise;
1065 end if;
1066 --
1067 -- Reset IN OUT and set OUT parameters
1068 --
1069 p_effective_start_date := null;
1070 p_effective_end_date := null;
1071 p_position_definition_id := null;
1072 p_name := null;
1073 p_object_version_number := l_object_version_number;
1074 p_return_status := hr_multi_message.get_return_status_disable;
1075 hr_utility.set_location(' Leaving:' || l_proc,50);
1076 end update_position;
1077 end hr_position_swi;