27: -- elsif sysdate > p_start_date then
28: -- return 'PAST'
29: -- end if;
30: --
31: hr_utility.set_location('Entering '||l_proc,10);
32: --
33: -- bug 4635241 Modified the following If condition to consider the Past date as well
34: --
35: if sysdate between p_start_date and p_end_date then
46: l_status := 'PAST';
47: --
48: end if;
49: --
50: hr_utility.set_location('Leaving '||l_proc,10);
51: return(l_status);
52: --
53: end chk_date_status;
54: --
103: and trunc(effective_end_date) = l_end_date;
104: --
105: begin
106: --
107: hr_utility.set_location('Entering '||l_proc,10);
108: --
109: -- Check that the records exist in the parameter list.
110: -- if p_parametrs.count = 0 then .... return .....end if
111: --
110: -- if p_parametrs.count = 0 then .... return .....end if
111: --
112: if p_parameters.count = 0 then
113: --
114: hr_utility.set_location('Not a single parameter exists '||l_proc,15);
115: hr_utility.set_location('Leaving '||l_proc,16);
116: return;
117: --
118: end if;
111: --
112: if p_parameters.count = 0 then
113: --
114: hr_utility.set_location('Not a single parameter exists '||l_proc,15);
115: hr_utility.set_location('Leaving '||l_proc,16);
116: return;
117: --
118: end if;
119: --
118: end if;
119: --
120: --get the attribute CONTEXT value from the parameter list.
121: --
122: hr_utility.set_location('Start assigning values from param_list '||l_proc,25);
123:
124: l_entity := wf_event.getvalueforparameter(
125: p_name => 'CONTEXT',
126: p_parameterlist => p_parameters);
134: p_parameterlist => p_parameters);
135:
136: l_start_date := FND_DATE.canonical_to_date(l_start_date_canonical);
137: l_end_date := FND_DATE.canonical_to_date(l_end_date_canonical);
138: hr_utility.set_location('End assign Values from param_list '||l_proc,30);
139: --
140: if l_entity = 'PERSON' then
141: --
142: hr_utility.set_location('Person Record '||l_proc,35);
138: hr_utility.set_location('End assign Values from param_list '||l_proc,30);
139: --
140: if l_entity = 'PERSON' then
141: --
142: hr_utility.set_location('Person Record '||l_proc,35);
143: -- get attribute values of peson from parameter list.
144: --
145: l_person_id_canonical := wf_event.getvalueforparameter(
146: p_name => 'PERSONID',
160: open l_person_cur;
161: fetch l_person_cur into l_person_rec;
162: close l_person_cur;
163: --
164: hr_utility.set_location('Before call to person routine '||l_proc,40);
165: --
166: PER_HRWF_SYNCH.per_per_wf(p_rec => l_person_rec,
167: p_action => null);
168: hr_utility.set_location('After call to person routine '||l_proc,45);
164: hr_utility.set_location('Before call to person routine '||l_proc,40);
165: --
166: PER_HRWF_SYNCH.per_per_wf(p_rec => l_person_rec,
167: p_action => null);
168: hr_utility.set_location('After call to person routine '||l_proc,45);
169: --
170: end if; -- l_entity = 'PERSON'
171: --
172: if l_entity = 'PERSON:TERMINATION' then
170: end if; -- l_entity = 'PERSON'
171: --
172: if l_entity = 'PERSON:TERMINATION' then
173:
174: hr_utility.set_location('Person Termination Record '||l_proc,46);
175:
176: l_person_id_canonical := wf_event.getvalueforparameter( p_name => 'PERSONID',
177: p_parameterlist => p_parameters);
178: l_person_id := FND_NUMBER.canonical_to_number(l_person_id_canonical);
180: open l_pds_cur;
181: fetch l_pds_cur into l_pds_rec;
182: close l_pds_cur;
183:
184: hr_utility.set_location('Before call to pds routine '||l_proc,47);
185:
186: PER_HRWF_SYNCH.per_pds_wf(p_rec => l_pds_rec,
187: p_date => l_pds_rec.actual_termination_date,
188: p_action => 'TERMINATION');
190: end if;
191: --
192: if l_entity = 'POSITION' then
193: --
194: hr_utility.set_location('Position Record '||l_proc,35);
195: l_assignment_id_canonical := wf_event.getvalueforparameter(
196: p_name => 'ASSIGNMENTID',
197: p_parameterlist => p_parameters);
198: --
202: --
203: open l_assignment_cur;
204: fetch l_assignment_cur into l_assignment_rec;
205: close l_assignment_cur;
206: hr_utility.set_location('Before call to Assignment routine '||l_proc,35);
207: --
208: --call the routine
209: --
210: PER_HRWF_SYNCH.per_asg_wf(p_rec => l_assignment_rec,
208: --call the routine
209: --
210: PER_HRWF_SYNCH.per_asg_wf(p_rec => l_assignment_rec,
211: p_action => null);
212: hr_utility.set_location('After call to Assignment routine '||l_proc,35);
213: --
214: end if; --l_entity = 'POSITION'
215: --
216: hr_utility.set_location('Leaving '||l_proc,10);
212: hr_utility.set_location('After call to Assignment routine '||l_proc,35);
213: --
214: end if; --l_entity = 'POSITION'
215: --
216: hr_utility.set_location('Leaving '||l_proc,10);
217: --
218: end call_back;
219: --
220: --
285:
286: --
287: Begin
288: --
289: hr_utility.set_location('Entering '||l_proc,10);
290: --
291: -- check for the current employee flag
292: -- if current employee flag <> 'Y' then
293: -- return
303: /* if (nvl(p_rec.current_employee_flag,'N') <>'Y'
304: and
305: nvl(p_rec.current_npw_flag,'N') <>'Y') then
306: --
307: hr_utility.set_location('Not a current employee '||l_proc,15);
308: hr_utility.set_location('Leaving ... '||l_proc,15);
309: return;
310: --
311: end if;*/
304: and
305: nvl(p_rec.current_npw_flag,'N') <>'Y') then
306: --
307: hr_utility.set_location('Not a current employee '||l_proc,15);
308: hr_utility.set_location('Leaving ... '||l_proc,15);
309: return;
310: --
311: end if;*/
312: --
325: -- Check if this is DELETE
326: --
327: if nvl(p_action,'NO_DELETE') = 'DELETE' then
328: --
329: hr_utility.set_location('Delete Person '||l_proc,20);
330: wf_event.addparametertolist(
331: p_name => 'DELETE',
332: p_value => 'TRUE',
333: p_parameterlist => l_parameters);
361: p_origSystemID =>p_rec.person_id );
362:
363: open per_role_role_exists (p_rec.person_id);
364: fetch per_role_role_exists into l_per_role;
365: hr_utility.set_location('PER_HRWF_SYNCH.per_per_wf - l_check_person_id'||p_rec.person_id,70);
366: if per_role_role_exists%notfound then
367: l_per_role := 'PER_ROLE:'||p_rec.person_id;
368: end if;
369: close per_role_role_exists;
391: -- If the transaction is in CURRENT time frame
392: --
393: if l_date_chk = 'CURRENT' then
394: --
395: hr_utility.set_location('Current Person '||l_proc,20);
396: -- call propagate user as of now
397: --
398: -- assign attributes and values(not null values only) to l_parameters.
399: --
411: end if;
412: --
413: close role_exists;
414: --
415: hr_utility.set_location('start add params',63);
416: wf_event.addparametertolist(
417: p_name => 'USER_NAME',
418: p_value => l_user_name,
419: p_parameterlist => l_parameters);
498:
499: open role_description (p_rec.person_id);
500: fetch role_description into l_description ;
501: close role_description;
502: hr_utility.set_location('l_description '|| l_description,20);
503:
504: wf_event.addparametertolist(
505: p_name => 'description',
506: p_value => l_description,
507: p_parameterlist => l_parameters);
508:
509:
510: end if;
511: hr_utility.set_location('end add params',64);
512: --
513: -- NEW CODE END
514: --
515: wf_local_synch.propagate_role(
521: p_expiration_date => NULL);
522: -- Bug 4635241 Modified the call to wf_local_synch.propagate_role
523: -- by passing NULL as value for p_expiration_date
524: --
525: hr_utility.set_location('After calling propagate_role ',65);
526: end if; --l_date_chk = CURRENT
527: --
528: -- if this is a future dated transaction then defer calling propagate user
529: -- until the future date equals sysdate
533: -- This is effective in the future date, Call_back routine must be called.
534: --
535: -- assign attributes and values for l_parameters.
536: --
537: hr_utility.set_location('Future Person '||l_proc,50);
538: --
539: wf_event.addparametertolist(
540: p_name => 'CONTEXT',
541: p_value => 'PERSON',
554: p_value => l_end_date_canonical,
555: p_parameterlist => l_parameters);
556:
557: --
558: hr_utility.set_location('Before calling call_me_later '||l_proc,50);
559: -- Call the routine wf_util.call_me_later ()
560: --
561: wf_util.call_me_later(p_callback => 'per_hrwf_synch.call_back',
562: p_when => trunc(p_rec.effective_start_date),
563: p_parameters => l_parameters);
564: --
565: end if;
566: --
567: hr_utility.set_location('Leaving '||l_proc,10);
568: --
569: end per_per_wf;
570: --
571: --
613: --
614: l_position_id := p_rec.position_id;
615: l_assignment_id := p_rec.assignment_id;
616: --
617: hr_utility.set_location('Entering '||l_proc,10);
618: --
619: -- check for the primary assignment flag=Y and assignmrnt type = E
620: -- if primary flag <> 'Y' then
621: -- return
622: -- end if
623: --
624: if p_rec.assignment_type <> 'E' and p_rec.primary_flag <>'Y' then
625: --
626: hr_utility.set_location('Assignment neither Primary nor type = E '||l_proc,15);
627: hr_utility.set_location('Leaving '||l_proc,16);
628: return;
629: --
630: end if;
623: --
624: if p_rec.assignment_type <> 'E' and p_rec.primary_flag <>'Y' then
625: --
626: hr_utility.set_location('Assignment neither Primary nor type = E '||l_proc,15);
627: hr_utility.set_location('Leaving '||l_proc,16);
628: return;
629: --
630: end if;
631: --
632: -- No need to process where position_id is null
633: --
634: if p_rec.position_id is null then
635: --
636: hr_utility.set_location('Position id is null .. '||l_proc,20);
637: hr_utility.set_location('Leaving .. '||l_proc,21);
638: return;
639: --
640: end if;
633: --
634: if p_rec.position_id is null then
635: --
636: hr_utility.set_location('Position id is null .. '||l_proc,20);
637: hr_utility.set_location('Leaving .. '||l_proc,21);
638: return;
639: --
640: end if;
641: --
641: --
642: -- Check if this is DELETE
643: --
644: if nvl(p_action,'NO_DELETE') = 'DELETE' then
645: hr_utility.set_location('Delete Assignment ',25);
646: --
647: WF_LOCAL_SYNCH.propagate_user_role(
648: p_user_orig_system => 'PER',
649: p_user_orig_system_id => p_rec.person_id,
662: -- If the transaction is in CURRENT time frame
663: --
664: if l_date_chk = 'CURRENT' then
665: --
666: hr_utility.set_location('Current Assignment ',30);
667: -- call propagate user as of now
668: --
669: -- we are not passing any attributes to propagate_user_role procedure....
670: open start_date;
681: l_end_date := p_rec.effective_end_date;
682: end if;
683: --
684: -- Call wf_local_synch.propogate_user_role()
685: hr_utility.set_location('Before Calling propagate_user_role ',35);
686: WF_LOCAL_SYNCH.propagate_user_role(
687: p_user_orig_system => 'PER',
688: p_user_orig_system_id => p_rec.person_id,
689: p_role_orig_system => 'POS',
698: --
699: --
700: if l_date_chk = 'FUTURE' then
701: --
702: hr_utility.set_location('Future Assignment ',40);
703: -- This is effective in the future date, Call_back routine must be called.
704: --
705: --
706: l_person_id_canonical := FND_NUMBER.number_to_canonical(p_rec.person_id);
729: p_parameterlist => l_parameters);
730:
731: -- Call the routine wf_util.call_me_later ()
732: --
733: hr_utility.set_location('Calling WF routine call_me_later.... ',45);
734: WF_UTIL.call_me_later(p_callback => 'PER_HRWF_SYNCH.call_back',
735: p_when => trunc(p_rec.effective_start_date),
736: p_parameters => l_parameters);
737: --
736: p_parameters => l_parameters);
737: --
738: end if;
739: --
740: hr_utility.set_location('Leaving '||l_proc,100);
741: --
742: end per_asg_wf;
743: --
744: --
783: and rownum = 1;
784: --
785: begin
786: --
787: hr_utility.set_location('Entering '||l_proc,10);
788: --
789: if p_action = 'TERMINATION' then
790: -- l_date := p_date;
791: l_date := p_date +(1-1/86400); -- bug 4773768
789: if p_action = 'TERMINATION' then
790: -- l_date := p_date;
791: l_date := p_date +(1-1/86400); -- bug 4773768
792: l_perrole_date := to_date('31-12-4712', 'DD-MM-YYYY');
793: hr_utility.set_location('Termination.. '||l_proc,20);
794: else
795: hr_utility.set_location('Reverse Termination.. '||l_proc,20);
796: --set the end of time as ATD
797: l_date := to_date('31-12-4712', 'DD-MM-YYYY');
791: l_date := p_date +(1-1/86400); -- bug 4773768
792: l_perrole_date := to_date('31-12-4712', 'DD-MM-YYYY');
793: hr_utility.set_location('Termination.. '||l_proc,20);
794: else
795: hr_utility.set_location('Reverse Termination.. '||l_proc,20);
796: --set the end of time as ATD
797: l_date := to_date('31-12-4712', 'DD-MM-YYYY');
798: -- set the status a ACTIVE
799: wf_event.addparametertolist('orclIsEnabled','ACTIVE',l_parameters); -- 4133057
815: wf_event.addparametertolist('orclWFOrigSystemID',p_rec.person_id,l_parameters);
816: --l_user_name := 'PER:'||p_rec.person_id;
817: wf_event.addparametertolist('USER_NAME',l_user_name,l_parameters);
818: --
819: hr_utility.set_location('Calling Propagate_role '||l_proc,30);
820: wf_local_synch.propagate_role(
821: p_orig_system => 'PER',
822: p_orig_system_id => p_rec.person_id,
823: p_attributes => l_parameters,
866: wf_event.addparametertolist('ORCLWFPARENTORIGSYS',l_parentOrigSys,l_parameters);
867: wf_event.addparametertolist('ORCLWFPARENTORIGSYSID',l_parentOrigSysID,l_parameters);
868:
869:
870: hr_utility.set_location('Calling Propagate_role for PER_ROLE role'||l_proc,50);
871: wf_local_synch.propagate_role( p_orig_system => 'PER',
872: p_orig_system_id => p_rec.person_id,
873: p_attributes => l_parameters,
874: p_start_date => p_rec.actual_termination_date+1,
893: wf_event.addparametertolist(p_name => 'ENDDATE',
894: p_value => l_end_date_canonical,
895: p_parameterlist => l_parameters);
896:
897: hr_utility.set_location('Before calling call_me_later for PER_ROLE '||l_proc,50);
898: hr_utility.set_location('Before calling later:trunc(p_rec.actual_termination_date+1)='||trunc(p_rec.actual_termination_date+1)||l_proc,50);
899:
900:
901: wf_util.call_me_later(p_callback => 'per_hrwf_synch.call_back',
894: p_value => l_end_date_canonical,
895: p_parameterlist => l_parameters);
896:
897: hr_utility.set_location('Before calling call_me_later for PER_ROLE '||l_proc,50);
898: hr_utility.set_location('Before calling later:trunc(p_rec.actual_termination_date+1)='||trunc(p_rec.actual_termination_date+1)||l_proc,50);
899:
900:
901: wf_util.call_me_later(p_callback => 'per_hrwf_synch.call_back',
902: p_when => trunc(p_rec.actual_termination_date+1),
905: End if;
906:
907: End if;
908:
909: hr_utility.set_location('Leaving '||l_proc,40);
910: --
911: end per_pds_wf;
912: --
913: -- --------------------------------------------------------------------------
1012: order by effective_start_date asc;
1013:
1014: Begin
1015:
1016: hr_utility.set_location('Entering '||l_proc,10);
1017:
1018: select count(*)
1019: into l_fetch_rec_count
1020: from per_all_assignments_f paaf
1073: p_start_date => greatest(srch_criteria_table2(k).p_effective_start_date,p_in_start_date) ,
1074: p_expiration_date => least(srch_criteria_table2(k).p_effective_end_date, nvl(p_in_exp_date,hr_general.end_of_time)) );
1075:
1076: end loop;
1077: hr_utility.set_location('Entering '||l_proc,200);
1078: exception
1079: when others then
1080: --dbms_output.put_line(sqlerrm);
1081: raise;