Editing PeopleSoft Login Page

To make changes in the login page one has to change the signin.html page but all the text used by the .html is inside the text.properties

For miltilanguage instance it would be textXXX.properties

Example: To change the value of the login button from 'sign in' to 'developement' or something else one has to make changes in text.properties, signin.html & other few .html files refers text.properties for these values.


nVision Report Drill down

Unable to DrillDown in a nVision Report:

Set EnableDrillDownForFile=1 in the Process Scheduler Configuration File, then bounce & re-configure the process scheduler. This option will allow users to use the drill down option in the nVision report.





Use parameter SQLNET.EXPIRE_TIME to specify the time interval, in minutes, to send a probe to verify that client/server connections are active. Setting a value greater than 0 ensures that connections are not left open indefinitely, due to an abnormal client termination. If the probe finds a terminated connection, or a connection that is no longer in use, it returns an error, causing the server process to exit. This parameter is primarily intended for the database server, which typically handles multiple connections at any one time.


DCD is initiated on the server when a connection is established. At this time SQL*Net reads the SQL*Net parameter files and sets a timer to generate an alarm. The timer interval is set by providing a non-zero value in minutes for the SQLNET.EXPIRE_TIME parameter in the sqlnet.ora file. When the timer expires, SQL*Net on the server sends a "probe" packet to the client. (In the case of a database link, the destination of the link constitutes the server side of the connection.) The probe is essentially an empty SQL*Net packet and does not represent any form of SQL*Net level data,but it creates data traffic on the underlying proto .

If the client end of the connection is still active, the probe is discarded, and the timer mechanism is reset. If the client has terminated abnormally, the server will receive an error from the send call issued for the probe, and SQL*Net on the server will signal the operating system to release the connection's resources.


Tuxedo RCCBL

Values for config section - RemoteCall

RCCBL Redirect=0

Enter 0 to disable redirection and enter 1 to enable redirection. Redirection causes the server process to retain intermediate work files used to pass parameter values between the server process and a RemoteCall/COBOL program for debugging purposes.

Note: Redirect should always be 0 except for debugging. Work files are written to the /LOGS directory with ".in" and '.out" extensions.

Source: PeopleBooks


How to disable Workflow Tiggers in Peoplesoft ?

How to disable Workflow Tiggers in Peoplesoft ?

Main Menu > PeopleTools > Workflow > Defaults & Messages > Set Workflow defaults
Uncheck Worklist Active and Email Active


Peoplesoft Certification


PeopleSoft Multi-Language

Multi-Language - How to Determine if the application has Multi-Language

Log onto the database and run the following select statement in SQL*Plus

select Language_CD, Installed from PSLANGUAGES;

If the 'Installed' field returns a '1' in for the Language_CD, then that language is installed in the application.


PeopleSoft - Patches Bundles Maintenance Packs Service Packs

PeopleSoft Application and PeopleTools maintenance releases are intended to address defects,
performance enhancements, regulatory changes (such as tax updates), or security issues. In general, feature enhancements are part of new releases which require a product upgrade.

Application fixes and changes are delivered in a variety of means; these include individual postings (Patches), Bundles, Maintenance Packs and Service Packs.


Fixes for specific issues with an application may be posted as a standalone fix intended to address that specific issue; these are generally referred to as Patches.


Patches almost always have pre-requisites that are included in the documentation for that Patch. Patches are created by development using the most recently released bundle, this means they may list that bundle as a prerequisite. There may be other pre-requisites that are also required, all pre-requisites are clearly documented in the notes for the Patch.


Bundles are periodic accumulations of fixes resolved in that time period and applied to the application as a group. For most applications, the interval has been about every 6 weeks or 12 weeks for posting these Bundles. When Bundles are applied using Change Assistant, information about the Bundle is recorded in the Maintenance Log table for future reference. Bundles will typically require pre-requisites and occassionally post-requisites. These are documented in the notes for the Bundle. Information about the individual Report ID s associated with a Bundle is available in the supplemental information posted on Customer Connection related to that Bundle.

Maintenance Packs

Maintenance packs are less frequent updates that aggregate Bundles to minimize the number of Bundles that need to be applied. For most applications, maintenance packs are delivered once a quarter for the two most current releases.

Service Packs

Service Packs serve as a vehicle for an even larger aggregation of fixes than Maintenance Packs.
In all cases, the PeopleSoft tool Change Assistant is a valuable tool in identifying dependencies of Patches, Bundles, and Maintenance Packs.


Linux Find Files Ignore Few Directory

When you want to search for files in all folder expect few selected folders you can use the below command as reference, this will find the files with name *bkp* , *bak* & *old* in all the folders under /psoft/pt848, but will ignore the directories like psreports & log_output

find /psoft/pt848 -path '*psreports*' -prune -o -path '*log_output*' -prune -o -type f \( -iname "*bkp*" -o -iname "*bak*" -o -iname "*old*" \) -exec ls -lh {} \;

Happy Sharing
Sandeep G


Linux Top Command Details

PID -- Process Id
The tasks unique process ID, which periodically wraps, though never restarting at zero.

USER -- User Name
The effective user name of the tasks owner.

PR -- Priority
The priority of the task.

NI -- Nice value
The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a tasks dispatch-ability.

VIRT -- Virtual Image (kb)
The total amount of virtual memory used by the task. It includes all code, data and shared libraries plus pages that have been swapped out.

RES -- Resident size (kb)
The non-swapped physical memory a task has used.

SHR -- Shared Mem size (kb)
The amount of shared memory used by a task. It simply reflects memory that could be potentially shared with other processes.

S -- Process Status
The status of the task which can be one of:
D = uninterruptible sleep
R = running
S = sleeping
T = traced or stopped
Z = zombie

%CPU -- CPU usage
The tasks share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time. In a true SMP environment, if Irix mode is Off, top will operate in ´Solaris mode where a tasks cpu usage will be divided by the total number of CPUs. You toggle Irix/Solaris modes with the I interactive command.

%MEM -- Memory usage (RES)
A tasks currently used share of available physical memory.

TIME+ -- CPU Time, hundredths
The same as TIME, but reflecting more granularity through hundredths of a second.

Command -- Command line or Program name
Display the command line used to start a task or the name of the associated program.

Note: Of course you can get more info on this from 'man top'




stdapi.sqc !Routines to Update Run Status

Error: SQR runs successfully but the Process Status is showing Error in the PIA Process Monitor Page…

Issue: The two procedures required to be included in that particular SQR was missed by the developer.

Solution: Called two procedures (stdapi-init, stdapi-term) in the SQR and included the Stdapi.sqc in the bottom of the program…


Step we have to fallow to run the SQR program from the Peoplesoft environment (Process Scheduler) - Making the SQR program API aware by calling two procedures (stdapi-init, stdapi-term) from the Begin-program section and including the Stdapi.sqc in the bottom of the program.

stdapi.sqc: It contains the application program interface procedures. These procedures allow the SQR program to communicate with the Process Monitor and Report Manager inside the PeopleSoft environment.


Sandeep G


Process Scheduler Monitor Script - Logic

Sharing my simple script created to monitor the status of the PRCS scheduler services.

1. PRCS-List.txt is a file referred by my logic which contains PRCS Domain names which we have to monitor…

[Sandeep]:/dba/scripts>cat PRCS-List.txt




Script starts here….


rm $ScriptPath/PRCS-Report.txt

cat $ScriptPath/PRCS-List.txt while read line


psadmin -p status -d $line > $ScriptPath/PRCS-TMP.txt

#The below statement “egrep” checks for the services within that domain, in this case I have checked if that domain has 'BBLPSPRCSRVPSDSTSRV' running… you can change this according to version and based on requirement … When you change this list you have to change the count of process you are monitoring in the if loop “if [ ${status} -ne 3 ]” in the below line accordingly … in my case since I am monitoring only 'BBLPSPRCSRVPSDSTSRV' hence I have mentioned 3 in the if loop “if [ ${status} -ne 3 ]”

status=`egrep 'BBLPSPRCSRVPSDSTSRV' $ScriptPath/PRCS-TMP.txt wc -l`

if [ ${status} -ne 3 ]


echo "" >> $ScriptPath/PRCS-Report.txt

echo $line >> $ScriptPath/PRCS-Report.txt

`echo "Process Scheduler is DOWN" >> $ScriptPath/PRCS-Report.txt`

echo "" >> $ScriptPath/PRCS-Report.txt

echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" >> $ScriptPath/PRCS-Report.txt


#echo $status >> $ScriptPath/PRCS-Report.txt

echo "" >> $ScriptPath/PRCS-Report.txt

echo $line >> $ScriptPath/PRCS-Report.txt

`echo "Up & Running" >> $ScriptPath/PRCS-Report.txt`

echo "" >> $ScriptPath/PRCS-Report.txt

echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" >> $ScriptPath/PRCS-Report.txt



Script Output - PRCS-Report.txt will look as below; you can e-mail this to your ID from the UNIX Server….


Up & Running



Process Scheduler is DOWN



Application Server Trace Options/Settings TraceSQL TraceSQLMask



This section enables you to specify the tracing options that you can enable on the application server to track the SQL and PeopleCode of the domains. You can also set all of the trace parameters from the PeopleSoft sign-in page.





Enter the logging level for SQL tracing for all clients. Traces are written to <PS_HOME>/appserv/<domain>/LOGS/<Domain User ID>_<svrname>.tracesql. Enter 0 to disable tracing; enter 7 to enable a modest tracing level for debugging. For other levels of tracing, set this option to a value that equals the sum of the needed options. For example, to trace only SQL, enter 1; to trace SQL statements and connect statements enter 7 (1+ 2 + 4 = 7). Tracing can consume large amounts of disk space over time, so be sure to reset this option to 0 when you finish troubleshooting.




Enter the logging level ceiling for SQL tracing for individual clients. Traces are written to <PS_HOME>/appserv/<domain>/LOGS/<Client User ID>_<svrname>.tracesql. Clients must specify the necessary SQL tracing level by using the PeopleSoft Configuration Manager on the Trace tab. To prevent clients from turning on the application server trace and consuming resources, the application server uses TraceSQLMask as an administrative control facility.

If a client transmits a request to trace SQL, the application server compares the value that is transmitted to the TraceSQLMask value. If the client value is less than or equal to the TraceSQLMask value, the application server enables the trace. However, if the client value is greater, the application server enables the trace up to the TraceSQLMask value. Trace files are written on the application server; no trace shows up on the client workstation. Trace values are set in the PSAPPSRV.CFG file. Output files are written to $PS_HOME/appserver/winx86/<domain>/logs.




Enter a level for PeopleCode tracing for activity that is generated by all clients on a domain. Eligible values are defined in the configuration file. TracePC values are displayed in the PeopleSoft Configuration Manager on the Trace tab. You can find the results in <PS_HOME>/appserv/<domain>/LOGS/<domain>.log.




Enter which PeopleCode trace options that are requested by client machines will be written to the trace file. You can find the results in <PS_HOME>/appserv/<domain>/LOGS/<ClientMachine>.<domain>.log.






PeopleSoft - Backup/Rollback steps

The "standard" rollback plan has plenty of issues. Simply restoring the file backup will not revert the system to pre-migration state.

These are the steps to do a proper backup/rollback, it's not detailed but it should give you the general idea on what's involved and how to do it correctly.

Backup Steps:

1. Copy Project Definition Only to Target DB (e.g. Prod)
2. Open Project Definition in Target DB, and set Action for Project = COPY
3. Copy the Project Definition to a Project Backup file.
4. Run Data Mover or Oracle export to backup all the data in all the tables including any Message Catalog Entries and User Roles in the project.
5. At this point there should be 2 files -- the Project Backup and the Data Backup

Rollback Steps:

1. Open the project definition from the Source DB (e.g. QA)
2. Set Action for Project = DELETE (This will ensure all objects that moved are deleted)
3. Move the Project from the Source DB to the Target DB to perform the delete
4. Copy the Project Backup from file to the Target DB to restore the objects.
5. Alter Tables/Rebuild Views.
6. Run Data Mover or Oracle import to restore all Data and any Message Catalog Entries and User Roles from the Data Backup


Compare Report - Keep Vanilla or Keep Customization

Compare Report
Why Keep Vanilla or Keep Customization ? What is the difference?
The following chart summarizes the various status, action, and upgrade possibilities that could be applied to a single definition during the upgrade compare process:

For example if the Source is *Changed and the Target is Changed, the ACTION will be COPY, but the Upgrade flag will only be YES (do the copy) if you have Keep Customizations selected. It will be NO if you choose PeopleSoft Vanilla and will not be copied.If you are seeing the Source and Target both as *Changed, it should copy in either case.
Now read the example above carefully. It means that, if the source is *Changed (customer modified) and the target is Changed (PeopleSoft modified), then in this case, If you select "Keep Customization" then the source object will get copied to target. But if you select "Keep Vanilla" then the customer's customized object in source will not get copied to target.


Clean/remove all IPC resources used by the BEA Tuxedo system

IPC resources are operating system resources, such as message queues, shared memory, and semaphores. When an application server shuts down properly all IPC resources used are removed from the system. In some cases, however, an application server may fail to shut down properly and stray IPC resources may remain on the system. When this happens, it may not be possible to reboot the application server.

The command to remove IPC resources, tmipcrm, resides in TUXDIR/bin. This command reads the binary configuration file (TUXCONFIG), and attaches to the bulletin board using the information in this file.

To list all IPC resources

"tmipcrm -n [TUXCONFIG]" (Ex. tmipcrm -n D:\PS\appserv\PSDEMO\PSTUXCFG)

To Clean/remove all IPC resources used by the BEA Tuxedo system

Application Server Command
tmipcrm -y /apps/psoft/pt844/appserv/PSDEMO/PSTUXCFG

Process Scheduler Command
tmipcrm -y /apps/psoft/pt844/appserv/prcs/PSDEMO/PSTUXCFG

This will remove the IPC resources associated that particular domain…


PeopleTools ERP Connectors Y/N

The ERP Connectors are used with the Integration Broker product. If you do not plan to utilize the Integration Broker portion of PeopleTools, reply NO to the prompt. If you do plan to use Integration Broker, reply YES to the prompt. If you reply NO to the prompt but then later decide to use Integration Broker you will have to go back and reinstall PeopleTools. The YES will cause files to be unloaded to your PsHome for use with the Integration Broker product.


PeopleSoft - Character Length Semantics


Issue: While running the database Setup step during installation we received the error shown in the screen shot…




Add this parameter in the Oracle DB parameter file & restart the DB.










Grant access for a User to perform object migration

How to grant access for a User to perform object migration

To create user who can perform object migration from one environment to another environment, without having write access to the Application Designer objects like record, field, Application Engine, PepleCode etc.



Login to PIA:


Go to Home People Tools Maintain Security Use Permission Lists open the permission list the user has.  Then go to People Tools tab, tick Application Designer Access.  You may set different objects permissions to read only if you click the links for Definition Permissions, Tools Permissions, and Miscellaneous Permissions.
You should have "full access" to project.

You can set Build script only or more in Build / Data Admin of Tools permission. Once the user has this permission list, the user should be able to migrate the project and build the project only.





Peoplesoft Server cache and cookies

With Peoplesoft Internet Architecture don't have local cache files on work station. All the cache files are on your Web Server and Application Server.

Web Server CACHE:

If you are using Web Logic as web server: The cache files are under Web Logic/My Server/Public_html/"PIA Instance name"/Cache.
If you are using Apache as web server: The cache files are under Apache Group/Apache/psftdocs/"PIA Instance name"/Cache.

App Server CACHE:

You also need to cache on App server domain which can even corrupt some times.
App server cache is located under your App server Box's PS_HOME/Appserv/"Domain Name"/Cache.


The only cache files on workstation when you use Peoplesoft Internet Architecture are Browser cache and cookies. You can delete browser cache from Internet Options->delete Temporary internet files.
Cookie, it downloads for the first time you signin for each PIA instance and every user you signed in from that work station's Browser. You can check these from Browser->tools->internet options->General Tab->settings Button->View files. You will see different files by name with cookie. The only way to delete them is manually each cookie or all the contents from this directory. Once you delete cookie, you get a new cookie created on browser when you sign back-in





Tuxedo WSL JSL Ports

Ports allocation for Application Server Domain:

Ports required for WSL and WSHs:
The number of ports required are 1 + [Max Handlers] where [Max Handlers] is the maximum number of workstation handlers configured. The algorithm used to start a WSH is a random port available after the port for WSL. On higher releases, the system automatically sets the range, starting from [WSL_port] + 1. Any port between 1025 and 65536 (both inclusive) is valid for WSL.

Ports required for JSL and JSHs:
The number of ports required are 1 + [Max Handlers] where [Max Handlers] is the maximum number of jolt handlers configured. The algorithm used to start a jolt handler is the first port available after the port for JSL. There's no need to force the range, it's automatic. Any port between 0 and 65535 is valid for JSL.


PeopleSoft DBA Interview Questions

  1. Application Designer
    1. Customization done in Dev DB, Which tool is used to move it to Prod DB? - Use App Designer -> Copy DB
    2. What is the difference in logging into App Designer in 2-tier and 3-tier mode?
    3. How do you compare two projects?
    4. How do you clear App Designer cache?
    5. How do you check whether you have logged into 2-tier or 3-tier?
    6. When logging in “Invalid AccessID and password for signon” pops up. What is the issue?
  2. Data Mover
    1. What are the different modes you can login into Data Mover?
    2. How do you login into BS mode? – DB Access ID


PeopleSoft - Change Access ID Password

To Change the Access ID password, possible methods are listed below:

There are ONLY 3 ways to do this. These options MUST be done in 2 tier and your application servers, Process Schedulers, and Web Servers MUST BE DOWN and ALL users need to be logged off if possible.

METHOD # 1 - (Preferred Method) Log into Data Mover as the Access ID (Bootstrap mode).

Then run this command:

CHANGE_ACCESS_PASSWORD sa1 (This is your symbolic ID) cloud123 (This is the new password for the Access ID);

And hit the Green traffic light.

NOTE - This method does NOT work in PT 8.14 or 8.15, but is now fixed in PT 8.16 (T-JPELAY-AU4QW) so use method 2 or method 3. You MUST also make sure that the password for the Access ID has successfully been changed at the Database level because prior to PT 8.17 this method would not change the database level password. To do this go through your SQL tool (SQL Plus, Query Analyzer) and make the change in the database users table.

METHOD # 2 - (Second best method) You need to change the Access ID Password at database level then log into Data Mover in bootstrap mode and run:

update PSACCESSPRFL set ACCESSID = 'what your Access ID is' , ACCESSPSWD = 'your New Access Password' , ENCRYPTED = 0, where SYMBOLICID = 'whatever the SYMBOLICID is';

Then run


Note: If you have more than 45,000 rows in the PSOPRDEFN table then you may not be able to run the ENCRYPT_PASSWORD *; command in Data Mover. In that case just logon as a valid user in 2 tier and that will encrypt the Access ID in the PSACCESSPRFL table.

This will synch up the PSACCESSPRFL table with the same password stored at the database level for your Access ID.

METHOD # 3 - (Last and most discouraged method) Go into Application Designer / Tools / Miscellaneous Objects / Access Profiles.

Highlight the Symbolic ID and push the Edit button, enter the old password, new password, and confirm new password.

If you change it in Application Designer it does not change at the database level. This is because we do not GRANT to the database in PT 8. You MUST also make sure that the password for the Access ID has successfully been changed at the DB level. To do this go through your SQL tool (SQL Plus, Query Analyzer) and make the change in the database users table.


PS Query Permissions/Security in Peoplesoft

PS Query Permissions/Security

In Peoplesoft we cannot give access to any query directly like we provide it for components. user should have access to all the records in the query to access a particulary or use that record to create a query. Permission to the records needs to be provided first.

Private queries are visible to only those users who has created that query. query needs to be created as public for other users to access (given that they have access to all the records used in the query). security/permission to records are provide through query security tree and access groups.

In Query Tab of the Permission list set of query permission are present.

1) Access Group permission

2) Query Profile

Access group permission: This contains the list of the Access groups (nodes) in a particular query tree (it contain records that can be accessed) that a permission list has access.
Provide tree name and query access group here to get access to all records under query access group in this tree.

Tree Name and the Access group name needs to be entered.

Query Profile:
1)PeopleSoft Query
2)PeopleSoft Query Output
3) Advanced SQL Options

properties under each of these sections are set.
This defines what user can basically do with PS query.

PeopleTools > Security > Permission > Roles Permission Lists

Managing the query security tree

Query trees are accessible in Query Access group manager and not under the Tree manager.

PeopleTools > Security > Query Security > Query Access Group Manager.

Different trees for different category. Eg:- HR, BEFEFITS_ADMIN (contains BEFEFIT related records).

Each Leaf in the Tree corresponds to one record in this query tree.

Record is not Visible in PS Query ?

Add this record in the tree under the access group to which your primary permission list has access. (Query access group component)


Add the access to your Tree and access group in which this record is present.


HTML Procedures in SQR

Creating HTML output from SQR


To use the HTML procedures listed below, your program must reference the HTML procedures.

Issue the following two commands at the start of your program:


#include html.inc

do html_on


The file html.inc is located in the SAMPLE (or SAMPLEW) directory.  Use the command-line flag -I to indicate this location.


There are 6 types of HTML procedure that can be used to easily create HTML o/p files.


General Purpose Procedures

Heading Procedures

Highlighting Procedures

Hypertext Link Procedures

List Procedures

Table Procedures



1) Html_br


Produces the specified number of line breaks in a paragraph using the HTML<BR> tag.

This causes the paragraph to be continued onto the next line.


Syntax: html_br(number count, string attributes)


count    = the number of HTML <BR> tags that are inserted.

            Attributes          =          the HTML attributes that are incorporated inside the HTML <BR> tag.


Example: Producing a line break:

            Print 'Here is some text' ()

            Do html_br (3,'')

            Print 'Here is some three lines down' ()


2) Inserts an image using the HTML <IMG> tag. This can also be done using the command PRINT-IMAGE;

However, the procedure html_img provides the ability to specify the full set of available HTML attributes.


Syntax:             html_img (string attributes)


Attributes          =          the HTML attributes that are incorporated inside the HTML <IMG> tag.


Some common attributes:


Src       =          URL of the image to be inserted (Ex:  src=/images/abc.gif)

Height =            height of the image in pixels (Ex:  height=200)

Width   =           width of the image in pixels (Ex:  width=400)


Example:          Producing an image:


Do html_img('src="/images/stop.gif"')


-Posted by

Ganesh A.M



SQL Best Practices in 20 mins

SQL Best Practices in 20 mins


-Ganesh A.M


Field Default event in Peoplesoft

Field default event Peoplecode in Peoplesoft

The People code in this event is used to initialize the default values for the fields in the component.

What happens when the field has default value defined in the record field properties and has People code assign the different value in the Field default people?

The Field default event People code will only fired when there is not default value defined for that field in the record field properties, so the value assigned in the record field properties will be initialized to that field.

-Ganesh A.M


Common Query Access Issues

Common Query Access Issues


a) User cannot see a table they wish to query from in query manage

   User does not have access to the table via one of their Access Group. Double-Click that they have the Proper Access group on one of their Permission lists an ad the table to an Access group if necessary.


b) A user cannot see a public query from search screen in either query manager or query viewer.

     Once you have determined that the query does in fact exist, and I s indeed a public query, then the user probably does not have access to all the tables being used in the query. If a user does not have access to all the tables involved in a query, the search screen itself will filter out the query, so that it does not even appear in the list. Double-Check that they have the proper Access group on one of their permission lists and add the table to an Access group if necessary.


Posted by

-Ganesh A.M



Row Level Security in Peoplesoft HRMS

Row Level Security in Peoplesoft HRMS


The Default department security is name DEPT_SECURITY and the SetID is the share, although you may choose to create one to operate with a different Setid, depending on your environment.


Root level on this tree represents your company or organization. Below that you are adding departments in a hierarchical manner until you have built on organizational char of your company’s department structure.


When you click the link on one of department levels to either insert a child or a sibling node, you will be allowed to either choose an existing department that has been created or to create a new department on the fly by clicking Add.


Tie date Permission lists to Your Trees


Define Business Rules - > Administer HR systems -> Use -> Maintain Row level Security


1)       Select a Permission list – It needs to created in the maintain security menu.

2)       Peoplesoft standard is to generally preface them with DP

3)       In the Data security profile page, you need to add the Departments that this permission list will have access to.

4)       You need to provide SetID for the Department Security Tree you are using and then enter the DeptID for the node you are choosing.

5)       Department Security Tree is hierarchical, that by adding an access to a department, you are automatically granting access to all the departments below that node as well.

If you need to exclude the data from a particular ‘Sub-Department’ you will have need to add that department separately to this list, and choose ‘No Access’ as the Acess code instead of the default of ‘Read/Write’.


Change the security Basis for the System


The final step to implement Row level security in HR is to change all the search views controlling which data is accessed on various pages. Luckily you don’t have to change it manually change each one, as Peoplesoft has delivered a process that takes care of it all for you. Please note that you only run this Process when turning on Department security System-Wide, Or when removing it from the system.


Define Business Rules -> Define General options - > Process - > Change Row Security Basis.


You need to choose option for Department security, to turn Department security on, or the Option of ‘None’, to turn Department security off.


-Posted by

Ganesh A.M



Application Designer - Change Control

To enable change control in the Application Designer, navigate to the link [shown in the picture] in the application designer and check the check box appropriately.

  • Use change control locking
  • Use change control history


Exception Handling in Peoplesoft

Exception Handling in Peoplesoft

Exception handling is the processing you initiate when an exception occurs. You can handle errors in PeopleCode using the Catch statement. The places in your code where you want exceptions handled must be enclosed by the Try and End-Try statements.

The Exception class encapsulates exceptional runtime conditions. It can be used with most PeopleCode programs.

The process of error handling can be broken down as follows:

• An error occurs (either a hardware or software error).

• The error is detected and an exception is thrown (either by the system or by your program).

• Your exception handler provides the response.

You can create exceptions in 2 ways

1) Creating an Exception base class that encapsulates the built-in function call and handles its function parameters consistently. This is the preferred way.

2) Calling the built-in function CreateException.

Application code often continues some form of processing even in the event of an exception; you should not assume that the script all processing if an exception occurs.

The error message that PeopleTools displays might not be appropriate for end-users because of its technical information.

The Exception class does not work with any of the PeopleSoft APIs, that is, the classes whose objects are declared as type ApiObject. This includes the Tree classes, the Query classes, Search classes, and so on.


Protected StatementList

catch QualifiedID &Id



Example 1:-

Import ExceptionPackage:*; 
try               /* Code to manipulate &MyArray here */
 &MyArray = GetArrayData(&Param1, &Param2, &Param3); 
catch ExceptionNull &Ex1
 If &Ex1.MessageSetNumber = 2 and &Ex1.MessageNumber = 236 Then 
   /* this is the message set and message number for &MyArray being Null */ 
   /* do data error handling */


Example 2:-
Local Exception &ex;  
Function t1(&i As integer) Returns number 
   Local number &res = &i / 0;     
Function t2 
   throw CreateException (2, 160, "'%1' doesn't support property or method '%2'", "SomeClass", "SomeMethod"); 
/* this will cause a divide by 0 leading to an exception. This code will never be caught since t1(2) will resume execution in the catch block below. It is here to show how an exception can be thrown directly bythe Peoplecode itself. */
  t2 ();   
Local number &res = t1 (2); 
Catch Exception &caught 
   MessageBox (0, "", 0, 0, "Caught exception: " | &caught.ToString()); 

Posted by