141: --
142: Begin
143: --
144:
145: hr_utility.set_location ('Entering '||l_proc,10);
146: --
147: fnd_message.set_name('BEN','BEN_91333_CALLING_PROC');
148: fnd_message.set_token('PROC','dt_fndate.change_ses_date');
149: dt_fndate.change_ses_date
160: ,p_threads => l_threads
161: ,p_chunk_size => l_chunk_size
162: ,p_max_errors => g_max_errors_allowed);
163: --
164: hr_utility.set_location ('l_threads '||l_threads,10);
165: hr_utility.set_location ('l_chunk_size '||l_chunk_size,10);
166: --
167: --
168: fnd_message.set_name('BEN','BEN_91333_CALLING_PROC');
161: ,p_chunk_size => l_chunk_size
162: ,p_max_errors => g_max_errors_allowed);
163: --
164: hr_utility.set_location ('l_threads '||l_threads,10);
165: hr_utility.set_location ('l_chunk_size '||l_chunk_size,10);
166: --
167: --
168: fnd_message.set_name('BEN','BEN_91333_CALLING_PROC');
169: fnd_message.set_token('PROC','ben_env_object.init');
213: -- 3) Put each row into the person cache.
214: -- 4) Process the person cache
215: -- 5) Go to number 1 again.
216: --
217: hr_utility.set_location('getting range',10);
218: --
219: Loop
220: --
221: open c_range_thread;
222: --
223: fetch c_range_thread into l_range_id
224: ,l_start_person_action_id
225: ,l_end_person_action_id;
226: hr_utility.set_location('doing range fetch',10);
227: --
228: if c_range_thread%notfound then
229: --
230: hr_utility.set_location('range not Found',10);
226: hr_utility.set_location('doing range fetch',10);
227: --
228: if c_range_thread%notfound then
229: --
230: hr_utility.set_location('range not Found',10);
231: --
232: exit;
233: --
234: end if;
232: exit;
233: --
234: end if;
235: --
236: hr_utility.set_location('range Found',10);
237: --
238: close c_range_thread;
239: --
240: update ben_batch_ranges ran
250: loop
251: --
252: fetch c_person_thread into l_person_id,
253: l_person_action_id;
254: hr_utility.set_location('person id'||l_person_id,10);
255: --
256: exit when c_person_thread%notfound;
257: --
258: savepoint last_place;
265:
266: --
267: begin
268: --
269: hr_utility.set_location('Before open',10);
270: open c_ler_thread;
271: --
272: Loop
273: --
275: exit when c_ler_thread%notfound;
276: --fnd_file.put_line(fnd_file.log,'per_in_ler_id '||l_ler_thread.per_in_ler_id);
277: -- fnd_file.put_line(fnd_file.log,'typ_cd '||l_ler_thread.typ_cd);
278: --
279: hr_utility.set_location ('per_in_ler_id '||l_ler_thread.per_in_ler_id,10);
280: hr_utility.set_location ('typ_cd '||l_ler_thread.typ_cd,10);
281: hr_utility.set_location ('bg id '||l_ler_thread.business_group_id,10);
282:
283: --
276: --fnd_file.put_line(fnd_file.log,'per_in_ler_id '||l_ler_thread.per_in_ler_id);
277: -- fnd_file.put_line(fnd_file.log,'typ_cd '||l_ler_thread.typ_cd);
278: --
279: hr_utility.set_location ('per_in_ler_id '||l_ler_thread.per_in_ler_id,10);
280: hr_utility.set_location ('typ_cd '||l_ler_thread.typ_cd,10);
281: hr_utility.set_location ('bg id '||l_ler_thread.business_group_id,10);
282:
283: --
284: --
277: -- fnd_file.put_line(fnd_file.log,'typ_cd '||l_ler_thread.typ_cd);
278: --
279: hr_utility.set_location ('per_in_ler_id '||l_ler_thread.per_in_ler_id,10);
280: hr_utility.set_location ('typ_cd '||l_ler_thread.typ_cd,10);
281: hr_utility.set_location ('bg id '||l_ler_thread.business_group_id,10);
282:
283: --
284: --
285: fnd_message.set_name('BEN','BEN_91333_CALLING_PROC');
283: --
284: --
285: fnd_message.set_name('BEN','BEN_91333_CALLING_PROC');
286: fnd_message.set_token('PROC','ben_back_out_life_event');
287: hr_utility.set_location ('calling bolfe ',10);
288:
289: ben_back_out_life_event.g_enrt_made_flag := Null;
290:
291: ben_back_out_life_event.back_out_life_events
294: ,p_bckt_stat_cd => p_bckt_stat_cd
295: ,p_effective_date => l_effective_date);
296: --
297:
298: hr_utility.set_location ('this ler is '||l_ler_thread.per_in_ler_id||' pil is '||p_life_event_id,777);
299:
300: g_rec.ler_id := l_ler_thread.ler_id;
301: g_rec.rep_typ_cd := 'LFBO';
302: g_rec.person_id := l_person_id;
331: exception
332: --
333: when others then
334: --
335: hr_utility.set_location('Super Error exception level',10);
336: hr_utility.set_location(sqlerrm,10);
337:
338: --
339: if c_ler_thread%isopen then
332: --
333: when others then
334: --
335: hr_utility.set_location('Super Error exception level',10);
336: hr_utility.set_location(sqlerrm,10);
337:
338: --
339: if c_ler_thread%isopen then
340:
361: g_rec.national_identifier := l_per_rec.national_identifier;
362: g_rec.error_message_code := benutils.get_message_name;
363: g_rec.text := fnd_message.get;
364:
365: hr_utility.set_location('Error Message '||g_rec.text,10);
366: benutils.write(l_per_rec.full_name||' processed unsuccessfully');
367: benutils.write(g_rec.text);
368: benutils.write(p_rec => g_rec);
369: --
366: benutils.write(l_per_rec.full_name||' processed unsuccessfully');
367: benutils.write(g_rec.text);
368: benutils.write(p_rec => g_rec);
369: --
370: hr_utility.set_location('Max Errors = '||g_max_errors_allowed,10);
371: hr_utility.set_location('Num Errors = '||g_persons_errored,10);
372: if g_persons_errored > g_max_errors_allowed then
373: --
374: fnd_message.set_name('BEN','BEN_92431_BENBOCON_ERROR_LIMIT');
367: benutils.write(g_rec.text);
368: benutils.write(p_rec => g_rec);
369: --
370: hr_utility.set_location('Max Errors = '||g_max_errors_allowed,10);
371: hr_utility.set_location('Num Errors = '||g_persons_errored,10);
372: if g_persons_errored > g_max_errors_allowed then
373: --
374: fnd_message.set_name('BEN','BEN_92431_BENBOCON_ERROR_LIMIT');
375: benutils.write(p_text => fnd_message.get);
379: end if;
380: --
381: end;
382: --
383: hr_utility.set_location('Closing c_person_thread',10);
384: --
385: end loop;
386: --
387: close c_person_thread;
389: -- Commit chunk
390: --
391: if p_validate = 'Y' then
392: --
393: hr_utility.set_location('Rolling back transaction ',10);
394: --
395: rollback;
396: --
397: end if;
409: ,p_num_pers_errored => g_persons_errored);
410: --
411: commit;
412: --
413: hr_utility.set_location ('Leaving '||l_proc,70);
414: --
415: Exception
416: --
417: When others then
415: Exception
416: --
417: When others then
418: --
419: hr_utility.set_location('Super Error',10);
420: hr_utility.set_location(sqlerrm,10);
421: hr_utility.set_location('Super Error',10);
422: rollback;
423: benutils.rollback_cache;
416: --
417: When others then
418: --
419: hr_utility.set_location('Super Error',10);
420: hr_utility.set_location(sqlerrm,10);
421: hr_utility.set_location('Super Error',10);
422: rollback;
423: benutils.rollback_cache;
424: --
417: When others then
418: --
419: hr_utility.set_location('Super Error',10);
420: hr_utility.set_location(sqlerrm,10);
421: hr_utility.set_location('Super Error',10);
422: rollback;
423: benutils.rollback_cache;
424: --
425: g_rec.ler_id := nvl(p_life_event_id,l_ler_thread.ler_id);
556: nvl(a.effective_end_date,to_date('31/12/4712','DD/MM/YYYY'));
557:
558: begin
559: --
560: --hr_utility.trace_on(null, 'TRC');
561:
562: hr_utility.set_location ('Entering '||l_proc,10);
563: --
564:
558: begin
559: --
560: --hr_utility.trace_on(null, 'TRC');
561:
562: hr_utility.set_location ('Entering '||l_proc,10);
563: --
564:
565: hr_utility.set_location ('p_business_group_id '||p_business_group_id,10);
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
561:
562: hr_utility.set_location ('Entering '||l_proc,10);
563: --
564:
565: hr_utility.set_location ('p_business_group_id '||p_business_group_id,10);
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
567: hr_utility.set_location ('p_ocrd_date '||p_ocrd_date,10);
568: hr_utility.set_location ('p_assignment_id '||p_assignment_id,10);
569: hr_utility.set_location ('p_person_id '||p_person_id,10);
562: hr_utility.set_location ('Entering '||l_proc,10);
563: --
564:
565: hr_utility.set_location ('p_business_group_id '||p_business_group_id,10);
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
567: hr_utility.set_location ('p_ocrd_date '||p_ocrd_date,10);
568: hr_utility.set_location ('p_assignment_id '||p_assignment_id,10);
569: hr_utility.set_location ('p_person_id '||p_person_id,10);
570: hr_utility.set_location ('p_person_selection_rule_id '||p_person_selection_rule_id,10);
563: --
564:
565: hr_utility.set_location ('p_business_group_id '||p_business_group_id,10);
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
567: hr_utility.set_location ('p_ocrd_date '||p_ocrd_date,10);
568: hr_utility.set_location ('p_assignment_id '||p_assignment_id,10);
569: hr_utility.set_location ('p_person_id '||p_person_id,10);
570: hr_utility.set_location ('p_person_selection_rule_id '||p_person_selection_rule_id,10);
571: --
564:
565: hr_utility.set_location ('p_business_group_id '||p_business_group_id,10);
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
567: hr_utility.set_location ('p_ocrd_date '||p_ocrd_date,10);
568: hr_utility.set_location ('p_assignment_id '||p_assignment_id,10);
569: hr_utility.set_location ('p_person_id '||p_person_id,10);
570: hr_utility.set_location ('p_person_selection_rule_id '||p_person_selection_rule_id,10);
571: --
572:
565: hr_utility.set_location ('p_business_group_id '||p_business_group_id,10);
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
567: hr_utility.set_location ('p_ocrd_date '||p_ocrd_date,10);
568: hr_utility.set_location ('p_assignment_id '||p_assignment_id,10);
569: hr_utility.set_location ('p_person_id '||p_person_id,10);
570: hr_utility.set_location ('p_person_selection_rule_id '||p_person_selection_rule_id,10);
571: --
572:
573: --
566: hr_utility.set_location ('p_life_event_id '||p_life_event_id,10);
567: hr_utility.set_location ('p_ocrd_date '||p_ocrd_date,10);
568: hr_utility.set_location ('p_assignment_id '||p_assignment_id,10);
569: hr_utility.set_location ('p_person_id '||p_person_id,10);
570: hr_utility.set_location ('p_person_selection_rule_id '||p_person_selection_rule_id,10);
571: --
572:
573: --
574: l_effective_date:=trunc(fnd_date.canonical_to_date(p_effective_date));
584: open c_chk_ler(l_effective_date);
585: fetch c_chk_ler into l_dummy;
586: if c_chk_ler%notfound then
587: close c_chk_ler;
588: hr_utility.set_location ('The Passed LER ID is Wrong ',30);
589: fnd_message.set_name('BEN','BEN_PASSED_LER_ID_IS_WRONG');
590: raise l_no_irec_ler;
591:
592: end if;
658: ,p_uneai_effective_date => null);
659: --
660: benutils.g_benefit_action_id := l_benefit_action_id;
661: --
662: hr_utility.set_location ('l_benefit_action_id created is '||l_benefit_action_id,30);
663: -- Delete/clear ranges from ben_batch_ranges table
664: --
665: Delete from ben_batch_ranges
666: Where benefit_action_id = l_benefit_action_id;
676: loop
677: --
678: l_person_selection := null;
679: fetch c_person into l_person_id, l_business_group_id;
680: hr_utility.set_location ('next person selected is '||l_person_id,30);
681: exit when c_person%notfound;
682: --
683: l_cnt := l_cnt + 1;
684: --
715: -- Store person_id into person actions table.
716: --
717: If (not skip) then
718: --
719: hr_utility.set_location ('person passed selection rule '||l_person_id,35);
720: Ben_person_actions_api.create_person_actions
721: (p_validate => false
722: ,p_person_action_id => l_person_action_id
723: ,p_person_id => l_person_id
727: ,p_chunk_number => l_chunk_num
728: ,p_object_version_number => l_object_version_number
729: ,p_effective_date => l_effective_date);
730: --
731: hr_utility.set_location ('person action created is '||l_person_action_id,40);
732: --
733: l_num_row := l_num_row + 1;
734: l_person_cnt := l_person_cnt + 1;
735: l_end_person_action_id := l_person_action_id;
753: ,p_ending_person_action_id => l_end_person_action_id
754: ,p_object_version_number => l_object_version_number
755: ,p_effective_date => l_effective_date);
756: --
757: hr_utility.set_location ('person action range created is '||l_range_id,45);
758: --
759: l_start_person_action_id := 0;
760: l_end_person_action_id := 0;
761: l_num_row := 0;
769: --
770: close c_person;
771: --
772: --
773: hr_utility.set_location('l_num_row='||to_char(l_num_row),48);
774: --
775: If l_num_row <> 0 then
776: --
777: Ben_batch_ranges_api.create_batch_ranges
785: ,p_effective_date => l_effective_date);
786: --
787: l_num_range := l_num_range + 1;
788: --
789: hr_utility.set_location('l_num_row='||to_char(l_num_row),50);
790: hr_utility.set_location ('person action range created is '||l_range_id,55);
791: --
792: End if;
793: --
786: --
787: l_num_range := l_num_range + 1;
788: --
789: hr_utility.set_location('l_num_row='||to_char(l_num_row),50);
790: hr_utility.set_location ('person action range created is '||l_range_id,55);
791: --
792: End if;
793: --
794: Else
804: ,p_num_persons => l_person_cnt);
805: --
806: End if;
807: --
808: hr_utility.set_location('l_num_range = '||to_char(l_num_range),50);
809: hr_utility.set_location('l_person_cnt = '||to_char(l_person_cnt),50);
810:
811: If l_num_range > 1 then
812: --
805: --
806: End if;
807: --
808: hr_utility.set_location('l_num_range = '||to_char(l_num_range),50);
809: hr_utility.set_location('l_person_cnt = '||to_char(l_person_cnt),50);
810:
811: If l_num_range > 1 then
812: --
813: For l_count in 1..least(l_threads,l_num_range)-1 loop
811: If l_num_range > 1 then
812: --
813: For l_count in 1..least(l_threads,l_num_range)-1 loop
814: --
815: hr_utility.set_location('spawning thread #'||l_count,60);
816: --
817: l_request_id := fnd_request.submit_request
818: (application => 'BEN'
819: ,program => 'BEIRECBT' -- Currently not there
855: ,p_location_id => null
856: ,p_legal_entity_id => null);
857: --
858: --
859: hr_utility.set_location('No person selected ',999);
860: -- hr_utility.trace_off;
861: fnd_message.set_name('BEN','BEN_91769_NOONE_TO_PROCESS');
862: fnd_message.set_token('PROC' , l_proc);
863: raise l_no_one_to_process;
856: ,p_legal_entity_id => null);
857: --
858: --
859: hr_utility.set_location('No person selected ',999);
860: -- hr_utility.trace_off;
861: fnd_message.set_name('BEN','BEN_91769_NOONE_TO_PROCESS');
862: fnd_message.set_token('PROC' , l_proc);
863: raise l_no_one_to_process;
864: --
877: ,p_life_event_id => p_life_event_id
878: ,p_bckt_stat_cd => p_bckt_stat_cd
879: );
880: --
881: hr_utility.set_location('waiting for slaves',65);
882: --
883: ben_batch_utils.check_all_slaves_finished(p_rpt_flag => TRUE);
884: ben_batch_utils.end_process(p_benefit_action_id => l_benefit_action_id
885: ,p_person_selected => l_person_cnt
884: ben_batch_utils.end_process(p_benefit_action_id => l_benefit_action_id
885: ,p_person_selected => l_person_cnt
886: ,p_business_group_id => p_business_group_id);
887: --
888: hr_utility.set_location('hurray my slaves are done',70);
889: --
890:
891:
892: -- THIS SHOULD NOT HAPPEN HERE.
892: -- THIS SHOULD NOT HAPPEN HERE.
893: savepoint data_change;
894:
895: if p_validate = 'Y' then
896: hr_utility.set_location('Rolling back transaction ',10);
897: rollback to data_change;
898: end if;
899: --
900:
897: rollback to data_change;
898: end if;
899: --
900:
901: hr_utility.set_location ('Leaving '||l_proc,75);
902: --
903: --hr_utility.trace_off;
904: Exception
905:
899: --
900:
901: hr_utility.set_location ('Leaving '||l_proc,75);
902: --
903: --hr_utility.trace_off;
904: Exception
905:
906: when l_no_one_to_process then
907: benutils.write(p_text => fnd_message.get);
912: benutils.write_table_and_file(p_table => TRUE, p_file => TRUE);
913:
914: when others then
915: --
916: hr_utility.set_location('Super Error',10);
917: rollback;
918: benutils.write(p_text => fnd_message.get);
919: benutils.write(p_text => sqlerrm);
920: benutils.write_table_and_file(p_table => TRUE, p_file => TRUE);
962: l_retcode number;
963: --
964: Begin
965: --
966: hr_utility.set_location ('Entering '||l_proc,10);
967: --
968: -- get the parameters for a previous run and do a restart
969: --
970: open c_parameters;
995: ,p_assignment_id => l_parameters.pstl_zip_rng_id
996: ,p_person_selection_rule_id => l_parameters.person_selection_rl
997: ,p_debug_messages => l_parameters.debug_messages_flag);
998: --
999: hr_utility.set_location ('Leaving '||l_proc,70);
1000: --
1001: end restart;
1002: --
1003: --
1032: l_effective_date varchar2(30) := to_char(p_effective_date,'YYYY/MM/DD HH24:MI:SS');
1033: --
1034: begin
1035: --
1036: hr_utility.set_location ('Entering '||l_proc,10);
1037: --
1038: -- Get all the PIL Details
1039: --
1040: open c_get_le_det;
1057: , p_bckt_stat_cd => 'VOIDD'
1058: ,p_debug_messages => 'N');
1059: else
1060: close c_get_le_det;
1061: hr_utility.set_location ('PIL Details Not found '||l_proc,70);
1062: end if;
1063: hr_utility.set_location ('Leaving '||l_proc,70);
1064: --
1065: end p_back_out_irec_le;
1059: else
1060: close c_get_le_det;
1061: hr_utility.set_location ('PIL Details Not found '||l_proc,70);
1062: end if;
1063: hr_utility.set_location ('Leaving '||l_proc,70);
1064: --
1065: end p_back_out_irec_le;
1066: --
1067: --