PeopleSoft Fundamentals
PeopleSoft application runs on PeopleSoft Pure Internet Architecture, which requires a variety of software
and hardware elements:
A relational database management system (RDBMS) server.
An application server.
A batch server.
A web server.
A web browser.
It’s important to understand the role of each element before you can decide which configuration will work
best for your implementation of PeopleSoft Pure Internet Architecture. The following diagram illustrates, at
a high level, the physical relationship between PeopleSoft Pure Internet Architecture elements:
Application Server
The application server is the core of PeopleSoft Pure Internet Architecture; it runs business logic and
issues SQL to the database server. An application server consists of numerous PeopleSoft services and
server processes. Just as different elements make up the physical environment in which an application
server operates, such as database servers and web servers, a variety of elements operate on the
application server, enabling it to respond effectively to a multitude of transaction requests and handle
transaction processing, system scaling, browser requests, and so on.
An application server maintains the SQL connection to the database for browser requests and the
PeopleTools development environment in Microsoft Windows.
Domains
An application server domain is the collection of server processes, supporting processes, and resource
managers that enable connections to the database. You configure an application server domain using the
PSADMIN utility located in the PS_HOME\appserv directory on the application server.
PSADMIN creates a directory beneath PS_HOME\appserv for each application server domain that you
configure. When you boot an application server domain, it starts the set of server processes associated
with that domain, such as PSAPPSRV, PSQCKSRV, and PSSAMSRV. Each server process establishes a
persistent connection to a PeopleSoft database, and this connection acts as generic SQL pipeline that the
server process uses to send and receive SQL.
PeopleBooks
PeopleBooks are the official documentation supplied by PeopleSoft. Basic understanding of the
PeopleSoft Applications and Tools supplied by PeopleSoft is provided in the form of web pages.
PeopleSoft Fundamentals Introduction
PeopleBooks need to be configured in the system and then use while development. PeopleBooks are
available in the internet also at various sites.
1. PeopleTools
2. Functional Module wise Documentation
Activity:
Table: JOB
Fields: EMPLID, COMPANY, DEPTID, STD_HOURS
Choose either parallel or serial Boot. It makes no difference for start up. When the server is starting it will
start all its sub servers’ one after the other.
PeopleSoft Fundamentals Introduction
We need to clear cache sometimes when the Application Server is not responding or when it is not
connecting from online or when we get message saying that the application server is down
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
Clear Cache in the application server and in the client’s local profile at below locations:
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
Fundamentals of HRMS
1. Personal Model:
Organizations have relationships with a variety of people for a variety of reasons. PeopleSoft enables
you to manage the data of those people with whom you have an organizational relationship. A person
can have more than one organizational relationship at any one time or can change relationships over
time.
May 1, 1998 No change to employment job Contingent worker instance created with this as the
record. hire date.
June 15, 1998 Transferred departments No change to the contingent worker job record.
December 15, No change to employment job Contingent worker job ends and the job data record
1999 record. is deactivated. This date is the termination date for
this instance.
May 1, 1998 New job record for temporary assignment created. Job
record identified by:
ID: 8901
ERN: 1
Organizational relationship: employee
February 1, No change to employment job record. Contingent worker instance created. Job record
PeopleSoft Fundamentals Introduction
This diagram illustrates Jan Smith’s job records under the organizational relationships:
2. Job Information:
PeopleSoft Fundamentals Introduction
Entire job information of the worker is stored in Job Data component. This contains six pages and three
secondary pages. Majority of the information is stored JOB table.
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
Study PeopleBooks:
What is Effective Date?
What is Position Structure?
What is Business Unit?
What is Job Code?
What is Salary Admin Plan?
Table Name
PS_JOB EMPLID Key: Employee ID stores identification number of employees
(persons)
EFFDT Key: Effective date tracks the job changes across life of
employee. It helps maintain current and future changes of an employee’s
job without loosing historical information
COMPANY: The legal entity to which the employee works for and is paid by.
GRADE/STEP: Grades and Steps are the part of Salary admin plan which
helps understand the employee salary range and pay structure in the
organization.
SHIFT: Shift is used to find out whether worker comes in 1 st, 2nd, 3rd,
Rotating, Not Applicable, Compressed shifts. For general shifts use Not
Applicable.
3. Personal Details:
Personal data of workers is stored in the time while a person is added into the system. Since then for
regular maintenance we can use Modify Person page for tracking the personal changes of the
workers. There are various sub-folders in the Personal Information folder too; these are used to track
the personal information more effectively.
Modify Person is the most widely referred place for finding out personal details ranging from most
individual till regional related like Date of birth, Gender, Marital status, ethnicity, military status, etc.
PeopleSoft Fundamentals Introduction
Now let us closely look at USA and IND regions under regional page.
PeopleSoft Fundamentals Introduction
PeopleSoft Fundamentals Introduction
NAME_DISPLAY
NAME_FORMAL
Name table stores all types of names of person including Primary (PRI),
Professional, Degree, etc. Name is given specific format based on country.
PS_PERS_DATA_EFFDT EMPLID
EFFDT
MAR_STATUS
MAR_STATUS_DT
SEX
HIGHEST_EDUC_LVL
LANG_CD
ALTER_EMPLID
Personal details which are effective dated like marital status and highest
education level are stored here. Also we have gender of the person tracked
in the same table.
PS_PERS_NID EMPLID Key
COUNTRY
NATIONAL_ID_TYPE
NATIONAL_ID
SSN_KEY_FRA
PRIMARY_NID
TAX_REF_ID_SGP
Personal Identity information related to person’s country regulations are
stored here. In India we can track Driver License, PAN number, Passport
number etc. In US, we can track SSN, and SIN etc. Also we can track new
national ID types in a country if our customer needs. This is possible in
National ID types setup page.
PS_ADDRESSES EMPLID Key
ADDRESS_TYPE Key
EFFDT Key
EFF_STATUS
COUNTRY
ADDRESS1
ADDRESS2
ADDRESS3
ADDRESS4
CITY
STATE
POSTAL
REG_REGION
Addresses are various types: HOME, MAIL, BUSN, etc. All addresses need
Address1 mandatorily. Also the country field determines type of the address
fields required for the address. For example, County (is equal to our
Mandals) is used in US but not India. Custom address types
PS_PERSONAL_PHONE EMPLID Key
PHONE_TYPE Key
COUNTRY_CODE
PHONE
EXTENSION
PREF_PHONE_FLAG
Personal Phone details are tracked. Various types including HOME, BUSN,
CELL, Guest House, etc are allowed. This is not Effective dated
Custom types can also be added in translates of Email Address types
through App Designer.
PS_EMAIL_ADDRESSES EMPLID
E_ADDR_TYPE
PeopleSoft Fundamentals Introduction
EMAIL_ADDR
PREF_EMAIL_FLAG
Email Addresses like BUSN, Personal, Official, etc types are allowed.
Custom types can also be added in translates of Email Address types
through App Designer.
4. Data Organization:
Observe below data of a company. Imagine that this is stored in an excel sheet like shown below.
Here it is clear that the employees are all storing Company head quarter and company name
again and again unnecessarily. Instead we could have maintained a separate sheet for company
data and a separate sheet for employee data like below:
Employee data:
EMPLID COMPANY LOCATION
1234 KCY KC0001
1236 KCY KC0001
1238 KCY KC0001
1237 KCY KC0002
1235 KCY KC0002
1239 KCY KC0002
Company Data:
COMPANY COMPANY_NAME COM_HQ_ADDR
KCY Kenya Company Yielding Kenya, 500049 50000
GBI Global Business Installs New Delhi, India 50004
So it is clear that storing relevant information will make data easy for understanding (retrieval)
and maintenance (manipulations).
A table of Employee data might contain only the company, location, department to which the
employee belongs to. But storing the company data and location data, etc can be better kept
separately.
o What is a key? What is the use of having multiple keys like it is in Job Data?
Using Name we can not identify the persons uniquely. Also using date of birth and other fields will
have similar problem. Instead EMPLID will serve better to track if it is allotted uniquely for
persons.
It is evident that we can not track all rows of an employee with only EMPLID as a key. We need
another supporting Key to EMPLID to store multiple changes of the employee. Also just by having
a mere counter it makes no sense and we can not afford to maintain hire date, position change
date, leave date, etc separately.
Other fields like Action, Action Reason, Company, etc can not be keys because they are all
common information and repeat for majority of the employees. For Ex: Every employee gets
hired; so ACTION can not be a key. Every employee belongs to one or other company. In other
words, a company will have lot of employees. So Company itself can not be a key in Employee
table
5. Data Processing:
Data is stored in data base in the form of tables. Once stored; we can maintain data by updating
where required, and delete rows of data if required.
UPDATE PS_JOB SET JOBCODE =‘Data Entry’ WHERE EMPLID = 1235 AND EMPL_RCD =1
AND EFFDT = ‘2010-08-01’ AND EFFSEQ = 0
UPDATE PS_JOB SET ACTION_REASON =‘DTC’ WHERE EMPLID = 1235 AND EMPL_RCD
=1 AND EFFDT =‘2010-06-01’
UPDATE PS_JOB SET ACTION_REASON =‘DTC’ WHERE EMPLID = 1235 AND EMPL_RCD
=1 AND EFFDT = ‘2010-06-01’ AND EFFSEQ IN (0, 1)
UPDATE PS_JOB
SET JOBCODE =‘Data Entry’, SENIORITY_LEVEL =‘Expert’
WHERE EMPLID = ‘1235’ AND EMPL_RCD =1 AND EFFDT = ‘2010-08-01’ AND EFFSEQ = 0
PeopleSoft Fundamentals Introduction
o Table Creation
o Table Drop
o Consider Cartesian product between below to tables of Head Count and Grade:
Grade
B
PeopleSoft Fundamentals Head Count Introduction
40
25
While Joining Keys; do not join all keys even if matching, unnecessarily. We need to use our
judgment.
While joining Keys; you should have mapped all the higher level keys of at least one table
Types of Joins:
o SIMPLE JOIN or JOIN or INNER JOIN: Return rows when there is at least one match in
both tables
o LEFT OUTER JOIN: Return all rows from the left table, even if there are no matches in
the right table.
o RIGHT OUTER JOIN: Return all rows from the right table, even if there are no matches
in the left table.
o FULL OUTER JOIN: Return rows when there is a match in one of the tables
Consider a situation where we are joining two tales PS_JOB and PS_NAMES to get employee
job details along with name of the employee.
PS_JOB PS_NAMES
EMPLID Key EMPLID Key
EMPL_RCD Key NAME_TYPE Key
EFFDT Key EFFDT Key
EFFSEQ Key NAME
ACTION NAME_PREFIX
ACTION_REASON NAME_SUFFIX
COMPANY
LOCATION
DEPTID
POSITION_NBR
BUSINESS_UNIT
DEPT_ENTRY_DT
JOIN:
In such a case we should join NAMES with itself (self JOIN) with the left side NAMES table to
select PRI names and right side table to select non primary names.
We need to remember one thing here. All employees will have PRI (Primary) name defined; but
defining additional names is optional only. So we need to use LEFT OUTER JOIN here in this
situation to bring all employees irrespective of whether they have non-primary names or not.
Joins further explored: Let us try to get joining of Addresses and Phones of workers. All workers
who have same phone type (Ex: HOME) as that of Address type (Ex: HOME) need to be
returned.
Having construct is equal to where conditions. However, having is used to build where clause on
GROUP BY aggregated fields only. So, having comes only if there is a group by condition
K0HU10 0 3033.333333
K0HU10 1 3120.000000
K0HU10 6153.333333
8. Activity 1:
Select employees whose date of birth is less than 1980 Jan 1 st
SELECT * FROM PS_PERSON WHERE BIRTHDATE < '1980-01-01'
Select employees who are hired in this year 2009
SELECT EMPLID, HIRE_DT FROM PS_JOB A
WHERE A.EFFDT =( SELECT MAX(A1.EFFDT) FROM PS_JOB A1
WHERE A1.EMPLID = A.EMPLID
AND A1.EMPL_RCD = A.EMPL_RCD
AND A1.EFFDT <=GETDATE())
AND A.EFFSEQ =( SELECT MAX(A2.EFFSEQ) FROM PS_JOB A2
WHERE A2.EMPLID = A.EMPLID
AND A2.EMPL_RCD = A.EMPL_RCD
AND A2.EFFDT = A.EFFDT)
AND A.HIRE_DT BETWEEN '2009-01-01' AND '2009-12-31'
9. Activity 2:
Select employee data whose company is 13000
SELECT EMPLID, EMPL_RCD, EFFDT, EFFSEQ
FROM PS_JOB WHERE COMPANY =’13000’;
Select employees who are having multiple changes on same day 2010-06-01
SELECT A.EMPLID, A.EMPL_RCD, A.EFFDT, COUNT(A.EFFSEQ)
FROM PS_JOB A
WHERE A.EFFDT = ‘2010-06-01’
GROUP BY A.EMPLID, A.EMPL_RCD, A.EFFDT
HAVING COUNT(A.EFFSEQ) > 1
This will delete employee information only from Job Data component. However if we want to
delete all referenced tables of the employee then we need to run the process called Employee
Purge in the workforce administration. This process will delete employee information from all
possible tables
PeopleSoft Fundamentals Introduction
This will delete employee’s particular EMPL_RCD information only from Job Data component.
However if we want to delete all referenced tables of the employee’s RCD# then we need to run
the process called Employee job Purge in the workforce administration. This process will delete
employee’s RCD# information from all possible tables
UPDATE PS_JOB
SET ACTION =’STD’
WHERE EMPLID =’1235’ AND ACTION =’LOA’ AND ACTION_REASON =’FML’