You are currently viewing How to Export Jobs from one POD to another using HDL?
How to Export Jobs from one POD to another using HDL?

In this article we will look into how to export Jobs from a POD into a HDL file which can then be used to import jobs into another POD.

For Jobs, we can configure the DFF and EFF segments. so for every client, the query will be different based on the flex fields configured and the child information being used (Job Grades, Job Legislative Info, etc).

SQL Query to export Job Info

--Select the list of Jobs which needs to be exported in HDL format
WITH JOBS_LIST AS (
select JOB_ID FROM PER_JOBS 
WHERE 1=1
AND JOB_CODE IN ('ABC','BCD','DEF')
)

           
            

select DATA from ( SELECT 'METADATA|Job|SourceSystemOwner|SourceSystemId|EffectiveStartDate|EffectiveEndDate|Language|JobCode|SetId|SetCode|Name|JobFamilyId|JobFamilyName|ActiveStatus|FullPartTime|JobFunctionCode|ManagerLevel|MedicalCheckupRequired|RegularTemporary|BenchmarkJobFlag|BenchmarkJobId|BenchmarkJobCode|ProgressionJobId|ProgressionJobCode|ApprovalAuthority|ActionReasonCode|CategoryCode|GUID|FLEX:PER_JOBS_DFF|DFFSeg3(PER_JOBS_DFF=Global Data Elements)|DFFSeg5(PER_JOBS_DFF=Global Data Elements)|DFFSeg3_Display(PER_JOBS_DFF=Global Data Elements)|DFFSeg4(PER_JOBS_DFF=Global Data Elements)|DFFSeg1(PER_JOBS_DFF=Global Data Elements)|DFFSeg1_Display(PER_JOBS_DFF=Global Data Elements)|DFFSeg2(PER_JOBS_DFF=Global Data Elements)' as DATA, 1 seq FROM DUAL UNION SELECT DISTINCT ('MERGE|Job|' || 'HRC_SQLLOADER' || '|' || 'JC-'|| JOB.JOB_CODE || '|' || TO_CHAR(JOB.effective_start_date,'yyyy/mm/dd') || '|' || TO_CHAR(JOB.effective_end_date,'yyyy/mm/dd') || '|' || '|' || JOB.JOB_CODE || '|' || JOB.SET_ID || '|' || PJOB.SET_CODE || '|' || JOB.NAME || '|' || '' || '|' || fam.JOB_FAMILY_NAME || '|' || job.active_status || '|' || job.full_part_time || '|' || JFC_LKP.MEANING || '|' || ML_LKP.MEANING || '|' || job.med_checkup_req || '|' || job.regular_temporary || '|' || job.BENCHMARK_JOB_FLAG|| '|' || job.BENCHMARK_JOB_ID || '|' || '|' || job.PROGRESSION_JOB_ID || '|' || '|' || Job.Approval_Authority || '|' || res.action_reason_code || '|' || Job.ATTRIBUTE_CATEGORY || '|' || '|' || 'Global Data Elements' || '|' || job.ATTRIBUTE3 || '|' || job.ATTRIBUTE5 || '|' || '' || '|' || job.ATTRIBUTE4 || '|' || job.ATTRIBUTE1 || '|' || '' || '|' || job.ATTRIBUTE2) as DATA, 2 seq from per_jobs_f_vl job ,per_job_family_f_vl fam ,FND_SETID_SETS PJOB ,FND_LOOKUP_VALUES JFC_LKP ,FND_LOOKUP_VALUES ML_LKP ,per_action_occurrences ocr ,per_actions_b act ,per_action_reasons_b res ,JOBS_LIST JL ,hrc_integration_key_map hikm where job.job_family_id = fam.job_family_id(+) and JOB.SET_ID = PJOB.SET_ID and PJOB.LANGUAGE = 'US' and hikm.object_name ='Job' and hikm.surrogate_id= job.JOB_ID and job.job_id = jl.job_id AND JFC_LKP.LOOKUP_TYPE(+)='JOB_FUNCTION_CODE' AND JFC_LKP.LANGUAGE(+)='US' AND JFC_LKP.LOOKUP_CODE(+)=JOB.JOB_FUNCTION_CODE AND ML_LKP.LOOKUP_TYPE(+)='MANAGER_LEVEL' AND ML_LKP.LANGUAGE (+)='US' AND ML_LKP.LOOKUP_CODE(+)=JOB.MANAGER_LEVEL and job.action_occurrence_id = ocr.action_occurrence_id and ocr.action_id = act.action_id (+) and ocr.action_reason_id = res.action_reason_id (+) UNION select 'METADATA|JobExtraInfo|SourceSystemOwner|SourceSystemId|FLEX:PER_JOBS_EIT_EFF|EFF_CATEGORY_CODE|EffectiveStartDate|ReplaceFirstEffectiveStartDate|JobId(SourceSystemId)|SystemIndicator_Display(PER_JOBS_EIT_EFF=<EFF_CATEGORY>)|curriculumCode(PER_JOBS_EIT_EFF=<EFF_CATEGORY>)' AS DATA, 3 SEQ from dual UNION select ('MERGE|JobExtraInfo|HRC_SQLLOADER|JCEIT-' || pjf.job_code || '-' || pjeif.JEI_INFORMATION_CATEGORY || rownum || '|' || pjeif.JEI_INFORMATION_CATEGORY || '|JOB_EIT|' || to_char(pjeif.effective_start_date,'YYYY/MM/DD') || '|Y|' || 'JC-' || pjf.job_code || '|' || pjeif.JEI_INFORMATION1 || '|') as DATA, 4 SEQ from PER_JOB_EXTRA_INFO_F pjeif,JOBS_LIST JL, per_jobs_f pjf where pjeif.JEI_INFORMATION_CATEGORY = '<EFF_CATEGORY>' and pjeif.job_id = jl.job_id and pjeif.job_id = pjf.job_id and pjf.effective_start_date = pjeif.effective_start_date and pjf.effective_end_date = pjeif.effective_end_date UNION select ('MERGE|JobExtraInfo|HRC_SQLLOADER|JCEIT-' || pjf.job_code || '-' || pjeif.JEI_INFORMATION_CATEGORY || rownum || '|' || pjeif.JEI_INFORMATION_CATEGORY || '|JOB_EIT|' || to_char(pjeif.effective_start_date,'YYYY/MM/DD') || '|Y|' || 'JC-' || pjf.job_code || '||' || pjeif.JEI_INFORMATION1) as DATA, 4 SEQ from PER_JOB_EXTRA_INFO_F pjeif,JOBS_LIST JL, per_jobs_f pjf where pjeif.JEI_INFORMATION_CATEGORY = '<EFF_CATEGORY>' and pjeif.job_id = jl.job_id and pjeif.job_id = pjf.job_id and pjf.effective_start_date = pjeif.effective_start_date and pjf.effective_end_date = pjeif.effective_end_date UNION select 'METADATA|JobLegislative|SourceSystemOwner|SourceSystemId|FLEX:PER_JOBS_LEG_EFF|LegislationCode|EFF_CATEGORY_CODE|InformationCategory|_FLSA_STATUS(PER_JOBS_LEG_EFF=HRX_US_JOBS)|_EEO1_CATEGORY(PER_JOBS_LEG_EFF=HRX_US_JOBS)|EffectiveStartDate|EffectiveEndDate|JobId(SourceSystemId)|SequenceNumber' AS DATA, 5 SEQ from dual UNION select ('MERGE|JobLegislative|HRC_SQLLOADER|' || 'JCLEG-' || pjf.job_code || '|' || 'HRX_US_JOBS|US|JOB_LEG|HRX_US_JOBS|'|| pjlf.INFORMATION1 ||'|'||pjlf.INFORMATION2|| '|' ||to_char(pjlf.effective_start_date,'YYYY/MM/DD')||'|'||to_char(pjlf.effective_end_date,'YYYY/MM/DD')||'|'|| 'JC-' || pjf.job_code ||'|'||pjlf.SEQUENCE_NUMBER) as DATA, 6 SEQ from per_job_leg_f pjlf, per_jobs_f pjf,FND_SETID_SETS PJOB,JOBS_LIST JL where pjlf.LEGISLATION_CODE = 'US' and pjlf.job_id = pjf.job_id and pjf.SET_ID = PJOB.SET_ID and PJOB.LANGUAGE = 'US' and JL.job_id = pjf.job_id and pjf.effective_start_date = pjlf.effective_start_date and pjf.effective_end_date = pjlf.effective_end_date UNION SELECT 'METADATA|JobGrade|SourceSystemOwner|SourceSystemId|EffectiveStartDate|JobId(SourceSystemId)|GradeCode' as DATA, 7 seq FROM DUAL UNION SELECT ('MERGE|JobGrade|HRC_SQLLOADER|' || 'JCGRD-' || JOB.job_code || '|' || TO_CHAR(JOB.EFFECTIVE_START_DATE,'YYYY/MM/DD') || '|' || 'JC-' || JOB.job_code || '|' || PGF.GRADE_CODE) as DATA, 8 SEQ FROM PER_JOBS_F_VL JOB, PER_VALID_GRADES_F PVGF, PER_GRADES_F PGF, FND_SETID_SETS ST,JOBS_LIST JL,hrc_integration_key_map hikm,hrc_integration_key_map hikm_vg WHERE ST.SET_ID = JOB.SET_ID AND ST.LANGUAGE = 'US' and hikm.object_name ='Job' and hikm.surrogate_id= JOB.JOB_ID and hikm_vg.object_name ='ValidGrade' and hikm_vg.surrogate_id= PVGF.VALID_GRADE_ID AND SYSDATE BETWEEN JOB.EFFECTIVE_START_DATE AND JOB.EFFECTIVE_END_DATE AND SYSDATE BETWEEN PGF.EFFECTIVE_START_DATE AND PGF.EFFECTIVE_END_DATE AND SYSDATE BETWEEN PVGF.EFFECTIVE_START_DATE AND PVGF.EFFECTIVE_END_DATE AND PVGF.JOB_ID = JOB.JOB_ID AND PGF.GRADE_ID = PVGF.GRADE_ID and JOB.job_id = jl.job_id ) order by seq

The above query cannot be used as-is as it has some info related to DFF and EFF segments. The query can be modified as per the client and can be used to export Jobs into HDL format.

Once we get the output HDL, save it as Job.dat, zip it and import it into target POD.

Hope this helps when you have to export/migrate Jobs into another POD.

If you like the content, please follow us on LinkedInFacebook, and Twitter to get updated with the latest content.