PER Person Assignment Upload
PER Person Assignment Upload creates and updates employee assignments from Excel with the fields of the Assignment window of the People form: organization, job, position, grade, payroll, location, assignment status, categories, supervisor, probation and notice periods, standard conditions, statutory information, salary basis, people group and the Additional Assignment Details flexfield. Each change takes effect from an effective date using standard HR datetrack, and a result report lists every row with its status and message.
It is available for Oracle EBS R12 and, as PER Person Assignment Upload 11i, for EBS 11i.
When to use it
- Mass transfers, promotions and reorganizations: new organization, job, position, grade, location or supervisor for many employees as of one date.
- Completing the primary assignment of newly hired employees: payroll, salary basis, people group, statutory information, working hours.
- Adding secondary assignments to existing employees.
- Suspending, reactivating or terminating assignments through the assignment status.
- Maintaining the Additional Assignment Details flexfield.
Before you start
- The upload is assigned to the People and Assignment forms of the HRMS responsibilities; open Blitz Report from there.
- Employees must exist already. People are hired with the PER Person Upload, which also creates their primary assignment.
- Only employee assignments of current employees are downloaded; applicant and contingent worker assignments are not covered.
- Decide the effective date first: downloaded values are shown as of that date and uploaded changes take effect from it.
Choose a template
| Template | Use it for |
|---|---|
| Default (default template) | All fields of the Assignment window, without the flexfield. Creates and updates assignments. |
| Organization and Job Change | Transfers and promotions: organization, job, position, grade, location, supervisor and change reason. |
| Assignment Flexfield | The Additional Assignment Details flexfield of existing assignments. |
| Create Secondary Assignments | An empty sheet to add secondary assignments to existing employees. Upload Mode is fixed to Create and the download filters are hidden. |
A field that is not in the chosen template keeps its stored value.
Step 1 — Choose the template and set the parameters
Run PER Person Assignment Upload in Blitz Report, select the template and set the parameters.
| Parameter | Description |
|---|---|
| Upload Mode | Create opens an empty sheet; Create, Update (default) also downloads the existing assignments to change. |
| Business Group | Required. Defaults from the HR: Business Group profile. |
| Effective Date | Required, defaults to today. Date the downloaded assignments are shown as of, and the default date the uploaded changes take effect. |
| Employee Number | Downloads one employee only. |
| Organization, Job, Location, Payroll | Download only assignments with these values. |
| Primary Assignments Only | Yes downloads primary assignments only. |
The Create Secondary Assignments template shows Business Group and Effective Date only.
Step 2 — Run and open the Excel file
Click Run. The workbook downloads and opens in Excel with one row per assignment and its values as of the Effective Date. Coded columns such as Organization, Job, Position, Grade, Payroll, Location, Assignment Status, the categories, Supervisor Number and Salary Basis have lists of values.
Step 3 — Enter or edit the data
Change an assignment: overwrite values on the downloaded row. Set a different Effective Date on a row to make that change take effect on another date.
Datetrack Mode: leave it blank and the assignment is corrected when the Effective Date is the start date of its current record; otherwise the change is inserted from the Effective Date as Update, or as Update – Change Insert when later changes exist. Select Correction, Update, Update – Change Insert or Update – Override to choose the mode yourself.
Add a secondary assignment: add a row with Employee Number and Organization and leave Assignment Number blank to have it generated. Assignment Status defaults to the active status and must be an active status for a new assignment.
Suspend, reactivate or terminate: change Assignment Status to a status of another system status (active, suspended, terminated). Terminating ends a secondary assignment on the Effective Date. A change to another status of the same system status is an ordinary update.
People Group and Statutory Information: enter the concatenated segment values; a combination that does not exist is created. Statutory Information is the soft coded flexfield of the business group’s legislation, e.g. the GRE for the United States. Neither can be cleared once set.
Start Time and End Time use the format HH24:MI.
Additional Assignment Details: use the Assignment Flexfield template. The column headers and cell comments show your flexfield’s segments, and values are validated against their value sets.
Step 4 — Validate and Save
Click Validate and Save in the Blitz Report ribbon. Required values and list-of-values entries are checked, problems are shown in the Status and Message columns, and the file is saved.
Step 5 — Upload and view the result
In Blitz Report click Upload and select the saved file. This submits the Blitz Upload request; when it completes, the result report opens.
What’s produced
- New secondary assignments, created as of their Effective Date.
- Assignment changes stored with the datetrack mode of each row.
- Suspensions, reactivations and terminations from status changes.
- A result report listing every uploaded row with the assignment values as stored (including generated assignment numbers), its status and the message Assignment created., Assignment updated., Assignment status changed., No change. or the error. A row in error changes nothing.
Common questions
Can I create a primary assignment?
No. It is created when the person is hired with the PER Person Upload. Download it afterwards with the Default template to complete payroll, salary basis, people group and the other fields.
Can I change several fields and the status in one row?
Yes. The first part of the change uses the row’s datetrack mode and the remaining parts correct that same record, so the employee gets one change dated on the Effective Date.
What happens to downloaded rows I don’t change?
Nothing. A row uploaded without changes reports No change.
Can I change the Primary Assignment flag?
No, it is shown for information only.
Troubleshooting
| Message | Cause | What to do |
|---|---|---|
| Employee number <number> does not exist on <date>. | No employee with that number in the business group on the Effective Date. | Check the number and that the Effective Date is not before the hire date. |
| Assignment <number> does not exist on <date>. | The assignment has no record on the Effective Date. | Use a date within the assignment’s lifetime. |
| Missing values for required field/s: Organization | A new assignment row has no Organization. | Enter the Organization. |
| A new assignment must have an active assignment status. | A new row has a suspended or terminated status. | Create it with an active status and change the status in a later upload. |
| Statutory Information and People Group cannot be cleared. | One of them was blanked on an existing assignment. | Enter a valid combination instead. |
| The legislation of the business group has no Statutory Information flexfield. | Statutory Information entered for a legislation that does not use it. | Leave it blank. |
| Additional Assignment Details validation error: … | A segment value fails its value set or a required segment is missing. | Correct the segment named in the message. |
| Other HR messages | The standard HR assignment validation rejected the change. | Correct the row as you would in the Assignment window, or choose another Datetrack Mode. |
select null action_, null status_, null message_, null modified_columns_, to_number(null) assignment_id_out, paaf.assignment_id, pbg.name business_group, papf.employee_number, papf.full_name, paaf.assignment_number, xxen_util.yes(paaf.primary_flag) primary_assignment, :effective_date effective_date, null datetrack_mode, (select haouv.name from hr_all_organization_units_vl haouv where paaf.organization_id=haouv.organization_id) organization, (select ppg.group_name from pay_people_groups ppg where paaf.people_group_id=ppg.people_group_id) people_group, (select pjv.name from per_jobs_vl pjv where paaf.job_id=pjv.job_id) job, (select hpf.name from hr_positions_f hpf where paaf.position_id=hpf.position_id and :effective_date between hpf.effective_start_date and hpf.effective_end_date) position, (select pgv.name from per_grades_vl pgv where paaf.grade_id=pgv.grade_id) grade, (select papf2.payroll_name from pay_all_payrolls_f papf2 where paaf.payroll_id=papf2.payroll_id and :effective_date between papf2.effective_start_date and papf2.effective_end_date) payroll, (select hlav.location_code from hr_locations_all_vl hlav where paaf.location_id=hlav.location_id) location, (select pastv.user_status from per_assignment_status_types_v pastv where paaf.assignment_status_type_id=pastv.assignment_status_type_id) assignment_status, xxen_util.meaning(paaf.employment_category,'EMP_CAT',3) assignment_category, xxen_util.meaning(paaf.employee_category,'EMPLOYEE_CATG',3) employee_category, (select papf3.employee_number from per_all_people_f papf3 where paaf.supervisor_id=papf3.person_id and :effective_date between papf3.effective_start_date and papf3.effective_end_date) supervisor_number, (select papf3.full_name from per_all_people_f papf3 where paaf.supervisor_id=papf3.person_id and :effective_date between papf3.effective_start_date and papf3.effective_end_date) supervisor_name, paaf.probation_period, xxen_util.meaning(paaf.probation_unit,'QUALIFYING_UNITS',3) probation_units, paaf.date_probation_end probation_end_date, paaf.notice_period, xxen_util.meaning(paaf.notice_period_uom,'QUALIFYING_UNITS',3) notice_period_units, paaf.normal_hours working_hours, xxen_util.meaning(paaf.frequency,'FREQUENCY',3) frequency, paaf.time_normal_start start_time, paaf.time_normal_finish end_time, xxen_util.meaning(paaf.hourly_salaried_code,'HOURLY_SALARIED_CODE',3) hourly_salaried, xxen_util.yes(paaf.work_at_home) working_at_home, (select hsck.concatenated_segments from hr_soft_coding_keyflex hsck where paaf.soft_coding_keyflex_id=hsck.soft_coding_keyflex_id) statutory_information, (select ppb.name from per_pay_bases ppb where paaf.pay_basis_id=ppb.pay_basis_id) salary_basis, paaf.internal_address_line internal_address, xxen_util.meaning(paaf.change_reason,'EMP_ASSIGN_REASON',3) change_reason, xxen_util.yes(paaf.manager_flag) manager, xxen_util.meaning(paaf.bargaining_unit_code,'BARGAINING_UNIT_CODE',3) bargaining_unit, xxen_util.yes(paaf.labour_union_member_flag) union_member, xxen_util.display_flexfield_context(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category) ass_attribute_category, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE1',paaf.rowid,paaf.ass_attribute1) ass_attribute1, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE2',paaf.rowid,paaf.ass_attribute2) ass_attribute2, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE3',paaf.rowid,paaf.ass_attribute3) ass_attribute3, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE4',paaf.rowid,paaf.ass_attribute4) ass_attribute4, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE5',paaf.rowid,paaf.ass_attribute5) ass_attribute5, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE6',paaf.rowid,paaf.ass_attribute6) ass_attribute6, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE7',paaf.rowid,paaf.ass_attribute7) ass_attribute7, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE8',paaf.rowid,paaf.ass_attribute8) ass_attribute8, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE9',paaf.rowid,paaf.ass_attribute9) ass_attribute9, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE10',paaf.rowid,paaf.ass_attribute10) ass_attribute10, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE11',paaf.rowid,paaf.ass_attribute11) ass_attribute11, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE12',paaf.rowid,paaf.ass_attribute12) ass_attribute12, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE13',paaf.rowid,paaf.ass_attribute13) ass_attribute13, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE14',paaf.rowid,paaf.ass_attribute14) ass_attribute14, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE15',paaf.rowid,paaf.ass_attribute15) ass_attribute15, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE16',paaf.rowid,paaf.ass_attribute16) ass_attribute16, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE17',paaf.rowid,paaf.ass_attribute17) ass_attribute17, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE18',paaf.rowid,paaf.ass_attribute18) ass_attribute18, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE19',paaf.rowid,paaf.ass_attribute19) ass_attribute19, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE20',paaf.rowid,paaf.ass_attribute20) ass_attribute20, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE21',paaf.rowid,paaf.ass_attribute21) ass_attribute21, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE22',paaf.rowid,paaf.ass_attribute22) ass_attribute22, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE23',paaf.rowid,paaf.ass_attribute23) ass_attribute23, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE24',paaf.rowid,paaf.ass_attribute24) ass_attribute24, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE25',paaf.rowid,paaf.ass_attribute25) ass_attribute25, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE26',paaf.rowid,paaf.ass_attribute26) ass_attribute26, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE27',paaf.rowid,paaf.ass_attribute27) ass_attribute27, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE28',paaf.rowid,paaf.ass_attribute28) ass_attribute28, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE29',paaf.rowid,paaf.ass_attribute29) ass_attribute29, xxen_util.display_flexfield_value(800,'PER_ASSIGNMENTS',paaf.ass_attribute_category,'ASS_ATTRIBUTE30',paaf.rowid,paaf.ass_attribute30) ass_attribute30, 0 upload_row from per_business_groups pbg, per_all_people_f papf, per_all_assignments_f paaf where 1=1 and pbg.business_group_id=:business_group_id and papf.business_group_id=pbg.business_group_id and :effective_date between papf.effective_start_date and papf.effective_end_date and papf.current_employee_flag='Y' and papf.person_id=paaf.person_id and paaf.assignment_type='E' and :effective_date between paaf.effective_start_date and paaf.effective_end_date |
| Parameter Name | SQL text | Validation | |
|---|---|---|---|
| Upload Mode |
| LOV | |
| Business Group | LOV | ||
| Effective Date | Date | ||
| Employee Number |
| LOV | |
| Organization |
| LOV | |
| Job |
| LOV | |
| Location |
| LOV | |
| Payroll |
| LOV | |
| Primary Assignments Only |
| LOV |