Extra Information Types (EIT) in Oracle Applications

In this blog I will explain how to create EIT in Oracle HRMS.EITs are basically Descriptive Flexfields (DFF).Standard product has EIT DFFs defined in forms such as Person,Assignment,Job etc.We can add segments to the defined DFF based on our requirements so that it will appear in corresponding screen.Compared to SIT EIT has added security.We can enable EIT  for specific responsibility.

Following steps needs to be perform to create EIT.

1) Create the DFF segments.

Navigate to Application Developer > Flexfield > Descriptive > Segments.

Query for Extra Person Information under Human Resources application.

Uncheck Freeze Flexfield Definition and create the segment.

Click on Segments.Enter the segment details.

Click on save.In the Descriptive Flexfield Segments window check the Freeze Flexfield Definition.Save your work.

2) Register the Extra Information Types.

Navigate to Super HRMS Manager responsibility.Select Register Extra Information Types (EITs) standard concurrent program from the SRS window.Give appropriate values and submit.

3) Assign the EIT to responsibility.

Navigate to Security > Information Types Security under any HRMS responsibility.

Choose the appropriate responsibility (Here I am using Human Resources, Vision Enterprises). Assign the above created EIT.

Save your work.

4) Test the EIT.

Navigate to Human Resources, Vision Enterprises responsibility.Choose any person of type Employee.Click on Others and choose Extra Information.

Save your work.

The above entered information will get populated in PER_PEOPLE_EXTRA_INFO.

The API to create EIT information is HR_PERSON_EXTRA_INFO_API.

Date Track Modes

Update Date Track Modes

CORRECTION : Over writes the data. No history will maintain.
UPDATE : Keeps the history and new change will effect as of effective date
UPDATE_CHANGE_INSERT : Inserts the record and preserves the future
UPDATE_OVERRIDE : Inserts the record and overrides the future

 Delete Date Track Modes

ZAP : wipes all records
DELETE : Deletes  current record
FUTURE_CHANGE : Deletes current and future changes.
DELETE_NEXT_CHANGE : Deletes next change

How to Create Custom Employee Number Generation via Fast Formula

1. Create Sequence
create sequence sac_emp_number
start with 1

2. Create Function to Generate Desired Sequence Number
CREATE OR REPLACE FUNCTION SAC_GENERATE_EMP_NUMBER (
p_business_group_id   IN NUMBER,
p_person_type         IN VARCHAR2,
p_party_id            IN NUMBER
)
RETURN VARCHAR2
IS
l_emp_number         VARCHAR2 (15) := NULL;
l_applicant_number   VARCHAR2 (15) := NULL;
l_npw_number         VARCHAR2 (15) := NULL;
l_auto_number        VARCHAR2 (15) := NULL;
BEGIN
BEGIN
SELECT   employee_number, applicant_number, npw_number
INTO   l_emp_number, l_applicant_number, l_npw_number
FROM   per_all_people_f
WHERE   party_id = p_party_id
AND TRUNC (SYSDATE) BETWEEN effective_start_date
AND  effective_end_date;
EXCEPTION
WHEN OTHERS
THEN
l_emp_number := NULL;
l_applicant_number := NULL;
l_npw_number := NULL;
END;

IF     l_emp_number IS NULL
AND l_applicant_number IS NULL
AND l_applicant_number IS NULL
THEN
IF p_person_type = ‘EMP’
THEN
l_auto_number := ‘SAC-‘ || sac_emp_number.NEXTVAL;
ELSIF p_person_type = ‘APL’
THEN
l_auto_number := ‘APL-‘ || sac_emp_number.NEXTVAL;
ELSIF p_person_type = ‘CWK’
THEN
l_auto_number := ‘CONT-‘ || sac_emp_number.NEXTVAL;
END IF;
END IF;

RETURN l_auto_number;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
/
3. Attach Setup Business Group to Global Super HRMS Manager 
Navigation: System Administrator -> Profile -> System
Responsibility Name: Global Super HRMS Manager
Profile Option Name: HR: Security Profile
Set Profile as “Setup Business Group” at Responsibility Level

Note:
The Above Step is Mandatory as one cannot generate Auto Employee Numbering on any custom Business Group. This could be possible on “Setup Business Group”

4. Create Formula Function: 
I. Navigation: Go to Global Super HRMS Manager -> Other Definitions -> Formula Functions
II. Function Name: SAC_NUMBER_GENERATION
III. Parameters:
Data Type: Text
Class: External function
•  Definition: <Name of the Function> SAC_GENERATE_EMP_NUMBER

Context Usages

Parameters

5. Create Fast Formula: EMP_NUMBER_GENERATION
Navigation: Global Super HRMS Manager -> Total Compensation -> Basic -> Write Formulas

The Below Naming Convention should be used, so as to Generate Custom Auto Numbering Sequence for Employee, Applicant or Contingent Worker

I. Employee EMP_NUMBER_GENERATION Person Number Generation
II. Applicant APL_NUMBER_GENERATION Person Number Generation
III. Employee CWK_NUMBER_GENERATION Person Number Generation

Type: Person Number Generation

Formula (For your Reference):
default for party_id is 0
inputs are
person_type (text),
party_id (number)

next_number = ‘0’
next_number = sac_number_generation(person_type,party_id)
return next_number

Please note if one has different Numbering Sequence in-case of Multiple business groups, it has to be handles via Fast Formula or PL/SQL Code

 

** Notes**

  1. Change of Method from Automatic to Manual is possible. But Till Global NUmber is not generated.

If you choose Employee Number Generation = Manual, and then later decide to change to Automatic, you can do this.
But, if you started as Manual, and then changed to Automatic, and then once again want to change back to Manual, Employee Number Generation = Manual will no longer show up in your LOV for Employee Number Generation.

AME Short Notes

AME consist of:

  1. AME Transcation Type : Encapsualtion of Business Rules
  2. AME Attributes: Variables
  3. AME Rule : Combo of if else condition
  4. AME Action : Return Value
  5. AME Approval Group : Can be static or dynamic

Profile option “AME:Installed” must be set to Yes, at application level to the calling application to be able to use AME.. For example, to make iExpenses use AME, you should set profile to Yes for “Payables” Application.

AME Transaction Type : Can be created by resp. Approvals Management Administrator

Rest all : Approvals Management Business Analyst

HOW AME RELATES TO SELF SERVICE HR

Form Function:

2 parameters named pAMETranType and pAMEAppId are passed as parameter to the Form Function. This tells which AME Transaction Type will be used by the SSHR screen.

However the decesion of whether AME is switched ON or OFF is decided by a Wokflow Activity named “Review Page”.

HR_APPROVAL_REQ_FLAG: If yes then AME else not.

HR_API_TRANSACTIONS
HR_API_TRANSACTION_STEPS
HR_API_TRANSACTION_VALUES

 

hr_transaction_swi.commit_transaction  This API commits transaction

=====

Implement AME in Self Service transaction:

  1. Find the function, where it needs to be enabled. Provide details in Form Fucntion tab.
  2. Make a copy of existing process.
  3. Link new process to new function created in Fucntion Tab.
  4. Enable FLAG : HR_APPROVAL_REQ_FLAG in Review Page.
  5. Update Condition for Transaction ,WORKFLOW_PROCESS_NAME in (ADS_HR_COMPTNC_PROFILE_JSP_PRC, ADS_OTA_ENROLL_IN_TRN_JSP_PRC, ADS_USHR_HR_XFER_ICD_JSP, HR_APPRAISAL_DETAILS_JSP_PRC, HR_ASSIGNMENT_JSP_PRC, HR_ASSIGNMENT_TERMS_JSP_PRC, …)

For check how it is working:

  1. Status Monitor in Workflow Administration.

 

 

 

 

 

 

Difference between Valuesets and Lookups

Difference 1
Value sets can be attached to parameters of a concurrent program or to a DFF segments where as Lookups are attached only to the fields of a Form/Page

Difference 2
Lookups can be maintained by end users where as Value Sets are almost never maintained by end users, with the exception of GL Flexfield codes. Value sets are usually maintained by System Administrators.

Difference 3
Lookups can have translated values in different languages but not the values in the Value Sets

Difference 4
Value sets can contain values that are a result of an SQL Statement. Hence it is possible to make Value Set list of values dynamic.
On the contrary, Lookup Codes are Static list of values which can only be entered through Lookups Form.

Difference 5
We have several different types of value sets but not lookups.

Retro Pay in Oracle Payroll

What is Retro?
Retro means an out-dated thing from the past which is active now.

What is Retro Pay?
Retro Pay stands for some old Payment due for the employee

How can we land in such scenario?
There are two things which can happen..

1. Incorrect Element Entry Value-Some times we realise after some time that the element entry entered and processed in the past is not correct.
2. Back Dated Salary Increments: The union agreement or the Higher Management decides to revise salary effective from a date in the past

So what shall we do now?

Now that we have corrected the old Element Entry, the next Step is how to give this amount to the employee.

What Oracle Gives me for this?
Oracle gives the RetroPay process but in four flavours leading to confusions for the unarmed.

What are those four?

Here is the list
1. RetroPay by Run
2. RetroPay by Aggregate
3. RetroPay by Element
4. Enhanced RetroPay

Out of these four which one we are going to see in this?
In this entry, I am going to cover Retro Pay by Element. A new element entry will be created with the difference amount.

Sample Scenario
Assume an employee gets paid 1,500 for August.
Now payroll comes to know that his salary is actually 2,000 and not 1,500.

The following are the steps required to be performed.

1. Define a new element which can be used to pay the Retro amount
2. Make sure that this element is Non-recurring and Multiple Entries allowed.
3. Attach this Element to the retro tab of the Salary element
4. Define the Assignment Set

An assignment set needs to be defined with the affected Employees

5. Element Set
An element set needs to be defined with the Salary element(Don’t include the Retro Element here.You will get an Error while submitting the Concurrent Request) .

6. Now run the Retro Pay by Element with the following parameters

a. Effective Start Date: This is the date from which we want to compute the difference
b. Effective End Date: A date in the latest Pay Period. The retro entries get created in this period.
c. Assignment Set: The Assignment Set we created
d. Element Set: The element set we created

Submit the request.. And check from the log that the number of assignments processed is correct.

Now if we check the element entries screen, we can see the retro elements getting created.

Step 1. You will first run “Retro-Notifications Report (Enhanced) – PDF”. This will read the records from PAY_PROCESS_EVENTS.
This process will insert eligible records into PAY_RETRO_ASSIGNMENTS and  PAY_RETRO_ENTRIES .

Step 2. Run process Retropay (Enhanced). This process will do the require calculations to differential payments.


Why is the Retropay process picking up Entries from pay periods that have either been skipped or
not processed?


It all depends on whether the employee was picked up for processing when Payroll Run originally
processed that pay period.

If the assignment was picked up but nothing found to process so that the assignment is marked as
‘Skipped’, that assignment will be picked up by RetroPay if changes are subsequently entered into
that pay period.

This is a fundamental part of RetroPay processing and the reason the Skipped actions are created.

If the employee was never processed in the original pay period (no assignment action exists for
them in the Run) then RetroPay cannot process them.

RetroPay reprocesses employees that were included in the original pay period.

RetroPay (Enhanced) replaces RetroPay by Element but retains its original characteristics.

Retropay (Enhanced) is a two-stage process:
First process:
Run the “Retro-Notification Report (Enhanced) – PDF” concurrent request. The process creates data that stores details of all assignments and entries that require retropay because they have had retrospective changes affecting them. This created data is known as Retro-Assignments and Retro-Entries. These entries can be viewed in the PDF file produced by the process and/or through the new “RetroPay Status” window, which has a self-service user interface.
Second process:
Run the Retropay (Enhanced) process. This process drives off the new data tables to only re-process those assignments with changed data and only re-process historical data back to the required effective date.
The Retropay (Enhanced) process has the following features:
– Users are provided the additional ability to setup Retropay summary elements for seeded elements. You are not currently able to do this with RetroPay by Element.
– The process reprocesses based on the earliest assignment reprocess date (as opposed to the user supplied date). Hence the process runs for as far back in time as is necessary for each individual assignment. This change enhances the performance of the process.

retro element entries in pay_element_entries_f have creator_type = RR
There are more creator_type values than just �RR� for element entries created by the Retropay process.

The Application Utilities Lookup CREATOR_TYPE has the full list of values and includes both the code (which is stored in the creator_type field in pay_element_entries_f) and also the description. I�ve just had a quick look and the following values exist for Retropay:

EE – Retropay by Element, Source id points to Element Entry
NR – Retropay By Element, Negative Replacement
PR – Retropay By Element, Positive Replacement
R – Retropay by Action
RR – Retropay by Element, Source id points to Run Result

You can track down the orginal element by Sourec_id(element_entry_id of parent element) in pay_element_entries_f table.

Running the Processes

The Retropay (Enhanced) process uses a different mechanism for identifying the assignments to be processed. Retropay (by Aggregate) and RetroPay by Element previously identified assignments by an Assignment Set and recalculated all the payroll runs between the supplied start and end date.
This approach is inefficient because each assignment should only be recalculated for the period that they need to be. For example, if Assignment A needs to be recalculated from 16th March and Assignment B from the 16th April, currently both were processed from the 16th March.
With RetroPay (Enhanced) an assignment set is no longer used. The concept of creating a request to retropay an assignment is now introduced. The request takes the form of identifying the assignment to process and the date from which the recalculation will take place.
There are three ways to make a request for an assignment to be retrospectively paid:
1) Retro-Notification Report (Enhanced) – PDF. This process generates the requests.
2) Details can be entered manually in the new self-service (framework) form
3) API
Note:  Retropay (Enhanced) no longer uses an assignment set.  You must use either Retro-Notification Report (Enhanced), the new RetroPay Status form or the API.

Retro-Notification (Enhanced) – PDF Parameters:

Payroll (required)
Overriding Event Group
Template Name (required) – there is one template currently called Retro-Notifications Report (Enhanced)
As with the previous version (Retro-Notification Report provided several years ago), the process creates a report that displays all assignments that have had a Datetracked Event identified in the Retro Event Group you defined. Retro-Notification can be run more than once for the same time frame. Assignments are not dropped off this report until the Retropay (Enhanced) process is run.
This report has been added for the appropriate seeded payroll request groups. If you have a custom request group, you must add this new request.

Retropay Status Window

This form appears on the navigator, but you must be logged into the E-Business Suite Home page to access it. This form has been added for all seeded responsibilities. If you have custom menus or responsibilities, you must add this form.
The assignments identified by the Retro-Notification Report (Enhanced) – PDF process will be displayed. You can further enter, update and delete retropay assignment requests. The form also shows a status indicating whether the request has been processed. The retropay assignment requests will be processed when the next Retropay (Enhanced) process is run.
If you manually enter an assignment, you must also include the Retro entries/component for that assignment in this window.
Retropay entry details are linked to retropay assignment requests. This indicates which components should be processed by the Retropay (Enhanced) for a particular element entry.

Retropay (Enhanced)

The RetroPay by Element process used an Element Set to indicate which element changes should be brought forward. An Element Set is no longer required. The setup of the Retro Components now identifies the elements to be used by the retropay process.
Parameters:
Effective Date (required)
Payroll (required)
Retropay (Enhanced) is a sequenced action. This means the Effective Date must be later than your last event. For example: your current payroll period is April 16 to 29. Your previous payroll’s check date was April 22. The Effective Date would be any date between April 23 and the end date of the current payroll run, which is April 29.
Retropay (Enhanced) produces multiple retroactive element entries for each element entry, which changed for each payroll period. Elements with exact names will be combined on the statement of earnings (SOE), check, deposit advice and online payslip.
The detail of the period the retro element was generated as a result of is displayed on the Entries window in the current payroll period. The element entry’s Original Date Earned is populated with the pay period that the difference is from. There is a ‘Retrospective’ check box also. This check box will be checked for any entry created by the Retropay (Enhanced) process.
This process has been added for the appropriate seeded payroll request groups. If you have a custom request group, you must add this new request.

Employee Process In Retro Pay Enhanced Report but not in Retro Pay Process

The reason being Retropay(Enhanced) will NOT pick entries if there are future dated payroll action which are either in status ‘Complete’ or ‘Skipped’.
Example : customer had Balance Adjustment and hence the entries were not picked up.


BUG:13965053 – RETRO ENAHANCED PROCESS DID NOT PICKUP AN EMPLOYEE HAVING BALANCE ADJUSTMENTS

It all depends on whether the employee was picked up for processing when Payroll Run originally
processed that pay period.

If the assignment was picked up but nothing found to process so that the assignment is marked as
‘Skipped’, that assignment will be picked up by RetroPay if changes are subsequently entered into
that pay period.

This is a fundamental part of RetroPay processing and the reason the Skipped actions are created.

If the employee was never processed in the original pay period (no assignment action exists for
them in the Run) then RetroPay cannot process them.

RetroPay reprocesses employees that were included in the original pay period

Back End Tables to check

PAY_RETRO_ASSIGNMENTS
Identifies assignment for reprocessing
PAY_RETRO_COMPONENTS
PAY_RETRO_COMPONENT_USAGES
PAY_RETRO_DEFINITIONS
PAY_RETRO_DEFN_COMPONENTS
PAY_RETRO_ENTRIES
Identifies the Entries required for re-processing.
PAY_RETRO_NOTIF_REPORTS
Populated and used in the RetroNotification Report


 “Retro-Notifications Report (Enhanced) – PDF”. This will read the records from PAY_PROCESS_EVENTS.
This process will insert eligible records into PAY_RETRO_ASSIGNMENTS and PAY_RETRO_ENTRIES .

Which process do we run to initiate RetroPay processing for our backdated changes?That there can be various “Event Groups” defined(some for proration and some for Retro[event group type being retro].
All the changes pertaining to all Event Groups would have created entries in PAY_PROCESS_EVENTS.
Retro Notification report will filter the events applicable to RetroPay and will populate PAY_RETRO_ASSIGNMENTS and  PAY_RETRO_ENTRIES .

What are the processes that one needs to run?
Step a. You will first run “Retro-Notifications Report (Enhanced) – PDF”. This will read the records from PAY_PROCESS_EVENTS.
This process will insert eligible records into PAY_RETRO_ASSIGNMENTS and  PAY_RETRO_ENTRIES .
Step b. Run process Retropay (Enhanced). This process will do the require calculations to differential payments.

There are duplicate unprocessed rows in pay_retro_assignments table for one or more employees.  Only one unprocessed row can exist at any given time for a single assignment.It may causeand error in the Retro Notification Report 

To identify this use the following query

select assignment_id, count(*)
from pay_retro_assignments
where retro_assignment_action_id is null
group by assignment_id
having count(*) > 1

For each assignment_id identified, find the related assignment number (or employee name) and delete one of the duplicate rows from the Retropay Status form.
STEPS:
1. Navigate: View > Retropay Status
2. Query for unprocessed retro assignments for the assignment identified in the query
3. Change the status of one of the lines to Deferred (it doesn’t matter which one you choose)
4. Requery for the deferred line and then delete it.
Repeat the steps for all assignments identified by the query.
The Retro-Notifications Report (Enhanced) PDF process should now complete successfully.

Continue reading →