Tuesday, February 25, 2014

PeopleSoft 9.1 Person Model


Further to my earlier posts, today we will understand the person model in PeopleSoft 9.1. For a while even I was not sure what does this term "Person Model" exactly means but after little bit of R&D I got it clear and surprisingly it’s far simpler than what I thought.

Person model in PeopleSoft is nothing but a way of organizing and storing person related demographic and organizational information in the PeopleSoft database when we add a person to the organization and subsequently create the organizational relationship for.


Please also see
Hiring a Person in PeopleSoft
Understanding Dynamic prompts in PeopleSoft
Implementing parallel processing using Application Engine in PeopleSoft
Adding and Maintaining Person Of Interest in PeopleSoft
PeopleSoft Set Control Field
Peoplesoft Row Level Security Search Records
SQL Query for Max Effective (MAX (EFFDT) dated row from JOB table
SQL Query to find all the Direct Reports for a Manager 
How to Resolve a Row Level Security Issue in PeopleSoft 
PeopleSoft Set Control Field Concept and Tableset Sharing
Creating Query Report with PS Query in PeopleSoft  
PeopleSoft HRMS Online Training

Types of Person in PeopleSoft


There are three types of persons (Organizational relationship) can be created in PeopleSoft:

1.    Employee (PER_ORG = EMP)

A person who is hired to provide services to the organization and has a legal employee relationship with the organization.

2.    Contingent Worker (PER_ORG = CWR)

A person who provides services to the organization and who does not have a legal employee relationship with the organization.

3.    Person Of Interest (PER_ORG = POI)

A person who is neither an employee nor contingent worker but is of interest to the organization.

We will understand each one of these relationships in detail in following sections but for Now, let’s understand in a very high level how is the data stored in PeopleSoft database when any of the above persons is created.

There are broadly two categories of information’s with respect to a Person/Employee in PeopleSoft:
a.   Biographical data
b.   Organizational data

Biographical data - Name, Address, Contact, National ID, Smoker status...etc.

Below is the PeopleSoft database structure to store the Biographical information when a person is added to the organization (Navigation: Main -> Workforce Administration -> Personal Information -> Biographical -> Add a Person)



Subsequently, When an organizational relationship is created for the same person, Below is the PeopleSoft database structure to store the organizational information (Navigations : Main -> Workforce Administration -> Job Information -> Add Employment Instance,  Main -> Workforce Administration -> Job Information -> Add Contingent Worker Instance,  Main -> Workforce Administration -> Job Information -> Add POI Instance ):


  

Organizational Data - Job, Benefit program participation, earning distribution, Employment...etc.

Well, this topic doesn't end here and we need to understand the concept of Organizational relationships, Employment record number and multiple jobs which is also part of Person Model and it's all explained in other sections. 

Since we are talking about Person model so it becomes very important that we first understand below terms because we often get confused as which one represents what:

·         Organizational Relationship (PER_ORG)
·         Organizational Instance (ORG_INSTANCE_ERN)
·         Job Assignment or Employment Record  (EMPL_RCD)

  Let’s understand each one of them:

Organizational Relationship in PeopleSoft


It tells what relationship a person has with organization i.e. Employee, Contractor (Contingent worker) or Person of interest (POI). It’s represented by the field PER_ORG which exists in records PS_PER_ORG_INST, PS_PER_ORG_ASGN and JOB.

Organizational Instance in PeopleSoft


It represents the substantive or primary job created for an employee in the organization. 
There are three types of organizational instances we can create in PeopleSoft:
1.    Employment Instance
2.    Contingent Worker Instance
3.    POI Instance
In other words, after adding a person with biographical details through “Add a Person” component (for more details on how to add a person please visit the page Adding and Maintaining Person Of Interest in PeopleSoft) when we further add an organizational relationship which in-tern creates an organizational instance and job assignment from below components:
·         Add Employment Instance (with ACTION = HIR)
(Navigations: Main > Workforce Administration > Personal Information > Organizational Relationships > Add Employment Instance, Main > Workforce Administration > Job Information > Add Employment Instance)         

·         Add Contingent worker Instance (with ACTION = ADD)
(Navigations: Main > Workforce Administration > Personal Information > Organizational Relationships > Add Contingent worker Instance, Main > Workforce Administration > Job Information > Add Contingent worker Instance)

·         Add POI Instance (with ACTION = POI)
(Navigations: Main > Workforce Administration > Personal Information > Organizational Relationships > Add POI Instance)


So, when we do transaction from either of above components it creates an organizational instance and is represented by the field ORG_INSTANCE_ERN which is a key field in the record PS_PER_ORG_INST.

Job Assignment or Employment Record in PeopleSoft


When we create an organizational instance, we also create an assignment or employment record under that organizational instance. Every new assignment is identified by EMPL_RCD field which exists in PS_PER_ORG_ASGN and PS_JOB tables.

Every new assignment is created from below components:

·         Add a Host Assignment
(Navigations: Main > Workforce Administration > Global Assignments > Track Assignment > Add a Host Assignment)
·         Add Additional Assignment
(Navigations: Main > Workforce Administration > Job Information > Add Additional Assignment)

A Person with multiple jobs in PeopleSoft


Well, I guess whatever explained so far might not be so clear to you guys so let’s understand this concept with a live scenario.

“Nick Shrader” is a potential new hire for the firm XYZ technologies in its “AUS01” business unit hence they add him as a POI of type “AUS – Non paid Intern” for the internship effective from 01-JAN-2013.
See how he is added in the organization, here - Adding and Maintaining Person Of Interest in PeopleSoft

He is added in the organization with no JOB record because XYZ technologies in this internship program don’t pay anything to the POIs.

After completion of 6 months internship program, XYZ technologies decides to hire Nick Shrader, hence one of the HR users who belongs to the business unit “AUS01” creates a JOB record for Nick Shrader through the component “Add Employment Instance” (Navigations: Main > Workforce Administration > Personal Information > Organizational Relationships > Add Employment Instance, Main > Workforce Administration > Job Information > Add Employment Instance) with the ACTION/ACTION_REASON = “HIR/NHR”

Once HR user done with this step, this is how Nick Shrader’s employment data will look like:
(Navigations: Main > Workforce Administration > Job Information > Job Data, then click on Employment Data link at the bottom) 

  

One better place to look how this assignment (EMPL_RCD = 0) has been created under organizational instance (ORG_INSTANCE_ERN = 0) for organizational relationship employee (PER_ORG = “EMP”).  




Let’s also see how the three tables PS_PER_ORG_INST, PS_PER_ORG_ASGN and PS_JOB are populated when we do a hire: 



How to find the List of Users Assigned to a Role
Business Unit, Company and Regulatory Region in PeopleSoft
Process Security in PeopleSoft

For this, HR administrator has to create a new JOB record effective from 01-OCT-2013 however, before that the standard hours in his primary job (created earlier) have to be changed to 60% effective from 01-OCT-2013 since remaining 40% will be used for additional assignment, and the same is done from job data component.
Then after, the HR admin creates a new job record through the component “Add Additional Assignment” (Navigation: Main > Workforce Administration > Job Information > Add Additional Assignment)

Let’s again see how this assignment (EMPL_RCD = 1) has been created under organizational instance (ORG_INSTANCE_ERN = 0) for organizational relationship employee (PER_ORG = “EMP”).  



Let’s also see how the three tables PS_PER_ORG_INST, PS_PER_ORG_ASGN and PS_JOB are populated:


Shortly after completing his additional assignment, Nick Shrader is given the opportunity to participate in a short term project effective from 01-NOV-2013. The human resources administrator creates a contingent worker instance for him through the component “Add Contingent worker Instance” (Navigation: Main > Workforce Administration > Personal Information > Organizational Relationships > Add Contingent worker Instance, Main > Workforce Administration > Job Information > Add Contingent worker Instance)

 Let’s again see how this assignment (EMPL_RCD = 2) has been created under organizational instance (ORG_INSTANCE_ERN = 2) for organizational relationship contingent worker (PER_ORG = “CWR”).
When we open this component this time, we will find that one more row has been added for the new organizational instance hence we need to navigate to that.

Navigate to the Organizational Instance “2”  



Let’s also see how the three tables PS_PER_ORG_INST, PS_PER_ORG_ASGN and PS_JOB are populated:  


After four months, his short term project ends effective 01-FEB-2014 and on the same day he gets promotion as well.
But, again little after a month, Nick Shrader is again given the opportunity to participate in a short term project effective from 01-MAR-2014. The human resources administrator creates a contingent worker instance for him through the component “Add Contingent worker Instance”.

Let’s again see how this assignment (EMPL_RCD = 3) has been created under organizational instance (ORG_INSTANCE_ERN = 3) for organizational relationship contingent worker (PER_ORG = “CWR”).
When we open this component this time, we will find that one more row has been added for the new organizational instance hence we need to navigate to that.

Navigate to the Organizational Instance “3”  

  

Let’s also see how the three tables PS_PER_ORG_INST, PS_PER_ORG_ASGN and PS_JOB are populated: 


  
Let’s have a visual as to understand how the sequence of events occurred and as a result of which how the various entities got affected: 



 
Also see below, the historical job records (Assignments) and the transactions done on them through JOB data component accumulate under the organizational instance in which they are created.  




We should also see how it looks like in database: 



The record, PS_PER_ORG_INST holds the organizational instances for a person and its represented by the field ORG_INSTANCE_ERN.
The record, PS_PER_ORG_ASGN holds the assignments under a particular organizational instance for a person.
The record, PS_JOB holds the details on each assignment and day to day transactions done on that assignment for a person.



Please also see
Simplified Way to Provide a Page Access in PeopleSoft
Understanding Dynamic prompts in PeopleSoft
Implementing parallel processing using Application Engine in PeopleSoft
Unable to See Future dated transactions in Job Data page in PeopleSoft
PeopleSoft Set Control Field
Peoplesoft Row Level Security Search Records
SQL Query for Max Effective (MAX (EFFDT) dated row from JOB table
SQL Query to find all the Direct Reports for a Manager 
How to find the List of Users Assigned to a Role
SQL Query to Find Direct Reports for a Manager in PeopleSoft
Understanding Future dated security in PeopleSoft
Unable to See Future dated transactions in Job Data page in PeopleSoft
Understanding Component Interface in PeopleSoft
FTE For Multiple Jobs in PoeopleSoft

17 comments:

  1. Nice job, Sunny! Btw, where are the links you are referring to in the bottom ?

    ReplyDelete
  2. The links will be comming shortly, thanks for visiting the page.

    ReplyDelete
  3. Nice one... Very informative.

    ReplyDelete
  4. Thanks so much for the information. It is very informative. We have a scenario where a POI with job needs to added as an employee now. When we try adding an employment instance for him we get an error that "Cannot add Another Instance to this Person when Multiple Jobs Allowed is disabled. "
    Can we add the POI as an employee without enabling the Multiple job feature? Please help.

    ReplyDelete
  5. If we hire a person as contingent worker(empl_rcd=0) and terminate him after some time. Again hire him as employee(empl_rcd=1). In queries and other processes wherever max(effdt) sub query is being used, it returns error "Single row sub query returns more than 1 row". How to get rid of this error?

    Thanks,
    ML

    ReplyDelete
  6. Simply Superb, This is excellent paper I have ever com across. Thanks SH

    ReplyDelete
  7. Hi, we had a similar issue as above- single row sub query returns more than 1 row. In such scenarios, we modified the queries based ion the condition to be retrieved. I.e by adding empl_status , or based on Per_org

    ReplyDelete
  8. Very informative. Excellent Article.

    ReplyDelete
  9. Thank you for sharing this useful information and it is very effective for the people who are all looking to get the details on Human Resource Management System..

    ReplyDelete
  10. there are two way to hire a employee , employee hired through Add a person and another Manage hire, how can we fetch emplid of thoose who have been hired through Add a Person (workforce admin->personal information -> Add a Person) but not through Manage Hire (workforce admin->personal information -> Manage Hire)

    ReplyDelete
  11. Nice blog. Very informative. But i do have doubt, how to fetch employee ID from the table?. Kindly suggest best Payroll Management services software and its cost.

    ReplyDelete
    Replies
    1. I also have a doubt. How do we run the Payroll in the Payroll Management Services software that you have linked.


      Delete