0% found this document useful (0 votes)
241 views71 pages

Peoplesoft Q&a

The document discusses different types of variables, ways to pass data between steps, prerequisites for state and temporary records, how to read run control parameters and execute Application Engine programs through push buttons in PeopleCode. It also covers tracing Application Engine programs, different types of Application Engine, programming for restarts, set processing, testing/debugging, order of action types, parallel processing and error handling in Application Engine.

Uploaded by

ur_bha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
241 views71 pages

Peoplesoft Q&a

The document discusses different types of variables, ways to pass data between steps, prerequisites for state and temporary records, how to read run control parameters and execute Application Engine programs through push buttons in PeopleCode. It also covers tracing Application Engine programs, different types of Application Engine, programming for restarts, set processing, testing/debugging, order of action types, parallel processing and error handling in Application Engine.

Uploaded by

ur_bha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 71

What are different types of variables in the Application Engine PeopleCode?

Local variable - These are available for the duration of the program in which they are
declared.
Global / Component variable  - These variables are available while the Application
Engine program is running. They are saved at commits and checkpoints,
So they can be used for restarts. Component variables are same as Global incase of
the AE.

What are the Different ways pass data between the steps?

1) State records - One row can be passed and can have many state records.
2) Component/Global PeopleCode variables
3) Temporary records - Multiple rows of data can be passed.

What is Prerequisite for the State record?

1) Should be either Derived work record Or SQL Table.


2) Name of the record must end in AET; this is how the system identifies the record as a
state record.
3) PROCESS_INSTANCE must be a key.
4) Any data types except character or numeric must not be required fields.

Note: - No PeopleCode fires on an Application Engine state record.


No Validation of translate values or Prompt tables are done.

How to read the runctrl parameters in AE?

1) SQL: - %Select (EMPLID) Select EMPLID from PS_AERUNCONTROL where


PROCESS_INSTANCE = %PROCESS_INSTANCE and ORPID = %oprid

2) PeopleCode: - &SQL = “Select EMPLID from PS_AERUNCONTROL Where


PROCESS_INSTACNE =” PS_TEST_AET.PROCESS_INSTANCE “and OPRID =”
%oprid.
%PROCESS_INSTANCE or %Bind (PROCESS_INSTANCE) can be used.
%PROCESS_INSTANCE is more efficient and faster.

 
How do you execute Application Engine through Push Button?

1) CreateProcessRequest () , Schedule ()
2) CallAppEngine.

What is the syntax for CallAppEngine?

CallAppEngine (applid [, state record]);

What are the 3 trace parameters you can pass to your psae.exe?

- TRACE
- TOOLSTRACESQL
- TOOLSTRACEPC

Which Trace option is the best place to start for general performance information?

- TRACE 384 - mostly used trace value.

What is the difference between a Trace value and Trace parameters?

A Trace parameter determines which type of trace is turned on.


A Trace parameter determines what type of data is recorded in your trace files (s).

What are the 3 common ways to pass a trace parameter and value to your program
psae.exe?

Configuration manager, Process Definition, Command prompt.

What are the Different types of Application Engine?

Standard: Standard entry-point program.


Upgrade Only: Used by PeopleSoft Upgrade utilities only.
Import Only: Used by PeopleSoft Import utilities only
Daemon Only: Use for daemon type programs.
Transform Only: Support for XSLT Transform programs.

How do you program AE program for the restarts?


Program Level State Record
One of the state record needs to SQL Table, Since All Derived work record will be re-
initializing on commit.

Program Properties
On the Advanced tab in the program properties dialog box, make sure that disable
restart is not checked.

Configuration manager
In the configuration manager, sure that Disable restart is not selected on the process
scheduler tab.

Section Level
Section type - The option for section type are prepare only and critical updates
If the section is preparing data i,e select data, Populating temporary tables, or updating
temporary tables then the section should be prepare only.

If the section is updating the permanent application tables in the database, you should
select critical update.

Step Level
Add an order by clause
%Select Field Select Field1 from PS_SOME_RECORD Where FIELD1 > %Bind
(FIELD1) Order by FIELD1.

** The only restriction for batch runs occurs when you have restart enabled, and you are
inside a Do Select that is of the Select/Fetch type (instead of "Re-select" or
"Restartable"). with select/Fetch, all commits inside the loop are ignored, including the
commit frequency if it's set.

What is Set Processing?

Set Processing uses SQL to process groups, or sets, of rows at one time rather than
processing each row individually. With row by row processing you following a repetitive
loop that selects a row, determines if it meets a given criteria, if so, apply rule x to row
Update row, commit. With set processing, you only select those rows that meet the
filtering criteria and then run the rule once again all the affected rows.

What are advantages of Set Processing?

Improved Performance: Our internal testing has revealed that, in an overwhelming


majority of cases, set processing performs significantly better than it is -by-row
counterpart for “reasonable” batch processing volumes.
Minimized SQL Overhead: - It tends to use fewer Application Engine SQL statements
that each processed more data than the statements executed in row-by-row processing.

Easy Maintenance: - if need to make a fix or add an enhancement to SQL, it’s just a
matter of modifying the SQL or inserting the new “Chunk”.

Leveraging the RDBMS: - With Set - based processing, you take advantage of the SQL
processing engine on the database rather than placing the processing burden and
overhead on the application executable.

Testing and debugging Application Engine?

Application Engine Trace file-You can track the step execution of your application
execution.

Application Engine Interactive Debugger - First click on the trace tab and turn off the
statement timings. Select Profile -> Edit Profile-> Process Scheduler Tab -> Application
section Select Debug check box.

What is the Order and flow of action types in AE?

1) Do When
2) Do While
3) Do Select
4) PeopleCode
5) SQL
6) Call Section
7) Message Log
8) XSLT
9) Do until

What is Prerequisite for the Temporary record?

1) Should have process Instance as key


2) Name should end with _TAO

Different types of Temporary tables

- Dedicated
- Un Dedicated (Shared)

Why Parallel Processing is required?


Potential performance improvements by splitting the data to be processed into groups
and simultaneously running multiple instance of your program to deal with different
groups of data.
If you have a one program that uses a temporary table and is invoked multiple times,
that single temporary table could be used concurrently in multiple executions of the
code. This could create unpredictable results since the different instances of the code
would be issuing delete, Inserts and/or updates unsynchronized with each other.

You could solve the problem by creating multiple temporary tables as a pool of tables.
Each invocation of your program would have to allocate an unused temporary table,
mark it as ‘in use’ , use it and release it back to the pool when you through with it (for
each Application Engine program you write).

How running AE program as Batch differs from running it online?


Application Engine programs are designed for two types of execution and each has its
own pool of Temporary Tables

Online:
Invoked by CallAppEngine from PeopleCode
Run quickly, synchronously, and at random times.
Potential for simultaneous executions
Uses the online Temporary Table pool.
Not restart able.
Psae.exe randomly assigns an instance number from the number range on your online
temp tables.
If the instance number is in use psae.exe puts the program in Queue until the assigned
instance becomes free.
Unlock on completion, on Crash free from Manage Abends.

Batch:
Invoked through the Process Scheduler.
Run for longer amounts of time, asynchronously, and at scheduled times.
Can be designed for parallel execution for performance.
Uses the Batch/Dedicated Temporary table.
Restart able.

It allocates instance number based on the availability on a record by record basis and
psae.exe begins with the lowest instance numbers.If the properties are set continue -
Base table is used with Process instance as key.
If Re-starable - Locked across Restarts until completes successfully.
If not Re-startable on Program completion.

What are the important steps for implementing the parallel processing?

Define you Temporary Tables.


Set the Temporary Tables Online pool.
Assign Temporary Tables to your Application Engine program in it program.
Set Temporary Table Batch Pool - Instance count in the AE.
Build / Rebuild your Temporary Table record.
Code %Table Meta - SQL as reference to Temporary Tables in your Application Engine
program, so that Application Engine can table references to the assigned Temporary
Table instance dynamically at runtime.

What happens when all the instance of the temporary table are in use?

It behavior can control by AE developer. If the runtime options are set to continue
“People Tools will insert rows into the base table using the PROCESS_INSTANCE as a
key”. If temp table doesn’t contain PROCESS_INSTANCE as a key field in a Temporary
table, you should change the Temp table runtime options to “Abort” in the appropriate
Application Engine programs.

How can you divide the data to be processed by different instance of the program to
perform parallel program?

Run control parameters passed to each instance of the AE program enable it to identify
which input rows “belong” to it, and each program instance inserts the rows from the
source table into its assigned temporary table instance using %Table.

What are the 3 common ways to pass a trace parameter and value to your program
psae.exe?

Configuration manager, Process Definition, Command prompt.

What is the main purpose of the Access property in the Section?

Basically they have two option, public and private if section declared as public then it be
access from other program.Private we cannot call from other program.

Which actions are mutually exclusive and why they are mutually exclusive?

Sql and callsection.

How to do Error handling or Exception handling in Application Engine ?

Step properties:-
On Error:-
Abort - Write message to message log and terminate.
Ignore - Write message to message log and continue.
Suppress - No message will be written, but program will continue.
PeopleCode Action: - On return options can used to handle run time errors.
Abort: - Exits immediately - Not recommended.
Break:- Exits the current step and section and control returns to the calling step.
Skip Step:- The program exits the current step, and continues processing at the next
step in the section. If this is the last step in the section, the calling step resumes control
of the processing.
SQL Action properties:-
No Rows:- When the Sql doesn’t return any rows, you can tell what application engine
program should do.
Abort: - Program terminates
Section Break: - Application Engine exits the current section immediately, and control
returns to the calling step.
Continue: - The program continues processing
Skip Step: - Application Engine exits the current step immediately and moves on to the
next step.
When using skip step keep the following in mind:
1) Application Engine ignores the commit for the current step at runtime
2) If the current step contains only one Action, only use skip step at by-pass the commit.

What are different types Do Select?

1) Select/Fetch
2) Reselect
3) Restart able

Select/Fetch: -
Opens the cursor only at the first time and retrieve rows one at loop.
Commits inside the step (commits in the Called Section) are ignored if AE is Restart
enabled.

Reselect: -
It opens the cursor and closes the cursor on each iteration of the loop.
It will reselect the same row of data.
Logic in Actions of the step should be such that it will be changing the status of the rows
in the table the do select is selecting.
Commits are not ignored and will be committed in a reselect loop when the restart is
enabled.

Restartable: - similar to select/Fetch but it WILL COMMIT inside the loop thus allowing
the checkpoint to the PS_AERUNCONTROL table.

What is the maximum limitation on temporary tabel instances in AE.


99

What is the difference between the %SELECT and %SELECTINIT meta sql functions.

%select : if any values have not selected then previous value will be there
%selectinit : if any values have not selected then previous value will reinitilate to null

What is the difference between exit(0),exit(1) when we are using this functions in AE
Exit (1) causes immediate termination of a PeopleCode program. Use this parameter to
rollback database changes.
Exit (0) caused immediate termination of a PeopleCode Program but don’t make
rollback in the database.

What are the main elements in the component Interface (CI)?

Main elements of component Interface


• Component interface name
• Keys
• Properties and collections
• Methods

What is difference between Get keys, find keys and Create Keys ?

Get keys: - These are mapped to the fields marked as scrh in the component’s search
record. Automatically “Search key” fields in search record become Get keys.  We
cannot change it.

Find keys: - These are mapped to fields marked as Alt or Srch in the component search
record. You may remove Find keys that you do not wish to make available for
searching.

Create Keys: - It is generated from the key fields for the search record. If Add search
record is present then its key fields are taken. We cannot change it.

How do you provide security for the component interface?

• Open the Permission list


• On the Component Interface tab
• Add row and select the newly created Component Interface
• Edit the permissions to give permission for the standard methods
• Get, Create, Save, cancel, find.

What the steps that you need to do in PeopleCode to invoke Component Interface?

• Establish a user session


• Get the component interface definition
• Populate the create keys
• Create an instance of the component interface
• Populate the required fields
• Save the component Interface.

&Session = GetSession();
&CI = &Session.GetcompIntfc(CompIntfc.INTERFACE_NAME)
&CI.KEY_FILED_NAME = ‘NEW’
If not &CI.Create () Then
     do…..
Else
    Populate other fields
End-if;

If not &CI.Save () Then


Else
  Populate the other fields
End-if;

How do you test Component Interface?

• Using the Component Interface tester


• Give values in the tester for options
• Get Existing, Create new, Find and perform the operation from the CI Tester

What is a method? What are the different types of method?

Methods: - A method is an object that performs a very specific function on a component


interface at run-time. Two types of methods: Standard methods and user-defined
methods.

Standard methods: - Automatically generated upon the creation of a new component


Interface in Application.
Apart from the Standard methods there are Standard methods available for the use with
any collection.

User-Defined methods: - User-defined methods are those that you can create to meet
the requirements of an individual component interface.

What are CI properties?


The Fields in the level 0 in the component are the properties of the component.

Standard properties User-Defined properties


Createkeyinfocollection Developer can further control the exposed Getkeyinfocollection
field properties.
Findkeyinfocollection
Property Info collection
GetHistoryItems (Update/Display mode or Correction mode)
EditHistory Items
InteractiveMode.
How do you login in correction mode in the Component Interface?

Get History Items and Edit History items property to should be set to true.
Get History Items alone: - Update display all - modes will be used.

What are the SQR sections and paragraphs available?

There are five sections and three paragraphs available in SQR programming. The
sections include
a. Begin-setup End-setup.
b. Begin-program End-program.
c. Begin-procedure End-procedure.
d. Begin-heading End-heading.
e. Begin-footing End-footing

And the paragraphs include


Begin-select paragraph.
Begin-SQL paragraph.
Begin-document paragraph

What is Load-lookup in SQR? Give the Syntax for Load-Lookup?

The LOAD-LOOKUP command defines an array containing a set of keys and values
and loads it into memory. With LOAD-LOOKUP, you can reduce the number of tables
that are joined in one SELECT. Use this command in conjunction with one or more
LOOKUP commands.

Syntax: begin-setup
load-lookup
name=prods
table=products
key=product_code
return_value=description
end-setup

Can you Call a SQR from another SQR? How?

We can call one SQR program from another SQR program using Call.callsystem. But
this is possible only in UNIX Operating system.

Briefly explain Most commonly used SQC’s in SQR programs?

Some of the most commonly used SQC’s are


1.STDAPI.sqc : This Is Process Scheduler Interface which is used to initiate and
terminate some field values such as Process_instance & Run_cntl_id

2.SETENV.sqc : This is used to set the Default Environment based on the Database
such Printer Type, Paper Size,Date formats Etc….

3.NUMBER.sqc : This file contains generalized routines to format numbers.

4.DATETIME.sqc : This file contains generalized routines to format dates and times.

5.RESET.sqc : This is an important Footing SQc.

What are the commands used in file handling of SQR?

Using File Handling we can Import. Steps are


1. Opening a File Using ‘OPEN FOR-READING’ command.
2. Reading Data From File Using ‘READ’ command.
3. Writing Data into Table Using ‘BEGIN-SQL’ paragraph & ‘INSERT’ command

What are On-break parameters?

ON-BREAK causes the specified action to perform in a tabular report when the value of
a field changes. The default action prints the field only when its value changes
(PRINT=CHANGE).Mainly used for Redundancy of Printing on a page.

How can you Debug SQR programs?

We can Debug SQR using Debugging Commands such as


1. #IF DEBUGxxx
#END-IF

2. DISPLAY and

3. SHOW

9. What is the difference between sqr and sqc?

SQR --------------------------------------------------------------- SQC


1.This is nothing but the Actual Source program 1.This is like a function in SQR..
2.This consists of Program Section.                   2.This does not consists of program
Section.
3.This can be Compiled & Executed.                 3.This cannot be Compiled and
Executed.
4.We cannot call one SQR from or SQC/SQR.    4.We can call one SQC from another
SQC or SQR.
What are different types of variables in sqr?

Types of variables in SQR are


1. Column Variables.
2. List Variables.
3. System Variables.
4. Document Variables.
5. Substitution Variables.
6. User Defined Variables

Is there any read-only variable in SQR?

Column Variables & System Variables are Read-Only Variables.

How to pass Inputs for SQR program while running from windows?

Using ASK & INPUT Commands.

How to pass Inputs to the SQR while running through the Process Scheduler?

Using Procedures & SQC’s to access data on Run Control Page (Run Control Fields).

What is the purpose of Stdapi.sqc?

This is a Process Scheduler Interface sqc which is used to initiate and terminate some
field
values such as Process_instance & Run_cntl_id

What is the SQT file? What are the advantages of SQT files?

SQT file is nothing but resultant file after the compilation (i.e.) Runtime File. By using
this SQT file for Execution we can increase the Performance of the program by reducing
the Compilation Time.

What is the SQC used to read data from translate table?

‘READXLAT.sqc’ is the SQC used to read data from Translate Table.

Which section is mandatory in an SQR program?

‘BEGIN-PROGRAM’ Section is mandatory for an SQR program.


How will you display an image in SQR?

Using ‘DECLARE-IMAGE , END-DECLARE’ command.

What is use of SETENV.SQC?

This is used to set the Default Environment based on the Database such as Printer
Type, Paper Size, Date formats etc.

How will you perform ERROR handling in SQR?


We can do Error handling in SQR using some command line flags such as -O, -L,-ZMF,-
XMB and using Error handling commands such as
ON-ERROR = Skip/Warn/Stop (for Compile time errors)
ON-ERROR = Procedure Name (for execution stage errors).

How many ways of performance tuning are there in SQR?

1. Using LOADF-LOOKUP & LOOKUP.


2. Using ARRAYS.
3. Using MULTIPE REPORTS.
4. Using SQT Files.
5. Using -Bnn Command line Flag.
6. Running on BATCH SERVER.
7. Using Proper Programming Logic in SQR such as Using BREAK statement in
EVALUATE Command.
8. Proper SQL tuning such as using Sub queries instead of Joins.

Can you call procedure in oracle from SQR? How?

To call a database procedure using Begin-select paragraph, the syntax is as follows:


Begin-select
[(report arguments)]
from Dual
End-select

To call from Begin-sql, the syntax will be


Begin-SQL
…….;
End-SQL
Can you connect more than one database using one SQR?
Yes.

What are the differences between Load lookup and Array?

ARRAYS ----------------------------------------------------------LOAD-LOOKUP
1. Arrays can be declared in any section.            1. Load-Lookup is declared in SETUP
section only.
2. Number of rows are not automatically added.      2. Numbers of rows are
automatically added.
3. We should insert data in to Array by programming. 3. Rows are automatically
inserted.
4.We can retrieve any number of fields.   4.We can retrieve only Two fields from a table.
5.We have Length & Data type.               5. We don’t have Length & Data type.
6.We cannot directly print from Array.     6.We can directly print fromLoad-Lookup.

What are the steps required to run the SQR from PeopleSoft environment?

Three steps we have to fallow to run the SQR program from the PeopleSoft
environment (Process Scheduler). These steps include

a. 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.

b. Create new run control table or using existing run control table and creating run
control page, component and register the component. Creating new run control SQC if
we create a new run control table.

c. Giving the permission to the user by giving process groups.

How to pass command line flags to a SQR report running through process scheduler?

Using override options in the process definition in the Process Scheduler in the People
Tools.

What are On-break parameters?

ON-BREAK causes the specified action to perform in a tabular report when the value of
a field changes . The default action prints the field only when its value changes
(PRINT=CHANGE).Mainly used for Redundancy of Printing on a page.
How does PeopleSoft Process Monitor knows that the process (Say SQR report) is at
what stage such as initiated, in process, completed etc?

From the Field Value of ‘RUNSTATUSDESCR’field from ‘PS_PMN_PRCSLIST’ table.

How to refer a global variable in local procedure?

After special character (ex.#,&) we use underscore(_) after that variable name.

What are -RS & -RT Flags?

RS is used to generate SPF file ie; stopping the program after the comilation. _RT is
used to run the SPF file .This is also one kind of Performance increasing technique by
saving the compilation time.

What are the sections in Sqr? Which one is necessary?


Setup, Heading, Footing, Program & Procedure Sections. Program section is the
Mandatory section.

What is -debug command line flag?


This is used for Debugging in SQR.

How to place a corporate logo in SQR?

Using “Declare Image” command

What is the difference between debugging commands - Show & Display in SQR ?

Show is used to display more than one variable at a time.


Display is used to display only one variable at a time.

What is the use of Document command in SQR?

Document command - to send the output to different group of people

What is the use of Match command in SQR?

MATCH command - to compare two files line-wise

How to tune SQR (SQL Statements for oracle DB)?


1. Simplifying a complex SELECT
2. Using LOAD-LOOKUP to simplify joins
3. Use Dynamic SQL    ($Where_clause in square brackets [ ] )
4. Buffering Fetched rows
5. Run on server-side

How to handle error in SQR?


? In Begin-SQL or Begin_Select use On-Error xyz
? If any error occurs in the process, it will go to xyz and do corrective action
? The program can exit or continue

What is the procedure (SQC) required to run SQR from page?


? stdapi.sqc

What is On-break logic in SQR? How to use?


? For breaking a report based on country or department

What is the difference between ask and input in SQR?


? input command is used at runtime. Used to get input values for the program.
? ask is used in Set-Up section.  Ask gets values before SQR compile. Used to compile
SQR.

If page has From Date and To Date, how should we pass to SQR?
? Store page fields (&fromdate, &todate) in Run Control Table of the process
? In SQR, get the dates from Run Control Table (defined in Process Definition).

What are frequently used UNIX commands?

-     ls -l    => To list all the files


-     echo   =>
-    grep    => to find/seach particular string in all unix files
-    cron  => schedule a unix script

What is Dual table in Oracle? How many columns it has?


? used for changing date format
? select to_char(sysdate, mm/dd/yyyy) from dual
? it is single column table

Tell something about Oracle SQL optimization and statistics?


? Oracle gives statistics in Explain Plan
? PL/SQL statements should be optimized to increase the performance
? Minimize complex sql statements and remove complex joins using explain plan.
How to call UNIX Script from SQR program?
? Call System command

Can we send e-mail by SQR program?

? Call System command in SQR


? This command calls Unix Script which has “mailx -s” command

If a new table is created and is not displayed in PeopleTools > Query, what would be
problem and how to troubleshoot?

? The list of tables are displayed in Left Hand Side of the PS Query, if a new table does
not exist here….
? Go to PS Query Tree - Tree Manager - Tree - Access Group
? Add the new table to the Access Group
? Assign Operator ID in the Access Group so that user can view the table in PS Query
o Tables are attached to Access Group of Tree manager
o Access Groups are connected to Operator Class (OPRCLASS)

What is the use of Derived work record in PeopleSoft?

? All Fieldformula PeopleCode events are written on Derived work record


? Derived work record is reusable, no need to build and it can store PeopleCode
functions
? Example: FUNCLIB_HR is used across all HR applications

What is the difference between FieldChange and FieldEdit event?

? Field change is used to simultaneously update second field (c=a + b) based on one
field
? Field Edit is used to validate. E.g.:  Location Id should be between 0 to 9 only

What is the difference between PeopleSoft mode - Update/Display, Update/Display All


and Correction?

? Update/Display:  Current and Future rows are displayed. Only Future rows can be
changed (Job data).
? Update/Display All:  Current, Future and History rows are displayed. Only Future rows
can be changed. 
? Correction mode: All current, future and history rows are displayed and also can be
changed.

What is PIA and what are its components?

PeopleSoft Internet Architecture is n-tier architecture. We have client, web server,


application server and Database server. We have jolt and tuxedo. We have WSL, WSH,
JSL, JSH, QUEUES and services.
In database server, we have system tables, peopletools tables and application tables.

Differentiate Field edit and Save edit?

In Field edit for each field change, a transition to the application server to the database
is taken place. In Save edit for all the fields, only one transition to the application server
to the Database is taken place.

What are think time functions?

Think-time functions suspend processing either until the user has taken some action
(such as clicking a button in a message box), or until an external process has run to
completion.

In which PeopleCode events error & warning are used most extensively?

Field edit, Save edit, Search save, row delete, row insert.

Is there any way by which you can find out whether the user is in Add mode or Update
mode?

If %mode returns ‘A’--- Add mode. If %mode returns ‘U’ -Update mode

What is the purpose of the SQLEXEC function? What are its benefits and drawbacks?
SQLEXEC is used to execute the sql statements (select, insert, update, delete).
We can get only one row at a time.

How is the searchinit event most often used by PeopleSoft application?


Searchinit fires before the search dialogue page is displayed to the end user.For this
reason searchinit is often used to enhance roll level security by inserting and graying
out certain values to the search dialogue page.

What are the options for using SQL in PeopleCode?


a) Sqlexec
b) Record class methods (selectbykey, delete, insert, update)
c) Using sql class, its properties and methods.

What is the difference between component buffer and data buffer?


Component buffer contains all the data of the active component.
Data buffer contains the data other than the data in the component buffer (Data of other
records)

What data buffer classes are available in PeopleCode?


Rowset, Row, Record, Field, Array, File, Sql, chart, grid and so on.
When we select a component what events will be fired?
If default mode for component is search mode: only searchinit will be fired .If default
mode for component is new mode: field default, field formula, rowinit, searchinit will be
fired.

What are different variables in PeopleCode and their scope?


System variables and User defined variables.
Scope is Global, Component, Local.

What is default processing?


In default processing, any blank fields in the component are set to their default value.
You can specify the default value either in the Record Field Properties, or in
FieldDefault PeopleCode.

What is difference between FieldDefault and Rowinit?


Fielddefault specifies only the default value for a field when we are in Add mode.
Rowinit fires only when a row of data coming from database to component buffer.

What is difference between saveprechange and savepostchange? Which function


directly interacts with the database?
Saveprechange---last event that executes before updating the data from component
buffer to the database.
Savepostchange -fires after the updation of data in the database.
SQLEXEC --- function directly interacts with the database.

What is Getlevel0()? What is the use of %subrec and %selectall functions?


Getlevel0 ()---used the get the rowset of the level0.

%subrec--is used only in Dynamic View SQL where it expands to the columns of a
subrecord:
%selectall--%SelectAll is shorthand for selecting all fields in the specified record,
wrapping date/time fields with %DateOut, %TimeOut.

What is an array in PeopleCode? What is maximum dimension of an array? Which


function inserts values into an array? What is “pop”?

An array is a collection of data storage locations, each of which holds the same type of
data.
The maximum depth of a PeopleCode array is 15 dimensions.

Push and unshift are the functions of the array used to add the elements into the array
one from the end of the array and one from the beginning.
Pop is a function of array used to select and delete an element from the end of the
array.
What is difference between Getrowset and Createrowset in PeopleCode?
Getrowset -is used to get rowset for a record in the component buffer.
Createrowset—is used to create rowset for a record which in database, and is also
called a Standalone rowset

Can you save the component programmatically?


Yes, we can save a component using Dosave and Dosavenow functions.

What is deferred processing? What are its advantages?


Deferred processing postpones some user actions to reduce the number of trips to the
database so that increases the performance (in system edits, field edit, and field
change).

Advantages:
1) Reduces the network traffic.
2) Increases the performance.

Write the syntax to access third level record field using object oriented PeopleCode?
&fld=Getlevel0 ()(1).GetRowset(Record.GetRow(1),
GetRowset (Record).GetRow(1),
GetRowset (Record).GetRow(1),
GetRecord (Record).GetFieild(Field))

What are the built-functions used to control translate values dynamically?


Adddropdownitem ()
Deletedropdownitem ()

How to populate data into grid in online?


&Rs.Select or Scrollselect ().

Before accessing a PeopleSoft application what levels of security must be passed


through?
a) Field level security
b) Row level security
c) Maintain security
d) Definition security
e) Portal security.

What is the use of primary permission list in user profile?


Primary permission list is used for mass change and definition security purposes.

How to authorize the user to run a process or report?


To authorize a user to run a process, the process group, which contains the process or
report, should be added to the permission list of that user.
How to give access to the records that are to be used in a query?
To give access to the records that are to be used in query, we have to create a new
query security tree and add the records which we want to give the access and then
assign a access group to the tree. After that we have to add that query tree and query
access group to the permission list.

What are the rules used by the system to determine whether a user is authorized to
update an object?
The user should have the permission to update the object. This is given by the
Definition security. The group, which holds the object, should be added to the
permission list of the user in update mode.

What are the different ways we can set up the portal security to access component in
portal?
1) Structure & content
2) Menu import
3) Register component
What is Application Engine?
AE is the tool, which performs, background SQL processing against our application data
tables. It is an alternative for COBOL, SQL or SQR Programs. Other tools such as
query tool and mass change generate SQL.

What are the parts of Application Engine?

AE program consists of 4 parts.


1. Application: It is a set of SQL statements.
2. Steps: It is the smallest unit of work committed in an application.
3. Sections: Comprises of 1 or more steps.
4. Statements: SQL statements like update, insert, delete or select are issued.

What are the advantages of using Application Engine?

The following are the advantages of using AE Programs:

Encapsulation
Unlike applications developed using COBOL or SQR, Application Engine applications
reside completely within your database. With Application Engine, there are the
programs to compile, no statements to store, and no need to directly interact with the
operating environment in use. You can build, run and debug your applications without
existing People Tools.

Effective Dating
Application sections are effective dated-meaning you can activate/deactivate a section
as of a particular date. This enables you to archive sections as you modify them,
instead of destroying them. In the future if you decide to revert to a previous incarnation
of a section you can simply reactivate it.
SQL / Meta-SQL Support
In addition to writing your SQL within Application Engine, you can also copy SQL
statements into Application Engine from SQL talk or any other SQL utility with few - if
any changes.
RDBMS platforms have many differing syntax rules - especially in regard to date, time
and other numeric calculations. For the most part you can work around this problem
using Meta-SQL which Application Engine supports. This language was created to
handle different RDBMS SQL syntax’s by replacing them with a standard syntax, called
Meta-strings.

Within Platform specific sections


You can also have the ability to call generic portions of SQL statements by using the &
CLAUSE function. This means you can write your generic SQL portions just once, and
reference them from your different platform versions.

Set Processing Support


Set processing is a SQL technique used to process groups (or sets) of rows of one time
rather than one at a time. Application Engine is particularly effective of processing these
types of applications.

Object Orientation
Unless designed to anticipate changes in field attributes. COBOL applications may need
to be modified when things change. If a developer increases a field’s length, then it may
need to be changed in every instance where the COBOL program uses this field as a
bind or select variable. This can require a good bit of effort. And, if not handled properly,
a change like this can cause confusing errors. For example, if the length of a field in the
COBOL is wrong, it may work fine, or you may get an error, or the field may get
truncated.

One of the corner stones of PeopleSoft functionality is Application Designer. Because of


the way it works, most field attributes (type, length and scale) can be specified once,
globally. If the field is used on more than one record, it has the same attributes in each
of these records.

Portability
You can use Data Mover to import/export your applications. This means that you can
export an application(s) into a file, and attach it to an e-mail message. Then, the
recipient can simply use the IMPORT feature of Data Mover, and the application is
ready to run.

What is a Cache Record in AE?


The Cache record (or cache) is a physical PeopleSoft record, keyed by process
instance that must be created and maintained by the Application Engine developer. This
record defines the fields that an application uses to pass values from one SQL
statements to another. You retrieve cache field values by the Application Engine and
BIND function; you assign cache values using & SELECT.

What is unique about pages, which refer to view as opposed to physical tables?
Pages that refer to views in PeopleSoft are not used for insert, update or delete. All
fields on these pages are display only.

How search records are used?


Search records are used to search, retrieve and filter data. Search records also define
the structure of the dialog box.

Where are search records assigned?


Search records are assigned to a component in a menu.

Does the search record have to be the same as the record being accessed on the
page? Why or Why not?
The search record for the page does not have to be the same as the record being
accessed on the page because the search record is used to search for and or Filter the
search key.

How can a search record dialog box be suppressed?


A search record dialog box can be suppressed by assigning a search record that does
not have search key.

What do search views, delivered by PeopleSoft, do besides displaying the dialog box?
Search views delivered by PeopleSoft are used to implement row level security as well
as display a dialog box.

What do you need to do to modify the search views?


To modify a search view, we need to change the record definition and recreate the
underlying SQL view.

When would you have to alter the tables and modify the pages, in the process of
modifying search records?
You need to alter tables and modify pages, when you modify a search record to include
a new field.

When will there be two occurs level records?


If you are referring to two different record definitions that share a same high-level key,
then two-level scrolls can be displayed as stacked scroll bars.

In what order does the application processor fill buffer for the component?
The application processor uses occurs level in the component to fill the buffer.

How to differentiate Error versus Warning statements in PeopleCode?


The error statement issues a message and the condition causing the error must be
corrected before proceeding. The warning statement issues a message and the user
can proceed without changing any values.

Where can you run Jobs?


The process scheduler can run jobs on the client or a server machine.

What restrictions are placed on multi-process jobs?


A multi process jobs can only be scheduled to run on a server.

List the three output destinations available through the Process Scheduler?
You can direct the output to a printer, file and windows screen.

Where do you set up default operator / class options for Process Monitor?
In operator security, using change, process profile.

What are the advantages of incorporating Table set ids into PeopleSoft applications?
Table set Ids allow you to share sets of values (codes) in the same prompt table.

What fields should be at the tope of every search record definition that use table set
Ids?
SET ID is the field that should be at the top of every record definition that uses table set
Ids.

What is a Record Group ID?


A Record group ID is a group of record definitions that are Sharing the same set control
field.

What do you determine using Table set Ids control information?


Table set ID control information determines how the information should be shared. The
Table set ID control page defines which Table set Ids set control filed code will use for
each record group.

What are the three types of Maps used by the navigator?


The 3 types of Maps used by the navigator are:
1. Business Process Map
2. Activity Map
3. Step Map

What are the types of layers in Crystal reports?


There are 4 types of layers in Crystal Reports. They are:
1. Report Header - In this, we will write title, date, and logos of the company.
2. Page Header - Used to write column headings.
3. Detail - Contains database column values.
4. Page Footer - Used to write page numbers and address.
What is a set ID or Table set?
It is going to share common control table values.
What is an object group?
Collection of one or more objects that form a logical group for security purpose.

What is Business Process Map?


It is an alternative method for accessing pages or it is a graphical representation of a
map.

What is an activity in Business Process Map?


It is a collection of logical steps. It represents specific transaction a user might need to
perform.

What is a Business Process?


It is a collection of activities and it represents broad area functionality, categorizing the
several activities.

What is a Process?
A task involved by the system.

What is a process instance?


It is a process number used to request process.

What is a process server agent?


It is going to initialize, select and parse the program.

What is a command line parameter?


The executable (.EXE) file is nothing but command line parameter. E.g.
C:/SQLbin\SQL.exe.

What is Parameter List?


It defines under what database, platform will the program. (Nothing but the meta-strings)

What is Application Upgrade?


It is a migration of object from one database to another and updating other system
components such as application software.

What is Mass change and explain the uses of Mass change?


Mass change is a SQL generator you can use to develop and perform custom
applications. Using mass change, a developer can set up a series of INSERT,
UPDATE, OR DELETE SQL statements that the end user can execute to perform
business functions.

The overall structure of Mass change is similar to that of PeopleSoft Query except that
Query retrieves data from the database while mass change actually updates the
database.
The uses of Mass change are as follows.
1. It is used to perform high volume set oriented transactions.
2. Copy data from table or table
3. Archive table data (Archive means that the data does not have backup file and uses
to update the values)

Why use Mass change and why not SQL execute to update a record, which is not
attached to the page?
The reasons why Mass change is preferred over SQL exec:
1. Two- Three Mass change program can work at a single time.
2. Data / information need not be defined in Mass change
3. Mass change can be used for file download upload.

What are the steps involved in Mass change?


The following are the order of steps involved in Mass change:
1. Define type
2. Assign to template
3. Operator security
4.Mass change definition

What is Mass Change group?


Adding all Mass Change into a group. (i.e., Multiple Mass change definitions can be
executed simultaneously).

What is workflow?
To an extent all the business processes defined using the Application designer involve
workflow. However we usually reserve the term to refer to processes that involve
multiple users and the routing of data between the users. PeopleSoft workflow tools
help you build the routings into your computer systems. You use them to tie together the
individual steps so that the system can help coordinate the activities.

How Workflow is controlled?


It is controlled by Decision Point (it is graphically denoted by a (?)). Where user has to
choose which activity is appropriate towards the next step.

What are the key fields used in list?


There are 7 key fields used. They are:
1. Busprocname- (Business Process Name)
2. Activity name
3. Event name
4. Work list name
5. Instance Id
6. Transaction Id
7. Emplid
Note: While defining the above fields in the record definition, a key has to be assigned
in the record field properties.

What is the syntax of TriggerBusinessEvent?


TriggerBusinessEvent triggers a specified business event and the workflow routings that
are associated with that event. This is the syntax:
TriggerBusinessEvent(BUSPROCESS.BusProcName, BUSACTIVITY.ActivityName,
BUSEVENT.BusEventName)
The BusProcName, ActivityName, and BusEventName parameters are the names of
the business process, activity, and event from PeopleSoft Application Designer. They
are all strings, enclosed in quotes. For example, the following code triggers the Deny
Purchase Request event in the Manager Approval activity of the Purchase Requisition
business process:
TriggerBusinessEvent(BUSPROCESS."Purchase Requisition",
BUSACTIVITY."Manager Approval", BUSEVENT."Deny Purchase Request")

What is routing in workflow?


Transfer of roles / users

What are the advantages of workflow in PeopleSoft application?


Workflow typically eliminates the job tasks associated with controlling paper flow, and
frees people the once performed clerical functions to do more meaningful work.
• Tasks that don’t require user involvement
• Tasks that involve non PeopleSoft users
• Tasks that several users work on together.

Define the components of workflow?


There are 3 underlying components of workflow i.e., Rules, Roles, Routing.

Rules
Rules are your company’s business practices captured in software. Rules determine
what activities are required to process your business data. The rules are contained in
policies and procedures documents.

Roles
Roles describe how people fit into the workflow. A role is a class of users who perform
the same type of work, such as clerks or managers. Your business rules typically
specify what user role needs to do an activity.
Roles direct the work to types of people rather than to individuals. Identifying roes
instead of individual users makes your workflow more flexible and easier to maintain.
Roles remain stable even as people change jobs.

Routings
Routings connect the activities in the workflow. They are the systems means of moving
information from one place to another, from one step to the next. Routings bring the flow
into workflow. The network of routings creates a business process from what used to be
isolated activities. Routings make it possible to deploy applications throughout the
enterprise. They work through the levels and departments of an enterprise to bring
together the role that are necessary to complete complex tasks.

What is the usage of Data mover?


Data mover is used to create edit and run scripts. These scripts may include any
combination of SQL commands and Data mover commands for exporting and importing
database contents.

What is Trace SQL?


Trace SQL logs a variety of information about SQL activity called from People tools and
from batch COBOL on a client or server.  SQL Trace records information about the
actual API (Application Process Interface) calls both our GUI (Graphic User Interface)
and COBOL Programs send to the Database. This tool is useful for debugging SQL.

Note: While operating with the Data Mover utility, the trace option should be disabled.

Use SET NO TRACE statement to disable the SQL Trace.

What is BOOTSTRAP MODE?


When the Data Mover is launched using the Database Access ID and Password, it is
called BOOTSTRAP MODE.
Typically, using Bootstrap mode is necessary for database loading, because there are
no PeopleSoft security tables established yet. It is also helpful for accomplishing other
security-related tasks, such as running Grant_Users and Encrypt_password scripts. 
In Bootstrap mode, the following commands are not valid - export, rename and replace
View.

Explain the types of commands in the Data Mover?


Data Mover script can contain two types of commands.

. Data Mover commands: Used to export and import database information and to
otherwise modify database. Also, used to control script execution, call other Data Mover
files and to enter commands.

. SQL commands: These include both standard and non-standard SQL commands and
are used to modify the database.

What is SQR? What are features of SQR?


*SQR (Structured Query Reports) is a programming language used in data processing
and data reporting. SQR program can execute multiple queries.*

Features of SQR:
. More flexible
. Scalability for Client and Server architecture.
. Multiple platform portability
. Multiple RDBMS portability

What is difference between .LIS and .SPF file?


. LIS (list file) is used for line printer execution. Normally it is used for printing cheques.
.SPF file is portable format, this is used for all window-based applications with any
printer. Normally it is used for MSPAINT, Image, and Graphics.

How many types of SQR files are there?


There are 5 types of SQR files:
.SQC: SQC program files contain commonly included procedures that are called by
other SQR programs.
.LIS when an SQR reports generate output it is sent to a file with an. LIS extension.
. LOG: SQR.LOG file is the output file used by PeopleSoft. This file contains all
information such as errors and displays statements. That is output to the terminal during
the execution of SQR.
.MAX: SQR does not dynamically allocate memory. The default program allocations
(which were coded for lower DOS memory) usually have to be increased for complex
SQR programs.

Note: PeopleSoft uses a .MAX file to increase any SQR parameter where default is not
adequate for the program. There is one main .MAX file for processing under SQR W
(windows) called ALLMAXES.MAX

.SQT: These program files are precompiled SQR programs.

Explain briefly about flags?


SQR Flag is an attribute given to programming for processing and generating output
destination file.

The SQR command supports several flags. Each flag begins with a dash (-). Flags with
arguments must be followed directly by the argument with no intervening space.

SQR Command-Line Flags           -----------------------------------     Flag Description


-A ---------- Causes the report output to be appended to an existing file of the user name
-Bnn  ---------- (Oracle,SYBASE CT-Lib) indicates how many rows to buffer each time
data
is retrieved from the database. The default is 10 rows.
-C  ---------- Specifies that the cancel dialog box appear while the program.
-CB  ---------- (Callable SQR) forces the communication box to be used.
-DEBUG  ---------- (xxx) (Sybase) Causes lines preceded by #DEBUG to be compared.
Without this
flag, these lines are ignored.
-E(file) ---------- Causes error messages to be directed to the named file, or to the default
file
report errs. If no errors occur, no file is created.
-F (file) ---------- (Directory) overrides the default output file name program .lis
-KEEP  ---------- In addition to .LIS files, creates an .SPF file for each report that your
program generates.
- LOCK(RR]CS]RO]RL]XX] ----------  (SQL Base) Defines the types of locking (isolation
level for the session).
-NR  ---------- (SQL Base) specifies that the No Recovery mode is used when
connecting to the database.
-XCB  ---------- Do not use the communication box.
-XL  ---------- Prevents SQR from logging on to the database. Programs run in this mode
cannot contain any SQL statements.
-XMB  ---------- Disables the error message display so that a program can be run without
interruption by error message boxes.
-XP ----------  (SYBASE DB-Lib) Prevents SQR from creating temporary stored
procedures.
-XTB  ---------- Preserves the trailing blanks in an LIS file.
-ZIV ----------  Invokes the SPF viewer after generating program .spf file. Using this flag
implicitly invokes the -KEEP flag to create program .spf file.
-ZMF ---------- (File) specifies the full path and name of the SQR Error Message file. The
Sqr err.dat located in the directory indicated by the SQR DIR environment Variable is
the default.
Explain briefly about record properties?

KEY: the record knows a field, which uniquely identifies each row, as a key.
1. According, to the key field, we will search and retrieve data from the database.
2. This will not allow duplicate and not null values.
3. It is a primary key
4. It allows multiple keys
5. Maximum keys allowed in a record is 15
6. It should be placed at the top of the record definition.

Duplicate Order Key:

1. It provides a way of ordering data in the table when the duplicate values are allowed.
2. It will create index for the column. However the index can be disabled.

Alternate Search key:

1. It identifies the field as a key that provides an alternative path into table data.
2. Due to alternate search key the system becomes slow, because database index will
be created when SQL creates the tables, so it will consume the disk space.
3. It allows duplicate values.
4. Alternate search will be seen in the search dialog box when update/display mode is
selected.
Descending order key:
It is used to retrieve data in the form of 3-2-1 or C-B-A and normally it is
used in Effective date.

What is ordering key?


The following way we have to arrange the fields
1. Field with primary key and search box.
2. Field with primary key
3. Field with duplicate order key.

Define Scroll? How many types of scrolls are there?


A Scroll is used to enter multiple rows and retrieve multiple row data. There are two
types of scrolls:

Nested scrolls - For each repeating data and for each entry with other set of repeating
set of data is called a nested scroll. Maximum 3 nested levels are allowed. The nested
scrolls share same high-level keys.

Independent scrolls - At each scroll level a maximum of 15 screen be included.

Define Occurs Level?


Occurs level specifies the level of a scroll bar relative to any other scroll bars on a page.
The following are the occurs level at each nested scroll bar.

The primary scroll bar in a set of nested scroll bars has an occur level 1.  A Secondary
scroll bar has occurs level of 2, which means it is subordinate to scroll bar 1.  The third
scroll bar has occurs level of 3, which means it is subordinate to scroll bar 2.

What are the types of controls that can be placed on the page?

There are three types of controls:


Aesthetic Control: It is used to organize the information on the page and it is not
associated with the database. There are 4 types of aesthetic contents. A) Text B)Frame
C) Group box D) Static image.

Data entry control: It is used to offer different way to enter and maintain the information.
There are 7 types of Data entry controls. A) Edit box B) Drop down list box C) Long edit
box D) Check box E) Radio button F) Sub-page image.

Function and data processing control: It adds command and maintains level of
information on the command. There are 6 types of data processing controls
A) Command push button B) Process push button C) Secondary page D)Scroll bar E)
Grid control F) Tree.

Define Sub-page and Secondary page?


Sub page : It is a predefined, preside group control, which will appear in more than one
page. (Utility: if you have group of controls, such as address coasts, which you use on
multiple page definition, you can save those page control groups on sub- page)

Secondary Page: An invisible control that associates a secondary page with a primary
page. (Utility: Secondary pages are used to gather or display supplemental information
related to the object that appears in a primary page)

Explain about display control field and related display control field?
Display control field: It is controlling the field in some other record.
Related control field: display control field controls it.

What is component? Explain in brief about component?


Component is the bridge between page and menu. A component is a set of pages that
should be processed as if it is one page. The component represents a complete
business transaction because all the Information goes together. The group must be
stored in the database as a single Unit of work. At runtime, we are opening and saving
component not individual Pages.

Define a Menu? How many types of Menus exist?


Menus are used to navigate the application (Menu is a window to the application)
There are two types of menus:

Standard menu: It appears in the menu bar of a PeopleSoft application.


Popup menu: Allows the user to navigate related information in other areas of
application by right clicking on a page or page control.

How many types of securities are available in PeopleSoft?


There are 6 types of securities:
1. RDBMS Security 2. Network security 3.Operator security 4. Object security 5.Tree
level security 6. Query security (row level security)
What is Application Upgrade?
It is a migration of object from one database to another and updating other system
components such as application software.

What is Mass Change and explain the use of Mass change?


Mass change is a SQL generator you can use to develop and perform custom
applications. Using mass change, a developer can set up a series of INSERT,
UPDATE, OR DELETE SQL statements that the end user can execute to perform
business functions. The overall structure of Mass change is similar to that of PeopleSoft
Query, except that Query retrieves data from the database while mass change actually
updates the database.

The uses of Mass change are as follows.


1. It is used to perform high volume set oriented transactions.
2. Copy data from table or table
3. Archive table data (Archive means that the data does not have backup file and uses
to update the values)

Why use Mass change and why not SQL execute to update a record, which is not
attached to the page?
The reason why Mass change is preferred over SQL exec is….
1. Two- Three Mass change program can work at a single time.
2. Data / information need not be defined in Mass change
3. Mass change can be used for file download upload.

What are the steps involved in Mass change?


The following are the order of steps involved in Mass change.
1. Define type
2. Assign to template
3. Operator security
4.Mass change definition

What is workflow?
To an extent all the business processes defined using the Application designer involve
workflow. However we usually reserve the term to refer to processes that involve
multiple users and the routing of data between the users. PeopleSoft workflow tools
help you build the routings into your computer systems. You use them to tie together the
individual steps so that the system can help coordinate the activities.

How Workflow is controlled?


It is controlled by Decision Point (it is graphically denoted by a (?)). Where user has to
choose which activity is appropriate towards the next step.

What conditions are required to establish parent child relationship between two
records? What are the advantages with that?
Conditions are:
1) The child record should have all the key fields of parent record and at least one more
key field other than the key fields of parent record.
2) We should mention the parent record in the record properties of child record.
3) We can not go for more than three levels of parent/child relationships.

Advantages are:
1) To have referential integrity.
2) No need to enter information again and again

Which effective dated rows can be retrieved in update/display mode, update/display all
and correction mode?
Update/display - can view current and future rows. Can update only future rows.
Update/display all - can view history, current and future rows. Can update only future
rows.
Correction - can view and update history, current and future rows.

What types of audits are supported by PeopleSoft? In case of record level audit what is
the structure of table?
We have field level audit and record level audit. The structure of the table in record level
audit is: AUDIT_OPRID, AUDIT_STAMP, AUDIT_ACTN, AUDIT_RECNAME and can
add fields from record.

What are Table Edits?


We have prompt table edit, yes/no table edit, translate table edit as the table edits.

What is the difference between Key and alternate search Key?


KEY- It is the primary key of the record. Can be used as search key or need not be.
Alternate search key-it is used for searching purposes.

Can you place Sub page into Grid? If yes,  How?


Yes we can insert subpage using insert subpage. After insert subpage into main page,
drag the subpage into the grid. When we save the page we are successfully able to
save the page showing that we can insert a subpage into a grid.

Can you hide a primary page in a component? Reason?


No, we can not hide the primary page of a component. If the component had only one
page then by making this page also invisible we won’t have any component existing so
we are not allowed to hide the primary page.

What is an Expert Entry?


Expert entry enables a user to change from interactive to deferred mode at runtime for
appropriate transactions.

What is Auto Update?


This record field property is used to update the date field of particular record with the
server's current date and time whenever a user creates or updates a row. Even the user
enter the data into that field, the data which the user enters will be updated by the
system’s current date and time.

How can a component have more than one search record? Give a situation.
You might want to reuse the same component multiple times with different search
records. You can accomplish this by overriding the component search record at runtime
when the component is opened from a menu item without creating separate copies of
the component. The component override is temporary, and occurs only when the
component is opened from the menu item in which the override is set. It does not
change the component definition.

How can you improve the security and usability of a Prompt table edit?
Prompt table view
What are the different ways to setup row level security?
We can setup row-level security using a SQL view that joins the data table with an
authorization table. And By having Query search for data using a query security record
definition. The query security record definition adds a security check to the search.

How does PeopleSoft use views? Which are online functions?


A) PeopleSoft uses views for search records, summary pages, prompt views, reports.
Search records and summary pages are online functions.

Why do PeopleSoft often use views as search records?


Search views are used for three main reasons.
1. Adding criteria to the search dialogue page
2. Providing row level security.
3. Implementing search page processing.

What is Record Group? Which records can be included into a record group?
Record group consists of records with similar functionality. To setup a record in record
group we should enter a set control field value in record properties
When I create my component interface, why can't I see any GETKEYS?
The search record for your component does not have any search keys defined. Go back
and define search keys as these are used as Getkeys.
My FINDKEYS are missing certain fields, why aren't they there?
Findkeys are derived from search and alternate search keys on the component search
record. If you have a key but it is neither a search key nor alternate search key, then it
will not be available as a findkey.
When I test my component interface, I get a "Not Authorized" error. Why?
Check that your component interface is included in a permission list that you have
access to. Also check that you have access to all your methods (Get, Save, Create,
Cancel, Find). If you delete a component interface through application designer, it is
also removed from any associated permission lists so this may be another reason why
your new component interface (with the same name) is not authorized anymore.
When I let Application Designer build my component interface, some fields are missing
in my Properties. Why is that?
Sometimes application designer gets it wrong. For instance, if the same field exists in
scroll 1 and scroll 2, it may put the field in the wrong scroll level. It may also have
problems with certain key/search key/alternate search key fields between the search
record and the scroll level records. Normally you just need to check your CI and add
any missing fields.
My component interface does not have the Create method. It is disabled in the CI
properties, why is this?
You can only have created if the underlying component allows Add mode. If it doesn't
then you can't create anything in the component, and thus you can't create anything
using the component interface.
Can I override my Component Interface methods?
Yes, you can write additional PeopleCode for your component interface methods.
Simply go to the method (Cancel, Find, Get, Save, Create), right-click and select view
PeopleCode.
My PeopleCode to copy data to a Component Interface collection is not doing anything,
but it appears to work. What is wrong?
Make sure that all the fields that you are copy to a collection actually exist in the
component interface! If any are missing you can get unexpected results or none at all.
What underlying tables define security access to Component Interfaces?
The association between a permission list (CLASSID) and a component interface
(BCNAME) are stored in the PeopleTools table PSAUTHBUSCOMP.
What is Definition Security?
Definition Security is used to control access to PeopleSoft objects through Application
Designer. By default a group called PEOPLETOOLS is delivered. Within this group are
all the objects that are read-only to all users except those with permission lists that
contain the group.
If an object is secured through definition security, you'll soon know about it when you
open it in Application Designer and get the following message:

The SQL below shows fields in the PeopleTools group (secured) and those excluded
from the group (free for developers to work with).
The underlying tables for definition security include:
• PSOBJGROUP - Object group definitions
• PSOPROBJ - Operator object group
As delivered you can see that there is no permission list with access to the
PEOPLETOOLS object group:
select *
from PSOPROBJ
where OBJGROUPID = 'PEOPLETOOLS'
and DISPLAYONLY <> 1;
What this query is searching for is any rows in the PSOPROBJ record that have the
PEOPLETOOLS group included (not display only which means excluded).
What is Portal Security?
The PeopleSoft Enterprise Portal basically refers to the navigation system that links
menus and components to the PeopleSoft online interface, navigation and search
functionality. Access to anything in the online application is handled through portal
security. The records associated with this include:
Record Description
PSPRSMDEFN Stores the structure of the portal registry. This data is stored in a
hierarchical (tree) structure within the table. The field PORTAL_URI_SEG1 is the menu,
PORTAL_URI_SEG2 is the component, and PORTAL_URI_SEG3 is the market.
PSPRSMPERM Stores permission lists associated with access to everything within the
portal registry
What is SQL query to find out which users (and from what permission lists) have access
to a particular page?
select distinct OPRID, OPRCLASS
from PSOPRCLS
where OPRCLASS in (
    select distinct CLASSID
    from sysadm.PSAUTHITEM
    where PNLITEMNAME = '<PAGENAME>');

How to get the summary of requested processes by process status?


The following query will give you a summary of the requested processes by process
status.
select
    RQST.RUNSTATUS,
    RQST.PRCSTYPE,
    (
        select XLAT.XLATLONGNAME
        from PSXLATITEM XLAT
        where XLAT.EFFDT = (
            select max(XLAT_ED.EFFDT)
            from PSXLATITEM XLAT_ED
            where XLAT_ED.FIELDNAME = XLAT.FIELDNAME
            and XLAT_ED.FIELDVALUE = XLAT.FIELDVALUE
        ) and XLAT.FIELDNAME = 'RUNSTATUS'
        and XLAT.FIELDVALUE = RQST.RUNSTATUS
    ) as RUNSTATUS_XLAT,
    count(RQST.PRCSINSTANCE) as TOTAL_PROCESSES,
    min(RUNDTTM) as FIRST_OCCURRED,
    max(RUNDTTM) as LAST_OCCURRED
from PSPRCSRQST RQST
group by RQST.RUNSTATUS, RQST.PRCSTYPE
order by RUNSTATUS_XLAT, RQST.PRCSTYPE

What is Report Manager?


Report manager is part of the PeopleSoft Process Scheduler and provides a framework
for viewing output from processes (typically reports) based on the user's privileges.
The following are the key areas for configuration of Report Manager:
• Access to Report Manager: Reporting Tools -> Report Manager
• Report Folder Administration: PeopleTools -> Process Scheduler -> System Settings
-> Report Folder Administration
• Process Definitions PeopleTools -> Process Scheduler -> Processes
• Services Operations in Integration Broker PeopleTools -> Integration Broker ->
Integration Setup -> Service Operations
The report manager component (CONTENT_LIST) consists of four pages:
• List
• Explorer
• Administration
• Archives
These are mainly built from work records, but behind the scenes some of the tables for
each page are:
• Report Information: PSRF_RINFO_TBL
• Report Folder Information: PSRF_FINFO_TBL
• Report Folders: PSRF_FLIST_TBL
• Report Security: PSRF_RSCRTY_TBL
• Report Administration (Administration Page): PS_CDM_AUTH
Reporting Folders
Reporting folders are used to store process output into specific groups (think folders or
directories in a file system). Job definitions, process definitions or individual process
runs (instances) can distribute to a specific report folder. Distribution can be either to
specific operator ID or a role.
To enable the List and Explorer pages in report manager, the following service
operations need to be configured:
• PSRF_FOLDER_CREATE
• PSRF_REPORT_CREATE
• PSRF_REPORT_DATE_CHANGE
• PSRF_REPORT_DELETE
Report Manager Security
The following roles are related to access to report manager:
• ReportDistAdmin - gives access to all reports
• ReportSuperUser - gives super user access reports for a specific user
Despite the name convention, it is actually ReportDistAdmin that gives you access to
other people's reports.
If your users are getting the error You are not Authorized (40,20), it could be because
they don't have the appropriate access to the report manager pages through their
permission lists. You can investigate this using the same technique as any other page -
check PSAUTHITEM to see if the user has access to the page through their current
permission lists:
select *
from PSOPRCLS A
where A.OPRID = 'OPRID'
and exists (
    select  1
    from    PSAUTHITEM B
    where   B.CLASSID = A.CLASSID
    and     B.PNLITEMNAME = 'PAGENAME'
);
You may also get a signon page error indicating that you are Not Authorized to View a
Report
By default the permission lists that give you access to the reporting pages include
PTPT1000 and PTPT1200. PTPT1000 gives access to the report manager
Administration page. PTPT1200 gives access to the List and Explorer pages within
Report Manager.
What is the use of System Process Request?
System Process Requests is a component (PRCSMULTI) located in:
• PeopleTools > Process Scheduler > System Process Requests
That allows you to run a number of system level administration processes, jobs and
tests.
For developer's this is a great place to find out how to do something as it provides a
number of different ways of using the process scheduler. I believe one of the best ways
to get better at PeopleSoft development is to understand exactly how you can do things
in the system - there may be options out there that you didn't even know about!
After you create a run control, there are three pages in the component:
• Process Request Dialog for running system processes
• Component Interface to test running a process (XRFMENU) through the
PROCESSREQUEST component interface
• ProcessRequest PeopleCode to test running a process through PeopleCode
System Processes
Press the run button on the run control and you'll be give a list of system processes.
You can select one or more of these and run them. The processes provided are a
combination of system processes, example/test processes, and jobs. Some of the
useful ones include:
• All Process Type (ALLTYPES) job which runs test COBOL, Crystal and SQR
programs.
• Database Designer/Database Audit (DDDAUDIT) which checks for inconsistencies
between PeopleSoft records/indexes and the equivalent database records/indexes.
• Export User Tables (EXPRTUSR) which runs a data mover script located at
PS_HOME\scripts\userexport.dms and exports all users (operators) and out of your
system and into an output file called USEREXPORT.DAT. This is also a good example
of how to run datamover scripts from the process scheduler.
• Process scheduler server clean (PRCSSRVCLN) which seems to be for clearing the
process scheduler cache?
• Process scheduler system purge (PRCSYSPURGE) for purging process scheduler
requests, archiving report manager tables, and it also calls PSXPARCHATTR for
archiving XML publisher reports.
• XML Publisher File Cleanup (PSXPCLEAN) for cleaning up working tables associated
with XML Publisher.
• XML Publisher Purge (PSXPDELATTR) which publishes the message for the
PSXP_CLEANATTR through Integration Broker. This appears to be for purging XML
publisher report search data. This message has a handler, PurgeAttributes which lives
in the application package class PSXP_REPORTMGR.AttributeDelAsync and this is the
code that does the cleanup work.
• Swap Audit Report (SWPAUDIT) which checks for data integrity problems that may
occur when swapping language settings.
• System Audit (SYSAUDIT) which is a very powerful tool for checking for
inconsistencies in PeopleTools definitions.
• A number of cross reference (XRF*) reports. These are useful for impact analysis - for
example if you want to see what fields are reference by PeopleCode (in case you want
to modify that field) then run XRFFLPC.
Running processes through a Component Interface
The PeopleCode that runs the processes through the PROCESSREQUEST component
interface is located in Component Record Field PeopleCode:
PRCSMULTI.GBL.PRCSSAMPLEREC.RUNCCNTLCOMPINTF.FieldChange.
I'm not sure why you would want to run a process request this way, but this code serves
as another good, simple example of how to use a component interface through
PeopleCode.
Running processes through ProcessRequest PeopleCode
The PeopleCode that runs the processes through the ProcessRequest PeopleCode is
located in Component Record Field PeopleCode:
PRCSMULTI.GBL.PRCSSAMPLEREC.RUNCCNTLPRCSRQST.FieldChange.
If you ever want to fire another process in your PeopleCode program, then this is how to
do it (or you can use the component interface approach).
How to retrieve milliseconds from Oracle database and display it on a page?

You can use the following SQL to get milliseconds from Oracle 9i and higher and assign
it to a Field of Type Time in PeopleSoft page. May Place this code in FieldDefault event.
SQLExec("select TO_CHAR(SYSTIMESTAMP,'HH24:MI:SS.FF') from dual",
XX_TEST_DERIVED.XX_TIME);
Set the Time Formatting to HH:MI:SS:999999 in Field properties.
For Date Time Field, use the following SQL.
SQLExec("select TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD-HH24:MI:SS.FF') from
dual", XX_TEST_DERIVED.XX_DATETIME);
Set the Time Formatting to HH:MI:SS:999999 in Field properties. Select Display
Century and Display Time Zone in Page Field Properties to display complete date and
time.
What is the tip to directly navigate to a page with portal navigation?
To display a page and navigate to that page for e.g URL Maintenance Page the URL
will be

https://servername/psp/ps/EMPLOYEE/EMPL/c/
UTILITIES.URL_TABLE.GBL?Page=URL_TABLE&Action=U&URL_ID=CMDOCDB

where psp - Portal servlet, use psc - content servlet to go to page without portal
navigation

Sitename = ps, Portal Name = Employee, Node Name = EMPL and Content Type = C
for Component,

Content ID = <menu>.<component>.<market>

Menu = UTILITIES, Component = URL_TABLE, Market = GBL

Key ID: URL_ID

Key Value: CMDOCDB

This link will open directly the URL Maintenance page with URL Definition of
CMDOCDB.

How to get the process groups that are assigned to job definition?
You can use these queries to determine what process groups are assigned to a job or
process definition and what permission list has access to it.
select * from PS_PRCSDEFNGRP where prcsname = 'PSQUERY'
select * from PS_PRCSJOBGRP where PRCSJOBNAME = '3CBL'
select * from psauthprcs where prcsgrp = 'TLSALL'
How to Default sysdate (Current Date) for Crystal Report and PeopleTools Query
prompt automatically?
If you have a Query or Crystal Report, that has a date prompt and you want to schedule
the report daily, so that date value is defaulted to sysdate (Current date), you can do
this as follows.
Open the Query in PeopleTools Query tool.
Go to Criteria tab. Right Click on Expression2 Column and Select Expression or Expr-
Expr if you are using between operator.
Type the following in Edit Expression.
Type Default Date Expression
Criteria current date decode(:1,TO_DATE('1900-01-01','YYYY-MM-
DD'),trunc(sysdate),:1)
  current date - 1 decode(:1,TO_DATE('1900-01-01','YYYY-MM-DD'),trunc(sysdate)-
1,:1)
  current date + 1 decode(:1,TO_DATE('1900-01-01','YYYY-MM-DD'),trunc(sysdate)
+1,:1)

replace :1 with the actual prompt value. You must first create this prompt.
Now you need to pass 01/01/1900 as an input parameter if you want to run the query for
current date. Passing any other values will make the query run for that date.
This way you can achieve both i.e. run the query for a user selected date or run a query
for current date which can be used to schedule. Note : you can use any date as a
replacement for sysdate and not just 01/01/1900.
Also you can default it to any day relative to current date for e.g. trunc(sysdate) - 1 or
trunc(sysdate) + 1 etc.
If you want to know what parameter user has passed in your report, you can add the
following expression as field in your query.
Create an expression of type Date in left hand side Under Expressions.
Type Default Date Expression
Field Current Date decode(:1,'1900-01-01',to_char(trunc(sysdate),'YYYY-MM-DD') ,:1)
  Current Date - 1 decode(:1,'1900-01-01',to_char((trunc(sysdate)-1),'YYYY-MM-
DD') ,:1)
  Current Date + 1 decode(:1,'1900-01-01',to_char((trunc(sysdate)+1),'YYYY-MM-
DD') ,:1)
Note: Tested this on Oracle 9.2.0.8 and PeopleTools 8.48.12.
Application Engine aborts if it has state record that is not present in the Database. 
What to do?
If you have a application engine program that has define a state record and it is not
defined in the App designer it causes core dump when trying to run the program. This
can happen if you have migrated a app engine program from DEV to other environment
and forgot to add the state record to project. Here is a query that can identify all such
app engine programs.
select * from PSAEAPPLSTATE a where  not exists (select 'x' from psrecdefn b where
a.AE_STATE_RECNAME = b.recname).
This was observed in PT 8.48.16 and running the App engine program using command
line on HP*UX 11.11 server. Database: Oracle 9.2.0.8 64 bit on HP*UX.
Here is the actual error message.
Executing PS Application Engine XXXX program which will use run control XXXX
aCC runtime: pure virtual function called for class "IPSRecBuf".
24493: 1214837730: PSPAL::Abort: Unrecoverable signal received
24493: 1214837730: PSPAL::Abort: Location:
/vob/peopletools/src/pspal/exception_sigaction.cpp:553: UnrecoverableSignalHandler
24493: 1214837730: PSPAL::Abort: Generating process state report to
/xxxx/xxxx/xxxx/LOGS/psae.24493/process_state.txt
24493: 1214837730: PSPAL::Abort: Terminating process now.
./xxxx.sh[67]: 24493 Abort(coredump)

How to skip Search Dialog Box?


Sometimes you want to suppress Search dialog box during the Page display. You must
understand the default search dialog box processing and then determine what can you
do to alter it programmatically.

1. At Component Definition Level under Use Tab after Add Search record, there is a
checkbox Force Search Processing. The Default is cleared which means do not display
the search dialog box, if following conditions are true.
a> All required keys have been provided (either by system defaults or by PeopleCode)
b> If this an Add dialog box, then no "duplicate key error" results from the provided
keys; if this error occurs, the processing resets to the default behavior.
c> If this is a Search dialog box, then at least one row is returned based on the provided
keys.

2. If you select the Checkbox Force Search processing, then even if the above
conditions are true, system will always display the search dialog box.

3. To alter the search dialog box behaviour programmatically, irrespective of


Component Definition Force Search Processing checkbox, You need to use
SetSearchDialogBehavior(force_or_skip if possible) function in SearchInit event of the
SearchRecord-> SearchField or at component level Search Record. for skip if possible
use value 0 and for force display use value 1

4. Another way of skipping the search dialog box is to use a search record which do not
have any search keys defined for e.g Derived/Work record. It can be any record as long
as it does not contain any fields with search key attribute selected in record field
property.
Note: The above methods to skip search dialog box (except records with no search key)
only works, if you meet the condition specified in 1 i.e. all the key items has values and
it returns at least one row and no errors occur. You can use SetSearchDialogBehavior
to override component level setting in searchinit event.
What are PSAE and PSAESRV?

PSAESRV is Application Engine server processes that handles Application Engine


requests

PSAE is an executable that executes the application engine request.

PeopleSoft conducted a study and shown that PSAE is just as good as PSAESRV for
most practical purposes. If you have an AE job that runs longer than 10 sec, PSAE is
equivalent to PSAESRV. PSAE has the added advantage of being recycled at the end
of each AE job, cleaning up any outstanding SQL cursors to the database that may
have been left behind. Since PSAE recycles after each use, it does not has any
possible memory leakage problem that may occupied the precious system memory. In
short, PSAE is a cleaner workhorse.
To shutdown PSAESRV, when you configure the Process Scheduler, you can change
the default of the PSAESRV instance to 0.
Values for config section - PSAESRV
Max Instances =0
Recycle Count=1000
Allowed Consec Service Failures=2
What is the sample three level Rowset PeopleCode?
Here is a typical PeopleCode example for reaching the level three reord using rowset
PeopleCode.
/* Need to insert a row when a flag = ‘Y’ after graying all other fields in the row in
correction mode */
PeopleCode Event : COMPONENT_NAME(Component).GBL.PostBuild(Component
PeopleCode)
Local Rowset &TQ_Lvl0, &TQ_Lvl1, &TQ_Lvl2, &TQ_Lvl3;
Local number &insert_row, &lvl_1_row, &lvl_2_row, &lvl_3_row;
&TQ_Lvl0 = GetLevel0();
&TQ_Lvl1 = &TQ_Lvl0(1).GetRowset(Scroll.LEVEL1_SCROLL_NAME);
&insert_flag = “N”;
For &lvl_1_row = 1 To &TQ_Lvl1.ActiveRowCount
   &TQ_Lvl2 = &TQ_Lvl1(&lvl_1_row).GetRowset(Scroll.LEVEL2_SCROLL_NAME);
   For &lvl_2_row = 1 To &TQ_Lvl2.ActiveRowCount
      &TQ_Lvl3 = &TQ_Lvl2(&lvl_2_row).GetRowset(Scroll.LEVEL3_SCROLL_NAME);
      For &lvl_3_row = 1 To &TQ_Lvl3.ActiveRowCount
         &tq_adj_applied =
&TQ_Lvl3(&lvl_3_row).LEVEL3_RECORD_NAME.FIELD_NAME.Value;
         If &tq_adj_applied = “Y” Then
            &TQ_Lvl3(&lvl_3_row).MPF_TINQ_LOG.EARNS_END_DT.Enabled = False;
            &TQ_Lvl3(&lvl_3_row).MPF_TINQ_LOG.MPF_ADD_SUBTRACT.Enabled =
False;
            &TQ_Lvl3(&lvl_3_row).MPF_TINQ_LOG.MPF_HOURS_TYPE.Enabled = False;
            &TQ_Lvl3(&lvl_3_row).MPF_TINQ_LOG.MPF_HOURS_ADJ.Enabled = False;
            If %Mode = %Action_Correction Then
               &TQ_Lvl3.InsertRow(&TQ_Lvl3.ActiveRowCount);
            End-If;
         End-If;
      End-For
   End-For;
End-For;

What is Query Security (Query Access Groups)?


• Query is a PeopleTool that helps you build SQL queries to retrieve information from
your application tables.
• Query takes advantage of user’s security settings, row-level security, and primary
permission list.
• For each Query user, you can specify the records they are allowed to access when
building and running queries. We can achieve this by creating Query Access Groups in
the Query Access Group Manager, and then you assign users to those groups with
Query permissions.

Query Access Group Trees:


• Trees are a graphical way of presenting hierarchical information.
• PeopleSoft Query uses query access group trees to control the access of the tables in
your PeopleSoft database.
• Define a hierarchy of PeopleSoft record definitions, based on logical or functional
groupings, and then give users access to one or more nodes of the tree.
• Users can retrieve information only from those tables whose record definitions to
which they have access.
•  Nodes: Query access group trees contain two types of Nodes: groups and records.
o Groups are a logical representation of a set of child groups or records. It is similar to
folder in Windows.
o Records represent a PeopleSoft record definition.

• Structure:
o Always use the ACCESS_GROUP Tree Structure.
o Do not use SetID or UKV/BU.
o Do not have Details.
o Do not use Levels.
o No Branches.

• Requirements:
o The Root Node is always a group.
o Groups must be unique in a given Tree while records definitions can be repeated.
o Groups and records could have Child Groups and Child Records.
o Each record needs a unique fully qualified path in the tree. You can’t add the same
record under the same parent node (group or record).
• To open an existing Query Access Group Tree, Select PeopleTools, Security, Query
Access Manager.
• Create custom Query Access Group suitable to your organization. Create functional
group names and add records under the group.
• To Add the Query Access Groups to user:
o Open the primary Permission List for the user
o Go to ‘Query’ Tab
o Click on Access Group Permissions.
o Add the tree name, select the proper Access Group, Select ‘Accessible’ button.
Repeat to add more Access groups.
o Save the permission List.

Row Level Security:


• By default, when you give Query users access to a record definition, they have access
to all the rows of data in the table built using the associated record definition.
• With row-level security, users can have access to a table without having access to all
rows on that table.
• This type of security is typically applied to tables that hold sensitive data.
• For example, you might want users to be able to review personal data for employees
in their own department, but not for people in other departments. You would give
everyone access to the PERSONAL_DATA table, but would enforce row-level security
so that they could only see rows where the DEPTID matches their own.
• PeopleSoft applications implement row-level security by using a SQL view that joins
the data table with an authorization table.
• When a user searches for data in the data table, the system performs a related record
join between the view and the base table rather than searching the table directly.

Query Security Record Definitions:


• You implement row-level security by having Query search for data using a query
security record definition. The query security record definition adds a security check to
the search.
• Query security record definitions serve the same purpose as search record definitions
do for pages. Just as a page’s search record definition determines what data the user
can display in the page, the query security record definition determines what data the
user can display with Query.
• To get Query to retrieve data by joining a Query security record definition to the base
table, you specify the appropriate Query Security Record when you create the base
table’s record definition.

To apply row level security:


1. Select PeopleTools, Application Designer to open the Application Designer, and open
the record on which you want to apply row-level security.
2. With the record definition open in the Application Designer, click the Properties
button, and select the Use tab from the Record Properties dialog box.
3. Select the security record definition (usually a view) in the Query Security Record list
box.
4. Once you’ve set the query security record definition, click OK to close the Record
Properties dialog box, then save the record definition. If you’ve already used SQL
Create to build a table from this record definition, you don’t need to rebuild it.

Note. PeopleSoft row-level security views restrict users from seeing certain rows of
data. To secure data through the search record, simply put one of the three Row Level
Security fields on your search record as a Key, not a List Box Item. The three Row
Level Security fields are OPRID (User ID), OPRCLASS (Primary Permission List), and
ROWSECCLASS (Row Security Permission List). If one of these fields is on the search
record as a Key, not a List Box Item, PeopleTools does the following. PeopleTools adds
a WHERE clause when it performing a SELECT through the record forcing the value to
be equal to the current user’s value.

Explain Report Distribution in Report Manager?


When we schedule a processes/Report to run by loggin in as say, VP1, then to see the
output/report you have to login with the same User Id VP1. If the requirement is that
another user need to see the same output/report, without using VP1 user id, then we
need to do report distribution and give the user access to report manager so the user
can view other’s reports. One way of achieving this as given below.
• Add the following roles to user
o ReportDistAdmin or ReportSuperUser(See the Note below).
o Any role containing permission List - CPPT1040 (gives access to Report manager) or
similar one.
• To all the processes/reports that user needs to have access, add the userid to
distribution list of that processe/report.
o Go to the process/report run control page
o Slect run control Id
o Click run
o Click ‘distribution’ link for the process/report.
o Select either a user and enter his User Id.
o You have to submit the process/report, once for the distribution data you have entered
to save.
• Submit the process/report for testing.
• Now if the user logs in and go to  Administration tab in Report Manager, he could see
the process/reports and link to see the output/report. User can see the output/report
using process monitor also.
Note: The difference between the administrator (ReportDistAdmin) and super user
(ReportSuperUser) roles is that the administrator role can access and update any report
in the Report Manager. The super user role can  update only reports that they are
authorized to view.

<><> Please check your Retention Days, PeopleTools > Process Scheduler > System
settings(Process System tab). If your Retention Days is set to 7 days, hence you see
only last 7 days reports. If you need more you need change the retention Days and
bounce your process scheduler server.

<><> 1. The Report folders are not automatically created for each user. You need to
create Report folders at PeopleTools > Process Schedulder > System Settings > Report
Folders Administration (tab).
2. Report folders are more of logical, so purging basically deletes it from report
repository. Folder is just a row of data in a table which reference to report in report
repository. If you archive the reports, the folders will loose significance. Here is what
Peoplebooks says:
Unlike the Report Manager - Administration page, the Report Manager - Explorer and
Report Manager - List pages list reports when both of the following events occur:
a. The Distribution Agent has successfully posted the report to the report repository.
When the report has posted, the Distribution Agent sends a message to have an entry
added to the report folder table for the new report.
b. The local message node has received the message that was sent by the Distribution
Agent by adding an entry for the report in the report folder table.
New reports that have been scheduled or are in the process of being posted to the
report repository are viewed only through the Report Manager - Administration page.
Note. Folders that have been deleted remain active until all reports have been purged
from them. However, new reports cannot be added to a deleted folder.
3. It is the global setting.

How to create a log file in Application Engine?


A typical example of Log file creation in application engine using PeopleCode is given
below.
local File &Log_file;
&Log_file = GetFile(“c:\temp\logfilename.txt”, “W”, %FilePath_Absolute);
&Log_file.WriteLine(“Begin Process : ” | %Datetime);
&Log_file.close()

But if you have to use the same log file across the sections within an application engine,
then
Declare the file as global in one of the initial step as given below.

Global File &Log_file;


&Log_file = GetFile(“c:\temp\logfilename.txt”, “W”, %FilePath_Absolute);
&Log_file.WriteLine(“Begin Process : ” | %Datetime);

Then in any following section’s PeopleCode step, declare the global variable and start
writing to the file.
Global File &Log_file;
&Log_file.WriteLine(“Write anything here”);
Don’t forget to close the log file at the end of application engine.
Global File &Log_file;
&Log_file.close()

What are the Steps to check REN Server failure?


The REN Server is a Real Time Event Notification system that allows reports to be
printed to a separate browser window.
If you are getting “Communication with REN Server failed (HTTP 403 Forbidden) ” error
message, when trying to open a report to a separate browser window or trying to ping
the REN server,  then follow the following steps suggested by PeopleSoft for checking
REN server.
Case # 1:
Make sure that you have the proper REN server permissions configured.
Navigate to PeopleTools > Security > Permissions and Roles > Permission Lists. 
Select the primary permission list that is tied to the user profile that you are testing with. 
You will also have to grant permissions to the USER ID that is configured for your
Process Scheduler database signon settings, if that user is different than the one that
you are currently logged in as.  Once the permission list is up, go to the PeopleTools
tab.  Click on the “Realtime Event Notification Permissions” link in the middle of the
page.  On the next page, make sure that the access code for Reporting Window is set
to full access.
Next, go to the Web Libraries tab.  Make sure that there is an entry for WEBLIB_RPT.  If
it is not there, then please add the library in.  Once that is added, click on the edit link
and make sure that the access permissions are set to full access.
Make sure to save the changes before exiting.
Next, navigate to PeopleTools > Portal > Node Definitions and click search to bring up
all of your nodes.  Sort so that your default local node is listed at the top.  Click on the
name link for the default local node and make sure that the Authentication Option is set
to password and that a password has been entered.
Finally, navigate to PeopleTools > Security > Security Objects > Single Signon.  Make
sure that your default local node is listed there.
Case #2
If using an authentication domain, make sure that the REN server configuration is
specifying the domain:
  -Navigate to PeopleTools -> REN Server Configuration -> REN Server Cluster
  -Select your REN Server Cluster
    -Verify ‘Authentication Domain’ has been specified
    -Verify that the domain is specified in the ‘REN Server Browser URL’

Case # 3
This case applies to PeopleTools 8.44 only.  If the initial PIA deployment did not specify
an Authentication Domain, but the environment now has one, it is necessary to add the
Authentication Domain to the active Web Profile.  Navigate to PeopleTools > Web
Profile.  Search for and select the active Web Profile.  (If you do not know what Web
Profile is currently active, check your configuration.properties file.  It will tell you what
Web Profile is currently active).  Once you have the Web Profile up, the first tab should
be labeled “General”.  Make sure the field for Authentication Domain field on the
General tab has your company’s Authentication Domain (ex. mycompany.com).  Make
sure to save your changes and bounce the web server for the change to take effect,
then go back and try running your Ping Test.

Case # 4:
One customer reported that in their REN Server Configuration > REN Server Definition
page, the Application Server Domain name was case sensitive.  After they changed the
Application Server Domain name to match how it was defined through PSADMIN (in this
case, to include lowercase characters), they were able to access the REN server.

Case # 5:
If you are still having issues after trying the suggestions above, then try clearing cache
in case some Ren configuration changes were made, but cache was not cleared
afterwards.  To clear cache,  bring down the PIA web server and the application server
and clear the cache.  Also, clear the cache and cookies from your browser and close all
browser sessions.  Restart the PIA web server and application server.   Then run ping
test again.

How to create custom audit table?

To audit an already existing PeopleSoft record (PeopleTools ver 8.45+), we need to


create a record definition and SQL table in which we store audit information. When
creating the audit record (similar to delivered PSAUDIT), remove any attributes such as
PARENT records, Query Security Records, and PeopleCode. The easiest way to create
an audit table is to open the record definition of the base record that you wish to audit.
Save it as a new record, prefaced with AUDIT_.

Remove the all edit and key attributes from the newly saved record. Also remove any
attributes such as
PARENT records, Query Security Records, and PeopleCode. Add to the top of the audit
record the following three special audit-specific fields in the same order given below.
• AUDIT_OPRID
• AUDIT_STAMP
• AUDIT_ACTN
• AUDIT_RECNAME

In most cases you should include AUDIT_OPRID, AUDIT_STAMP, AUDIT_ACTN. The


AUDIT_STAMP must be given the attribute AUTOUPDATE. You might also add
AUDIT_RECNAME if you are creating an audit table to audit more than one record
definition.
Make these fields required and keys. Then build the table. Make sure you can query this
table using sql editor.
The purpose of each audit specific field is explained below.
AUDIT_OPRID - Identifies the user who caused the system to trigger the audits—either
by performing an add, change, or delete to an audited field.
AUDIT_STAMP - Identifies the date and time the audit was triggered.
AUDIT_ACTN  - Indicates the type of action that the system audited. Possible actions
include:
A: Row inserted.
D: Row deleted.
C: Row changed (updated), but no key fields changed. The system writes old values to
the audit table.
K: Row changed (updated), and at least one key field changed. The system writes old
values to the audit table.
N: Row changed (updated), and at least one key field changed. The system writes new
values to the audit table.

AUDIT_RECNAME -  Identifies the name of the record definition that was audited.
The audit table does not have to include all the columns of the base table. In fact, for
performance reasons, it’s best to only include those fields in your audit record that are
deemed
In App Designer, open the record properties for the record you want to audit, Under the
Record Audit, we have the following options:
Record Name - Specify the user-defined audit record.
Audit Options - following are the audit options to choose for auditing the record.
• Add -  Inserts an audit table row whenever a new row is added to the table underlying
this record definition.
• Change -  Inserts one or two audit table rows whenever a row is changed on the table
underlying this record definition.
• Selective -  Inserts one or two audit table rows whenever a field that is also included in
the record definition for the audit table is changed.
• Delete -  Inserts an audit table row whenever a row is deleted from the table
underlying this record definition.
Now perform online transactions on the audited table, query the audit table to know
what is changed and who changed it at what time.

How do you monitor PeopleSoft session using WebLogic Server Console?


This is Taken from PeopleBooks - PeopleTools 8.49.
TheWebLogic Server console can display a list of established HTTP sessions for that
instance of the WebLogic Server. Session Monitoring is automatically enabled for
WebLogic. These instructions describe how monitor the single server configuration of
PIA. When in production, note that a multi server configuration would be used to
perform these steps to the server instance that you intend to monitor, such as PIA1 or
PIA2, or both.
1. Start the PIA server.Start the PIA server either using startPIA.cmd(.sh) or, if installed
as a Windows service, NET START PeopleSoft-PIA.
2. Log on to PeopleSoftLog on to your PeopleSoft application. If possible, log on from a
couple different workstations using different PeopleSoft IDs. For the purpose of this test,
do not log off.
3. Log on to the WebLogic Server Administrative Console.  In a new browser, access
the WebLogic Server console at http://weblogichost:port/console and specify the
WebLogic administrative ID you specified during the PIA installation. The default ID and
password are system/password, respectively.
4. Monitor established HTTP sessions for the PORTAL web application.  On the left,
use the following navigation to view the list of established HTTP sessions for the
PORTAL web application:
• Click Deployments, and view the deployment list in the right hand window.
• Click PeopleSoft.
• Select the Control tab.
• Select the PORTAL application module, where the context root of the module is ‘/’.
• Select the Monitoring tab.
• Select the Sessions tab.

Note. You can customize the list of fields that you want to monitor using the Customize
this table link.
What is Component Processor?
The Component Processor controls the PS applications from initial data retrieval
through updating the database.  This manages the flow of data processing as users
enter information on pages.  Issues INSERT, DELETE and UPDATE statements to
maintain data in the database and SELECT statements to retrieve data.

How do you bring component buffer into AE program?


You can assign a record which is used in component buffer to a state record of AE.

What is SQL View and Temp table?


SQL View: It has fields from one or more tables in the reorganized way.  This provides
alternative view of information stored in the tables.
Temporary Table: It is used for running AE batch processes.  These can store data to
update without impacting the main application table.

Can the output of a SQL query be stored in a variable using PeopleCode?  If so, how
can it be done?
SQLExec(“SELECT EMPLID FROM JOB”, &Emplid);

How to migrate roles or PeopleCode from one db to another db?


Include all the roles in a project by clicking on Insert > Definitions into Project.  Select
Roles and add them into the project.  Migrate the project to another db. 
Create a data mover script to migrate roles from PSROLEDEFN or PSPCMPROG for
PeopleCode table.
== Login to database thru App Designer as a source db
== Click on Upgrade tab and open the project which contains roles which you want to
migrate
== Double click on Roles under the opened project
== Select action as “Copy”
== Go to “Tools > Copy Project > To Database…”
== Select “Roles” from different objects and copy those roles.
== After copying, double click on Roles folder under the opened project and verify that
“Done” check is checked.

What is the use of set control field in record field properties?


It is used when you want to share tables in PeopleTools applications.

How is performance management taken care in PeopleTools?


== Indexing tables on the database side helps in batch processing a great deal.
== Analyzing tables help.
== If there is custom code, make sure SQL queries used are written well with the use of
proper keys and joins.
What are state records in AE?
== It will be used to pass variable information between two application engine sections.
== It can be physical or derived work record.  Physical record can be used when you
have restart logic and whn you have disabled the restart login derived work record can
be used.
== There can be a max of 200 state records that can be used in a single AE but only
one of them can be default state record, name must end with _AET.

What is the mandatory step of AE program?


== Main is the required section in AE.  There can be multiple steps in single AE but at
least one step should be part of AE.  Similarly you can have multiple actioins in AE but
you should have minimum one action part of step.

What is difference between component level PeopleCode and record level


PeopleCode?
Component level PeopleCode is associated with unique component, whereas record
level PeopleCode can be associated with any number of components.

What are types of PeopleCode functions?


== Built in functions
== Internal functions
== External PeopleCode
== External Non-PeopleCode

What is the difference between Prebuilt and Postbuild events and saveprechange and
savepostchange?
Prebuild can be used to validate your search data, discarding rows.
Postbuild can be used to play with the pages (hide, unhide), filling up scrolls.
SavePrechange is the last event where you can validate and correct data before
updating the database.  Savepostchange will be used to play with tables which are not
present in your component buffer.

What is the sequence of PeopleCode events?


Searchinit PeopleCode performsbefore the search dialog box displays.
Searchsave PeopleCode performs after the operator clicks OK in the search record
dialog box.
RowSelect PeopleCode is used to filter out rows of data
Prebuild is often used to hide and unhide the pages
Fielddefault attempts to set defaults for fields without a value
Fieldformula performs, after field defaults completes
Rowinit is used to initialize  the rows
Postbuild PeopleCode performs after all the component build events have performed.
Activate event is fired every time the page is activated.

What is difference between SQLEXEC and CREATESQL?


== SQLEXEC means it bypasses the component buffer and it is directly contacts
database to retrieve data.  But it retrieves the data row by row and not possible for bulk
insert.
== But in the case of CREATESQL, we can insert bulk data.

Where is PeopleCode stored?


Database server, PSPCMPROG

Is there any function in PeopleCode which stops the processing of whole component?
Think-time functions suspend processing either until the user has taken some action
(such as clicking a button in  a message box), or until an external process has run to
completion.
Examples: Docancel, Domodal, domodalcomponent, Exec (only when synchronous),
File attach functions, Prompt
Remotecall, revalidatepassword, winexec (only when synchronous), winmessage,
winmessagebox

What are the stages of program flow in SQR?


Compile stage
All the preprocessor directives are compiled (which starts with #include) - E.g. All the
SQCs are run.
Check for syntax errors of the conditions (E.g. If, for, while loops are ended properly)
Allocates memory structure if Arrays and load lookups are used
Execution Stage:
Starts interpreting the code line by line
Check for the begin-program, begin-heading, begin-footer of all sections below:
-Setup section
-heading section
-footing section
-program section
-procedure section

Difference between Translate values and Prompt tables?


Translate table is a special kind of table that is limited to validating data of four
characters or less. The translate table serves as a universal prompt table and is
effective-dated.
Prompt table are used to provide users with validate values from other tables other
values are generally populated by system users and are often application specific.

What is .SQC and .SQT?


.SQC is a Function Library file. It is like a sub program is saved by extension .SQC and
this program can be called in the SQR program
.SQT is compile time/Run time file. When a file with XXX.SQR is compiled we get the
output as XXX.SQT and when is XXX.SQT is executed we get the output XXX.LIS (List
file/Output file).

What are the important SQCs that need to be attached to SQR program?
-#include 'setenv.sqc'
-#include 'stdapi.sqc'
-#include 'prcsdefn.sqc'
-#include 'prcsapi.sqc'
-#include 'curdtrim.sqc
-#include 'hrctlnld.sqc'
-#include 'datwtime.sqc'

How to do Performance tuning in SQR?


-Load Look Up
-Arrays
-Multiple Report
--Bnn
-Using SQT Files
-Run on the BATCH Server
-Proper Programming Logic
-Set processing
-=SQL Tuning

What is difference between search record and add search record?


Search Record: Specify the search record for the component. The search record
controls access to rows of data in a table. Its keys and alternate search keys appear on
the search page as criteria.
Add Search record: Specify if you want a different search record specifically for add
actions.

What is difference between scroll and grid?

Scroll area is used to maintain parent child relationship and we insert grid in low level
scroll.
Example: Assume that we have 3 scroll levels in our page level1 level2 and level3, we
insert grid in level 3

How many ways we can run the application engine program?


-Running from Application Designer.
- By calling PeopleCode function.
-Running from DOS Environment (Debugging).
-Running from Application Engine People Tool.
- Running from PeopleSoft Application.

What are the three actions that can be attached to menu?


-Component
-Separator
-PeopleCode

What is the difference between a Process and a Report?


The Process receives a command line parameter where as the Report receives run
controls from the page.

What are the maximum number of actions possible in a step, list them?
Various actions possible in Application Engine step are as follows:
-Do while
- Do When
- Do select
-PeopleCode
- SQL
- Call section
- Log Message
-Do until

One action can be called only once in a step of an Application Engine program.

What is built in restart logic in Application Engine programs?


Within each Application Engine program, you must define how frequently the program
will issue a COMMIT. After doing so, each COMMIT becomes a "checkpoint" that
Application Engine uses to locate where within a program to restart after an abend. This
type of built-in logic does not exist in COBOL or SQR.
What are Application Engine State records?
The State Record is a PeopleSoft record that must be created and maintained by the
Application Engine developer. This record defines the fields a program uses to pass
values from one Action to another. Think of the fields of the Application Engine State
Record as comprising the working storage for the Application Engine program.
An Application Engine State Record can be either a physical record or a work record,
and any number of State Records can be associated with a program. Physical State
Records must be keyed by process instance.
An Application Engine State Record must have PROCESS_INSTANCE defined as the
first field and the only key field. And, so that the system recognizes the record as a
State Record, all State Record names must end with the _AET identifier.

What is difference between Getrowset and Createrowset in PeopleCode?


Getrowset -is used to get rowset for a record in the component buffer.
Createrowset—is used to create rowset for a record which in database, and is also
called a Standalone rowset.

What are the steps involved in Data Conversion?


-Extract data from the legacy system
-Reconcile the extracted data
-Identify the tables to be leaded with the new system
-Data Mapping
-Identify the tools (SQR or Import Manager or SQL Loader etc)
-Write programs to perform conversion
-Test the programs using test data
-Check the data outline
-Reconcile concerted data.

How do you link SQR reports to process scheduler?


-Create/modify/add run control table if you have any new fields
-Create/modify/add run control page if you have any program inputs
-Create a menu definition (Note Menu group name: XYZ)
-Give operator security
-Create Process scheduler definition
-Use-Process definition
- Add process definition
-Give report name and report type

What are variable types in SQR?


-& Data base reference fields - Read only
-$ Character (Same for Date)
-# Numeric
-{ } Variable in ASK or # define
-[$ variable] Dynamic variable referencing

What are the types of record definitions?


-SQL Tables
-SQL views
-Dynamic views
-Derived / Work Records
-Sub Records
-Query views

What is a Dynamic View?


Dynamic view that can be used like a view in pages and PeopleCode, but is not actually
stored as a SQL view in the database. Instead, the system uses the view text as a base
for the SQL Select that is performed at runtime. Dynamic views can provide superior
performance in some situations, such as search records and in PeopleCode Selects,
because they are optimized more efficiently than normal SQL views.
What is a Record Group ID?

A Record group ID is a group of record definitions that are Sharing the same set control
field.

What are the types of layers in Crystal reports?

There are 4 types of layers in Crystal Reports. They are


1. Report Header - In this, we will write title, date, and logos of the company.
2. Page Header - Used to write column headings.
3. Detail - Contains database column values.
4. Page Footer - Used to write page numbers and address.

Define the types of security administrator profiles?


There are three types of Security administrator profiles:
1. Access Profile: It is an RDBMS ID. It provides the necessary Ids and password for
behind-the-scene process.
2. Class Profile: It is defined to organize the users into groups with common access
rights or privileges.
3. Operator Profile: It is commonly referred as a Operator Ids or operator having
associated sign on passwords.

What is the use of primary permission list in user profile?


Primary permission list is used for mass change and definition security purposes.

How to authorize the user to run a process or report?

To authorize a user to run a process, the process group, which contains the process or
report, should be added to the permission list of that user.

What fields should be at the top of every search record definition that use table set Ids?
SET ID is the field that should be at the top of every record definition that uses table set
Ids.

What are the limitations of Translate table?


• Field type should be character
• Minimum Field length should be 1 to 4 characters.
• Field values should be small (static).

How many types of Displays are there in the tool bar?


1. Field Display - It shows the field attributes (fieldname, Type, Len, Format, H, and
Shortname, Long name
2. Use Display - It shows key related characteristics and default values for the fields
(Field name, type, direction indicates, search key, list, system indicates, audit, H, default
values)
3. Edit Display - It shows the auditing options available for the fields (field name, type
required , edit, prompt table, reasonable date, PeopleCode)
4. PeopleCode display - It shows the different events and the user can choose required
event to write PeopleCode.

What are the physicals attributes Application Designer screen?


The following are the attributes of PeopleSoft Application Designer
1. Title bar
2. Menus
3. Toolbar
4. Project Workspace - it arranges PeopleSoft objects in Windows explorer format
5. Objects Workspace - Open Multiple Object and store in main window.
6. Output Window - Deals about the output generated by using project development or
ugrade.
7. View tabs - Development tools / Upgrade

How is data stored, retrieved, manipulated and processed in PeopleSoft applications?


PeopleSoft is a table-based system and it contains three major sets of tables,
1. System catalog tables; it stores physical attributes of tables and views. (e.g. Sys,
Columns, Sys tables)
2. People Tools tables; it contains information that you define using People Tools (e.g.
PSRECDEFN, PSMENUDEFN)
3. Application Data Tables; Store the actual data users enter and access through
PeopleSoft application windows and pages. (E.g. PS_ <…>)

How many types of securities are available in PeopleSoft?


There are 6 types of securities:
1. RDBMS Security 2. Network security 3.Operator security 4. Object security 5.Tree
level security 6. Query security (row level security)

Which effective dated rows can be retrieved in update/display mode, update/display all
and correction mode?

Update/display - can view current and future rows. Can update only future rows.
Update/display all - can view history, current and future rows. Can update only future
rows
Correction - can view and update history, current and future rows.

What are Table Edits?


We have prompt table edit, yes/no table edit, translate table edit as the table edits.

What conditions are required to establish parent child relationship between two
records?
Conditions are:
1) The child record should have all the key fields of parent record and at least one more
key field other than the key fields of parent record.
2) We should mention the parent record in the record properties of child record.
3) We cannot go for more than three levels of parent/child relationships.

Advantages are:
1) To have referential integrity.
2) Data dependencies
3) Eliminate redundant data

Can you place Sub page into Grid? If yes How?


Yes, we can insert subpage using insert subpage. After insert subpage into main page,
drag the subpage into the grid. When we save the page we are successfully able to
save the page showing that we can insert a subpage into a grid.

Can you hide a primary page in a component? Why?


No, we cannot hide the primary page of a component. If the component had only one
page then by making this page also invisible we won’t have any component existing so
we are not allowed to hide the primary page.

How can you improve the security and usability of a Prompt table edit?
By using Prompt table view

What are the different ways to setup row level security?


We can setup row-level security using a SQL view that joins the data table with an
authorization table. And by having Query search for data using a query security record
definition. The query security record definition adds a security check to the search.

How does PeopleSoft use views? Which are online functions?

PeopleSoft uses views for search records, summary pages, prompt views, reports.  
Search records and summary pages are online functions.

Why do PeopleSoft often use views as search records?


Search views are used for three main reasons.
• Adding criteria to the search dialogue page
• Providing row level security
• Implementing search page processing

How can a component have more than one search record?

You might want to reuse the same component multiple times with different search
records. You can accomplish this by overriding the component search record at runtime
when the component is opened from a menu item without creating separate copies of
the component. The component override is temporary, and occurs only when the
component is opened from the menu item in which the override is set. It does not
change the component definition.
How to populate data into grid in online?
&Rs.Select() Scrollselect()

How do you test Component Interface?


• Using the Component Interface tester
• Give values in the tester for options
• Get Existing, Create new, Find and perform the operation from the CI Tester

How to catch error message in the component Interface? Or how to use PSMessages in
the CI ?
This function needs to be called when ever methods like Find, Save, Create methods
return false
Error text and Error type can be printed in the log message for any other action in to the
log message.
Function CheckErrorCodes()
&PSMessages = &Session.PSMessages;
&ErrorCount = &PSMessages.Count;
For &i = 1 To &ErrorCount
   &ErrorText = &PSMessages.Item(&i).Text;
   &ErrorType = &PSMessages.Item(&i).Type;
  End-For;
End-Function;
 
When working with PeopleSoft system tables, what are setup considerations that you
need to make?
- Sequence of table setup
-Default values
-Effective dates
-Actions

What are PeopleSoft application data table types?

=> Translate Tables -These values are between one and four characters long
-They do no need to be updated often
-They are effective dated

=> Implementation Processing and Defaulting tables


-Installation Table
-Organization defaults by Permission lists
-Business unit HR defaults table
-Table set control table

What are Control tables?

These tables serve as foundation for the Organization.


-Company Table
-Business Unit Table
-Location Table
-Compensation Rate Code Table
-Job Code Table
-Table SetId (SetId table)
-Establishment Table
-Department Table
-Salary plan, Grade and Step Table
-Pay group Table
-Transaction tables: Records change often in these tables
-Personal Information
-Employment table
-Job table
-Benefits program participation tables

What is the sequence of table setup in HR?


-Installation Table
-Company Table
-Table SetId (SetId table)
-Business Unit Table
-Table set Control Table
-Organization defaults by Permission lists
-Business unit HR defaults table
-Establishment Tables
-Location Table
-Department Table
-Compensation Rate Code Table
-Salary plan, Grade and Step Table
-Job Code Table
-Pay group Table

What are Metastrings or MetaSQL?

Metastrings are special type of SQL expressions preceded by % sign.


Metastrings are used in the following:
-SQLExec
-In application designer to build dynamic views
-With rowset object methods (select, fill)
-SQL objects
-Record class methods (Insert, Update)
-Application Engine
-Cobol

What are the commands that can be called from setup section?
-Ask
-Define-Chart
-Define-Layout
-Define-Image
-Define-Printer
-Define-Procedure
-Define-Report
-Dollar-Symbol

What are important Tables in HRMS?

PS_PERSON, PS_PERS_DATA_EFFDT, PS_PERS_NID, PS_EMPLOYMENT,


PS_JOB, PS_JOB_TBL,
PS_DEPT_TBL, PS_LOCATION_TBL, PS_FED_TAX_DATA, PS_STATE_TAX_DATA,
PS_LOCAL_TAX_DATA, PS_BEN_PROG_PRATIC, PS_HEALTH_BEN,
PS_LEAVE_PLANS, PS_LIFE_BEN, PS_RTRMNT_PLN, PS_PAY_CHECK,
PS_PAY_LINE,
PS_PAY_BONUS, PS_PAY_DEDUCTIONS, PS_POSITION_DATA

PeopleSoft security mainly depends on Rowlevel security. Security works best if it is


based on organizational structure. Types of security supplied by PeopleSoft:
-Departmental security
-No security
-International security
Tree Manager: 3 steps in setting up department security:
-Create the security tree
-Update department security tree
-Grant and restrict access to the entities
How many sub pages, secondary pages can be created in one level?
We can create only one Secondary Page. But where as we can create N no of Sub
Page in one Level

Briefly explain Data Mover?


PeopleSoft Data Mover is a stand-alone two-tier program, which you can run through a
graphical interface on Microsoft Windows, or with a command line interface on either
Microsoft Windows or UNIX systems.

PeopleSoft Data Mover enables you to perform the following tasks:


-Transfer application data between PeopleSoft databases.
-Move PeopleSoft databases across operating systems and database platforms.
-Execute Structured Query Language (SQL) statements against any PeopleSoft
database, regardless of the underlying operating system or database platform.
-Export data in a platform independent manner.
-Control database security and access.
-Create, edit, and run scripts which combine SQL commands and PeopleSoft Data

Mover commands for exporting and importing data.


-Regular Mode: Using PeopleSoft User Id
-Bootstrap Mode: Using Database access Id

What are Data Mover commands?


-ENCRYPT_PASSWORD: Encrypt one or all user passwords (operator and access)
defined in PSOPRDEFN for users.
-EXPORT: Select record information and data from records and store the result set in a
file.
You can use the generated export file as input for migrating to another platform.

-IMPORT: Insert data into tables using the information in an export file. If a tablespace
or table does not exist, this command creates tablespace, table, and indexes for the
record, using the information in the export file, and inserts the data.

-REM: For Remarks

-RENAME: Rename a PeopleSoft record, a field in one record, or a field in all records.
-REPLACE_ALL: This is a variation of the IMPORT command. If a table already exists,
use this command to drop the table and its indexes from the database and create the
table and indexes using the information in the export file. Then, the command inserts
data into the table using the information in the export file.
-REPLACE_DATA: This is a variation of the IMPORT command. Delete data in existing
tables and insert the corresponding data from the export file.
-REPLACE_VIEW: Recreate specified views found in the database.
-RUN: Run a specified .DMS file from within a PeopleSoft Data Mover script. The file
cannot contain nested RUN commands.
-SET: When a command is followed by valid SET parameters, it forms a statement that
establishes the conditions under which PeopleSoft Data Mover runs the PeopleSoft
Data Mover and SQL commands that follow.
-SET IGNORE_ERRORS: If this command is set, then all errors produced by the
SWAP_BASE_LANGUAGE command are ignored. Otherwise, the system stops on
errors.

How to ensure Data Integrity in PeopleSoft?


You may want to use these tools during upgrades and system customizations, to verify
the PeopleSoft system and check how it compares to the actual SQL objects.

-Run SQL Alter: The primary purpose of the PeopleSoft Application Designer SQL Alter
function is to bring SQL tables into accordance with PeopleTools record definitions.
-Run DDDAudit: The Database Audit Report (DDDAUDIT) finds inconsistencies
between PeopleTools record and index definitions and the database objects. This audit
consists of nine queries: four on tables, two on views, and three on indexes.
-Run SYSAUDIT: The System Audit (SYSAUDIT) identifies orphaned PeopleSoft
objects and other inconsistencies within the system. An example of an orphaned object
is a module of PeopleCode that exists, but which does not relate to any other objects in
the system.
Explain Upgrade Assistant?

To use PeopleSoft Upgrade Assistant, you run a process using an upgrade job and
upgrade template.
The upgrade job is a set of filtered steps that are specific to your upgrade and relevant
only to the release, platform, and products you are using. For PeopleSoft supported
upgrades, PeopleSoft provides predefined upgrade templates on Customer Connection.
These templates comprise the steps necessary to complete an upgrade for a supported
upgrade path.
Editing Templates:
-Add steps: You may need to add custom steps to the template -for example, steps for
dropping and adding indexes or running a backup of the target database.
-Edit steps: You can modify the delivered settings by changing the step properties.
Setting these properties determines the conditions that apply when you run the upgrade
process.
-Delete chapters, tasks, or steps.
-Rename chapters, tasks, or steps. Creating Templates:
-Creating Custom templates: You can create a custom template for your upgrade. When
you create a custom template, you also insert chapters, tasks, and steps. In addition,
you specify step properties.
-Creating Chapters: You can add a chapter to a new or existing upgrade template. A
chapter is a section heading for a group of tasks.
-Creating Tasks: You can add a task to a new or existing upgrade template. A task is a
section heading for a group of steps

-Creating Steps: You can add a step to a new or existing upgrade template. A step can
be any process needed to perform the upgrade.

PeopleSoft Upgrade Assistant uses the PROCESSREQU EST component interface


object to submit jobs to run on the PeopleSoft Process Scheduler server. You must
configure your environment for PeopleSoft Upgrade Assistant to submit processes.

Which one of the following are standard properties when a Component Interface (CI) is
created?
GetHistoryItems
Which of the following are TRUE when a Component Interface (CI) is created on
component that has Add action enabled?
Get keys, Create keys and Find keys get created automatically. The Create method is
created along with the other Standard methods for the CI .

Where is WorkItem available?


WorkList Record

In which platform does Crystal and Ps\nVision works?


Windows
You want to update your password and enter a hint for forgotten password. What would
you access?
User Profile

What happens when you change prompt table from ‘NO EDIT’ to ‘EDIT’ option?
User can type only prompt table values and the default values gets populated from the
database.

Customization done in Dev DB, Which tool I will use to move it to Prod DB?
Use App Designer > Copy DB

How many Message nodes are possible for a database?


Unlimited

How will you get a single output by combining two or more queries/tables?
UNION

Which one of the following Data Types is NOT supported by the PeopleCode
programming environment?
TIMESTAMP

When a business requirement in Fit/Gap Analysis does not meet by PeopleSoft then?
Some options: 1. Customize PS application 2. Buy third party software 3. Call Oracle-
PS Development Center for Enhancement

What statuses available in PeopleSoft Domain Status Menu?


Server, Client and Queue Status

Which of the following PeopleCode event fires after the database is updated?
SavePostChange

In which one of the following views would you see the fields, criteria, and other details
associated with the current query?
Query view
PeopleSoft tracks object changes using a system table. Which PeopleTools System
table is used to track object changes?
PSRELEASE
PeopleSoft has its own naming convention for system and non-system (application)
tables. What is that?
RECORDNAME refers to the name of any table or record. Referring to the above
information, which one of the following identifies the naming convention PeopleSoft
uses for system tables?

System table: PSRECORDNAME (PSRECDEFN)


Application table: PS_RECORDNAME (PSunderscore PS_PERSONAL_DATA)
Which process is used for running AE programs which are to be run at a frequency of
less than a day?
PSDAEMON
You can specifically trace the activity of the PSAPPSRV server process by setting
what?
PSAPPSRV.tracesql
Which of the following is correct in order to start the Process Scheduler Server from the
command line using psadmin?
Psadmin -p start -d
In the following url, Which one is the component definition?
http://localhost/PeopleSoft/EMPLOYEE/PSFT_HR/c/PROCESS_SCHEDULER.PRCST
YPEDEFN.GBL

PRCSTYPEDEFN.GBL

I have created a Menu and a Page and given user access to that page, which of the
tables gets affected in this scenario?
PeopleTools Tables
You are a PeopleSoft Partner and wish to get information on database performance
benchmark (or something like this). Where would you look for the info?
PeopleSoft Knowledge base

Which audit finds Orphaned Records?

SYSAUDIT

Which RDBMS uses Tablespace?


Oracle, DB2

Which command is valid in both bootstrap and regular mode when operating the Data
Mover?
GRANT_USER

What are PeopleCode events pertaining to Record Field?


FieldEdit, SaveEdit and RowDelete

Which command can be run in Bootstrap mode in Data Mover?


ENCRYPT_PASSWORD

What views available in Application Designer project workspace?


Development and Upgrade

Which of the record definitions is NOT stored on the database and is therefore NOT
required to be built?
Derived/Work Record
You have downloaded an Application fix as a project from the customer connection.
Where would you upgrade it to?
Demo

PS Query definition is stored on which server?


DB Server

How do you login into BS/Bootstrap mode?


Using DB Access Id
If you want to log into Data Mover in Bootstrap mode, you would login as?
Database superuser (PS)

What is added as new option in Build apart from Create Tables, Indexes, Views?
Create Trigger

Where will you configure for failover of Application Server?


Configuration properties (psappsrv.cfg)
Which one of the following is a transaction control statement?
Commit

What Record Changes does not affect Database?


Change in Listbox in Record Field properties

Which one of the following steps is NOT part of performing an upgrade?


Apply all outstanding patches, prior to upgrade

R-* files refers to what?


Application Updates and Fixes

How do you set up table-sharing in PeopleTools applications?


Add the field, SETID, as a key field to each table you want to share, and then define the
set control field.

PeopleSoft reserves ALL Message Sets (in Utilities, Message Catalog) up to which
number?
PeopleTools > Utilities > Administration > Message Catalog
It is advised in PeopleBooks that PeopleSoft reserves all message sets up to 20,000 (1
to 19,999). So you should start custom message sets from 20,000 onwards.

What is the default Crystal Report that PeopleSoft Query tool creates?
ACTQRY.RPT

Which Web Servers are only used as a Proxy Server?


1.  MicroSoft IIS server
2. Apache server
In PeopleCode Debugger what are the valid values?
1. Go
2. Step Over
3. View Variable Value
Which of the following technology is used in App Messaging / IB?
XML

Which one of the following PeopleCode debugging tools automatically converts values
of any data type other than object into string values for viewing during debugging
process?
WinMessage

Where do you set the web server cache?


webserver configuration.properties file

Can a Business Process be used as a Navigator Home page?


Yes

The physical, dedicated tables are locked at the time the Application Engine program is
loaded into memory?
True

State Record (used in AE) can be Dynamic Record?


True

You can assign multiple databases and application servers to a single profile. But, each
database and application server must be assigned to only one profile?
True

The Trace tab in Configuration Manager only traces Windows client (two-tier)
interactions?
True

TriggerBusinessEvent is used for triggering the workflow and it is written on workflow


event. TriggerBusinessEvent has the syntax?
TriggerBusinessEvent(BusProcess, BusActivity, BusEvent);

Which Task cannot be done through PSADMIN?


Starting Web Server

Activate Event is Valid for following?


Standard & Secondary

What category of commands can be executed in Data Mover?


SQL and data mover commands
The application server dynamically scales server processes according to the volume of
transaction requests which is known as?
Spawning

Where do you create the process security groups?


Security Administrator

What is the configuration file that contains the entire collection configuration values for a
given Application Server domain?
PSAPPSRV.CFG

Which command shuts down an application server domain using a “forced” shutdown
method?
psadmin -c shutdown! -d ps800dmo

The DB User mentioned in Connect ID should have permission to which Three


PeopleSoft Tables?
PSACCESPRFL, PSSTATUS & PSOPRDEFN

You just finished customization work that involved the creation of many new objects.
You must now migrate these objects from your development database (source) to a
testing database (target) to conduct more elaborate testing.  Referring to the above
information, why would adding your objects to a Project streamline the migration to a
new database?
Projects provide the ability to migrate all objects at once or each object type individually.

Which of the following menu options allow you to modify the Last Process Instance
Number used within the system?
Process Scheduler, Use, Process Definitions

Trace 255 command line option produces the trace file with the name?
PID.AET

Where can you see the status of the job report and details in secured way?
Process Monitor

Where Non Repudiation property can be set?


PIA,  PeopleTools-> Integration Broker->Node Definition
Application Designer->Message ->Properties

If you change the long name of translate field, what object needs to be altered?
Page definition

When do configuration changes made using the Configuration Manager take effect?
Once you exit PeopleSoft and log back in.
Business Interlink data type can be declared as?
Local

The following ApiObject data type objects can’t be declared as Global?


JavaObject

What is PeopleSoft’s hub to handle complex system-to-system interactions?


Integration Broker

DoSave( ) can be called from one of the following events?


FieldEdit, FieldChange, MenuItemSelected, SavePreChange & SavePostChange

In which PeopleCode event does ALL data validation take place?


FieldEdit

PeopleCode attached with Push Button can be associated with which of the following
events?
FieldEdit, FieldChange

PeopleSoft allows multiple long fields per State Record?


False

AE does Parse SQL?


False

We define business rules PeopleCode on?


Event definition

What is the logic used by Component Buffer?


Depth First Algorithm

What are two Program views of AE Program?


Definition, Program flow

Query is split into what?


Component and Query view

Menu path provides path to?


Component

When Auto-join check box is checked, what does it mean?


Common key fields

An employee is transferred where should he refer in this inspection?


Business Process
What are destructive statements in App Designer record build option?
Recreate a Table, Recreate a View

A clients App was 3 months behind, what should he do to update the app since it was
not working?
Apply all Service packs

Worklist for a particular user contains marked worked and reassigned buttons. The
Worklist reassigned button is set from?
App designer -> worklist definition
Where does PS application logic reside?
App server

Where do peopletools data is cached?


App server

File formats for File Layout?


Xml, csv, fixed length

Where is Meta-SQL stored?


Temp Table

What are all stored in System Catalog?


SQL table, SQL View

You might also like