Load Cache - loading the shared cache

With PeopleTools 8.50, you now have these options for loading the shared cache

for application server domains:

Serial cache loading

Parallel cache loading.

Serial cache loading refers to the existing process for loading shared cache. In previous releases, when loading the shared cache for application server domains, system administrators ran an Application Engine program named LOADCACHE.

The LOADCACHE program, adds each applicable cache object to the shared cache, sequentially. The LOADCACHE program is in place in PeopleTools 8.50, and it runs if you choose Serial LoadCache on the Process Request page after clicking Run on the Load Application Server Cache page.

Parallel cache loading refers to a new option intended to reduce the time required to build a shared cache. Parallel cache loading splits the work of the LOADCACHE program into two separate Application Engine programs that run simultaneously within the PSJob PLCACHE, which runs when you select Parallel LoadCache on the Process Request page after clicking Run on the Load Application Server Cache page.

Reference: Pre-Release Notes


When Security process should be executed

Refresh SJT_OPR_CLS and Refresh SJT_CLASS_ALL are Security process.

When to execute Refresh SJT_OPR_CLS process

On the Roles - Permission Lists page

• Add a permission list with data permission to a role that is already assigned to one or more users.
• Remove a permission list with data permission from a role that is already assigned to one or more users.

On the User Profile component

Add a row security permission list.
• Delete a row security permission list.
• Add a role with data permission.
• Delete a role with data permission.
• Clone an existing profile that has data permission through roles or a row security permission list.
• Deactivate a user.

You can refresh SJT_OPR_CLS in real-time by using the subscriptions on the USER_PROFILE and ROLE_MAINT messages or on demand using the SCRTY_OPRCLS app
engine process.

Run the Refresh SJT_CLASS_ALL process when

• Add a new department to a department security tree.
• Delete a department from a department security tree.
• Move a department to another parent node in a department security tree.
• Modify a department security tree.


Real-Time updates of the Transaction Security Join Tables

Real-Time updates of the Transaction Security Join Tables.

One of the big enhancements for HRMS 8.9 is that the security join tables are updated in real-time instead just using an Application Engine process. This is accomplished by using a special subpage that contains the working fields that are needed. This subpage (SCRTY_SJT_UPD) needs to be put on a page that is in the components where the transaction records are updated. For the transaction record JOB, the subpage has been attached to the JOB_DATA1_WRK page. This page is included in all of the components where the JOB record is updated (either directly or as a component interface).


Security Join Tables - SJT Tables in Peoplesoft

There are 2 type of Security Join tables

1)Transaction - Security Join Tables
2)User Side - Security Join Tables

Transaction security definitions are stored in one of the following four SJTs, depending on the kind of transaction data:
• SJT_PERSON (stores person-related transaction data)
• SJT_PERSON_USF (stores person-related transaction data for USF installations)
• SJT_DEPT (stores department-related transaction data)
• HRS_SJT_JO (stores job opening-related transaction data)

User security definitions are stored in the following two SJTs:
• SJT_CLASS_ALL The row security access assigned to a permission list (role-based or row security).
Contains the data permission information for all the permission lists that are given data access on the Security by Dept Tree page or Security by Permission List page.
Following are keys
• SJT_OPR_CLS Which user profiles are assigned which permission lists
Contains the user IDs of people with data permission and the permission lists with data permission that are assigned to them.
Stores Data From


Application Engine - Reuse Flag

PeopleSoft Application Engine programs use bind variables in the SQL statements, but these variables are just PeopleSoft specific. When the statement is passed to the database it sends the statement with literal values. The only way to tell the application engine program to send the bind variables is by specifying the Re-Used flag for that statement that needs to use the bind variable.

If any customizations are performed, it is recommended that the Reuse Flag be set to “Yes” for all program steps.

AE Trace


AE Trace

You can get detailed AE Trace as shown above by appending the tace flags in the process definition > options page.

-TRACE 384 - will give you the detail timing of the SQL.


Textcatalog in the peoplesoft.

Text catalog in Peoplesoft

To set up a non-application specific text catalog
Set Up HRMS, Common Definitions, Text Catalog and Notepad menu.

Text Retrieval Delivered Function


GetHRSSText(&AppCode, &SubId, &TextId, &Effdt, &TargetLanguage, &Key1, &Key2, &Key3, &Key4, &ReturnedText, &S1, &S2, &S3, &S4, &S5);

It uses the substitute function to replace the bind value parameter in the text catalog.

You may decide to either:
1)Implement the generic API directly within your application’s code, or
2) Create an application-specific front-end to call the API.


How the Security views work

How the Security views work

The security views work by joining together the security join tables along with the OPRID of the user accessing the view. All security views share some characteristics both in their structure and their view text.
Each view must include the OPRID as a key field, the keys for the transaction data, and any additional fields that are used as search or list box fields. Most core views also include other fields from the security join record that other views can enter where criteria against.
We are not including ROWSECCLASS as a key in the security views. This is because if we do, then we would have to require a ROWSECCLASS be entered for every OPRID. The reason for this is that when the join to PSOPRDEFN is done behind the scenes, it will put the value of PSOPRCLS into the field returned from PSOPRDEFN.ROWSECCLASS if the ROWSECCLASS is blank. If the PSOPRCLS is also blank, then the OPRID is returned. This makes it impossible to join to the SJT_CLASS_ALL table. Including the ROWSECCLASS as a non-key field in the security view is okay, but does not provide any benefit. You will still find it in some views because it was less risky to leave it there for now.
The core views need to join in PSOPRDEFN, SJT_CLASS_ALL, and the appropriate transaction SJT. For example, for People with Jobs and/or People without Jobs the SJT record is SJT_PERSON.


Security Sets and Security Access Types

What is Security Set and Security Type ? How they are different ??

Security Set - a grouping of data that is being secured.
The sets differ by the origin of the transaction security data. For example, people of interest without jobs is a separate security set from people with jobs because the transaction data used to secure the access does not come from the JOB record, but from the PER_POI_SCRTY record.

Following the delivered security set

1) DEPT - Department - SJT_DEPT
2) PPLJOB - People with Jobs - SJT_PERSON
3) PPLPOI - People without Jobs - SJT_PERSON
4) PPLUSF - US Federal People with Jobs - SJT_PERSON_USF
5) RSOPN - Recruiting Job Openings. - HRS_SJT_JO

Security Types - SCRTY_TYPE_TBL

Security access types are different ways of securing the data within a security set. Each security set has a number of security access types that you can choose to enable. Among other things, security access types determine:
1) The security transaction data.
2) there is data security for future-dated rows.
3) If the access type uses a department security tree.

Few of the Delivered security types

Security set Type Descr Trans. Record Tree
DEPT 021 Departments by Tree DEPT_TBL DEPT_SECURITY
DEPT 022 Departments - non Tree DEPT_TBL
DEPT 023 Departments by Setid DEPT_TBL
PPLJOB 001 Job Department Tree JOB DEPT_SECURITY
PPLJOB 002 Job Location JOB
PPLJOB 003 Job Business Unit JOB
PPLJOB 004 Job Company JOB


Application Class Tester

Application Class Tester

Enterprise Componets > Component Configurations > Application Class Tester

Purpose of the component
1) PIA page that a user can use to test an Application class API
2) Component can test one application class and one method at a time.
3) Tester will be able to use pass parameter values for the methods. Data types for the parameters will be basic types only.
4)PSScripts can be generated to test the application class with less customization.

Description of the page fields

classpath :- the classpath to the application that needs to be tested.
Constructor parameters :- (Optional) constructor parameters.
Class method:- the method name in the application class that needs to be tested.
Method parameters:- method parameters if any.
submit :- executes the method call the results
Display only result edit box:- This box is for psscript. It is just a concatenation of the method and parameter return values. for the special data type return values gives class name like Record, Row, Rowset.


Sample Peoplesoft HCM Function interview/certificate questions

A data entry operator has five pieces of information for one employee that must be put into the system. Each action occurs on the same date and they are entered into the system as follows: 1 - February 14, 2003 - Reorganization 2 - February 14, 2003 - Promotion 3 - February 14, 2003 - Pay Rate Change 4 - February 14, 2003 - Data Change 5 - February 14, 2003 - Transfer. What is the fourth row that is displayed after the data entry is completed?

Data Change
Promotion (*)
Pay Rate Change

When working on a conversion, what does PeopleSoft recommend you use as the initial effective dates on the Job Code Table?

use 01/01/1900 use the date of your conversion
accommodate your longest active tenured employee
accommodate your longest tenured employee (*)

You have just added a new department to the Department Table. It is active and its effective date is less than today's date. When you try to transfer an employee to that department on an inserted row with today's date, the new department is NOT showing up. How can you resolve this issue?

run the Refresh Employees Table Process
add the department to the active Department Security Tree (*)
run the Update Department Security Tree Process
manually type in the department in the Department field and select Save from the Icon menu
Change the effective date of the record to match the effective date of the new department

You are helping the Compensation department set up the Job Code Table. Which three tables are associated with the Job Code Table and therefore should be set up prior to setting up the Job Code Table? (Choose three.)

Salary Plan Table (*)
Job Function Table (*)
Job Description Table
SetID Table (*)
Job Hazard Table

What are four security solutions that are delivered with PeopleSoft? (Choose four.)

Fast Security 4
Fast Security 3 (*)
Location Security
Fast Security 2 (*)
Company Security
Department Security (*)
Fast Security 1 (*)

For the action of Short Term Disability, what is the resulting employee status?

Leave of Absence (*)
Leave with Pay

A company wants you to set the dependent age limit to 19 for all benefits. Which table should you use?

Benefit Plan Table
Calculation Rules Table
Dependent/Beneficiary Table
Benefit Program Table (*)

Which table has SetID as a high-level key?

Business Unit Table
Location Table (*)
Job Profile Table
Comp Rate Code Table
Company Table

Where do you enter default values that are specific to a PeopleSoft user?

Business Unit Options Defaults
Location Table
Installation Table
Org Defaults by Permission List (*)
User Profiles Component

A customer wants to set up a vacation plan and have the ability to track the vacation balances. Which three tables must be set up before you can track the vacation balances? (Choose three.)

Calculation Rules Table
Provider/Vendor Table (*)
Earnings Table (*)
Deduction Table
Benefit Program Table (*)

On the Job Earnings Distribution Page, what are three ways you can distribute the employee's compensation? (Choose three.)

to a different Company
to a different Department (*)
to a different Job Codes and/or Position (*)
to a different Pay Group
to a different General Ledger Type (*)

Which HRMS module does NOT use the Group Build functionality?

Payroll (*)
Training Administration
Total Compensation Reporting
Variable Compensation
Salary Planning

A customer asks you to set up a medical plan on the Benefit Plan Table. Which table must you set up first?

Flat Rate Table
Calculation Rules Table
Health Plan Table
Plan Specific Table
Provider/Vendor Table (*)

Which statement is true when processing benefits with multiple jobs?


Peoplecode Facts - Peoplecode information

Order of Execution of PeopleCode Programs

1. PeopleCode event.
2. Within an event, by level order-as determined by the buffer allocation order.
3. For a given field, first record PeopleCode, then component PeopleCode.

WinMessage should not be used in production. It works for browsers running in a Windows
environment, but it is Windows specific. Use it only during development, then remove or comment out the code before putting it into production. WinMessage is supported for compatibility with prior releases of PeopleTools. New application development should use the MessageBox function instead and is supported for
both Unix and Windows operating environments.

Trace Peoplecode
Here are five ways to start a trace:
• The Trace PeopleCode page - PeopleTools, Utilities, Debug, Trace PeopleCode
• Click the link to set a startup trace on your PeopleSoft sign on page.
• Use the Trace utility on Configuration Manager.
• Include the SetTracePC PeopleCode built-in function in a program.
• Append the trace flags in the process definition parameters to trace process running on the process scheduler.

Only two-tier or three-tier development environment applications (such as an Application Engine program being tested from Windows) can be traced using the Configuration Manager trace panel.

Commenting Peoplecode

Both the REM comments and the /* */ style of comments can span multiple lines. However, the
recommended method is to use the latter (/* ... */), since it can span multiple PeopleCode statements and is
therefore more flexible.

Commented text cannot exceed a maximum of 16383 characters.

As of PeopleSoft 8.4 you can use <* and *> to comment out a block of code that includes nested comments.

Use RowSelect to:

• Prevent a row from loading by using the DiscardRow function.
• Stop loading rows into the buffer by using the StopFetching function.
RowSelect PeopleCode is placed on a record field or component record.
Warnings and errors can be placed in RowSelect but will not be displayed to the user and are not used for that purpose in this event.


Points to remember in Scroll peoplecode

hierarchy of the component buffer/scrolls the way people code should navigate to


A rowset contains one or more rows
A row contains one or more records And zero or more child rowsets,
And a record contains one or more fields.

sample scroll people code.

First you need to define ROWSET objects:

Local Rowset &LEVEL_0;
Local Rowset &PERFORM;
So now you have to seed or instantiate the Rowset:

&LEVEL0 = GetLevel0();
&PERFORM = &LEVEL0(1).GetRowset(Scroll.SCROLL);

Step through your Rowset.

For &i = 1 To &PERFORM.ActiveRowCount

Extract data.


Update the data on the grid:



Interview questions and answer for Peoplesoft HCM / HRMS

HRMS Fundamentals 9.0

1. What are all the components will have data permission security control access?
• Departtments
• Employee, Contingent Worker, and POI with Jobs.
• POI without jobs.
• Recruiting Federal People with jobs.
• Template based hires.

2. What are all the organisational relationships available while hiring an employee?
• Employee
• Contingent Worker
• Person of Interest (POI)

3. List down the people part of the POI?
• COBRA Participants
• Pension Payees
• Global Payroll Payees
• Stock non-HR Person
• Stock board members
• External Instructor
• Payroll Employees
• External Trainers

4. What are all the People Tools Security?
• Permission List
• Roles
• User Profiles

5. What are all the default programs you need to run after the creating the user profile?
• Refresh Trans. SJT tables
• Refresh SJT OPR CLS

6. What are all the default Permission List used while creating the User ID?
• Navigator Homepage Permission List
• Process Profile Permission List
• Primary Permission List


Apply Bundles and Patches in Peoplesoft

Following points that you need to know when applying bundles /patches to peoplesoft

  1. Source Status means the condition of the object from the Source DB perspective; the Source DB is your DEMO.
  2. Target Status means the condition of the object from the Target DB perspective; the Target DB is usually your DEV or TST environment.
  3. The status is determined by PS during the compare process by looking at the LASTUPDOPRID of each object type. If the LASTUPDOPRID = ‘PPLSOFT’ the object will have a status of either CHANGED or UNCHANGED. If the LASTUPDOPRID <> ‘PPLSOFT’ the object will have a status of *CHANGED or *UNCHANGED. The other status is ABSENT, meaning the object doesn’t exist in one DB or the other.
  4. The UPGRADE ACTION is what PS proposes to do with the object; DELETE the object from the Target DB, COPY the object from the Source to the Target DB or COPYPROP, copy properties of the object from the source to the target DB (Look at COPYPROP as the same as COPY).
  5. The Take action is simply a default action recommended by PS – Upgrade this object or do not Upgrade this object.
  6. The Copy Done flag simply indicates if the object has been copied, these values are reset when a project is copied from one DB to another.
  7. If the object has a source / target status of CHANGED / *CHANGED, 9 times out of 10 you should go with the PS object overwrite. This means a customization will be overwritten; however, you know your customizations better than you know the changes PS is making so it is usually much easier to reapply customizations rather than apply new PS changes to your customized object.
  8. If the object has a status combination of ABSENT / *CHANGED – unless you KNOW this is a bolt-on, in which case it would not be in the project to begin with, you should DELETE the object. If you do not delete objects that PS wants to delete, especially PeopleCode and RecFields, it can make the system very unstable, pages won’t pull up, error out, etc …


Integration Broker Domain List

These data are populated automatically each time when a new appserver domain connects to the same database which is represented by the correspondent PIA.

Just in case if you are interested to know where exactly those data reside at back end...

The Integration Broker Quick Configuration page where you see those domains the data come from the view named PSIBDOMSTAT3VW, and that that view in turn takes them from the table PSAPMSGDOMSTAT.

So ultimately PSAPMSGDOMSTAT is the table which holds these information.


Heap size for the Change Assistant

Sometimes when we import BIG package the default heap size for the Change Assistant will need to be increased in order to show the template (xml file).

Please follow the steps below to increase the heap size. This must be done before you open Change Assistant to apply the package:

1. Right click on the CA shortcut that you use to launch CA.
2. Choose Properties...
3. In the Target text box append -Xmx300m should look like "C:\Program Files\PeopleSoft\Change Assistant\changeassistant.exe" -Xmx300m


Application Class Navigation and Drilldown

A productivity issue of navigating from one method in one class to another method in another class while developing the code has always existed.
With the application class navigation and drilldown feature developers are just one click away from any application class program or method called within another line of PeopleCode.

Users has to wait for 8.50 to use this feature.


Peoplesoft - Connected Query

One of biggest disavantage of the PSQuery it cannot have the nested result set like a row set.
Which on makes in not good option for the complex reports especailly BI Publisher.
The new feature will make this happen

PeopleTools 8.50 includes a new feature that will allow users to connect or join multiple queries to produce a single output file. Joined queries can represent parent-child data relationship, nested data or even unrelated data. This feature will be useful to customers in a number of ways:

Prepare an XML output file that contains nested PeopleSoft data for use in an XML Publisher report. This will allow XML Publisher to produce complex reports from the PeopleSoft system through the use of a "sub-report" type of feature.
• Provide PeopleSoft data to external systems that represent nested data relationships.
• Connected Queries can be scheduled and are also PeopleSoft Managed Objects


Query Feeds

Reports in Feeds - The new way to access reports in peoplesoft.
As of PeopleTools 8.50, all PSQuery objects can be defined as the source of an RSS feed. This will allow users to define a feed from a particular set of PeopleSoft data. Once a feed is defined, the user can simply subscribe to the feed and gain access to the data through a standard feed reader – something like Microsoft Outlook, Mozilla Thunderbird or their browser.
Queries are probably the best mechanism for users, departments or entire organizations to create standard definitions of reusable PeopleSoft data. Combining this capability with the PeopleTools RSS Feed architecture enables our customers to provide their users access to system data without requiring them to actually login to the system directly.
Access to query data always requires user-level validation, so even when being read in a Feed Reader, customers know that their critical data is secure.