[Home] [Help]
PACKAGE BODY: APPS.GHR_SF52_POST_UPDATE
Source
1 PACKAGE BODY GHR_SF52_POST_UPDATE AS
2 /* $Header: gh52poup.pkb 120.3.12010000.3 2009/02/01 11:48:50 vmididho ship $ */
3
4 --
5 -- ----------------------------------------------------------------------------
6 -- |--------------------------< Post_sf52_process>--------------------------|
7 -- ----------------------------------------------------------------------------
8
9
10 Procedure Post_sf52_process
11 (
12 p_pa_request_id in number,
13 p_effective_date in date,
14 p_object_version_number in out NOCOPY number,
15 p_from_position_id in number default null,
16 p_to_position_id in number default null,
17 p_agency_code in varchar2 default null, -- to_agency_code
18 p_sf52_data_result in ghr_pa_requests%rowtype,
19 p_called_from in varchar2 default null
20 )
21 is
22
23 l_proc varchar2(72):= 'Post_sf52_process';
24 l_agency_code ghr_pa_requests.agency_code%type;
25 l_from_agency_code ghr_pa_requests.from_agency_code%type;
26 l_from_agency_desc ghr_pa_requests.from_agency_desc%type;
27 l_from_symbol ghr_pa_requests.from_office_symbol%type;
28 l_personnel_office_id ghr_pa_requests.personnel_office_id%type;
29 l_employee_dept_or_agency ghr_pa_requests.employee_dept_or_agency%type;
30 l_to_office_symbol ghr_pa_requests.to_office_symbol%type;
31 l_pa_notification_id ghr_pa_requests.pa_notification_id%type;
32 l_object_version_number ghr_pa_requests.object_version_number%type;
33
34 Cursor C_Sel1 is
35 select ghr_pa_notifications_s.nextval from sys.dual;
36
37 -- Get all data pertaining to Notifications
38
39 begin
40 hr_utility.set_location('Entering ' || l_proc ,5);
41 l_object_version_number := p_object_version_number;
42
43 hr_utility.set_location(l_proc ,10);
44
45 -- Just get the notification_id and update ghr_pa_requests
46 --
47 open C_Sel1;
48 Fetch C_Sel1 Into l_pa_notification_id;
49 Close C_Sel1;
50
51 hr_utility.set_location('to_position_id is '||p_sf52_data_result.to_position_id ,10);
52 IF nvl(p_called_from,hr_api.g_varchar2) = 'CORRECTION_SF52' THEN
53 ghr_par_upd.upd
54 (p_pa_request_id => p_pa_request_id
55 ,p_object_version_number => l_object_version_number
56 ,p_pa_notification_id => l_pa_notification_id
57 ,p_to_position_id => p_sf52_data_result.to_position_id
58 ,p_to_position_title => p_sf52_data_result.to_position_title
59 ,p_to_position_number => p_sf52_data_result.to_position_number
60 ,p_to_position_seq_no => p_sf52_data_result.to_position_seq_no
61 ,p_to_pay_plan => p_sf52_data_result.to_pay_plan
62 ,p_to_occ_code => p_sf52_data_result.to_occ_code
63 ,p_to_step_or_rate => p_sf52_data_result.to_step_or_rate
64 ,p_to_grade_or_level => p_sf52_data_result.to_grade_or_level
65 ,p_to_total_salary => p_sf52_data_result.to_total_salary
66 ,p_to_pay_basis => p_sf52_data_result.to_pay_basis
67 ,p_to_basic_pay => p_sf52_data_result.to_basic_pay
68 ,p_to_locality_adj => p_sf52_data_result.to_locality_adj
69 ,p_to_adj_basic_pay => p_sf52_data_result.to_adj_basic_pay
70 ,p_to_other_pay_amount => p_sf52_data_result.to_other_pay_amount
71 ,p_TO_POSITION_ORG_LINE1 => p_sf52_data_result.TO_POSITION_ORG_LINE1
72 ,p_TO_POSITION_ORG_LINE2 => p_sf52_data_result.TO_POSITION_ORG_LINE2
73 ,p_TO_POSITION_ORG_LINE3 => p_sf52_data_result.TO_POSITION_ORG_LINE3
74 ,p_TO_POSITION_ORG_LINE4 => p_sf52_data_result.TO_POSITION_ORG_LINE4
75 ,p_TO_POSITION_ORG_LINE5 => p_sf52_data_result.TO_POSITION_ORG_LINE5
76 ,p_TO_POSITION_ORG_LINE6 => p_sf52_data_result.TO_POSITION_ORG_LINE6
77 ,p_VETERANS_PREFERENCE => p_sf52_data_result.VETERANS_PREFERENCE
78 ,p_TENURE => p_sf52_data_result.TENURE
79 ,p_VETERANS_PREF_FOR_RIF => p_sf52_data_result.VETERANS_PREF_FOR_RIF
80 ,p_ANNUITANT_INDICATOR => p_sf52_data_result.ANNUITANT_INDICATOR
81 ,p_ANNUITANT_INDICATOR_DESC => p_sf52_data_result.ANNUITANT_INDICATOR_DESC
82 ,p_RETIREMENT_PLAN => p_sf52_data_result.RETIREMENT_PLAN
83 ,p_SERVICE_COMP_DATE => p_sf52_data_result.SERVICE_COMP_DATE
84 ,p_POSITION_OCCUPIED => p_sf52_data_result.POSITION_OCCUPIED
85 ,p_FLSA_CATEGORY => p_sf52_data_result.FLSA_CATEGORY
86 ,p_APPROPRIATION_CODE1 => p_sf52_data_result.APPROPRIATION_CODE1
87 ,p_APPROPRIATION_CODE2 => p_sf52_data_result.APPROPRIATION_CODE2
88 ,p_BARGAINING_UNIT_STATUS => p_sf52_data_result.BARGAINING_UNIT_STATUS
89 ,p_CITIZENSHIP => p_sf52_data_result.CITIZENSHIP
90 ,p_DUTY_STATION_CODE => p_sf52_data_result.DUTY_STATION_CODE
91 ,p_duty_station_desc => p_sf52_data_result.duty_station_desc
92 ,p_duty_station_id => p_sf52_data_result.duty_station_id
93 ,p_duty_station_location_id => p_sf52_data_result.duty_station_location_id
94 ,p_EDUCATION_LEVEL => p_sf52_data_result.EDUCATION_LEVEL
95 ,p_FEGLI => p_sf52_data_result.FEGLI
96 ,p_FUNCTIONAL_CLASS => p_sf52_data_result.FUNCTIONAL_CLASS
97 ,p_work_schedule => p_sf52_data_result.work_schedule
98 ,p_work_schedule_desc => p_sf52_data_result.work_schedule_desc
99 ,p_PART_TIME_HOURS => p_sf52_data_result.PART_TIME_HOURS
100 ,p_PAY_RATE_DETERMINANT => p_sf52_data_result.PAY_RATE_DETERMINANT
101 --,p_SERVICE_COMP_DATE => p_sf52_data_result.SERVICE_COMP_DATE
102
103 -- ,p_RETIREMENT_PLAN => p_sf52_data_result.RETIREMENT_PLAN
104 ,p_to_organization_id => p_sf52_data_result.to_organization_id
105 ,p_year_degree_attained => p_sf52_data_result.year_degree_attained
106 ,p_academic_discipline => p_sf52_data_result.academic_discipline
107 ,p_veterans_status => p_sf52_data_result.veterans_status
108 ,p_supervisory_status => p_sf52_data_result.supervisory_status
109 --start of BUG # 6154523
110 ,p_award_amount => p_sf52_data_result.award_amount
111 ,p_award_percentage => p_sf52_data_result.award_percentage
112 --end of BUG # 6154523
113 --start of BUG # 6983534
114 ,p_to_grade_id => p_sf52_data_result.to_grade_id
115 --end of BUG # 6983534
116 );
117 ELSE
118 ghr_par_upd.upd
119 (p_pa_request_id => p_pa_request_id,
120 p_object_version_number => l_object_version_number,
121 p_pa_notification_id => l_pa_notification_id
122 );
123 END IF;
124 -- Get the Authentication Date for NFC processing
125
126 ghr_utility.process_nfc_auth_date(
127 p_effective_date => p_effective_date,
128 p_pa_request_id => p_pa_request_id);
129 hr_utility.set_location(l_proc ,20);
130
131 --
132 --
133 -- Update status of ghr_pa_requests (in pa_routing_history - Action Taken is set to 'UPDATE_HR_COMPLETE'
134 --
135 hr_utility.set_location(l_proc,40);
136
137 ghr_sf52_api.end_sf52
138 (p_pa_request_id => p_pa_request_id
139 ,p_action_taken => 'UPDATE_HR_COMPLETE'
140 ,p_par_object_version_number => l_object_version_number
141 );
142 --
143 hr_utility.set_location('Leaving '||l_proc,45);
144
145 EXCEPTION
146 WHEN others THEN
147 -- Reset IN OUT parameters and set OUT parameters
148 p_object_version_number := l_object_version_number;
149 raise;
150
151 end post_sf52_process;
152
153 --
154 -- ----------------------------------------------------------------------------
155 -- |--------------------------< Post_sf52_cancel>--------------------------|
156 -- ----------------------------------------------------------------------------
157
158 Procedure post_sf52_cancel
159 (
160 p_pa_request_id in number,
161 p_effective_date in date,
162 p_object_version_number in out NOCOPY number,
163 p_from_position_id in number default null,
164 p_to_position_id in number default null,
165 p_agency_code in varchar2 default null -- to_agency_code
166 )
167 is
168
169 l_proc varchar2(72):= 'Post_sf52_cancel';
170 l_agency_code ghr_pa_requests.agency_code%type;
171 l_from_agency_code ghr_pa_requests.from_agency_code%type;
172 l_from_agency_desc ghr_pa_requests.from_agency_desc%type;
173 l_from_symbol ghr_pa_requests.from_office_symbol%type;
174 l_personnel_office_id ghr_pa_requests.personnel_office_id%type;
175 l_employee_dept_or_agency ghr_pa_requests.employee_dept_or_agency%type;
176 l_to_office_symbol ghr_pa_requests.to_office_symbol%type;
177 l_pa_notification_id ghr_pa_requests.pa_notification_id%type;
178 l_object_version_number ghr_pa_requests.object_version_number%type;
179 l_assignment_id ghr_pa_requests.employee_assignment_id%type;
180 l_person_id ghr_pa_requests.person_id%type;
181 l_exists boolean;
182
183 Cursor C_Sel1 is
184 select ghr_pa_notifications_s.nextval from sys.dual;
185
186 Cursor C_person is
187 select par.person_id,
188 par.employee_assignment_id
189 from ghr_pa_requests par
190 where par.pa_request_id = p_pa_request_id;
191
192
193 Cursor C_asg_posn is
194 select asg1.assignment_id
195 from per_all_assignments_f asg1,
196 per_all_assignments_f asg
197 where asg.person_id = l_person_id
198 and asg1.person_id <> l_person_id
199 and p_effective_date
200 between asg.effective_start_date and asg.effective_end_date
201 and asg.assignment_type NOT IN ('A','B')
202 and asg1.assignment_type NOT IN ('A','B')
203 and asg1.position_id = asg.position_id
204 and asg1.effective_start_date
205 between asg.effective_start_date and asg.effective_end_date;
206
207 -- Get all data pertaining to Notifications
208
209 begin
210 hr_utility.set_location('Entering ' || l_proc ,5);
211 l_object_version_number := p_object_version_number;
212
213 hr_utility.set_location(l_proc ,10);
214 --Check if the position is not already occupied
215 for per_asg_rec in c_person loop
216 l_person_id := per_asg_rec.person_id;
217 l_assignment_id := per_asg_rec.employee_assignment_id;
218 end loop;
219 If l_assignment_id is not null then
220 l_exists := false;
221 for asg_posn_rec in c_asg_posn loop
222 l_exists := true;
223 exit;
224 end loop;
225 If l_exists then
226 hr_utility.set_message(8301,'GHR_38620_POS_ASSIGNED');
227 hr_utility.raise_error;
228 End if;
229 End if;
230
231
232 -- Update ghr_pa_requests with Notification Details
233
234 open C_Sel1;
235 Fetch C_Sel1 Into l_pa_notification_id;
236 Close C_Sel1;
237 ghr_par_upd.upd
238 (p_pa_request_id => p_pa_request_id,
239 p_object_version_number => l_object_version_number,
240 p_pa_notification_id => l_pa_notification_id
241 );
242 hr_utility.set_location(l_proc ,20);
243
244
245 --
246 -- Update status of ghr_pa_requests (in pa_routing_history - Action Taken is set to 'CANCELED'
247 --
248 hr_utility.set_location(l_proc,40);
249
250 ghr_sf52_api.end_sf52
251 (p_pa_request_id => p_pa_request_id
252 ,p_action_taken => 'UPDATE_HR_COMPLETE'
253 ,p_par_object_version_number => l_object_version_number
254 );
255 --
256 hr_utility.set_location('Leaving '||l_proc,45);
257
258 EXCEPTION
259 WHEN others THEN
260 -- Reset IN OUT parameters and set OUT parameters
261 p_object_version_number := l_object_version_number;
262 raise;
263
264
265 end post_sf52_cancel;
266
267
268 --
269 -- ----------------------------------------------------------------------------
270 -- |--------------------------< post_sf52_future >--------------------------|
271 -- ----------------------------------------------------------------------------
272 -- With the new enhancement to support elec. authentication, the approval date and
273 -- the approver's work title will already be available in the ghr_pa_requests table
274 -- and hence nothing needs to be done in this procedure.
275 --But leaving it as it is, so that , if later we identify any special routines to be
276 -- performed as a part of FUTURE actions, can be included here.
277
278 Procedure Post_sf52_future
279 (
280 p_pa_request_id in number,
281 p_effective_date in date,
282 p_object_version_number in out NOCOPY number
283 )
284 is
285
286 l_proc varchar2(72):= 'Post_sf52_future';
287
288 begin
289
290 null;
291
292 End post_sf52_future;
293
294
295 --
296 -- ----------------------------------------------------------------------------
297 -- |--------------------------< get_Notification_Details>--------------------------|
298 -- ----------------------------------------------------------------------------
299
300 Procedure get_notification_details
301 (
302 p_pa_request_id in number,
303 p_effective_date in date,
304 p_from_position_id in number default null,
305 p_to_position_id in number default null,
306 p_agency_code in out NOCOPY varchar2, -- to_agency_code
307 p_from_agency_code out NOCOPY varchar2,
308 p_from_agency_desc out NOCOPY varchar2,
309 p_from_office_symbol out NOCOPY varchar2,
310 p_personnel_office_id out NOCOPY number,
311 p_employee_dept_or_agency out NOCOPY varchar2,
312 p_to_office_symbol out NOCOPY varchar2
313 )
314 is
315
316 l_proc varchar2(72):= 'get_other_data';
317 l_bus_gp per_people_f.business_group_id%type;
318 l_from_agency_code ghr_pa_requests.from_agency_code%type;
319 l_agency_code ghr_pa_requests.agency_code%type;
320 l_appr_person_id per_people_f.person_id%type;
321 l_personnel_office_id ghr_pa_requests.personnel_office_id%type;
322 l_altered_pa_request_id ghr_pa_requests.pa_request_id%type;
323 l_noa_code ghr_pa_requests.first_noa_code%type;
324 l_pos_ei_data per_position_extra_info%rowtype;
325 -- Bug#4005843
326 l_effective_date date;
327
328
329 cursor c_bus_gp(p_position_id number) is
330 select pos.business_group_id
331 from hr_all_positions_f pos -- Venkat
332 where pos.position_id = p_position_id
333 and p_effective_date between pos.effective_start_date and
334 pos.effective_end_date;
335
336 cursor c_orig_par is
337 select par.noa_family_code,
338 par.altered_pa_request_id,
339 par.second_noa_code -- Bug 3451929
340 from ghr_pa_requests par
341 where par.pa_request_id = p_pa_request_id;
342
343 cursor c_par is
344 select par.noa_family_code,
345 par.first_noa_code,
346 par.second_noa_code
347 from ghr_pa_requests par
348 where par.pa_request_id = p_pa_request_id;
349
350 cursor c_par_ei(p_information_type varchar2) is
351 select parei.rei_information4,
352 parei.rei_information5, -- Bug 3547836
353 parei.rei_information6, -- Bug 3547836
354 parei.rei_information10
355 from ghr_pa_request_extra_info parei
356 where parei.pa_request_id = p_pa_request_id
357 and parei.information_type = p_information_type;
358
359 cursor c_agency_det is
360 select par.from_agency_code,
361 par.from_agency_desc,
362 par.agency_code,
363 par.employee_dept_or_agency,
364 par.from_office_symbol,
365 par.to_office_symbol,
366 par.personnel_office_id
367 from ghr_pa_requests par
368 where par.pa_request_id = l_altered_pa_request_id;
369
370 BEGIN
371 hr_utility.set_location('Entering:'||l_proc, 5);
372 --
373 --
374 l_agency_code := p_agency_code; --NOCOPY Changes
375 hr_utility.set_location(l_proc, 10);
376 -- get the noa code to determine if it is an '800' or '790'.
377 -- If it is, then we need to handle the agency_code as a special case
378 -- and get it from extra information for the pa_request.
379 FOR pa_req in c_par LOOP
380 if (pa_req.noa_family_code = 'CORRECT') then
381 l_noa_code := pa_req.second_noa_code;
382 else
383 l_noa_code := pa_req.first_noa_code;
384 end if;
385 end loop;
386 hr_utility.set_location('PA Req ID : '||p_pa_request_id,10);
387 hr_utility.set_location('l_noa_code is '||l_noa_code,20);
388 -- Agency Desc
389 if nvl(p_to_position_id,hr_api.g_number) <> hr_api.g_number then
390 for bus_gp in c_bus_gp(p_to_position_id) loop
391 l_bus_gp := bus_gp.business_group_id;
392 end loop;
393 hr_utility.set_location(l_proc, 15);
394
395 if (l_noa_code = '800') then
396 for p_parei in c_par_ei('GHR_US_PAR_CHG_DATA_ELEMENT') LOOP
397 l_agency_code := p_parei.rei_information4;
398 end LOOP;
399 elsif (l_noa_code = '790') then
400 for p_parei in c_par_ei('GHR_US_PAR_REALIGNMENT') LOOP
401 l_agency_code := p_parei.rei_information10;
402 end LOOP;
403 -- Bug 3451929
404 IF l_agency_code is NULL then
405 l_agency_code := ghr_api.get_position_agency_code_pos
406 (p_position_id => p_to_position_id,
407 p_business_group_id => l_bus_gp,
408 p_effective_date => p_effective_date
409 );
410 END IF;
411 -- End of bug 3451929
412 else
413 l_agency_code := ghr_api.get_position_agency_code_pos
414 (p_position_id => p_to_position_id,
415 p_business_group_id => l_bus_gp,
416 p_effective_date => p_effective_date
417 );
418 end if;
419 p_agency_code := l_agency_code;
420 hr_utility.set_location('agency code ' || l_agency_code,1);
421 hr_utility.set_location(l_proc,20);
422
423 -- Employee_dept_or_agency
424 if p_agency_code is not null then
425 p_employee_dept_or_agency := hr_general.decode_lookup
426 (p_lookup_type => 'GHR_US_AGENCY_CODE',
427 p_lookup_code => p_agency_code
428 );
429 hr_utility.set_location(l_proc, 30);
430 end if;
431
432
433 -- Personal_office_id and office_symbol
434
435 l_personnel_office_id := Null;
436 ghr_history_fetch.fetch_positionei
437 (p_position_id => p_to_position_id,
438 p_information_type => 'GHR_US_POS_GRP1',
439 p_date_effective => nvl(p_effective_date,trunc(sysdate)),
440 p_pos_ei_data => l_pos_ei_data
441 );
442 l_personnel_office_id := l_pos_ei_data.poei_information3;
443 p_to_office_symbol := l_pos_ei_data.poei_information4;
444 l_pos_ei_data := Null;
445
446 End if;
447
448 -- personnel_office_id and from_office_symbol
449 if nvl(p_from_position_id,hr_api.g_number) <> hr_api.g_number then
450 -- Bug#4005843 Added the IF condition.
451 IF l_noa_code = '790' THEN
452 hr_utility.set_location('NOA Code is 790',20);
453 -- Bug#4344353 added the following code to get rid of ora-1841
454 IF p_effective_date = hr_api.g_date THEN
455 l_effective_date := trunc(sysdate) - 1;
456 ELSE
457 l_effective_date := p_effective_date - 1;
458 END IF;
459 ELSE
460 l_effective_date := nvl(p_effective_date,trunc(sysdate));
461 END IF;
462 ghr_history_fetch.fetch_positionei
463 (p_position_id => p_from_position_id,
464 p_information_type => 'GHR_US_POS_GRP1',
465 p_date_effective => l_effective_date,
466 p_pos_ei_data => l_pos_ei_data
467 );
468 -- Bug#4005843
469 IF l_personnel_office_id IS NULL THEN
470 l_personnel_office_id := l_pos_ei_data.poei_information3;
471 END IF;
472 p_from_office_symbol := l_pos_ei_data.poei_information4;
473
474 for bus_gp in c_bus_gp(p_from_position_id) loop
475 l_bus_gp := bus_gp.business_group_id;
476 end loop;
477 l_from_agency_code := ghr_api.get_position_agency_code_pos
478 (p_position_id => p_from_position_id,
479 p_business_group_id => l_bus_gp,
480 p_effective_date => p_effective_date
481 );
482
483 p_from_agency_code := l_from_agency_code;
484 hr_utility.set_location(l_proc,50);
485
486 if l_from_agency_code is not null then
487 p_from_agency_desc := hr_general.decode_lookup
488 (p_lookup_type => 'GHR_US_AGENCY_CODE',
489 p_lookup_code => l_from_agency_code
490 );
491 hr_utility.set_location(l_proc, 55);
492 end if;
493 end if;
494 p_personnel_office_id := l_personnel_office_id;
495
496 -- If agency_code or the from_agency_code is null, which is likely to happen
497 -- only on corrections , try to get the agency code
498 -- from the original RPA.
499 If p_to_position_id is null or p_from_position_id is null then
500 hr_utility.set_location('one of the positions is null',1);
501 for orig_par in c_orig_par loop
502 If orig_par.noa_family_code = 'CORRECT' then
503 l_altered_pa_request_id := orig_par.altered_pa_request_id;
504 for agency_det_rec in c_agency_det loop
505 If p_to_position_id is null then
506 -- Bug 3451929 If second noa code is 790 then agency should be taken from extra information
507 IF orig_par.second_noa_code = '790' THEN
508 FOR p_parei in c_par_ei('GHR_US_PAR_REALIGNMENT') LOOP
509 p_agency_code := p_parei.rei_information10;
510 p_personnel_office_id := p_parei.rei_information5; -- Bug 3547836
511 p_to_office_symbol := p_parei.rei_information6; -- Bug 3547836
512 END LOOP;
513 -- Start of Bug 3547836
514 IF p_agency_code IS NOT NULL THEN
515 p_employee_dept_or_agency := hr_general.decode_lookup
516 (p_lookup_type => 'GHR_US_AGENCY_CODE',
517 p_lookup_code => p_agency_code
518 );
519 ELSE
520 p_agency_code := agency_det_rec.agency_code;
521 p_employee_dept_or_agency := agency_det_rec.employee_dept_or_agency;
522 END IF;
523
524 IF p_personnel_office_id IS NULL then
525 p_personnel_office_id := agency_det_rec.personnel_office_id;
526 END IF;
527
528 IF p_to_office_symbol IS NULL then
529 p_to_office_symbol := agency_det_rec.to_office_symbol;
530 END IF;
531 -- End of Bug 3547836
532
533 ELSE
534 p_agency_code := agency_det_rec.agency_code;
535 p_employee_dept_or_agency := agency_det_rec.employee_dept_or_agency;
536 p_to_office_symbol := agency_det_rec.to_office_symbol;
537 --Bug#6356071 Personnel Office id assigned with the altered Pa requests
538 -- personnel office id only if it is NULL
539 IF p_personnel_office_id IS NULL then
540 p_personnel_office_id := agency_det_rec.personnel_office_id;
541 END IF;
542 --Bug#6356071
543 End if;
544 End if;
545 If p_from_position_id is null then
546 p_from_agency_code := agency_det_rec.from_agency_code;
547 p_from_agency_desc := agency_det_rec.from_agency_desc;
548 p_from_office_symbol := agency_det_rec.from_office_symbol;
549 End if;
550 End Loop;
551 End if;
552 End loop;
553 End if;
554
555 EXCEPTION
556 WHEN others THEN
557
558 -- Reset IN OUT parameters and set OUT parameters
559 p_from_agency_code :=NULL;
560 p_from_agency_desc :=NULL;
561 p_from_office_symbol :=NULL;
562 p_personnel_office_id :=NULL;
563 p_employee_dept_or_agency :=NULL;
564 p_to_office_symbol :=NULL;
565 p_agency_code :=l_agency_code;
566 raise;
567
568 end get_notification_details;
569 end ghr_sf52_post_update;
570