Monday, March 17, 2025

How Does Oracle Payroll Run Process works ?

 

What are Payroll Action Types?

Payroll action types are steps in Oracle used during the payroll process. These steps are divided into three parts: before, during, and after the payroll run. Before the payroll, actions like Batch Element Entry and Retro Pay are done. After the payroll, actions like Prepayments and Costing are completed.

The type of actions is stored in a lookup called ACTION_TYPE


In this article, we will focus on the Payroll Run action types that directly process an employee’s pay. These are the main steps that handle all earnings, deductions, and calculate the final salary to be paid to the employee.

What is the Payroll Run process and how is it used in Oracle Payroll? 

The Payroll Run process calculates the gross to net payment for the employees. There are two action types used for payroll run processes.

  • Quick Pay
  • Run

Quick Pay is used to process payroll run for a single employee whereas Run is used to process payroll run as a batch for multiple employees.

What happens when the payroll process is submitted?

As soon as a payroll run (quick pay or run) process is submitted in Oracle, a record is created in PAY_PAYROLL_ACTIONS table for that specific action type. The action types for Quick Pay and Run are Q and R respectively. For each assignment, a child record is created in PAY_ASSIGNMENT_ACTIONS table.

For e.g. if a Quick Pay is submitted, 1 record will be inserted in PAY_PAYROLL_ACTIONS table with action_type as Q and 1 child record will be inserted in PAY_ASSIGNMENT_ACTIONS table with the assignment_id. These two tables are joined with column payroll_action_id.

 

For Run (multiple employees), there will be multiple records in PAY_ASSIGNMENT_ACTIONS table (1 for each employee) as shown below.

The highlighted number in the Assignment Process Results form is the assignment_action_id

Navigation:
HRMS Manager > View > Assign. Process Results > Provide the assignment number > Find

 Below is the query to find a payroll action details from an assignment_action_id

select ppa.* from
pay_payroll_actions ppa
,pay_assignment_actions paa
where ppa.payroll_action_id = paa.payroll_action_id
and paa.assignment_action_id = 
3014246246
;

What is a run result?

Each eligible element entry associated with the assignment will be processed during the payroll run (whether Quick Pay or Regular Run) according to the logic and calculations specified in the fast formula. The run result represents the outcome or output of the logical calculation for an earning or deduction.
Like how elements have input values, the run result values store the output corresponding to each specific input value for that element entry.

Navigation:

HRMS Manager > View > Assign. Process Results > HRMS Manager > View > Assign. Process Results > Provide the assignment number > Find > View Results > Run Result Values 

For the previous example of the assignment_action_id, lets say the element getting processed is Basic Salary with two input value namely Monthly Basic Salary and Pay Value. The Monthly Basic Salary input value is the input to the fast formula and the Pay Value stores the output after the calculation.

For each assignment_action_id from PAY_ASSIGNMENT_ACTIONS, multiple run_result_id will be inserted into PAY_RUN_RESULTS table. The number of records inserted will depend on the number of elements processed in the payroll run. For e.g. if the payroll run (Quick Pay or Run) is processing only 1 element (Basic Salary), then only 1 record will be inserted in PAY_RUN_RESULTS table.

Below is the query to find a run result details from an assignment_action_id. This query can be modified to filter based on assignment_numbereffective_date or element_name.

SELECT
paaf.assignment_number,
ppa.effective_date,
petf.element_name,
pivf.name,
prrv.result_value
FROM
pay_payroll_actions ppa,
pay_assignment_actions paa,
pay_run_results prr,
pay_element_types_f petf,
pay_run_result_values prrv,
per_all_assignments_f paaf,
pay_input_values_f pivf
WHERE
ppa.payroll_action_id = paa.payroll_action_id
AND paa.assignment_action_id = prr.assignment_action_id
AND prr.element_type_id = petf.element_type_id
AND paaf.assignment_id = paa.assignment_id
AND prr.run_result_id = prrv.run_result_id
AND pivf.input_value_id = prrv.input_value_id
— and paaf.assignment_number = :assignment_number
AND paa.assignment_action_id = 
3014246246

— and pivf.name = ‘Basic Salary’
— and ppa.effective_date = :effective_date
AND petf.element_name = ‘Basic Salary’
AND ppa.effective_date BETWEEN petf.effective_start_date AND petf.effective_end_date
AND ppa.effective_date BETWEEN paaf.effective_start_date AND paaf.effective_end_date
AND ppa.effective_date BETWEEN pivf.effective_start_date AND pivf.effective_end_date
— order by 2 desc
;

Conclusion

When a payroll run process (Quick Pay or Run) is submitted, below are the tables inserted :

PAY_PAYROLL_ACTIONS
PAY_ASSIGNMENT_ACTIONS
PAY_RUN_RESULTS
PAY_RUN_RESULT_VALUES

 

For more such articles, please drop a comment in the comment section.