Sie sind auf Seite 1von 112

Field-Level Default Processing

Default Processing on Panel Group Level


Field-Level Default Processing

Any field blank or


another field changed
Result

Else

FieldFormula

Field-Level Default Processing

Any field blank or


another field changed
Result

Else

Continue processing...

Search Processing in Update Modes


Default processing

RowInit

SearchInit

Add/ Data Entry Dialog


Add
mode
Yes
Field Edited System Edits only
No
Fail
Result

Pass

FieldEdit

Error
Result

Accept/Warning

FieldChange

Default processing

SaveEdit

Error/Warning
Cancel
Result

Accept/Warning OK

SearchSave

Error/Warning
Cancel
Result

Accept/Warning OK

Buffer search key values

Search Processing in Add Modes

Panel Group Build Processing in Update Modes


RowSelect processing

Default processing

RowInit

Display panel,
wait for user action

Row Select Processing


Panel Group Build Processing in Add Modes

Default processing

RowInit

Display panel,
wait for user action

Field Modification
System edits

Fail
Result

Pass

FieldEdit

Error
Result

Accept/Warning

FieldChange

Error/Warning
Result

Else

Default Processing Display error message

Unrecoverable error: Display panel, Highlight field,


cancel panel wait for user action redisplay panel
Row Insert Processing

Insert new row

RowInsert

Error/Warning Else
Result Default processing

RowInit

Unrecoverable error: Display panel,


cancel panel wait for user action

Row Delete Processing


RowDelete

Error Accept/Warning
Result

Row flagged as deleted

Delete rejected Default processing

Display panel,
wait for user action

Save Processing
Can we insert sub record into another subrecord?
Ans:Yes,we can insert a Sub-record into another Sub-record.When a Sub-record definition is
opened goto Insert and Sub-record.

What are Data Buffer Classes in Peoplesoft?


Ans: There are totally 4 Data Buffer Classes in Peoplesoft. They are
1.Row Class 3.Field Class
2.Rowset Class 4.Record Class.

Order of Execution of PeopleCode Programs


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

People Code Event sequence Execution


Ans: 1.Search Init
2.Search Save
3.Row Select
4.Prebuild
5.Field Default
6.Field Formula
7.Row Init
8.Postbuild
9.Activate
10.Field Edit
11.Field Change
12.Row Insert
13.Row Delete
14.Save Edit
15.SavePrechange
16.Work Flow
17.SavePostchange

What are Menu types available?


1. Standard
2. Pop-Up

Difference between Component buffer and data buffer?


Component buffer contains data of the currently active component. Data buffer contains the
data of the currently active peoplesoft application it can be from a component, an
application engine or application message.

If the level 0 rowset is formed from a component buffer data the level 0 contains only one
row of data. The row contains all the child rowsets.

If the level 0 rowset is formed from the data buffer the level 0 rowset may contain more
than one row of data.

What are the differences between RowClass and RowSet in PeopleSoft?


Rowclass is a single row of data that consists of 1 to n records of data.
Rowset object is a data structure used to describe hierarchal data. It consists of a collection of rows.

Difference between Save Prechange & Save Postchange?


Ans: In Save Prechange we can get the data from Component Buffer for that particular
Component where as in SavePost change Component Buffer is cleared we have to get data
from Database and this is used to update values outside the database.

What Record Changes does not affect Database?


Derived work record
Sub record
Dynamic view
These record changes do not affect the DB

What are Different Functions in PeopleCode?


Ans: There are totally 4 types of Functions in Peoplecode. They are
1. Builtin Functions 2.Internal Peoplecode Functions
3. External Peoplecode Functions & 4.External Non-Peoplecode functions

Does Save Edit & Save Prechange are in Component Level or Component Record
Level?
Ans: These are available in Component Level.

What is naming convention of SQR program?


Ans:The program must End with ‘.SQR’ extension and the length of name must be <=8
characters.
Order of Execution of deferred processing?
Ans: This is similar to Interactive Processing where as in this Field Change, Field Edit
Peoplecode events & System edits will be differed until we press the Save Button.

What are Heading And Footing SQC’s?


Ans: ‘RESET.SQC’ - footing. PATxxHDG.SQC’ - heading

What is Application Messaging?


Ans: This is mainly used to publish or subscribe Messages to other Systems. This is kind of
communication as per my knowledge.

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

Only two-tier or three-tier development environment applications (such as an Application


Engine program being tested from Windows) can be traced using the Configuration Manager
Trace panel.

Where and when do we use SQR?


Ans: 1.Where the Programming logic is more.
2. If We need to generate different kinds of reports.
3. Background SQL processing.
4. File Interfacing. Etc…

Step to Run SQR in PeopleSoft Environment?


Ans: There are mainly 3 steps for running SQR in PeopleSoft Environment.
1. Making our SQR program API aware.
2. Creating Run Control Table and Run Control Page (Using PRCSRUNCNTL_SBP
subpage).
3. Scheduling our program in Process Scheduler. (PATH: Peopletools -> Process
Scheduler -> Processes).

How to change the prompt table dynamically?


Ans: Using PeopleCode function “%Edit Table”.

Use RowSelect to:


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

How do you perform People Code Debugging?


1. First we have to set the Debugger mode by selecting “Enter Debugger Mode” in “Debug”
menu in the ApplicationDesigner.
2. Next we have find which variables we need to Debug, this we can do by selecting local,
component or Global variables from the “Debug” menu.
3. Next we have to set the Break Points using “Toggle Break at Cursor” or “Break Point at
Start” from the menu items of the “Debug” menu

What is Effective Date?


Ans: This is an important Concept for an ERP using this we can enter more than one
values to row for the same key fields depending on date. Here we can maintain
History, Current & future rows. We can also maintain more number of rows for same
effective date using Effective Sequence. This concept is mainly used in most of the Control
Tables.

What is SETID & BUSINESSUNIT?


These are two high level key fields for Control tables & Transaction Tables respectively.
These fields play a vital role in PeopleSoft.

How to build customer indexes?


by using Key fields & Alternate search key we can create system indexes. Where as we can
create User defined indexes using App. Designer. Path is: In menus Tools -> Data
Administration -> create indexes.

How many actions are there in App. Engine?


There are Totally 9 Actions.
1. Do When 4.Do Select 7.SQL
2. Do While 5.People Code8.Log Messages
3. Do Until 6.Call Section 9.XLAT

Difference between Do Select & Do When?


Do Select is like FOR Loop in C. How many rows it retrieves that many times it performs the
Do When & SQL actions below it. Where as Do When is like a condition operator such as IF
statement in C.

Purpose of Application Engine


1. Background SQL processing.
2. To pass data between Modules.
3. To pass data between Databases.
4. To populate Reporting tables using data in Transaction Tables.
5. for integration purpose.
6. Validation of data
7. Data Manipulations.
8. For Version Up gradation.
9. Archive Data. Etc….

Purpose of Upgrade Tab


This is mainly used for version up gradation.

Different types of variables in the Application Engine people code?


Local variable – these are available for the duration of the program in which they are declared.
Global / Component – 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 to pass data between the steps in Application Engine?
1) State records – One row can be passed and can have many state records.
2) Component/Global People code 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 People code fires on an Application Engine state record.
No Validation of translate values or Prompt tables are done.

No of nested call section does the application engine supports?


99 nested call section

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) People code: -
&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 delete a file using sqr?


Delete ($filename)

What is the performance tuning of SQR?


Use Load-lookup and Arrays
Use SQT files.
Generate multiple reports.
Use correct sql joins.

How do you execute Application Engine through Push Button?


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

Can we run SQR program through a push button from a page?


Ans: Yes we can run using properties of Push Button. That is Specifying
Destination = Process
Process Type = SQR Report and
Name = SQR report name.

To run a process using a Pushbutton or hyperlink in PeopleSoft


to run a process such as SQR, Application Engine, COBOL, Crystal Reports, Data Mover,
Cube Builder by the click of a hyperlink in PeopleSoft, that too without any coding
.
1) Insert a Push button in the Page definition from which user would invoke the process.
2) In the Destination drop down, chose 'Process'
3) Associate a Record and Field.
4) In the 'Process' area, choose:
a) 'Type' of process - One of SQR, Application Engine, COBOL, Crystal Reports, Data
Mover, Cube Builder
b) Process 'Name' - defined via PeopleSoft and/or added as a Process in PeopleSoft
Process Scheduler.
5) Click 'OK' and Save the Page
Now the associated process gets triggered whenever the pushbutton or hyperlink is clicked
upon.

Scheduling/Running a SQR from Peoplecode


A PeopleSoft Application Engine(AE) can be called from peoplecode using CALLAPPENGINE
function (except within the AE, to call AE within an AE we use Call Section).
But how about running a SQR by peoplecode without taking the user to Process request
page?
The best way to do it is to create a process request and schedule it.
Below is the sample code to run a sqr through peoplecode by creating a process and
scheduling it.
/* Declare a ProcessRequest object */
Local ProcessRequest &PRCSRQST;

/* Declare name of the sqr JAN_PRCS to be processed */


Local String &SQR_TO_PROCESS;
&SQR_TO_PROCESS = "JAN_PRCS"

/* Create a Process Request Object; */


&PRCSRQST = CreateProcessRequest("SQR Process", &SQR_TO_PROCESS);

/* Set Properties of the Process Request Object; */


REM CreateProccessRequest function takes these 2 arguments - Process Type and the
Process Name;
&PRCSRQST.RunControlID = "JAN07";
&PRCSRQST.SetOutputOption("Web", "PDF", "", &SQR_TO_PROCESS);

/* Schedule the SQR */


&PRCSRQST.Schedule();
If &PRCSRQST.Status = 0 then

/* Schedule successful. */
Else
/* Process (job) not scheduled, do error processing */
End-If;

Similarly, Crystal Reports can be run via peoplecode but what has to be made sure is a
PROCESS DEFINITION must be added as Crystal Reports.

Scheduling a Process in PeopleCode?


Schedule a process and email the results from within PeopleCode. You can do this within an
App Engine Program or even by placing a push button with FieldChange peoplecode.
--------------------------------------------
Local ProcessRequest &RQST;
Local string &Subject;
Local string &Text;

&Subject = "Subject of Email";


&Text = "This text will be displayed as the text of this email ";
&RQST = CreateProcessRequest();
&RQST.RunControlID = "MYRUNCONTROL_ID";
&RQST.ProcessName = "PROCESSNAME";
&RQST.RunLocation = "PSNT";
&RQST.ProcessType = "SQR";
&RQST.OutDestType = "Email";
&RQST.OutDestFormat = "PDF";
&RQST.OutDest = "User : PS,Role : PeopleSoft User";
&RQST.EmailSubject = &Subject;
&RQST.EmailText = &Text;
&RQST.EmailAttachLog = False;
&RQST.Schedule();

Scheduling sqr from peoplecode


You can use the peoplecode function called “ScheduleProcess”.

&PROCESS_NAME = "SQRNAME";
&PROCESS_TYPE = "SQR Report"; (or "SQR Process")
&RUN_CNTL_ID = "YOUR_RUN_ID";
&RUN_CONTROL = ScheduleProcess(&PROCESS_TYPE, &PROCESS_NAME, "2",
&RUN_CNTL_ID, &PRCS_INST);

If &RC != 0 /*"1" = client "2" = server*/


Winmessage("Error: Error Scheduling SQR Process, RC = " | &RUN_CONTROL);
End-If;

Invoking external program from application engine


You can invoke an external program or a shell script from an AppEngine program fairly
easly. Within your PeopleSoft App Engine program, add a PeopleCode action. inside that
action you can use the EXEC function to call the required program or shell file.
Example Code:
&ExitCode = Exec("sh -c " / &scriptFile, %Exec_Synchronous + FilePath_Absolute);

How do you retrieve a value from scroll using scroll select?


Scrollselect (1, targetname, recordfiledname)

What is the syntax for CallAppEngine?


CallAppEngine (applid [, state record]);

What are the 3 trace parameters you can pass to your psae.exe- application Engine?
- TRACE
- TOOLSTRACESQL
- TOOLSTRACEPC

Which Trace option is the best place to start for general performance information?
- TRACE 384 – mostly used trace value.

What the following command will do? (Psadmin -p start -d hrdmo)


Starts a Process Scheduler

Which of the Task cannot be done through PSADMIN?


Starting Web Server

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


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

Trigger Business Event is used for triggering the workflow and it is written on workflow event.
Trigger Business Event has the syntax_____________.
Trigger Business Event (BusProcess, BusActivity, BusEvent);

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.

Different ways of referencing the state record in sql and peoplecode in application engine?
Non default state record referred with recordname.fieldname
Default state record referred directly by field name.

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.
Add a switch to the selected table
Delete processed rows.
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.

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.

What is Parallel Processing?


Running a application engine more than one user at same time, distinguishing by process instance.

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.

(You can dynamically modify the state record run application engine step by step
People Code Debugger for the Application Engine.)
AE Trace files: - AE__.AET
Without the process instance: - AE__.AET

How to Debug AE program and Ways of running AE Program?


Use the -TRACE option to trace the SQL executed by an application engine program. You
can do this either through the command line debugger or in the override parameters of the
process definition.
To trace the PeopleCode executed by an application engine program use the
-TOOLSTRACEPC option.
These are the various tracing options and what they do. Like all other PeopleSoft trace flags
these are bit fields so if you want trace values 1, 2 and 4, you would set the trace to 1 + 2
+ 4 = 7 (-TRACE 7).
Value Trace Setting
0 Disables tracing.
1 Initiates the Application Engine step trace.
2 Initiates the Application Engine SQL trace.
4 Initiates the trace for dedicated temporary table allocation to an Application Engine trace
(AET) file. You can trace how the system allocates, locks, and releases temporary tables
during program runs.

Difference between Query Views & Dynamic Views?


Ans: 1.Query Views are designed using Query Manager Tool where as we write SQL in
Dynamic Views.
2.Query View is Built and Exists in the Database where as Dynamic View can’t be
build so it doesnot exists in Database.

How do you assign Search Record to Component?


Ans: By going to the component properties , Use Tab and Specifying the search record in
that particular area ie; ‘Add Search Record’ Property.

Field default event Peoplecode in Peoplesoft


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

What happens when the field has default value defined in the record field
properties and has People code assign the different value in the Field default
people?
The Field default event People code will only fired when there is no default value defined for
that field in the record field properties, so the value assigned in the record field properties
will be initialized to that field.

How do you open a file?


Ans: In SQR the Syntax is OPEN ‘filepath’ AS number FOR READING/FOR-WRITING/FOR-
APPENDING…

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

If you delete a page from PSPT application, which all tables are affected?
People Tools

Which command shuts down an application server domain using a “forced”


shutdown method?
psadmin -c shutdown! -d ps800dmo

In which platform does Crystal and Psnvision works?


Windows (Correct)

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


FieldEdit,
FieldChange,
MenuItemSelected,
Save Prechange &
SavePostChange

Which Three PeopleSoft Tables the DB User mentioned in Connect ID should have
permission?
PSACCES
PRFLPSSTATUS
PSOPRDEFN

Can we use multiple printers in SQR?


Ans: Yes we can use. In SETUP section By Defining printers what we need. We have some
SQC’s.

What are the variables used in peoplecode?


Ans: System Variables, User Defined Variables. & Derived Work record Fields

How can we know whether we are in a particular mode?


Ans: Using ‘%Mode’ Built in function.

What are Record Types?


Ans: There are totally 7 Record Types. They are
1. SQL Table. 5. Query View
2. SQL View 6.Subrecord
3. Derived/work Record 7.Temporary Table.
4. Dynamic View

Difference between Interface, Report & Process?


Ans: Interface: This is used to interact with other system may be PS or Legacy Syatem
Report: This has an user interaction to execute or generate.
Process: This is Scheduled in Batch Server so there is no need for the user to
especially run it. It Automatically Executes.

What is PIA and what are its components?


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

Which one of the following tree types is NOT supported in the PeopleSoft tree
manager?
Query trees
Combination treess

In Call Section – Action it is possible to leave the Program ID with blank Value in
certain cases. True or False
True

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?
WinMessage

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 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?
%mode---returns A---for Add mode. Returns U –for Update mode

What is the purpose of the SQLEXEC function? What are its benefits and draw
backs?
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 people soft 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 people code?


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 databuffer classes are available in people code?


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 fired.
If default mode for component is new mode: field default, field formula, rowinit, searchinit
will be fired

What are different variables in people code and their Scope?


System variables and User defined variables.
Scope --- 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 field default and Row init?


Field default specifies only the default value for a field when we are in Add mode.
Row init 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 Getlevel 0()? 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 people code? 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 people code?


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?


Using Dosave and Dosavenow functions.

What are differed processing and its advantages?


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?
Local Rowset &RS0, &RS1, &RS2, &RS3;
Local number &insert_row, &lvl_1_row, &lvl_2_row, &lvl_3_row;

&RS0 = GetLevel0();
&RS1 = &RS0(1).GetRowset(Scroll.LEVEL1_SCROLL_NAME);

For &I = 1 To &RS1.ActiveRowCount


&RS2 = &RS1(&I).GetRowset(Scroll.LEVEL2_SCROLL_NAME);

For &J = 1 To &RS2.ActiveRowCount


&RS3 = &RS2(&J).GetRowset(Scroll.LEVEL3_SCROLL_NAME);

For &k = 1 To &RS3.ActiveRowCount


&FLAG = &RS3(&k).LEVEL3_RECORD_NAME.FIELD_NAME.Value;

If FLAG = “Y” Then


&RS3(&k).MPF_TINQ_LOG.EARNS_END_DT.Enabled = False;
&RS3(&k).MPF_TINQ_LOG.MPF_ADD_SUBTRACT.Enabled = False;
&RS3(&k).MPF_TINQ_LOG.MPF_HOURS_TYPE.Enabled = False;
&RS3(&k).MPF_TINQ_LOG.MPF_HOURS_ADJ.Enabled = False;
If %Mode = %Action_Correction Then
&RS3.InsertRow( &RS3.ActiveRowCount);
End-If;
End-If;
End-For
End-For;
End-For;
What are the built-functions used to control translate values dynamically?
Adddropdownitem ()
Deletedropdownitem ()

How to populate data into grid in online?


&Rs.Select
Scrollselect ().

SECURITY
Before accessing a people soft 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 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

Performance Tuning in SQR?


Ans: 1.Using LOAD-LOOKUP & LOOKUP.
2. Using ARRAYS.
3. Multiple Reports.
4. Using –S & -Bnn.
5. Using SQT file.
6. Running on Batch Server.
7. Using Proper programming logic in sQR such as BREAK statement in Evaluate.
8. Using proper SQL Statements.

File types in SQR?


Ans:1. “.SQR”=This is nothing but the SQR source file.
2. “.SQC”=This is a used as functional Libraries.
3. “.Lis”=This is Line Printer Output file.
4. “.SPF”=This is a Portable format file.
5. “.SQT”=This is Complied time file.
6. “.INI”=These files are used to set the default Environment for our SQR Report.
7. “.MAX”=These are used to increase the memory size.
8. “.ERR,.LOG,.DAT”=These are used for Error Handling purpose.

List Out some CommandLine Flags in SQR?


Ans:-S,
-A,-KEEP,
-ZIV,-XMB,
-ZMF,-E,-O,
-Debug,
-RS,
-RT etc…

Purpose of the Arguments in the LOAD-LOOKUP?


Ans: To Create a Load-Lookup array as per requirement in the arguments.

Commands in the File-Handling?


Ans: 1.Open for-Reading
For-Writing
For-Appeding.
2. Close
3. Read
4. Write

Diff between ASK & INPUT Commands?


Ans:”ASK”
1. This is used in the Setup section i.e . Compile Time Variable.
2. This prompts for the values during the compilation time.
3. This does not have the datatype and length.

“INPUT”
1. This can be used in other than the Setup section i.e. Run tTime Variable
2. This prompts for the values during the Execution Time.
3. Here, we can specify the datatype and the length.

Debugging in SQR?
Ans: Using Debugging commands we can do debugging in SQR.They are
1.Display(to display only one variable)
` 2.Show(to display more than one variable)
3.#IF Debug
#END-IF

Effdt and EffSeq Quries?


Ans:
Select * from Table1 A where A.EffDt= (Select Max (B.EffDt) from Table1 B where A.keys
B.keys AND A.EffDt<= as of Date)

Select * from Table1 A where A.EffDt= (Select Max (B.EffDt from Table1 B where A.keys
B.keys AND A.EffDt<= as of Date AND B.EffSeq=(Select Max(C.EffSeq from Table1 C where
B.keys=C.keys AND B.EffDt=C.EffDt AND B.EffSeq=C.EffSeq)

FROM ps_gl_transact_det a, ...


ps_job d, ...
WHERE ...
AND a.emplid = d.emplid
AND d.empl_rcd = a.empl_rcd ...
AND d.effdt = (SELECT max(d_ed.effdt)
FROM ps_job d_ed
WHERE d.emplid = d_ed.emplid
AND d.empl_rcd = d_ed.empl_rcd
AND d_ed.effdt <= a.pay_end_dt)
AND d.effseq = (SELECT max(d_es.effseq)
FROM ps_job d_es
WHERE d.emplid = d_es.emplid
AND d.empl_rcd = d_es.empl_rcd
AND d.effdt = d_es.effdt)

For 2nd effdt


select * from ps_job A
where A.emplid='40869'
and A.empl_rcd=0
and A.effdt=(select max(B.effdt) from ps_job B
where B.emplid=A.emplid
and B.empl_rcd=A.empl_rcd
and B.effdt < (select max(B1.effdt) from ps_job B1
where B1.emplid=B.emplid
and B1.empl_rcd= B.empl_rcd))
and A.effseq=(select max(C.effseq) from ps_job C
where C.emplid=A.emplid
and C.empl_rcd=A.empl_rcd
and C.effdt=A.effdt)

What is SQC , List out some of them?


Ans: SQC is used as Functional Library mainly used to re-use code and get some predefined
functionalities used for our SQR programs.
Some of the Important SQC is STDAPI.SQC,
SETENV.SQC,
RESET.SQC,
SETUPxx.SQC,
NUMBER.SQC,
STRING.SQC,
DATETIME.SQC etc..

What is ProcessScheduler?
Ans: This is a Peopletool used to Schedule and monitor the Execution of any Process or
Report or Program in Peoplesoft Environment.

What is Scroll Area ? How many can we keep on a Page?


Ans: Scroll Area is a Page Control which contains Child Records’-Fields which is used to
maintain the Parent-Child Relationship between Tables. We can place any number of scroll
areas on a page.

What is DataMover?
Ans: DataMover is a Peopletool which is used to move Data between different DataBases.

What is -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 is -Tnn flag?


This is mainly used for testing purpose. We can restrict the system to generate only a
specific number of pages instead of generating all pages for testing. This is used in Windows
Environment.

What is -Bnn flag?


This is used to specify the number of rows that are to be taken from Dbase to the Buffer
because default the system takes 10 rows at a time.

Can we send SQR Output to Ms-Word or Crystal Reports?


Ans: Yes.

How do we refer Component Buffer in the Object-Based or Procedural-Based


PeopleCode?
Ans:In Procedural Based Peoplecode by using scrollpath we can refer. In Object-Oriented
Peoplecode by Instantiating Objects to Record , Row , Row Set ,Field we can refer the
Component Buffer.

Limitaion of SQL Exec function in Peoplecode?


Used in only SavePrechange , WorkFlow , SavePostchange, and for DML commands and for
Select statements used other Event types.
Results only one Single row of data.
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.

How will you read Data from the CSV file or Excel file and Upload it into the
Database using AE Progrm?
Ans: Using File Layout Integration Tool.

Why are SQC files used in SQR?


Sqc files are reusable files used in the sqr to call routines

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.

Which SQC is used to read Data from the Translate table?


Ans: ReadXlat.SQC

How to refer a global variable in local procedure?


After special character (ex.#,&) we use underscore(_) after that variable name.
$in_date = '06-AUG-1999'

Why is Load-Lookup used in SQR?


Ans: Used to increase the performance mainly in the case of Master Detail Reports.

What is a Sub-Page? Why it is used?


Ans:Sub-Page is a Page control which is mainly used to insert Sub-Records.

Why is Derived Work record used?


Ans:DerivedWork record is mainly used for the Online page calculations and also used as
Functional Libraries in PeopleCode.

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 only in
SETUP section only.
2. Number of rows are not automatically 2. Numbers of rows are automatically added gives
a error if the number of rows added
Exceeds a specified number.
3. We should insert data in to Array by 3. Rows are automatically inserted in to
programming. Load-Lookup.
4.We can retrive any number of fields. 4.We can retrive only Two fields from
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 from
Load-Lookup.

How will you delete the button [Add,Update/Display,Update/DisplayAll and


Correction] from a Page on the Browser?
Ans:By going to the Internet tab of the Component properties in the App.Designer and
disabling the checkboxes as per our requirements.

What is the Diff between the Prompt Table and the Translate Table?

Translate table: These values are stored on a people tools table called XLATTABLE. The
field type should be character length should be < or 4 field values should be static. We can
give more than one value for a particular field.

Prompt table: Is used to provide users with validate values from other tables. Prompt
table with edit prompt table with no edit.

Prompt Table are used to provide user's with validate values from other tables their values
are generally populated by system users and a re often application specific 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.

What is the diff between the Local and the Component Variables in the
PeopleCode?
Ans:Local variable scope is upto that particular program where as the Component variable
scope is upto the particular Component.

What are the types of the Table Joins?


Ans:
Cartesian Join A cartesian join is a join of every row of one table to every row of another
table. This normally happens when no matching join columns are specified. For example, if
table A with 100 rows is joined with table B with 1000 rows, a cartesian join will return
100,000 rows. Something to be avoided!
INNER JOIN: This will only return rows when there is at least one row in both tables that
match the join condition.
SELECT * FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name = table_name2.column_name

LEFT OUTER JOIN (or LEFT JOIN): This will return rows that have data in the left table
(left of the JOIN keyword), even if there's no matching rows in the right table.
SELECT * FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name = table_name2.column_name
RIGHT OUTER JOIN (or RIGHT JOIN): This will return rows that have data in the right
table (right of the JOIN keyword), even if there's no matching rows in the left table.
SELECT * FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name = table_name2.column_name
FULL OUTER JOIN (or FULL JOIN): This will return all rows, as long as there's matching
data in one of the tables.
SELECT * FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name = table_name2.column_name

How will you read Data from the CSV file or Excel file and Upload it into the
Database using SQR?
Ans:Using File-Handling and Unstring Commands.

Why is On-Break used?


Ans:1.To reduce the Redundancy of Printing the data.
2.For Group-Footing and Group-Headings.

Proper SQL tuning such as using Sub queries instead of Joins.

What are the Object Classes available in the PeopleCode?


Ans:1.Field Class 2.Row Class 3.Record Class
4.Rowset Class 5.File Class 6.Array Class
7.SQL Class 8.Page Class 9.AE Class
10.Application Class 11.Component Interface Class
12.Bussiness Interlink Class 13.Grid Class 14.Query Class
15.Java Class

Diff between Update/Display,UpdateAll and the Correction modes?

UPDATE: Shows Current and Future. Allows changes to Future. Allows adding Future.
UPDATE DISPLAY ALL: Shows History, Current and Future. Allows changes to Future.
Allow adding Future.
CORRECTION: Shows Current and Future. Allows changes to History, Current and Future.
Allow adding Future.

How will you display an Image in SQR?


Ans:Using Declare-Image Command.

Which Sql Commands can be used in the SQL-Paragraph?


Except Select command We can use DDL,DMLand DCL.

In which section Select Paragrarph Statement be used?


Ans:In the Setup,Program and the Procedure sections we can use the Select Paragraphs.

What are the ways of Performance Tuning in PeopleCode?


Ans: Using Object-Oriented programming and Proper programming logic.

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.

Why is ‘SETENV.SQC’ is used?


Ans: To set the default Environment for the SQR Report.

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
using Error handling commands such as
ON-ERROR = Skip/Warn/Stop (for Compile time errors)
ON-ERROR = Procedure Name (for execution stage errors).

What are the Key-Fields in the PS_JOB and the PS_EMPLOYMENT?


Emplid,empl_rcd,effdt,effseq

In Which record is the Status of the Employee Stored?


Ans: PS_JOB.

How will you draw a Line of Hyphens in SQR?


Ans: Using Fill argument in the Print Command.

When an incorrect value is entered in a Field and the Field turned Red then what is
the action to be taken?
Ans: To Enter the Appropriate value that does not violate the Field Edit & System Edits of
that particular 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 are the Debugging Commands in the SQR ? Diff between them?

Is there any Limitations to Opening a File?


Ans:To Open a file we have to specify the mode of file and the file must exists.

What are the Before and the After Procedures?How is the Execution Sequence?
Ans:Before Procedure Level Execution is from 1 to n Level and the
After Procedure Level Execution is from n to 1 level.

I want the Previous value of the On-Break ? Which is the Command Used?
‘SAVE=Variable’

How to Identify the Document Variables?


Ans:By @.

What is the SPF File?What are the Flags required to make a file to SPF?
Ans:SPF is a PortableFormatFile and the command line flag used is –KEEP.

How to refer a Global Variables in the Local Procedures?


Ans.By prefixing the “_” underscore for the Variablename.

What is –Bnn,--Tnn,--RS & --Rt Flags?


Ans: --Bnn for specifying default number rows to retrive from the database.
--Tnn used for Testing Which specifies the number of pages we want to test.
--RS is used to create an .SQT file.
--RT is used to run .SQT file.

What is Debug Command Line Flag in sqr?


Ans: -DEBUGxx.

How to Place and Appropiate Logo in SQR?


Ans: Using ‘Declare Image’ Command.

When the Work-Flow Events fires?


Ans: After the successful Execution of the SavePrechange.

What is the Component Buffer?


Ans: Tempory memory area to Store data related to ‘Current Active Component’.

Why do we use SQR ? Explain them?


1. Where ever Programming Logic is more.

How can we use DML and the DDL Commands in the SQR?
Ans: Directly writing those commands in ‘Begin-SQL’ Paragraph.

How can you know the Status of the SQR Report?For that any SQC is needed or
not?
Ans: We can Know by verifying in Process Monitor the SQC needed for it is ‘STDAPI.SQC’.

How can you Export or Import the Data in the Flat File to PSDatabase?
Ans: Using File Layout & Using File Handling Commands in SQR.

What is the difference between component level peoplecode and record level
peoplecode?

Component and Record level PeopleCode are executed when the control is passed
to the associated Component and Component containing the record respectively.
Since a single record might be associated with several different Components It is
posiible to trigger the same Record PeopleCode from several components while
the component level code is associated with a unique component.

record level peoplecode is associated with number of component but component level
peoplecode is associated with in the same same component.

PeopleCode PreBuild and PostBuild events

PreBuild event is the foremost event which triggers at Component Level. If at all there is an
error generated at prebuild then the component fails to load before the search itself. Where
as PostBuild is triggers after Prebuild and Search of the component. So if at all a error is
generated in PostBuild it will stop loading the component after the search of values.

postBuild is the right event to use if we want to capture values rather than prebuild.

Is there any function exist in peoplecode which stops the processing of whole
component?

i think it is Error Function. Use the Error function in FieldEdit or SaveEdit PeopleCode to stop
whole processing and display an error message. It is distinct from Warning which displays a
warning message but does not stop processing. Error is also used in RowDelete and
RowSelect PeopleCode events.

i think its cancel method of CI that can be used to completely stop the processing of
Component

Thinktime functions will stop further processing of the peoplecode.

exit(1)

Peoplecode events used in AppEngine

We can use the on-execute event. sometimes we can use the saveprechange event also.

sending email with workflow

You can send emails in PeopleSoft using function SendMail().

There are arguments for the function

SendMail(&n_MailFlags_l &s_MailTo_l &s_MailCC_l &s_MailBCC_l &s_MailSubject_l


&s_MailContent_l &MailFiles &s_MailTitles_l &s_MailSender_l);

You need to pass these arguements. It function will return the status of email. If 0 then
your mail has been sent successfully else not.

by the way the SMTP server needs to be configured for this functionality to work

what is a query view and dynamic view ?

Dynamic View:This is selected to define a record definition 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.

Query View:This is Selected to define the record definition as a view that is constructed
using the PeopleSoft Query tool. Before you can create the view, PeopleSoft Application
Designer prompts you to save the definition.

What is sequence of events triggered in peoplecode?


searchinit peoplecode performs before the search dialogue box displays.search save
peoplecode performs after the operator clicks ok in the search record dialogue box. Row
select peoplecode is used to filterout rows of data.Prebuild is often used to hide and unhide
the pages. Field default attempts to set defaults for fields without a value. Field formula
performs, after field default completes successfully. Rowinit is used to initialise the
rows.Postbuild peoplecode performs after all the component build events have performed.
Activate event is fired everytime the page is activated.

Difference between Dosave() and Dosavenow();

Dosave(): save the current page. DoSave defers processing to the end of the current
PeopleCode program event

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


FieldEdit,
FieldChange,
MenuItemSelected,
Save Prechange &
SavePostChange

Dosavenow():DoSaveNow causes the current page to be saved immediately.


Save processing (including SaveEdit, SavePreChange, SavePostChange, and Workflow
PeopleCode) is executed before continuing execution of the program where DoSaveNow is
called.

DoSaveNow can only be called from a FieldEdit or FieldChange event.

DoSaveNow differs from the DoSave function in that DoSave defers saving the component
until after any running PeopleCode is completed.

If you call DoSaveNow and there are no changes to save, save processing is skipped
entirely. You can call SetComponentChanged right before you call DoSaveNow. The
SetComponentChanged function makes the Component Processor think there are changes
and so will force full save processing.

Order and flow of action types in application engine


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 the event that fires after all database updates are over
Savepostchange

In which PeopleCode event does ALL data validation take place?


fieldedit and saveedit
Peoplecode attached with Push Button can be associated with which of the
following events?
Field Edit, Field Change

Which is a record that PeopleTools adds to every level of the Message Structure
during processing
PSCAMA

Component build events are happen on application server :


field default,
field formula,
row init,
row select,
row insert,
row delete.

Component save events are happen on application server:


save prechange,
workflow,
savepostchange,
databaseupdates.

FieldChange Events
After FieldEdit PeopleCode runs
After System Validations
FieldEdit does single field validation
FieldChange handles dependencies
and recalculation of related values
"By Default all FieldChange Events happen on the client"

What is a bundle
Bundle is the group of patches and fixes, peoplesoft had delivered during specific time
period

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)

What is the diffrence between SQLExec and CreateSQL?


There are two basic differences:
1st : If you want to delete insert or update a single record use the SQLExec along with
corresponding PeopleCode record object method.
If you want to delete insert or update a series of records all of the same type use the
CreateSQL or GetSQL functions not the Execute SQL class method.
2nd : SQLExec can only Select a single row of data. If your SQL statement (or your
SQL.sqlname statement) retrieves more than one row of data SQLExec sends only the first
row to its output variables. Any subsequent rows are discarded. If you need to SELECT
multiple rows of data use the CreateSQL or GetSQL functions and the Fetch SQL class
method.

How to debug AE.

To run a program in debug mode:


Set the debug option.
You can set the debug option in the following locations:
Start PeopleSoft Configuration Manager and select the Process Scheduler tab.
In the Application Engine group, enable debug by selecting the Debug check box. This is the
method that applies to all methods of invocation.

If you used the command line option to invoke your Application Engine program, then you
can include the ?DEBUG Y parameter in the command line you submit to PSAE.EXE.
If you already have the Debug check box selected in PeopleSoft Configuration Manager,
then you do not need to include the ?DEBUG parameter in your command line.

If you have PeopleCode in your Application Engine program, enable the PeopleCode
debugger.
When you launch your program and the PeopleCode action executes, you enter the
PeopleCode debugger
Execute the Application Engine program to debug.
At the Application Engine Debugger prompt, enter a command to enables a debugging
option.
Each command is represented by a single letter, such as X, L, or M. Enter the letter that
corresponds to the option you want to engage. To see a list of the available debugging
options, enter ? at the prompt.

Why Parallel Processing 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 People code
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 is Docancel?
Use the DoCancel function to cancel the current page.
 In the Page Applet, the DoCancel function terminates the current component and
returns the user to the search dialog box.
 In the Menu Applet, the DoCancel function terminates the current component and
returns the user to the current menu with no component active.
DoCancel terminates any PeopleCode programs executing prior to a save action. It does not
stop processing of PeopleCode in SaveEdit, SavePreChange, and SavePostChange events.

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 options,
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

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.

People code 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 Properties
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.
Restart able: - 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 table instances in AE.


99

what is the difference between the %SELECT and %SELECTINIT meta sql
functions.
Ans %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 is scroll select?

ScrollSelect function selects records from a table and loads them into the scroll buffer area
of a page. In parent/Child relationships scrollSelect chooses all corresponding child rows and
inserts them under the next higher level row. The function requires the specification of the
target scroll area a source record from which to select rows and an optional SQL string. The
parameters passed to ScrollSelect vary based on the scroll level at which the function is
targeted.
Level 1
ScrollSelect (1 RECORD.target_recname RECORD.sel_recname);
Level 2
ScrollSelect (2 RECORD.level1_recname RECORD.target_recname RECORD.sel_recname);
Level 3
ScrollSelect (3 RECORD.level1_recname RECORD.level2_recname RECORD.target_recname
RECORD.sel_recname);

What are all the methods for assigning Data Permission Access to Permission List?
• Tree based data permission security
• Role based data permission security

What is all the default Permission List used while creating the User ID?
• Navigator Homepage Permission List
• Process Profile Permission List
• Primary Permission List
What is all the People Tools Security?
• Permission List
• Roles
• User Profiles

What happens if you don't specify a Search Record for a Component?

You can specify a dummy search record called - INSTALLATION and the component can be
saved. There won't be any search option for the page. It will directly take you to the
contents on the page

Data mover bootstrap mode

Connecting the Data mover using (sysadm/sysadm) is called


bootsrtap mode.otherwise called reagular mode..

What are all the tree manager definitions?


• Level
• Node
• Parent
• Sibiling
• Child

Which commands can be run in Bootstrap mode


encrypt_password
import
import with where condition
update statement.

Where are workflow work items found?


Psworklist table.

Which process is used for running AE programs which are to be run at a frequency
of less than a day ?

Daemon process

Where should you place user prompts for non-Process Scheduler execution?
Ans: In the Init-Report procedure, in the following code:
If $prcs_process_instance=’’
!prompts go here
End-If

What is the purpose of update/display mode?


To add the new information current and future as well view the current data.

What is the purpose of correct history mode?


To correct the past and current information based on the EFFDT.
What is the purpose of include history mode?
To view the past information based on the EFFDT.

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.

What are Menu types available?

you have created a Menu and a Page and given user access to that page, which of the
tables gets affected on this? 1

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

Which command is valid in both bootstrap and regular mode when operating the
data mover?

User (Regular) Mode


Most of the time you will sign onto PeopleSoft Data Mover in user mode. To do this, you
simply enter your PeopleSoft user ID (like PS or VP1) and password at the signon screen.

Bootstrap Mode
At times, you need to signon on to PeopleSoft Data Mover in bootstrap mode, which means
using the database access ID (like SYSADM or sa) and password at the signon screen.
Typically, using bootstrap mode is necessary for database loading because there are no
PeopleSoft security tables established yet. Bootstrap mode is also used for running some
security commands, such as, ENCRYPT_PASSWORD.

In bootstrap mode, the following commands are not valid: EXPORT, RENAME, and
REPLACE_VIEW.

Which command is valid in both bootstrap and regular mode when operating the
data mover?

GRANT_USER

Standard SQCs
Askftd.sqc - This asks from/thru date for reporting of heading
Askaod.sqc - Procedure to call is Ask-As-of-Date
CurDtTim.sqc - Gets the Current Date Time from System
DateTime.sqc - Convert date from system format calling InitDate-Time procedure to set
format.
DateMath.sqc - Converts Native Date format to YYYY-MM-DD.
Eoj.sqc - determines End of job for an SQR report.
FSHdg01.sqc,FSHdg04.sqc - for Standard Headers for PS Financials.
Number.sqc - Provides Number related Functions
Opsys.sqc - Operating system settings.
PrcsApi.Sqc - Used in Process Scheduler SQR Programs, to get Run control parameters
RDBMS.sqc - Database Settings. These files uses #DEFINE command to set the
variables.
ReadXlat.sqc - Read the Translate Table for the desired values (Very Important)
Reset.sqc - Used for Footing Section that prints 'End-of-Report'.
SetEnv.sqc - Sets Environment for Country, Printer-Paper, Language, Date, Platform
specific parameters, It also contains Opsys.sqc, RDBMS.sqc
Setup01.sqc - This is generally called from Begin-Setup section for Portrait Size
Setup02.sqc - This is generally called from Begin-Setup section for Landscape Size
STDHDGTR.sqc - Performs Language Conversion
STDHDG01.sqc - Provides Standard heading for language conversion
StdApi.sqc - Gets Std API calls
Trancntrl.sqc - Purpose is to COMMIT, ROLLBACK etc. across DB platforms
Convertcurrency.sqc
AllMaxes.max - It is used for dynamic memory allocations before the execution of SQR.

What isEffective Date?


Information Component /Record linked to the data EFFDT. Information changes based on
the EFFDT.

What is Effective Sequence?


Identifier to find the order of multiple transactions occurring on a same EFFDT.

What is the effective sequence’s default number?


0

PS Query definition is stored on which server?

On Database server and it's process Query in Application Server

What is a syntax of LoadLookup ?


Ans: It is declared in Begin-Setup.
Syntax: Load-Lookup Name=<name>
Table = <tablename>
Key = <primarykey>
Return_value = <FieldName>
Where = FIELDNAME= <fieldname>

What are the statements used in Begin-Procedure ?


Ans: Begin-SQL, Begin-Select, Begin-Document etc.

How many Message nodes are possible for a database?

You are a PeopleSoft Partner and wish to get information on database performance
benchmark ( or something like this) Where would you look for the information ?

You have downloaded an Application fix as a project from the customer


connection. Where would you upgrade it to ?

Which tree types are NOT supported in the PeopleSoft tree manager?

How can i check processing consuming by peoplesoft applications?


Your Onsite DBA has called you up and told you that one of the tables PS_ABC_TAO has
grown very big in size. Based on the standard naming convention, you have determined
that the record is a temporary record since it ends with _TAOYou look into the database and
decide that that the data is not required any more. You ask the DBA to delete the data in
the table.Next day you get a call from an irritated user who says that a daily process that
took only 1 minute to run is taking about 2 hours today. You look into his process and find
that it uses PS_ABC_TAO as a temporary table.What would you suggest the DBA to do ?

No of temp tables AE creates?

The system creates a maximum of 99 temporary table instances.

Difference between chartfield and chart of account...

A Chart of accounts is a list of all accounts tracked by a single accounting system and
should be designed to capture financial information to make good financial decisions. Each
account in the chart is assigned

Chartfields are the individual fields that comprise the accounting structure. These fields are
used to classify accounting transactions created in subsytems or entered directly into the
General Ledger.

Each chartfield provides key information related to the transaction


It is important that each Chartfield capture a single concept related to the transaction

What PeopleSoft tool is used to change the value of your SQR environment
variables ?
Ans: The Configuration Manager.

What are the difference between AE and SQR?

1. AE is very systematic as it is structred as Section step and Action. While SQR is not
systematic.
2. AE flow is easy to read and understand while SQR is not that easy.
3. AE is easy to debug as you can do line by line debugging. With SQR its not easily
possible.
4. By using SQR you can create and maintain different reports which are not possible
eith AE's
2. The main difference and advantage is when a peoplesoft object are changed APP
engine will be updated automatically while SQR should be done manually.

3. In addition AE has a restart ability which is SQR does not have restart ability

Can Application Engine can be without state record ?

Yes. If the applicatio engine does not need a restartable/ or doesnot need to pass values
from one section to another and jsut run simple sql.
What is the standard property when a Component Interface is created?

there are 3 standard properties.

InteractiveMode, GetHistoryItems, and EditHistoryItems

Differences between State and temp records

We can use multiple instances of temp records where as in state record we can use only
one instance of state record.

Temp tables are used for set processing kind of things whereas state records for row
processing

1. State record at any point of time has only single line information as it's driven by the
Process_Instance a skey field. While temp table can have multiple rows.
2. State record had only single instance while the temp table can have maximum of 99
instance.
3. State record is used for restart logic.
4. State record can be used for dynamically calling AE section by adding AE_SECTION
AE_APPLID as fields. Temp table can not be used.

What PeopleCode must be on all Run Control Records ?


Ans: On the PRCSRUNCNTL record, the RowInit on OPRID and the SaveEdit on
RUN_CNTL_ID.

How can I find out if rows are selected by a BEGIN-SELECT paragraph? Can I use
the SQR variable #sql-count?
Ans: #sql-count indicates the number of rows affected by a DML statement (insert, update,
or delete). It cannot be used for a BEGIN-SELECT paragraph. The solution is here below:

begin-procedure main1
move 0 to #count ! This is optional unless main1 is called more than once
begin-select
column1
column2
column3
add 1 to #count
from table1
end-select
if #count > 0
show 'Number of rows selected was ' #count edit 999
else
show 'No rows selected'
end-if
end-procedure main1

What procedures are defined in PRCSAPI.SQC & PRCSDEF.SQC ?


Ans: PRCSAPI.SQC : Get-Run-Control-Parms(), Get-Process-Language(), Update-Prcs-Run-
Status().
PRCSDEF.SQC: Define-Prcs-Vars() This procedure will define and initialize the various
process scheduler variables.

How do you Execute SQR using Process Scheduler ?


Ans : a) Include some RunControl panel having OperatorID & RunCntlID.
b) This panel includes PRCSRUNCNTRL table & RUNCNTRL table having OperatorID
& RunCntlID.
c) Add your own input fields to this RunControl record & also drag drop it onto
your panel.

d) Write PeopleCode OPRID = %OperatorID; in RowInit event of OPRID field.

Write procedure into SQR code which would have an SQL statement to fetch you
fields from RUNCNTL table. Remark all input fields. Execute this procedure in else
part of If $prcs_process_instance = ‘’ which means that this sqr is to be executed
from Process Scheduler.
What is STOP QUIET used for in SQR ?
Ans: Stops execution of SQR & come out of it.

Audit Records
If you are creating an audit record, there are normally three fields that need to go at the start of
the audit record (remember to use the AUDIT_ prefix as described in the record naming
conventions). These three fields will uniquely identify your audit data. They are (in the order
they should be put on the audit record):
1. AUDIT_OPRID
2. AUDIT_STAMP
3. AUDIT_ACTN
The audit stamp field is a date/time field. However in order for it to be correctly populated, make
sure that you set it to Auto-Update so that it is automatically set to the correct date/time stamp.
If you are using the same audit record for multiple records then add the field
AUDIT_RECNAME. Ensure that this is system maintained and this will tell you which record
the audit action relates to.

Defference between sub page and secondary page?

Sub and secondary have totally different contexts. A sub page is utilized where you want
display/ capture similar information for various entities, for example, capturing an address,
for a company or for a person, would need similar information like street address, state
county, country etc.. In those situations a sub page would be used, to design once and
reuse at multiple places.

A Secondary page is used to display/ capture secondary information about an entity. A


secondary page could use various sub pages, but the reverse is not true.

Sub page is generally used for reuse; i.e. you have the same 4 fields
appearing the same way on several different pages. Then you'd use a
subpage with those fields and include the subpage in all those pages.
Secondary page is used mostly as a pop-up type page to show additional
information or to collect additional information.

The following are various steps that describe the peoplecode logic while
implementing a Component Interface?
1. Establish a user session
2. Get the Component Interface
3. Populate the Create Keys
4. Create an Instance of the CI
5. Populate the required fields
6. Save the CI

When a Component Interface (CI) is created on component that has Add action
enabled?
Get keys, Create keys and Find keys gets created automatically. The Create method is
created along with the other Standard methods for the CI

What is dddaudit and sysaudit?

DDD Audit is a SQR used to find the inconsistencies between the data structures defined in
PeopleTools table against the underlying database.

SYS Audit is an SQR used to compare the different people tools tables and find
inconsistencies like orphaned objects ex. peoplecode not attached to any record etc.,

The main attributes of a Component Interface (CI) are?


Keys, Properties & Collections, Methods and Name

Standalone Rowset

In PeopleCode a rowset object, instantiated from a Rowset class, is a collection of rows


associated with buffer data.

Standalone rowset is an independent rowset object which is not associated with the
component buffer. It means if you are using a rowset which is not in the component buffer,
it is a Standalone rowset. Standalone rowset allows you to work with data outside of the
buffer by getting whatever additional data you need form the database.

In this sense Standalone rowset is somewhat similar to the functionality of derived records
which were once used as place holders to store data not directly associated with the
component.

Standalone rowset is not associated with the component buffer, there is no automatic action
taken by the component processor on it. So if you want to manipulate
(Delete/insert/Update) data using Standalone rowset then code needs to be written
manually to save the changes done.

Standalone rowsets are not associated with a component or page.


The scope of Standalone rowsets can be Local, Global, or Component.

Code to create a standalone rowset object


Local Rowset &rsStandAlone;
&rsStandAlone = CreateRowset(Record.MYREC);

This code creates a rowset with MYREC as the level zero record.

Filling a standalone rowset


The Fill method in the Rowset class is used to populate the rowset, the Fill methods flushes
the rowset ,reads the records from the database and populates them into the Standalone
rowsets. The parameters to the fill method are :- a where clause and bind values.

Local Rowset &rsStandAlone;


&rsStandAlone = CreateRowset(Record.MYREC);
&emplId =’106149’
&rsStandAlone.Fill(“where emplid=:1”,&emplId);

What is the difference between Get and Create functions in Instantiating Objects?

Get functions, which include functions such as GetField, GetRecord, and so on, generally
provide access to data that already exists, whether in the data buffers or from an existing
definition.

Create functions, which include functions such as CreateObject, CreateArray, CreateRecord,


generally create defined objects that do not yet exist in the data buffer. Create functions
create only a buffer structure. They do not populate it with data. For example, the following
function returns a record object for a record that already exists in the component buffer:

&REC = GetRecord();

The following example creates a standalone record. However, there is no data in &REC2.
The specified record definition must be created previously, but the record does not have to
exist in either the component or data buffer:

&REC2 = CreateRecord(EMP_CHKLST_ITM);

What are the main elements in the component Interface ?


Main elements of component Interface
• Component interface name
• Keys
• Properties and collections
• Methods
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 people code to invoke Component Interface?
• Establish a user section
• 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

Else
Populate other fields
End-if;

Populate the other fields

If not &CI.Save () Then


Else
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

Catching error message in the component Interface? Or


Use of 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
messge.

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;
Record Field Events
FieldChange event
FieldDefault event
FieldEdit event
FieldFormula event
PrePopup event
RowDelete event
RowInit event
RowInsert event
RowSelect event
SaveEdit event
SavePostChange event
SavePreChange event
SearchInit event
SearchSave event
Workflow event

Component Record Field


Events
FieldChange event
FieldDefault event
FieldEdit event
PrePopup event

Component Record Events


RowDelete event
RowInit event
RowInsert event
RowSelect event
SaveEdit event
SavePostChange event
SavePreChange event
SearchInit event
SearchSave event

Component Events
PostBuild event
PreBuild event
SavePostChange event
SavePreChange event
Workflow event

Page Events
Activate

Menu Events
ItemSelected

What is 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.
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 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.

Traversing the Collections in the Component Interface?


COLL_JOB – Collection
Coll_JOBItm – Row in the collection.
&COLL_JOBCol = &CI_JOB_DATA.COLL_JOB;
For &i = 1 to &COLL_JOBCol.Count
&COLL_JOBItm = &COLL_JOBCol.Item (&i);
&COLL_JOB_JRCol = &COLL_JOBItm.COLL_JOB_JR;
For &J = 1 to &COLL_JOB_JRCol.Count
&COLL_JOB_JRItm = &COLL_JOB_JRCol.Item (&j);
&COLL_JOB_JRItm.KEYPROP_EFFDT =;

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 is the difference between SQL View and Query View?

-In Sql view manually write the SQL statement, Query view use the PS QUERY tool.

How do u remove inconsistence in process monitor/schedular

PSPRCSRQST, PSPRCSQUE and PSPRCSPARMS


In order to avoid various process scheduler related issues, three Process Scheduler tables
PSPRCSRQST, PSPRCSQUE and PSPRCSPARMS must be in sync.

Execute below queries:


select count(*) from PSPRCSRQST;
select count(*) from PSPRCSQUE;
select count(*) from PSPRCSPARMS;

If these queries give different results, you should bring them in sync by executing below
statements:

DELETE FROM PSPRCSQUE QUE


WHERE NOT EXISTS (SELECT 'X' FROM PSPRCSRQST RQST WHERE RQST.PRCSINSTANCE =
QUE.PRCSINSTANCE);

DELETE FROM PSPRCSPARMS PARMS


WHERE NOT EXISTS (SELECT 'X' FROM PSPRCSQUE QUE WHERE QUE.PRCSINSTANCE =
PARMS.PRCSINSTANCE);

Also, Column RUNSTATUS of any process instance in table PSPRCSRQST must have same
value in table PSPRCSQUE for that process instance... below query will show check for it.

select R.PRCSINSTANCE, R.RUNSTATUS, Q.PRCSINSTANCE, Q.RUNSTATUS from


PSPRCSRQST R, PSPRCSQUE Q
where R.PRCSINSTANCE=Q.PRCSINSTANCE
and R.RUNSTATUS != Q.RUNSTATUS

*** Also, it is a good practise to delete the processes with delete, error or cancelled status
from the PeopleSoft tables:
DELETE FROM PSPRCSRQST where RUNSTATUS = '2' --> 2 is the run status for delelted
process.
DELETE FROM PSPRCSQUE where RUNSTATUS = '2'

*** Key Point: Data in PSPRCSRQST, PSPRCSQUE and PSPRCSPARMS tables must be in
sync.
What's the difference between a primary key and a unique key?
Both primary key and unique enforce uniqueness of the column on which they are defined.
But by default primary key creates a clustered index on the column, where are unique
creates a nonclustered index by default. Another major difference is that, primary key
doesn't allow NULLs, but unique key allows one NULL only.

Joins are used in queries to explain how different tables are related. Joins also let you select
data from a table depending upon data from another table.

Types of joins:
INNER JOINs,
OUTER JOINs,
CROSS JOINs.
OUTER JOINs - LEFT OUTER JOINS,
-RIGHT OUTER JOINS
FULL OUTER JOINS.
What is a self join?
Self join is just like any other join, except that two instances of the same table will be joined
in the query.
How will you read data from a CSV or Excel file and upload it into the database
using AE.
Why are SQC files used.
What is the SQC used to read data from a translate table.
Which section is mandatory in an SQR program.
Why is setup section in an SQR program used.
How will you get the system date in ORACLE.
Effective Dated query in SQR.
What is a subquery. Why is it used.

Message Catalogs
PeopleSoft error messages are maintained by set number and are all stored in the Message
Catalog.You add and maintain system messages using the Message Catalog page.
PeopleSoft reserves all message set numbers up to 20,000. To add a message set:
1. Go to PeopleTools | Utilities | Administration | Message Catalog, and on the search
page click Add New Value.
2. Enter the value of the new Message Set Number and click Add.
3. Enter a Description, a Short Description, and a Message.
4. Save.

What is Load-Lookup used in SQR.


Why are FieldEdit and FieldChange events used.
List of record class methods to update the database:
Delete
Insert
Save
Update
Only use these methods in the following events (events that allow database updates):
SavePreChange
WorkFlow
SavePostChange
FieldChange
Application Engine PeopleCode action
Why is SaveEdit event used.
Why is SQLExec function used and how many rows can you retrieve using it.
What is a subpage. Why is it used.
Why is Derived/Work record used.

A Derived Work Record is primarily used to store temporary data, data that
do not need to be reused. One of the main functionality of a Derived Work Record is to store
totals. Another common use is for buttons, messages, and temporary fields. Derived Work
records are only available during your session with the page and are reset anytime the page
is re-entered.

Peoplesoft provides different functionalities to override the search key


functionality in the Component:
 Search record The Component search page is structured based on the search key
values of the Component Search record.When the Search record does not contain
any search key fields in the Record structure then the search page will not be
displayed for the component. INSTALLATION table does not contain any key
structures and it has been setup as the Component Search record. When the
component is visited through PIA, the search page will be bypassed and sent directly
to PeopleSoft pages.
 PeopleCode Consider the scenario where the record with search key structure
needs to be setup as the Component search record and it need to bypass the
Component Search page. In such case, Peoplesoft delivers a
‘SetSearchDialogBehavior’ function to pass the key values through the PeopleCode
and bypass the component search page. SetSearchDialogBehavior(0) bypasses the
search page.

 URL The search key values can be passed through the URL also. The URL will be
concatenated with the Search Key field name with its value after the menu and the
component information. In such case, when the user logins to the PeopleSoft, the
PIA will be automatically navigated to the specified page with the Search key values
from the URL. When the Search key passed through the URL is not matched then the
control will be in Component search page to enter the new search key values.

Query Security
The first step to creating queries is setting up the security. This requires creating a query
tree and setting up a permission list that allows access to the query trees. Within the tree
all tables that the end user is allowed to view must be included. If a table is not in the query
tree, then the query will not be available for the end user to run.

Creating Access Group Trees


Query Access Manager is the administration tool for creating and maintaining your query
trees. Navigate to People Tools | Security | Query Security | Query Access Manager(and
play around.)

Permissions
For your end users to be able to have access to run queries and utilize the records in your
tree, a permission list should be created. This permission list should be added to one of their
roles. Navigate to PeopleTools | Security | Permission And Roles | Permission List to create
the permission list.
 Query_Admin This page allows for viewing of all queries. The ability tokill a query is
done from this page.
 Query_Manager This page allows the creation and running of queries.Give access
to this page only if you want your end user to create and change queries.
 Query_Viewer This page will only allow the end user to run queries they have
access to.
 Sched_Query This page allows for the scheduling of queries.
 Sched_Query_Qryvw This page will allow the end user to view only the scheduled
queries that they have access to.

Query Types
PeopleSoft has delivered six different types of queries. These types are available depending
on the permissions given to the end user.
 User query Uses the Query Manager to retrieve data from the database.
 Reporting query Basically the same as a user query, except it is designedto be
used with other reporting tools, such as Crystal Reports, PS/nVision, Cube Manager,
and XML Publisher.
 Process query A batch query used with Application Engine and the QueryAPI.
 Role query Used with workflow, to determine who should receive e-mails or work
list entry. This query returns a list of roles.
 Archive query Used by PS Archive Manager for archiving.
 PS/nVision query Creates a specific data source for PS/nVision reports and matrix
layouts.

Query Steps
There are seven major parts to creating a query. Only a few of these steps are required, but
they may be needed depending on the query requirements.
1. Select Records Data is stored in records (tables). Depending on the request, you
will need to select the records that store the correct data.
2. Select Fields Identify the fields from the records that are needed in the query.
3. Using expression (optional) Expressions are new fields that can be the following:
fields that are not on your records, fields combined into one field, or fields using
aggregate functions (for example, sums, counts).
4. Using prompts (optional) Requesting input from the end user (for example, Date
range).
5. Selection criteria (optional) Applying criteria to the data that is being selected to
reduce the data returned from the database (for example, only rows that were
created in the current year).
6. Having criteria (optional) Another type of selection criteria, used when the field
you are checking is an aggregate value (for example, only pull departments with
more than five employees).
7. Run query View the results of the query.

Query Tables
The objects that are created within the Query Manager are stored in tables. The full list of
tables involved in Query is as follows:
 PSQRYFIELD Stores all fields used in all aspects of query operation.
 PSQRYDEFN Stores high-level query definitions with version numbers. Non-English
definitions are stored in PSQRYDEFNLANG and PSQRYHEADLANG.
 PSQRYRECORD Stores all records used in all aspects of query creation.
 PSQRYSELECT Stores all SELECT requirements by select type, including union,
subselect, join.
 PSQRYCRITERIA Stores all criteria expressions in code format.
 PSQRYBIND Stores runtime prompt data.
 PSQRYEXPR Stores the text associated with each criteria expression.
 PSQRYLINK Stores the relationships to child queries.

How to perform line by line debugging in Application Engine


Log on to App Designer in 2-tier mode and prior to running the AE, switch on the
PeopleCode debugger mode (I'm assuming that you've used that before). Note that this will
only provide you with line by line PeopleCode debugging, hence, no SQLs will be shown. For
the SQLs, you can switch tracing on for that, in 2-tier mode (via config mgr) or via the
Process Scheduler (by applying the applicable tracing option in the process definition).
Which SQL commands can be used in SQL paragraph.
In which sections can Select statement be used.
What is Effdt and Effseq.
SQR Debugging.
How will you perform error handling in SQR.
How are Multiple reports generated in SQR.
What are the ways for Performance Tuning in SQR and Peoplecode.
Why is Setenv.sqc used.
Why is Process Monitor used and What is that which updates the status of a
process in Process Monitor.
What are the Key fields in PS_JOB and PS_EMPLOYMENT.
In which record is the status of an employee stored.
How will you draw a line of 80 hyphens (-) in SQR.
When an incorrect value is entered in a field and the field turned red then what
is the action to be taken.

BV Upgrade:
One of the major recommendations was to adopt a newer version of Peoplesoft in order to
leverage the new features and functionality with PeopleSoft HCM 9.1 and to improve and
streamline business processes and capabilities.
The following modules of Peoplesoft version 8.8 is considered in scope for the upgrade:

B&V PeopleSoft 8.8 HRMS  North American Payroll – US only


application  Benefits Administration - US only
 Base Benefits – US, UK and Asia Pacific regions
 Compensation - US and UK
 Enterprise Learning
 Employee Self Service
 Core HRMS 8.8
 EPCN a custom tool which is used in place of
delivered Manager Self Service

Technology PeopleTools 8.44

Database Oracle 9.2.0.7

3rd party applications All interfaces to third party applications to & from
Peoplesoft will be considered in scope of as part of
upgrade process

System Components - System Components - To


As Is Be Remarks
Application - HCM 8.8, SP1 Application - HCM 9.1 Application Upgrade
Peopletools - version
8.44.04 Peopletools - version 8.50 Peopletools Upgrade
Database - This will involve
a patch to upgrade to
Database - Oracle 9.2.0.7 9.2.0.8.0 Database Upgrade*
Operating System - Need
Operating System - AIX to assess OS level (ML is
Unix v5.2 AIX 5.3 TL09 SP3) Change in OS level*
Will need a Weblogic
Upgrade from current 8.1
Weblogic - 8.1 to 9.2 Change in Weblogic*
Will need a Tuxedo upgrade
Tuxedo - 8.1 to 9.1 Change in Tuxedo*
Change in Web browser
Web Browser - IE 6 Web Browser - IE 8 level*

overview of all the major activities during the upgrade process

 Functional Fit and Gap Analysis


 Implement/configure HCM 9.1 functionalities based on fit/gap analysis
 Implement People tools 8.50 to support HCM 9.1 application
 Transition all 3rd party tools/ interfaces that interact with PeopleSoft to work with
newer version
 Database upgrade
 Operating system version level change
 Weblogic & Tuxedo upgrade
 Browser version change
 Review/Modify scripts required to support the processing of batch jobs in PS 9.1.
 Retrofit Customizations
 Retrofit all PS Public queries
 Data Conversion
 Instance Cloning, Instance creation, Preparing Copy of Production
 Configure 9.1 security model
 Manager Self service & workflow implementation for the delivered Peoplesoft 9.1
transactions namely
 Review employee information.
 Change employees' reporting manager.
 Transfer employees.
 Promote employees.
 Change employees' location.
 Change employees’ full-time or part-time status.
 Retire employees.
 Terminate employees.
 Perform delta Train-the-Trainer to core B&V team using the UPK training kit
 Unit Test, System Test and UAT
 Parallel run for one week before go-live
 Post go-live support - 4 weeks
The upgrade will be executed in a total of four iterations (including the move to production)
which are called as passes

Upgrade Methodology
iGATE will follow its proven Momentum Methodology with defined stages, activities,
deliverables and success criteria as depicted below:
Initial Pass:
-upgrade oracle from 9.2.0.4 to 9.2.0.8 and applied patch #5523799 (applies
to all the passes)
-Using change assistant tools jobs to Apply Peopletools changes
-run and review compare reports and reset flags where applicable skipped in
other passes
-apply application changes
-run data conversion steps - (move existing data into new columns, delete
obsolete columns) skipped in other passes.
-retrofit customizations skipped in other passes
-upgrade oracle database to 11g applies to all the passes.

During the final

freeze the production


upgrade oracle from 9.2.04 to 9.2.0.8
using apply change assistant tools jobs to upgrade people tools and
application to 8.5 and 9.1 release lvevels respectively.
once change assitant job is complete, oracle database will be upgraded to 11g

Standalone Rowset
In PeopleCode a standalone rowset is an independent rowset object not associated with
the component buffer. They allow you to work with data outside of the buffer by getting
whatever additional data you need form the database. In this sense they replace the
functionality of derived records which were once used as place holders to store data not
directly associated with the component.
Because a standalone rowset is standalone, there is no automatic action by the
component processor on it. This means that if a standalone rowset is used to manipulate
data (inserts/updates), code will need to be added to manually save the changes.
Code to create a standalone rowset object
Local Rowset &rsExample;
&rsExample = CreateRowset(Record.REC1);
Note that at this point, the rowset is unpopulated.
Filling a standalone rowset
The Fill method in the Rowset class is used to populate the rowset. This parameters to
the fill method are a Where clause and bind values.
&rExample.Fill("where FIELD1 = :1", REC2.FIELD2);

Copying Rowsets
I find that you often need to create and manipulate standalone rowsets. Sometimes you
can get the data for your standalone rowset from the database using the Fill method,
however sometimes you'll want to copy from existing rowsets. This is where the CopyTo
method comes in handy.
However there is one important thing to note when using CopyTo - it will only copy like-
named record fields and subscrolls at corresponding levels
In order to work correctly, the record in the source rowset must have the same name as
the record in target rowset, unless you specify a record list in the parameters.
For instance, say I have data in a rowset &rsExample with one record, EXAMPLE which is
populated in the component buffer.
The EXAMPLE record has the following fields:
EMPLID
NAME
Now, say I want to copy the data from my rowset &rsExample to another rowset,
&rsExampleAudit which consists of an audit record for EXAMPLE called AUDIT_EXAMPLE.
The AUDIT_EXAMPLE record has the following fields:
AUDIT_OPRID
AUDIT_STAMP
AUDIT_ACTN
EMPLID
NAME
What I want is to copy the like-name fields between &rsExample and &rsExampleAudit
(the fields EMPLID and NAME).
The following code will NOT work:
&rsExample.CopyTo(&rsExampleAudit)
Why? Because &rsExample consists of a record named EXAMPLE, but &rsExampleAudit
consists of a record named AUDIT_EXAMPLE. Because the two rowsets do not have the
same underlying record name, the copy does absolutely nothing (quite frustrating!).
In this scenario, we need to specify a record list, so it knows the source and target
record names. This how I need to write this code to make it work:
&rsExample.CopyTo(&rsExampleAudit, Record.EXAMPLE, Record.AUDIT_EXAMPLE)
Generically the syntax is:
&rsSource.CopyTo(&rsTarget, Record.SOURCE_RECNAME, Record.TARGET_RECNAME)

People Tools 8.50


latest update features an enriched end user experience through the use of new Web 2.0
capabilities, enhanced integration and expanded reporting options.
PeopleTools 8.50 is the foundation for PeopleSoft 9.1 applications but is also backward-
compatible for older releases, increasing the value of customers’ current versions
without requiring an upgrade of their core applications.
Peoplesoft 9.1
Oracle’s PeopleSoft Enterprise 9.1 includes 21 new solutions, 1,350 new features, more
than 28,000 pages enhanced with Web 2.0 capabilities, 300 new Web services and 200
industry-specific enhancements.

DoModalComponent

DoModalComponentSyntax
DoModalComponent(MENUNAME.menuname, BARNAME.barname,
ITEMNAME.menuitem_name, PAGE.component_item_name, action,
RECORD.shared_record_name [, keylist])
where keylist is a list of field references in the form:
[recordname.]field1 [, [recordname.]field2]. . .
Or
&RecordObject1 [, &RecordObject2]. . .
Description
Use the DoModalComponent function to launch a modal component. The modal
component launches from within an originating component. After the modal component
displays, the user can’t proceed with changes to the originating component until either
accepting or canceling the modal component.
Modal components can be displayed in any of the following action modes: Add,
Update/Display, Update/Display All, Correction. A modal component can be launched
from any component, including another modal component. You can use
DoModalComponent from a secondary page.
The originating component and the modal component share data, including search keys,
using a Shared Work Record or the values in the fieldlist parameter. If valid search keys
are provided in the shared work record and populated with valid values before launching
the modal component, the search is conducted using the provided search key values. If
the fieldlist parameter isn't used and no search keys are provided, or if search key fields
contain invalid values, the user accesses the modal component using a search dialog
box.

Transfer
TransferSyntax
Transfer(new_instance,
MENUNAME.menuname,
BARNAME.barname,
ITEMNAME.menu_itemname,
PAGE.component_item_name,
action [, keylist] [, AutoSearch]);
where keylist is a list of field references in the form:
[recordname.]field1 [, [recordname.]field2]. . .
OR
&RecordObject1 [, &RecordObject2]. . .
Description
Use the Transfer function to close the current page and transfers the end-user to
another page, either within the current component or in another component. Transfer
can either start a new instance of the application and transfer to the new page there, or
close the old page and transfer to the new one in the same instance of PeopleTools.

Note. The Transfer function cannot be used with an internet script or an application
engine program.
Transfer is more powerful than the simpler TransferPage, which permits a transfer only
within the current component in the current instance of PeopleTools. However, any
variables declared as Component do not remain defined after using the Transfer
function, whether you’re transferring within the same component or not.
You can use Transfer from a secondary page (either with or without using a pop-up
menu) only if you’re transferring to a separate instance of a component. You cannot use
Transfer from a secondary page if you’re not transferring to a separate instance of a
component.
If you provide a valid search key for the new page in the optional keylist, the new page
opens directly, using the values provided from keylist as search key values. A valid key
means that enough information is provided to uniquely identify a row: not all of the key
values need to be provided. If no key is provided, or if the key is invalid, or if not
enough information is provided to identify a unique row, the search dialog box displays,
enabling the end user to search for a row.
Note. If Force Search Processing is specified in PeopleSoft Application Designer for the
component, the search dialog box always displays, whether the keylist is provided or
not.

TransferPage
Syntax
TransferPage([PAGE.page_name_name])
Description
Use the TransferPage function to transfer control to the page indicated by PAGE.
page__namename within, or to the page set with the SetNextPage function. The page
that you transfer to must be in the current component or menu. To transfer to a page
outside the current component or menu, or to start a separate instance of PeopleTools
prior to transfer into, use the Transfer function

DoModal
DoModalSyntax
DoModal(PAGE.pagename, title, xpos, ypos,
[level, scrollpath, target_row])
where scrollpath is:
[RECORD.level1_recname, level1_row, [RECORD.level2_recname, level2_row, ]]
RECORD.target_recname
To prevent ambiguous references, you can also use SCROLL. scrollname, where
scrollname is the same as the scroll level’s primary record name.
Description
Use the DoModal function to display a secondary page. Secondary pages are modal,
meaning that the user must dismiss the secondary page before continuing work in the
page from which the secondary page was called.

Difference between doModal and doModalComponent?


DoModal can display on a single page. To display an entire component modally, use
DoModalComponent.

EndModal
EndModalSyntax
EndModal(returnvalue)
Description
Use the EndModal function to close a currently open secondary page. It is required only
for secondary pages that do not have OK and Cancel buttons. If the secondary page has
OK and Cancel buttons, then the function for exiting the page is built in and no
PeopleCode is required.

TransferExact
TransferExactSyntax
TransferExact(new_instance,
MENUNAME.menuname,
BARNAME.barname,
ITEMNAME.menu_itemname,
PAGE.component_item_name,
action [, keylist] [, AutoSearch]);
where keylist is a list of field references in the form:
[recordname.]field1 [, [recordname.]field2]. . .
OR
&RecordObject1 [, &RecordObject2]. . .
Description
Use the TransferExact function to close the current page and transfers the user to
another page, either within the current component or in another component.
TransferExact can either start a new instance of the application and transfer to the new
page there, or close the old page and transfer to the new one in the same instance of
PeopleTools.
How do you add a radio button in a grid?
-radio button cannot be placed directly for the n number of rows. So in the grid
properties row selection indicator option set to radio button. Radio button will be
displayed.
How do you add a checkbox in a grid?

How do you make a grid visible or invisible depending upon some condition?
-insert a group field in the derived work record and assign the group box with that
field.Depending upon some condition and the event to write the peoplecode using the
record.groupbox.visible = false/true.

1. The main attributes of a Component Interface (CI) are?

Keys, Properties & Collections, Methods and Name

2. Which one of the following are standard properties when a Component Interface (CI) is
created?

GetHistoryItems

3. With reference to the Component Interface Tester which of the following is NOT TRUE?

GetExisting option is equivalent to opening a record in Update/Display Mode only

4. 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 gets created automaticallyThe Create method is
created alongwith the other Standard methods for the CI

5. Which of the following can be mapped as Find Keys for a Component Interface ?

A OR b

6. Which of the following is NOT TRUE in Component Interface (CI) Architecture?

A component interface can be mapped to multiple PeopleSoft components

7. The following are various steps that describes the peoplecode logic while implementing a
Component Interface?

1.Establish a user session


2.Get the Component Interface
3.pulate the Create Keys
4.eate an Instance of the CI
5.pulate the required fields
6. Save the CI

8. Will Tuxedo continue to be used in a PeopleSoft/WebSphere or PeopleSoft/WebLogic


environment?
Yes. WebSphere or WebLogic are used as the HTTP server and servlet engine. They are not
used as middleware with the PeopleSoft Application Server. Tuxedo is always used with PIA,
regardless of the HTTP server or Java servlet engine.

9. Can a PeopleTools 8.4 and a PeopleTools 8.1x database run on the same machine?

Yes, databases can co-exist on the same physical machine. In most cases, thedatabases
themselves can exist within the same RDBMS, however, it isimportant to verify that the
database version required by PeopleTools 8.4 is thesame as for the current PeopleTools 8.1x
implementation.

10. Can a PeopleTools 8.4 and a PeopleTools 8.1xapplication server run on the same
machine?

Yes, both PeopleTools 8.4 and PeopleTools 8.1x application servers can run ona single
machine. It is important to ensure that there are no port clashes between the installations.

How does the PeopleSoft Enterprise Portal workwith 8.1x and 8.4 applications?

There are several scenarios that may exist when customers use the PeopleSoftEnterprise
Portal with a mixture of 8.1x and 8.4 applications. Specificinformation on the use of the
PeopleSoft Enterprise Portal in a blendedenvironment will be available in a forthcoming
white paper, which will beavailable on Customer Connection.In general, the
recommendation is to use the PeopleSoft Enterprise Portal 8.4with 8.1x and 8.4
applications, rather than an older version.

Will the PeopleSoft Internet Architecture, now that it embeds BEA WebLogic and
IBM WebSphere, work with my other corporate web servers and tools?

One of the core values of the PeopleTools development group is investment protection. The
time, money and resources that you may have already invested in licensing another web
server, training developers and administrators, building and deploying other web
applications will not be compromised by this decision. How is this accomplished

WorkItem is available in?


WorkList Record

Where are workflow work items found ?


Worklist

In which platform does Crystal and Psnvision works?


Windows (Correct)

You want to update your password and enter a hint for forgotten password. What
would you access?
User Profile 29. Question based on changing prompt table, what happens when changing
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
What views available in Application Designer project workspace?

What is the status available in PeopleSoft Domain Status Menu?

When a business requirement in Fit or Gap Analysis does not meet by PeopleSoft
then what to do?

Your Onsite DBA has called you up and told you that one of the tables PS_ABC_TAO has
grown very big in size. Based on the standard naming convention, you have determined
that the record is a temporary record since it ends with _TAOYou look into the database and
decide that that the data is not required any more. You ask the DBA to delete the data in
the table.Next day you get a call from an irritated user who says that a daily process that
took only 1 minute to run is taking about 2 hours today. You look into his process and find
that it uses PS_ABC_TAO as a temporary table.What would you suggest the DBA to do ?

Update statistics on the table

32. (Some scenario) Question relating DBA Purging Temporary Table?

Update Statistics

33. How many Message nodes are possible for a database.?

Unlimited

34. How will you get a single ouptut by combining two or more queries?

UNION

35. What BEA product is used for DB transaction in PS?

Tuxedo

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

TIMESTAMP

37. What hyperlinks available in PeopleBooks? Some options with different hyperlinks not
available in peoplebooks, select the correct one?

Study all hyperlinks in the first page of people books.

38. The example below demonstrates the use of SQR flags in the configuration manager
directories folder: -F C:PSHrmsSqrWhat do the above SQR flags signify to the SQR Report
Writer upon execution?

Specifies the output path

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

40. What are the status available in PeopleSoft Domain Status Menu?

Server, Client and Queue Status

41. Which of the following are part of an AE program ?

Section ,Step and Action

42. Which of the following fires after the database is updated?

SavePostChange

43. What event gets fired after DB Update?

SavePostChange

44. For downloading patches and fixes , you have gone to the customer connection and
looking under 8 april, 2000 and see Report IDS like R-CCHEN-VP14JM. What does R stand
for ?

Released

45. In which one of the following views would you see the fields, criteria, and other details
associated with the current query?

Query view

46. PeopleSoft tracks object changes using a system table. Which PeopleTools System table
is used to track object changes?

PSRELEASE

47. PeopleSoft has its own naming convention for system and non-system (application)
tables. In the list below, 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?

PSRECORDNAME

48. Which process is used for running AE programs which are to be run at a frequency of
less than a day ?

PSDAEMON

49. you can specifically trace the activity of the PSAPPSRV server process by setting the?

PSAPPSRV.tracesql

50. Which of the following is correct in order to start the Process Scheduler Server from the
command line using psadmin.?
Psadmin p start d

51. In the following url


http://localhost/Peoplesoft/EMPLOYEE/PSFT_HR/c/PROCESS_SCHEDULER.PRCSTYPEDEFN.G
BLwhich one is the component definition?

PRCSTYPEDEFN.GBL

52. I have created a Menu and a Page and given user access to that page, which of the
tables gets affected on this (Scenario)?

PeopleTools Tables

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


SYSAUDIT finds for
Orphaned Records

54. Which RDBMS uses Tablespace?

Oracle, DB2, Other Options: SQL Server, Informix, Sybase

55. Changing Prompt Table with NO Edit to Prompt Table with Edit?

Only selection of existing data is possible

56. Which command is valid in both bootstrap and regular mode when operating the data
mover?

GRANT_USER

PeopleCode events pertaining to Record Field:?

FieldEdit, SaveEdit and RowDelete

58. Which of the following are Record field events ?

FieldChangeSearchSave and SavePreChange

59. Which of the following commands can be run in Bootstrap mode?

ENCRYPT_PASSWORD

60. What commands are valid in BS mode?

ENCRYPT_PASSWORD

61. What views available in Application Designer project workspace?

Development and Upgrade


62. Which of the above record definitions is NOT stored on the database and is therefore
NOT required to be built?

Derived/Work Record

63. You have downloaded an Application fix as a project from the customer connection.
Whrere would you upgrade it to ?

Demo

64. PS Query definition is stored on which server?

DB Server

65. How do you login into BS mode?

DB Access Id

66. If you want to log into DataMover in Bootstrap mode, you would login as..?

Database superuser

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

Create Trigger

68. Where will you configure for failover of Application Server (Scenario) -?

Configuration.properties

69. Which one of the following is a trasaction control statement ..?

Commit

70. What Record Changes does not affect Database?

Change in List box in Record Field properties (correct)

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

Apply all outstanding patches, prior to upgrade

72. Update and Fixes: R-* files refers to?

Application Updates and Fixes

73. 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?
74. What is the default Crystal Report that PeopleSoft Query tool creates?

ACTQRY.RPT

75. (Some scenario) Find which is not part of AE Program, Options would be?

Action,Section,Step,Event

76. Which of the following are true with respect to validate signon with database option
enabled in psadmin.?

1. The application server first attempts to connect to database using the user id and
password as part of the database connection string.
2. User must be defined on either the operating system or the database and within the
PeopleSoft.

77. Which of the Following are true for force Shutdown In PeopleSoft Domain Shutdown
menu?

1. shuts down the domain using the tmshutdown -k TERM -c command.


2. A forced shutdown is a non-quiescent shutdown that immediately terminates all the
processes

78. After logging into customer connection, you wish to search for fixes/patches. What are
the search criterias available ?

1. Report ID
2. Date / time
3. Release

79. What are the Search Keys you use to find Patches and Fixes?

1. Release
2. Updated date time
3. Report Id

80. Which one of the following tree types is NOT supported in the PeopleSoft tree manager?
-

1. Query trees
2. Combination trees

81. Which Web Services is only used as a Proxy Server?

1. MS IIS
2. Apache

82. In PeopleCode Debugger what are the valid values?

1. Go
2. Step Over
3. View Variable Value
83. Select the components which form the part of Integration Broker?

1. File Layout
2. CI
3. app. Messaging

84. what are the views available in App. Designer project workspace(multiple answer)?

1. Development
2. Upgrade

85. What are Menu types available?

1. Component
2. PeopleCode
3. Separator

86. Database Connectivity Drivers should be installed in the following System?

1. Client Workstation in two tier mode (Yes)


2. App Server (Yes)
3. Batch Server (Yes)
4. Data Mover (Yes)

87. Where do you need to install connectivity software?

1. batch server 2. App server 3. two tier client

88. What are the People Tools available for Integration Broker?

1. Appl. Messaging 2. Component Interface 3. File Layout

89. A Customer wants to use a new Image in HRMS, where it is stored?

DB Server

90. We access pia from mac OS?

Yes

91. Which of the following technology is used in app messaging?

XML

92. 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?

WinMessage

93. PIA screens and recognize it?

Where are the work items presentWorkilist


94. Where do u set the web server cache?

webserver configuration.properties file

95. Your company obtained the newest Application Release of PeopleSoft, and you need to
prepare for the upgrade. Upon reading the new Release Notes, you notice that changes
were made to two COBOL modules (batch programs).You need to decide how to compare
the current versions of these COBOL programs with the versions delivered with the new
PeopleSoft application release. Which would be the fastest method of comparing these
different versions?

Use non-PeopleSoft comparison tools. 5.

96. Can a business Process be used as a Navigator Home page ?

true

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

True

98. State Record can be Dynamic Record?

True

99. In Call Section Action it is possible to leave the Program ID with blank Value in certain
cases?

True

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

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

True

102. TriggerBusinessEvent is used for triggering the workflow and its written on workflow
event. TriggerBusinessEvent has the syntax?

TriggerBusinessEvent(BusProcess,BusActivity,BusEvent);

103. The following is an entry from the application reviewer LOG File: start
Field=PERSONAL_DATA.EMPLID-RowInit Temps=1 Stack=4 Source=233What does the
Source=233 parameter in the above LOG file entry identify?

The statement being executed is line 233 of the PeopleCode program.

104. One-to-Many?
Table 1 relates to 0,1 or many records in Table2, Table 2 relates to Table1 as one and only
one table.

105. What the following command will do? psadmin -p start -d hrdmo?

Starts a Process Scheduler

106. Which of the Task cannot be done through PSADMIN?

Starting Web Server

107. Activate Event is Valid for following?

Standard & Secondary

108. What is the result of the search with the following criteria in PS Books?

SQL Table OR Field

109. What category of commands can be executed in data mover?

Sql , data mover commands

110. The example below demonstrates the use of SQR flags in the configuration manager
directories folder: -F C:PSHrmsSqrWhat do the above SQR flags signify to the SQR Report
Writer upon execution?

Specifies the output path

111. The application server dynamically scales server processes according to the volume of
transaction requests which is known as?

Spawning

112. Where do you create the process security groups?

Security Administrator 20

113. What is the event that fires after all database updates are over?

Save post change

114. In which one of the following views would you see the fields, criteria, and other details
associated with the current query?

Query view 9

115. From the following statements which one is NOT true about Pub Broker?

Pub Broker is invoked after Pub Contractor Handler evaluates routing rules and writes
contract(s)
116. From the following statements which one is NOT true about Pub Broker?

psserver in configuration properties

117. PeopleSoft tracks object changes using a system table. Which PeopleTools System
table is used to track object changes?

PSRELEASE

118. PeopleSoft has its own naming convention for system and non-system (application)
tables. In the list below, 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?

PSRECORDNAME

119. Which is a record that People Tools adds to every level of the Message Structure during
processing?

PSCAMA

120. What is the configuration file that contains the entire collection configuration values for
a given application server domain?

PSAPPSRV.CFG

121. Which command shuts down an application server domain using a forced shutdown
method?

psadmin -c shutdown! -d ps800dmo

122. The DB User mentioned in Connect ID should have permission to which Three
PeopleSoft Tables?

PSACCESPRFLPSSTATUS PSOPRDEFN

123. PeopleSoft has its own naming convention for system and non-system (application)
tables. In the list below, 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 non-system(application) tables?

PS_RECORDNAME

124. The initial values that you see in PSADMIN are derived from the configuration template
that you select when you create your domain. Where these templates reside in the system?

PS_HOME/appserv in the Application Server

125. 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. *

126. Which of the following menu options allows you to modify the Last Process Instance
Number used within the system?

Process Scheduler, Use, Process Definitions

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

PID.AET

128. Where can u see the status of the job report and details in secured way?

Process monitor

129. Non Repudiation property can be set?

PIA-.PeopleTools-> Integration Broker->Node DefinitionApplication Designer->Message


->Properties

130. If you delete a page from PSPT application which all tables are affected ?

People Tools

131. If u change the long name of translate field what object to be altered?

Page def

132. When do configuration changes made using the configuration Manager take effect?

Once you exit PeopleSoft and log back in.

133. Which one of the following is NOT a valid PeopleSoft query type?

Message agent queries

134. Interlink data type can be declared as?

Local

135. The following ApiObject data type objects cant be declared as Global:?

JavaObject

136. PeopleSofts hub to handle complex system-to-system interactions.?

Integration Broker

137. Suppose the CEO wants a list of the departments whose MINIMUM salary is greater
than $100,000. Your manager asks you to determine the quickest method to deliver this
data to the CEO. Since writing an SQR will take too much time, you decide to use PeopleSoft
query.Referring to the above, what function would you use, in combination with the
aggregate function "Minimum" to produce the result set required?
HAVING CRITERIA 18.

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

FieldEdit, FieldChange, MenuItemSelected MenuItemSelected, Save Prechange &


SavePostChange

139. In which PeopleCode event does ALL data validation take place?

FieldEdit

140. Peoplecode attached with Push Button can be associated with which of the following
events?

Field Edit, Field Change

141. People Soft allows multiple long fields per State Record?

False

142. AE does Parse SQL?

False

143. A PeopleCode program is automatically saved to a file while youre working on it. This
checkpoint will NOT occur at which the following times:?

Every 5 Mins

144. We define business rules PeopleCode on?

Event definition

145. Which of the following record is not found in database?

Derived work record

146. What is the logic used by Component Buffer?

Depth First Algorithm

147. Two Program views of AE Program?

Definition, Program flow

148. You have 3 App. Servers where do you define the Failover.?

Configuration Properties

149. Query is split into what?

Component and Query view


150. Menu path provides path to?

Component

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

Common key fields

152. What effect would making a change to the EMPLID field in the above project have?

Changes would occur globally; meaning the field is changed everywhere else in the
database.

153. An employee is transferred where should he refer in this aspection?

Business Process

154. What are destructive statements in SQL?

b) Recreate a Table
d) Recreate a View

155. A clients App was 3months behind, what should he do to update the app since it was
not working?

b) Apply all Service packs

156. In Two Tier mode where does authentication happens?

Application Server

157. Worklist for a particular user contains marked worked and reassigned buttons. The
reassigned button is set from?

appdesigner -> worklist definition

158. ps application logic reside where?

app server

159. Where do peopletools data is cached?

app server

160. My Asst. Manager approves some document; She uses some screens which presents
her with all the data. What she do to minimize the data?

Advance search

161. You need not create separate DB for every user in PPSFT 8.4 onwards. This is possible
because of?
Access ID

162. File formats for File Layout?

a)xml
b)csv
c) fixed length

163. Prompt table with no edit to no edit?

a) user can enter values from prompt table


b) user can enter values from prompt table and default value will be populated

164. Meta-SQL where is it stored?

a) Temp Table
b) SQL Table
c) Query Table
d) Dynamic(Guess: Temp Table, check People books App Engine)

165. What are all stored in System Catalog?

a) SQL table
b) SQL View

166. Process Profile contains?

a) Sequence of processes
b) Sequence of jobs
c) batch processes

167. File format for SQR?

a) PDF
d) txt

168. People Soft clients wants to get info about PSPT where to find it?

a) Partner Alliance
b) Partner Connection
c) People Soft Connect
d) Portal connect
e) PSU (check)

169. Which of the following are object definitions?

a) Mobile Page
b) File Layout
c) App Engine

170. How do you define the names of the application servers being used to access
PeopleSoft?
a) In Configuration Manager, under the Application Servers tab.

171. ER Diagrams represent?

a) Graphical Representation of Business process and Relationsb) Flowchart of tables and


Fields

172. Tuning can be done on which servers?

a) Database Server
b) App Server
c) Batch Server
e) Web Server

173. When do u view Business process map?

a) Change in mapping of data

174. A System Manager must approve all the transactions what is this?

a) Business Event
b) A Rule
c) A Role
d) Activity

175. The field mapping button on worklist definition is used for for mapping the fields of
worklist record that can be visible on worklist message. We can assign the following type of
values to it?

A role name

176. Question Maximum number of Actions in a Step?

177. PSWORKLIST record is used for workflow routing . It should contains minimum of ?

6 keys in Ascending orders

178. SQL Queries on PS_STAFF table?

3 Questions on this table with different queries and results

179. Let us take a Temp Table TMP_TAO.


In People Tools options the following instance settings are done
Temp Table Instances (Total) : 5
Temp Table Instances (Online): 4
In AE1 App Engine Program the instance count to TMP_TAO is 3
In AE2 App Engine Program the instance count to TMP_TAO is 5.
How many instances are created to TMP_TAO ?

13
180. PeopleCode variables (global, component, local, and parameter), method, and property
names can now be up to _______ characters long?

1000

181. PeopleSoft reserves ALL WinHelp context numbers (in Utilities, PeopleTools Options) up
to which number?

10,000,000

182. File format u can download query result?

1. XLS 2. CSV

183. Which one of the following tree types is NOT supported in the PeopleSoft tree
manager?

1. Query trees
2. Combination trees

184. Where is Unicode used?

1) IBM DB2/UDB
2) Oracle
3) SQL Server

185. What is the minimum number of objects an object group can consist of?

1 19.

186. Use of process profile?

(scenario based on process profile / process group)Server o/p path override , process he
can access

PeopleSoft Interview Questions only

Did u worked with functions, procedures in SQR?


Performance tuning of SQR?
How do u decide between appeng/Ci and SQR while conversion?
Tell me ur experience with CI?
Diff b/w BI,CI,IB?
Outer join, inner join in sql?
Exp in Object oriented prog?
Normalization in oracle?
Normalization in oracle?
Experience in UNix?

What is the APP engine event in peoplecode.?


what are the different actions in APP ENGINE.?
How many temp records are there in app engine.?
How do you debug your AE.?
Why temp records are needed?
Why state records are needed?
Differences between State and temp records.
Different ways to run AE, SQR.(Command, process scheduler)
Different sql statements and metasql statements.
How do you retrieve a value from scroll..scroll select?
What is scroll select, etc
what is record, row peoplecode.
Data Mover questions.....where did you use etc?
What are the new features in security in 8.0?
Differences between role and operator class?
Load look up in sqr, where did you use?
What are the diffences between AE and SQR?
What is component interface, where did you use?
What is the difference between SaveEdit and FieldEdit?
What is commitment control?
Explain the Process flow in Billing, AR, AM. GL, AP, PO etc.
What is App Reviewer, App Debugger. Differences between them.
Where do you set Peoplecode trace?
What are the Outputs of SQR?
What Chartfieds did you use?
Diff between chartfield and chart of accounts?
What are the parameters that you will give for crystal reports?
what is PSCAMA(Peoplesoft Application messaging attribute)?
What are the techniques for data transfer?
What are the various ways to run sqr?
Explain briefly about compare reports.
What is paycycle and pay cycle manager?
Whats customization did you made?
How do you delete a file using sqr?
How do you stop sqr, while running using a command in sqr(stop)?
What are rename, reporting and layout commands, break point etc in sqr?
What is paycycle and paycycle manager?
What are the Different types of matching in AP(2,3,4 amd receipt only matching)? Explain
them.
What is the process of setting in peoplecode debugger?
what is group control in crystals?
Name some app engines u worked on?
What are different peoplecode events?
What are the various peoplecode events.
How did you apply bundles?
What is a bundle?
Diff between instances and servers?
How did you upgrade your PO?
How did you apply your patces and bundles?
How did you do your retrofitting for peoplecode, sql, etc?
How did you migrate from legacy?
How do you denote null in DB2?
What is left join, right join? (learn all joins)?
Diff between oracle and sql server 2000?
Do you know dts in SQLSERVER 2000?
How do you execute a SP from SQR or AE?
What is app messaging, where did you use?
what is component interface, where did you use?
A Simple Query involving Professor, Asst Professor and to find if both can be available
before and at a mentioned date.?
DDDAudit what is it?
In the URL identify Portal and Component name?
What are the topics covered in People Books? (Bad options)?
Connect id?
Where do u maintain hierarchies & Create access groupsTree Manager?
Where do I find the doc /// in customer connection---freequently updated . thing like
patches?
Customer Connection?
Fit gap analysis --- implementation and upgrade?
Leave went into LOP(scenarios based fit gap)Requirement phase?
The field property is changed from Prompt with no edit to Prompt with edit wht is the
effect.No more data edit possible?
Where do one see the status of the process requested to be executedProcess monitor?
Upgrade Assistant Scenario?
SQL injection what is it?
Question on Connect Id, Shared Key used to connect to the DB?
Regarding One to Many Relationship?
Simple Select Statement and Find the Results?
Regarding UPGCONVERT Project used?
Optimizer values passed in Oracle?
Question relating to purpose of State Record?
Which one of the following is true about PIA?
Given a SQL Statement, we have been asked to check the right syntax ..?
Explain with an example, where you used peoplecode extensively?
Tell me about component Buffer?
What is the diff b/w component level peoplecode and record level peoplecode?
If there is same Component X in two different menus, menu1 and menu2 and if u want to
assign a different search record for each menu, then which peoplecode function do u use
and where do u write the code?
Tell me few peoplecode functions you worked with?
Where can you write the peoplecode?

How to combine two projects?


To merge projects:
1. Open the project in which you want to insert another project.
2. Select File, Merge Projects.
The Merge Projects dialog box appears.
3. Enter Selection Criteria.
1. Enter a project name or description (or the beginning characters of either).
2. Click Insert or press Enter to display projects matching the selection criteria you entered.
4. Select a project to insert into your currently open project.
Double-click the project that you want to insert, or highlight the project and click Insert. To
select multiple projects use the Shift or Ctrl keys.
5. Click Insert.
All selected definitions are inserted into the project in one action. After each insert, note the
information in the status bar and on the Results tab in the output window.
In data upload using CI, How to enable it to run next row of data when error occur. For
example, 10 transactions ? This can be achieved by adding the try catch block to catch the
exception in the peoplecode. You can catch the exception and do desired processing or log
the error. eg:
while <reading lines of data>
try
<all your ci collection related code goes here>
catch Exception &ex
<error handling>
end-try;
end-while;

What is the use of set control field in record field properties? If we specify one field as a
set control field then we will retrieve data based on this when we are using prompt table.
Based on this field only we can have valid prompt list at the time of prompt button clicking.
E.g. there is a business unit field and a there is a prompt field against department field. If
we make business unit field as the set control field then only departments of that particular
business unit will appear in the prompt

How many sub pages, secondary pages can be created in one level ? Any no of sub pages
can be created and any no of secondary pages can be created. There are no restrictions

How to create prompt table dynamically for the specified field ?


The Dynamic Prompt table is used when the prompt values are defined in the run time.Lets
say if X = 1 then use 'EMPLOYEES' as the prompt table else use 'JOB' as the prompt table.
end-if.Now in the record definition and record field properties you set the prompt table as
%fieldname.This fieldname can be any field name.(This is normally taken from a derived
work record). This field should be placed on a page and make it invisble (usually).During the
Row init.....you have to set a value to this field. This value will be the prompt record name.
as long as this record is a valid one and the field contains a valid record name this dynamic
Prompt table is used.Normally we use the field EDITTABLE as the Prompt table container...if
the field is RECNAME then you should use %RECNAME instead of %fieldname.
======================
In order to use a dynamic promt table; the field that is going to have the dynamic promt
must point to a field in the DERIVED record. The promt table can be dynamically assigned
with the following code.
If(condition)
%derivedrecordfield.value=promttable1
else
derivedrecordfield.value=promttable2
end-if;

How to migrate roles from one database to another database? 1. 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 database.
2. Create a datamover script to migrate roles from PSROLEDEFN table.

Does Application Messaging work between 8.1xand 8.4 applications? Application Messaging
is used by PeopleSoft applications to communicate with one another. This is true not just for
8.1x and 8.4 applications, but also between an 8.1x and an 8.4 application. For example,
the HRMS 8.3 applications, which are based on People Tools 8.15, can communicate with
Financials 8.4applications, which are based on People Tools 8.4, using Application
Messaging. If specific issues materialize relating to the Application Messages published by
certain applications, these new messages will be made available to customers.

What is Recordgroup in peoplsoft ? A Record Group is a group of related records, keyed by


SetID, which define the valid values for one or more fields in PeopleSoft. Related values are
keyed with/under a single Record Group.
For example, Record Group FS_02 defines edit tables related to Calendars. Record Group
FS_26 defines edit tables related to Locations.
The structure of Record Groups is core to the feature of PeopleSoft known as TableSet
sharing. Record Groups support sharing one set of valid values across multiple Business
Units.
Within a TableSet, each Record Group must reference one and only one SetID. Values
specific to a Business Unit are keyed by a SetID referenced only by that Business Unit -
sometimes the actual BU is used as the key/SetID value. Values shared with one or more
Business Units are typically keyed by a more generic SetID - perhaps representative of a
market or geographic segment. Finally, values shared across all Business Units are usually
keyed by a generic SetID - sometimes SHARE or MODEL.

Difference between search record and add search record? When we mention a record
name in the search record option in the component properties then the searching will take
place from that record when the component search page appears. When we add a new
value in the add mode, the record name that we specify in the add search record option the
new value gets stored there. By default if we don?t mention any value in the add search
record option then the new value will be stored in the table mentioned in the search record
option.

What is component Interface meant for? It is an integration tool which is used to integrate
peoplesoft component from one application to another application. The application can be
another peoplesoft application or third party application (c/c++, java).

If you are PS developer then In what scenarios Component Interface will have advantages
over component? A component exposes your pages to peoplesoft only. Moreover it helps us
to define common properties for a set of related pages.
A component interface is a set of application programming interfaces (APIs) that you can
use to access and modify PeopleSoft database information programmatically. PeopleSoft
Component Interfaces expose a PeopleSoft component (a set of pages grouped for a
business purpose) for synchronous access from another application (PeopleCode, Java,
C/C++, or Component Object Model [COM]).

How to do object security? How to connect report through process scheduler? Objects
Security - Object Security is used to restrict the People Tools objects that specific
developers can access.
PS8.0, PT8.15.
Application designer - Go ? People Tools - >Object Security.
Create a Group Id - Select type of object - The windows will be splitted into two boxes. Then
move the objects, to which access has to be given to the developer/s, into the left side of
window. Save the Group Id.
Now link the Group Id to the permission list which is attached to the developer Userid.

Can component interface be mapped to multiple PeopleSoft components? The Component


Interface can be mapped to only 1 component.
But there can be multiple component Interfaces for 1 Component

The main attributes of a Component Interface (CI) are? The main attributes of CI
are
1. Component Interface Name
2. Keys like Get keys, Find Keys and Create Keys.
Get Keys:- All the Search keys of a Component (Record) will become Get Keys of CI
Find Keys:- All search Keys and Alt Search Keys
Create Keys: If the underlying Component is in add mode then Create keys will be
automatically created.
3. Methods - There are 5 Standard Methods r there in CI like Find, Get, Save, Cancel and
Create.
4. Properties and Collections (Fields and Records).

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 gets created
automatically. The Create method is created along with the other Standard methods for the
CI.

Which one of the following are standard properties when a Component Interface
(CI) is created?
Interactive Mode, GetHistoryItems, and EditHistoryItems

What is sequence of events triggered in peoplecode?


SearchInit peoplecode performs before the search dialogue box displays.
Search save peoplecode performs after the operator clicks ok in the search record dialogue
box.
Row Select peoplecode is used to filter out rows of data.
PreBuild is often used to hide and unhide the pages.
Field Default attempts to set defaults for fields without a value.
Field Formula performs, after field default completes successfully.
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 the difference between SQLExec and CreateSQL?


There are two basic differences:
1st: If you want to delete, insert, or update a single record, use the SQLExec along with
corresponding PeopleCode record object method.
If you want to delete, insert, or update a series of records, all of the same type, use the
CreateSQL or GetSQL functions, not the Execute SQL class method.
2nd: SQLExec can only Select a single row of data. If your SQL statement (or your
SQL.sqlname statement) retrieves more than one row of data, SQLExec sends only the first
row to its output variables. Any subsequent rows are discarded. If you need to SELECT
multiple rows of data, use the CreateSQL or GetSQL functions and the Fetch SQL class
method.

Sequence of events fire when you click save button?


SaveEdit
SavePreChange
Workflow
SavePostChange
What is Component Processor?
The Component Processor is the People Tools runtime engine that controls processing of
an application from the time that a user requests a component from an application menu
until the database is updated and processing of the component is complete.

What is the difference between SQL Object and SQLExec?


SQL Object is a peopletool definition which can be created using app designer as well as
using peoplecode command CREATESQL( ) , it is mainly used for reuseablility of the sql
statements. so whenever this statement is required no need to hard code, just create an sql
object of the same and use where ever it is required.
sqlexec is a peoplesoft delivered function used to retrieve only one row of data at a time. It
directly interacts with the database

How to send email to the all employers from the peoplesoft application when a certain
event is true?What is the event used to trigger? Create a workflow. In the workflow, use a
query with active employees and their email ids as inputs. On the successful occurrence of
the event, trigger this workflow using TriggerBusinessEvent.

Where PeopleCode get stored?Option: 1. Application ServerOption: 2. Database


ServerOption: 3. Client Database server. stored in PSPCMPROG TOOLS TABLE

Is there any function exist in peoplecode which stops the processing of whole
component? Exit(1) function can be used to close any peoplecode execution.

Whats the advantage and disadvantage of Sqlexe in peoplecode? By using SQLExec


function we can do the manipulation to the database. we can write insert,update,delete sql
commands.
Drawback while selecting the data using sqlexec, it will return only one at a time.
another drawback, if the name of the records changed, then you have to make the changes
in the code as the query will in the quotes inside sqlexec.
SQL exec takes a trip to the server evertime used unlike the SQL obect which takes a trip to
the server only once.
SQLEXEC function has one more disadvantage where it will not pick up related langauge
data automatically. You have to explicitly fire two SQLEXEC's one for base langauage and
one for related language by Checking %Language_User.

What is the difference between component level peoplecode and record level peoplecode?
Record level people code will be attached to the record, and anywhere we use the record ,
the peoplecode with it will be fired.
Component level peoplecode will be attached to the component and not to the record. So
even if we reuse the record we will not have the peoplecode attached to it. The record level
peoplecode will be fire first then component level peoplecode.one record level peoplecode
might be associated with several different Components, so that It is possible to trigger the
same Record PeopleCode from several components while the component level code is
associated with a unique component.
Record level peoplecode is generic peoplecode, will be used anywhere in peoplesoft and
component level is component specific peoplecode,this will used only for this component
and component level peoplecode will be fired first .

Where can u write the peoplecode?


You can write people code in 7 objects
1) record field level,
2) page level,
3) component level ,
4) component record level ,
5) component record field level,
6) Menu level,
7) Application Engine,
8) Application package,
9) Messages

Tell me about component Buffer? Component Buffer is the area in memory that stores
data for the currently active component.
Component Buffer consists of rows of buffer fields that hold data for the records associated
with the page including primary scrolls, derived work records etc.
When you open any page in a component, the system retrieves all of the data records for
the entire component and stores them in one set of record buffers, organized by scroll level
and then by page level. This component buffer consists of rows of buffer fields that hold
data for the various records that are associated with page controls, including the primary
records; related display records, derived work records, and translate table records
During the search click the zero level rows are populated in the component buffer. serachinit
0 level rows are there. when we have page activate rest of the levels gets populated

what are the important tables in PS-HRMS?


There are four groups of tables in PS.
1. Installation table
2. Permission lists tables
3. Control tables
4. Transaction tables

How many Grids can we insert in a single component or page?


We can insert as many required grids at a particular level on the page... but we can only
have 4 such levels on the page

What is the difference between a Grid and a scroll ?


One of the differences between a grid and scroll is that a Grid can be inserted into a scroll
but vice-versa is not possible. In fact a Grid is incapable of housing another grid.
From an end-user perspective, a Grid provides visual access to many rows of data(from the
record) at the same time, whereas a scroll will display the details of one row of data

How many types of ways you can run an Application Engine program? for end-uses:
Process Scheduler
for developers: Process Sheduler,
PPTools>AE,
Dos Command Line,
called by People Code.

what is a state record? State Record is used to pass the values from one actions to
another actions. State record is not a temporary record, it can be Sql record or derived work
record. Mainly sql record is used for restart of the application engine programme. It should
have naming convention of _AET.
Why cant the SQL and call Section Actions be present simultaneously in a single step? call
section and SQL actions are mutually exclusive so they cannot be called at a time.If u use
both call section and sql it gives the data base Traffic .Same time both will call d/b

What are the think-time functions? The functions which will suspend processing either until
the user has taken some action.use the warning messages which makes the user to respond
manually hence making him think.

What happens if you don't specify a Search Record for a Component? If you don't specify a
search record then you won't be able to save your component definition. Search record is
always mandatory for the component.
You can specify a dummy search record called - INSTALLATION and the component can be
saved. There won't be any search option for the page. It will directly take you to the
contents on the page

Which Table contains Login User Id & Password in Peoplesoft Database? It Is PSOPRDEFN.
The password however is encrypted.

Does SAVEEDIT saves first and then apply validations to all fields? OR does it apply
validations to all fields first and then SAVE? In SaveEdit event, first all fields are checked
for business rules and validations are carried out on all fields. If any of the values of fields
doesn't satisfy any of the business rule, warning or error message get generated depending
on the severity. For warning messages, those get printed in the .log file and data get saved
irrespective of the warning messages. But for error messages data doesn't get saved and
processing gets stopped.

Difference between Save PreChanges and Save PostChanges w.r.t saveedit? save edit
validates data and gives messages or warnings.when no error/warnings exist then
saveprechange fires. it helps by doing one last check before the save process. save post
change updates/inserts data into the records that have not been brought into to component
buffer. it is recomended not to give error or warning messages in prechange and
postchange events.

How to test an application engine program in 8.8? One can test Application in two ways:
Running Application engine from 2-Tier
Running Application engine from 3-Tier.
Running Application Engine from 2-Tier: Open Application Designer, Then open desired
Application engine. Then on top middle tool bar you can see 'Run Programm button' click on
to that button, give vales to parameter like Process Instance, Run Cntrl id etc and click. this
will run application engine and genreate a trace file to you local system. After complition of
Application engine you can see if you got desired results or not
Running Application engine from 3-Tier: Firstly Go to peopleTools-> Process Schedular ->
Process. Add you Application engine process here.
After defining Application engine, Go to peopleTools-> Process Schedular -> System
Process Request, then add a RUN CONTROL ID, After adding run control id, click on the RUN
button on the page, this will lead you to page where all the process will be listed, Select you
process name (Application engine Name) and clik on ok. This will run you Application
engine.

How do you retrieve a value from scroll..scroll select? Local RowSet &rs0;
Local RowSet &rs1;
Local Row &row0;
Local Row &rs2;
Local Record & Rcd 1;
Local Field & fld1;
/*getting the scroll level 0's first row*/
&rs0 = GetLevel0();
&row0 = &rs0.GetRow(1);
/*getting the scroll level 1's rows*/
&rs1 =&row0.GetRowSet (Scroll. SCROLL NAME)
/*Accessing individual rows of the scroll*/
FOR &I=1 to &row1.ActiveRowCount
&rs2=&rs1(&I);
&Red1=&rs2. GetRecord(Record.RecName);
fld1=&Red1. GetField(Field.FieldName);
End-For;

Differences between State and temporary records?


1. State record at any point of time has only single line information, as it's driven by the
Process_Instance a skey field. While temp table can have multiple rows.
2. State record had only single instance, while the temp table can have maximum of 99
instance. Basically temp table is used for parallel processing
State record is used for restart logic. If you create a sql table as State Record data will be
stored in the database. If at any point of time, App Engine programs stops, you can
continue from that point on, provided Restart is enabled. This is called the restart logic.
With restart enabled, you don't have to run app. engine program all over again. For this to
be true, state record cannot be a derived record. It has to be a sql table.
3. Temp. table is primarily used for set processing. If there are several users running the
program at the same time, copies of tables are created inorder to process in parallel. Temp.
table lives only until the program runs and is dissolved immediately after.

What is the difference between SaveEdit and FieldEdit?


Field Edit peoplecode is fired when you try to change the value of a field on the page and
Save Edit peoplecode is fired when you try to save the page. Both validates data but Field
Edit peoplecode is used to validate the data for only that particular field which is changed
and Save Edit peoplecode is used to validate all the data changes made to the fields on the
page.

What is component interface, where did you use?


A component interface is a PeopleSoft PeopleTools definition to enable a peoplesoft
component for synchronous access from another application (java,c,c++,xml).

Why state records are needed? State record is used for providing the variables, database
fields to different sections of the application engine. Scope of the state record is limited to
the application engine program. AE can have multiple state records, but can have only one
as a default state record.
It can be physical or derived work record. Physical record can be used when you have a
restart logic and when you have disables the restart logic derived and work record can be
used.
The naming convention is, it must end with _AET identifier and process instance should be
the one and the only key for the state record, so that application will identify the record as a
state record.
How do you register a portal? Portal registry is a tree-like structure in which content
references are organized, classified, and registered. It is stored in a set of tables within a
PeopleSoft database made specifically for hosting portal registries. Portal registries contain
folders and content references. Folders are similar to nodes on a tree and can be nested to
create a multilevel hierarchy. Folders contain content references, which are URLs that have
been registered in a portal registry.

What are the different actions in APP Engine?


Dowhen , dowhile ,doselect ,peoplecode ,sql/call ,sectionlog ,messagedo , until

What is the purpose of a project?


A PeopleSoft Application Designer project is an efficient way to organize your definitions as
you develop and configure your application. A project keeps track of all definition types as a
simple list of definition names; however, a project is not where the definitions are stored.
Development definitions exist outside of the project in your PeopleSoft database.
Using projects can help you:
? Organize related definitions.
? Understand relationships among definitions.
? Coordinate the work of several developers.
? Streamline upgrade tasks.
? Search for fields or records.

In the Project Workspace what are the use of the ?Development Tab? and the ?Upgrade
Tab?? The development view also shows definitions that are closely related to the
definitions in a project. Access these related definitions by clicking the expand (+) button on
an definition type that has related definitions. For example, if you click the expand (+)
button on Components, you see the related page definitions in the project workspace.

The Upgrade view helps to streamline the migration of definitions?such as records, pages,
or PeopleCode?from one PeopleSoft database to another. It displays all of the definitions
available for upgrade and attributes related to the upgrade process. When you double-click
an definition type in the Upgrade view, an upgrade definition window appears in the
definition workspace, displaying the definitions of that type that are available for upgrade
and the associated upgrade options.

What are the different types of records used in PeopleSoft?


SQL Table, SQL View, Dynamic View, Derived/Work Record, Sub Record, Query View,
Temporary Table.

What are the different kinds of Table Edits that are possible in Peoplesoft? Prompt
Table Edit, Prompt Table With No Edit, Translate Table Edit, Yes/No Edit

What is the difference between a prompt table and a translate table? Prompt
Table Edit: Edits the contents of the field against the values that are maintained in the
specified prompt table. Selecting this option activates the Prompt Table field. When you
enter a prompt table name and exit the field by pressing Tab, Set Control Field becomes
activated.

Translate Table Edit: Edits the contents of the field against the translate table. The
translate table stores values for fields that must be validated but don't need individual
tables of their own. If you select this option, Prompt Table and Set Control Field become
unavailable.

What is Add search Record? option used for?


It will search the values from the search record if exist otherwise it will add that values into
the defined search record.

How do you prevent insert or delete in a scroll area?


In scroll area page field properties check the values for ?No row insert? and ?No rows
delete?.
OR, in scroll properties in Label tab page uncheck the ?Display row action buttons? in body
area part.

What is a sub-page?
Create subpages like other page definitions, linking them with the record fields in a
corresponding subrecord or record definition. Add the page controls that make up the
group, ordering them physically and logically as you want them to work on page definitions,
or copy the controls from an existing page definition.
What is a secondary page?
A secondary page is just another page to the user at runtime, they look and behave
differently than the primary pages. For example:
? You can view a secondary page from its primary page only.
? A secondary page should have OK and Cancel buttons so that the user can dismiss the
page (accepting or canceling input) and return to the primary page.
There are two ways to associate a secondary page with a primary page:
? Insert a push button or link and associate it with your secondary page.
Insert a secondary page control.

What are the advantages and disadvantages of deferred processing? Deferred


mode enables you to defer many of the conditions that need server processing until running
them on the application server is required or requested. For example, when a user exits a
field that has a field-level event (like FieldChange or FieldEdit PeopleCode, prompt
validation, related display, and so on) that event is not run until the next transmission to
the application server. When the next transmission to the server occurs, PeopleTools
determines which fields have changed since the last transmission. Logic on the application
server runs the appropriate system edits and PeopleCode events (in field layout order).

What is the Disadvantage of using Alternate Search Key?


Select to identify the field as a key that provides an alternate path into the table data.
Duplicate values are allowed in an alternate search key field. If you define a field as an
alternate search key in a search record, when you bring up a page, the system prompts you
to enter a key or alternate search key values.

How do we add a menu in a portal? Version 8.8 onwards - People Tools -> Portal -> open
structure and content and go to the desired folder
Add content reference and inside content reference page in URL information group
box the menu name needs to be given.
Version 8.3 ? directly under menu whatever the menu label is attached in the menu
definition will appear in the portal.

Name the sections of SQR


Program, Setup, Procedure, Heading and Footing

SQCs that are needed by default to run an SQR and their uses
Prcsdef.sqc
Prcsapi.sqc
Setenv.sqc
Stdapi.sqc

Difference between SQR Reports and SQR processes


SQR reports are written with Select statements -generating a database report.
SQR process for updations in the database with SQL statements.

In which section do u write the import statements for SQCs


Setup Section

What are the ways for running an SQR?


Run using a process scheduler, running in a command prompt, running using peoplecode
and using a SQR dialog box.

What are 2 types of print statements in SQR?


Implicit printing and Explicit Printing

Difference between Display and Show commands in SQR One field at a time and
many fields at a time.

What is the default section required to write a SQR?


Program section

What is On-Break Logic in SQRs?


A break is a change in the value of a column or variable. Records with the same value?for
example, records with the same value for state?logically belong to a group. When a break
occurs, a new group begins. There are a number of reasons to use break logic in a report. It
enables you to:
? Add white space to your reports.
? Avoid printing redundant data.
? Perform conditional processing on variables that change.
? Print subtotals.

What is Look-up and Load Lookup?


The LOAD-LOOKUP command defines an array containing a set of keys and values and loads
it into memory. The LOOKUP command looks up a key in the array and returns the
associated value. In some programs, this technique performs better than conventional
tables join.
You can use LOAD-LOOKUP in the SETUP section or in a procedure. If used in the SETUP
section, it is processed only once. If used in a procedure, it is processed each time it is
encountered.
LOAD-LOOKUP retrieves two fields from the database, the KEY field and the RETURN_VALUE
field. Rows are ordered by KEY and stored in an array. The KEY field must be unique and
contain no NULL values.
When the LOOKUP command is used, the array is searched (using a "binary" search) to find
the RETURN_VALUE field corresponding to the KEY referenced in the lookup.

Advantages and disadvantages of sqlexec.


Sqlexec allows us to write SQl statements in Peoplecode.Through SQLexec we can insert
update and delete.It returns one row of data.
Disad:Eventhough select returns multiple rows sqlexec returns one row.
If we make changes to the definition it doesn't refer the quoted string in SQLexec.We need
to change it manually.
syntax:SQlexec( select bindvariable)
Also SQLEXEC function has one more disadvantage where it will not pick up related
langauge data automatically. You have to explicitly fire two SQLEXEC's one for base
langauage and one for related language by Checking Language_User
If we need to retrieve more than one rows from the database we can use SQL class instead
of SqlExec...
Also SQLExec will open a new session on database so if anything has been updated in Comp
Buffer will not be available in that session as COMMIT might not have happened. Also if we
have selected some value in Comp Buffer and then change the same after with SQLExec we
are creating a problem with data.

Application fixes and changes are delivered in a variety of means; these include
individual postings (Patches), Bundles, Maintenance Packs and Service Packs.
Fixes:Fixes for specific issues with an application may be posted as a standalone fix
intended to address that specific issue; these are generally referred to as Patches.
Patches:Patches almost always have pre-requisites that are included in the documentation
for that Patch. Patches are created by development using the most recently released
bundle, this means they may list that bundle as a prerequisite. There may be other pre-
requisites that are also required, all pre-requisites are clearly documented in the notes for
the Patch.
Bundles:Bundles are periodic accumulations of fixes resolved in that time period and
applied to the application as a group. For most applications, the interval has been about
every 6 weeks or 12 weeks for posting these Bundles. When Bundles are applied using
Change Assistant, information about the Bundle is recorded in the Maintenance Log table for
future reference. Bundles will typically require pre-requisites and occassionally post-
requisites. These are documented in the notes for the Bundle. Information about the
individual Report ID s associated with a Bundle is available in the supplemental information
posted on Customer Connection related to that Bundle.
Maintenance Packs:Maintenance packs are less frequent updates that aggregate Bundles
to minimize the number of Bundles that need to be applied. For most applications,
maintenance packs are delivered once a quarter for the two most current releases.
Service Packs:Service Packs serve as a vehicle for an even larger aggregation of fixes than
Maintenance Packs.
In all cases, the PeopleSoft tool Change Assistant is a valuable tool in identifying
dependencies of Patches, Bundles, and Maintenance Packs.

Steps to Setup Workflow in PeopleSoft

Steps to Setup Workflow in PeopleSoft


1. Designing a Workflow Application
– Analyze and document business requirements.
– Diagram the process flow.
– Document the workflow object attributes for business processes, activities, steps, events,
and
email and worklist routings.
2. Build Supporting Definitions
3. Create Workflow Maps
– Create the workflow maps comprising the steps, activities, and business processes
required
for your workflow as determined in step one.
4. Define Roles and Role Users
1/3
Steps to Setup Workflow in PeopleSoft
– Define the roles and the role users, including any Query roles, required for your workflow.
5. Define Worklist Records
– Create a record definition that will be used to store all of the application-specific
information
for the worklist.
6. Define the Workflow Objects
– This is the step in which you define the workflow application. You enter each of the
objects
onto a business process definition in Application Designer as determined in step one.
7. Define Event Triggers
– Define the business rule in PeopleCode on the triggering application record definition.
Workflow programs are defined on a record definition for one of the tables that the
component
accesses. They contain the business rules used to decide whether to trigger the business
event. The PeopleCode detects when a business rule has been triggered and determines the
appropriate action.
8. Test
– Test your workflow, or use the workflow monitoring tools in Workflow Administrator to
validate
worklist routing results.

Search Processibg in Add Mode:


Record Field FieldDefault
ComponentRecordField FieldDefault
Record Field FieldFormula
Record Field RowInit
Record Field SearchInit
ComponentRecordlevel SearchInit
-->Enter the Employee and click on Add
Record Field FeildEdit
ComponentRecordField FeildEdit
Record Field FieldChange
ComponentRecordField FieldChange
Record Field Field Formula
Record Field SaveEdit
Record Field SearchSave
ComponentRecordlevel SearchSave

Page Dispaly (or)Component Build Process in ADD Mode:


Component Level Prebuild
Record Field FieldFormula
Record Field RowInit
ComponentRecord RowInit
Component Level PostBuild
Page Activate fires and displays the page

Save Processing:
Record Field SaveEdit
ComponentRecord SaveEdit
Record Field SavePrechange
ComponentRecord SavePrechange
ComponentLevel SavePrechange
Record Field Workflow
ComponentLevel Workflow
Record Field SavePostchange
ComponentRecordlevel SavePostchange
Component Level SavePostchange

How do you delete a file using sqr?


use the command in the sqr:
delete($filename)

What is the difference between a Grid and a scroll...


scroll area is used to maintain parent child relationship we insert grid in low level scroll
Example : assume we have 3 scroll levels in our page level1 level2 and level3 we insert grid
in level 3
One of the differences between a grid and scroll is that a Grid can be inserted into a scroll
but vice-versa is not possible. In fact a Grid is incapable of housing another grid.
From an end-user perspective a Grid provides visual access to many rows of data(from the
record) at the same time whereas a scroll will display the details of one row of data.
In the scroll you can view only one records at a time where as in the grid you can view
many records.

what happens when changing from NO EDIT TO EDIT option?


Edit -- it does allow to edit the data when the table (Child table) have parent child
relationship
No Edit -- it does not allow to edit the data when the table (Child table) have parent child
relationship
Can you write Error-Messaging in the FieldChange event?
What is the FieldFormula and the FieldDefault events?
What is the MessageGetFunction?What is the diff between MessageGet and the
MessageGetText functions?
How to get the Most Current EffDt Row and the EffSeq Row?
Can u Declare Multiple Heading sections in one SQR Program?
What are the Compile-Time Variables ? How to refer them?
What are the Run-Time Variables?
What is Dynamic Query Variable ? How to refer?
What is Load-Lookup?In Which situation you use this Technique?
What are the File-Manipulation Commands in the SQR?
How the Output variables denote in the Local Procedures?
What are the Meta-Sql Commands?
Define Signon Process?
How to Execute App.Engine Program?
How many SQR’s you modified Explain?
What is the diff between Including the SQC’s at the Page-Header and the Page-
Footer?
What is PIA?Explain each part?Functions of the AppServer?
Diff between Search-Record and the AddSearch-Record?
What are the events associated with the other events?
How can you define Global variables and impact of it ?
Diff between Migration , Import and Export?
What are Upgrade Instances of Databases?.
How will get the SystemDate in Oracle?
Effective Date Event in SQR?
What is Effdt and the EffSeq?

SQR Debugging?

Difference between active row count, current row number, row count?

Difference between messagebox,winmessage,msgget,error,warning?

How are Multiple-Reports Generated in SQR?


How to refer a SecondLevel Field value?

What is a Sub-Query? Why it is used?

Why are Field Edit and Field Change Events Used?


Ans:
Why is the Process Definition in Process Scheduler used and What are the options
available in it?

Why is Save Edit Event Used?

STAND ALONE ROWSET


In PeopleCode a standalone rowset is an independent rowset object not associated with the
component buffer. They allow you to work with data outside of the buffer by getting
whatever additional data you need form the database. In this sense they replace the
functionality of derived records which were once used as place holders to store data not
directly associated with the component. Because a standalone rowset is standalone, there is
no automatic action by the component processor on it. This means that if a standalone
rowset is used to manipulate data (inserts/updates), code will need to be added to manually
save the changes.

Code to create a standalone rowset object


Local Rowset &rsExample;
&rsExample = CreateRowset(Record.REC1);

Filling a standalone rowset


The Fill method in the Rowset class is used to populate the rowset. This parameters to the
fill method are a Where clause and bind values. &rExample.Fill("where FIELD1 = :1",
REC2.FIELD2);
The following example writes a file using a file layout that contains parent-child records:
Local File &MYFILE;
Local Rowset &rsBusExp, &rsBusExpPer, &rsBusExpDtl;
Local Record &rBusExp, &rBusExpPer, &rBusExpDtl;
Local SQL &SQL1, &SQL2, &SQL3;
&rBusExp = CreateRecord(Record.PERSONAL_DATA);
&rBusExpPer = CreateRecord(Record.BUS_EXPENSE_PER);
&rBusExpDtl = CreateRecord(Record.BUS_EXPENSE_DTL);

&rsBusExp = CreateRowset(Record.PERSONAL_DATA,
CreateRowset(Record.BUS_EXPENSE_PER,
CreateRowset(Record.BUS_EXPENSE_DTL)));
&rsBusExpPer = &rsBusExp.GetRow(1).GetRowset(1);

&MYFILE = GetFile("c:\temp\BUS_EXP.out", "W", %FilePath_Absolute);


&MYFILE.SetFileLayout(FileLayout.BUS_EXP_OUT);
&EMPLID = "8001";

&SQL1 = CreateSQL("%selectall(:1) where EMPLID = :2", &rBusExp, &EMPLID);


&SQL2 = CreateSQL("%selectall(:1) where EMPLID = :2", &rBusExpPer, &EMPLID);

While &SQL1.Fetch(&rBusExp)
&rBusExp.CopyFieldsTo(&rsBusExp.GetRow(1).PERSONAL_DATA);
&I = 1;
While &SQL2.Fetch(&rBusExpPer)
&rBusExpPer.CopyFieldsTo(&rsBusExpPer(&I).BUS_EXPENSE_PER);
&J = 1;
&SQL3 = CreateSQL("%selectall(:1) where EMPLID = :2
and EXPENSE_PERIOD_DT = :3", &rBusExpDtl, &EMPLID,
&rsBusExpPer(&I).BUS_EXPENSE_PER.EXPENSE_PERIOD_DT.Value);
&rsBusExpDtl = &rsBusExpPer.GetRow(&I).GetRowset(1);
While &SQL3.Fetch(&rBusExpDtl)
&rBusExpDtl.CopyFieldsTo(&rsBusExpDtl(&J).BUS_EXPENSE_DTL);
&rsBusExpDtl.InsertRow(&J);
&J = &J + 1;
End-While;

&rsBusExpPer.InsertRow(&I);
&I = &I + 1;
End-While;
&MYFILE.WriteRowset(&rsBusExp);
End-While;
&MYFILE.Close();

Out Put for the above program


CC8001 03/01/199802/15/1998011200 USDConference 00001
CC8001 03/01/199802/16/19980220000 JPYConference 00001

The following code shows an example of reading in a file and inserting the rows into the
database:
Local File &MYFILE;
Local Rowset &rsBusExp, &rsBusExpPer, &rsBusExpDtl;
Local Record &rBusExp, &rBusExpPer, &rBusExpDtl;
Local SQL &SQL1;

&rBusExp = CreateRecord(Record.PERSONAL_DATA);
&rBusExpPer = CreateRecord(Record.BUS_EXPENSE_PER);
&rBusExpDtl = CreateRecord(Record.BUS_EXPENSE_DTL);

&rsBusExp = CreateRowset(Record.PERSONAL_DATA,
CreateRowset(Record.BUS_EXPENSE_PER,
CreateRowset(Record.BUS_EXPENSE_DTL)));

&MYFILE = GetFile("c:\temp\BUS_EXP.out", "R", %FilePath_Absolute);


&MYFILE.SetFileLayout(FileLayout.BUS_EXP_OUT);

&SQL1 = CreateSQL("%Insert(:1)");

&rsBusExp = &MYFILE.ReadRowset();
While &rsBusExp <> Null;
&rsBusExp.GetRow(1).PERSONAL_DATA.CopyFieldsTo(&rBusExp);
&rsBusExpPer = &rsBusExp.GetRow(1).GetRowset(1);
For &I = 1 To &rsBusExpPer.ActiveRowCount
&rsBusExpPer(&I).BUS_EXPENSE_PER.CopyFieldsTo(&rBusExpPer);
&rBusExpPer.ExecuteEdits(%Edit_Required);
If &rBusExpPer.IsEditError Then
For &K = 1 To &rBusExpPer.FieldCount
&MYFIELD = &rBusExpPer.GetField(&K);
If &MYFIELD.EditError Then
&MSGNUM = &MYFIELD.MessageNumber;
&MSGSET = &MYFIELD.MessageSetNumber;
End-If;
End-For;
Else
&SQL1.Execute(&rBusExpPer);
&rsBusExpDtl = &rsBusExpPer.GetRow(&I).GetRowset(1);
For &J = 1 To &rsBusExpDtl.ActiveRowCount
&rsBusExpDtl(&J).BUS_EXPENSE_DTL.CopyFieldsTo(&rBusExpDtl);
&rBusExpDtl.ExecuteEdits(%Edit_Required);
If &rBusExpDtl.IsEditError Then
For &K = 1 To &rBusExpDtl.FieldCount
&MYFIELD = &rBusExpDtl.GetField(&K);
If &MYFIELD.EditError Then
&MSGNUM = &MYFIELD.MessageNumber;
&MSGSET = &MYFIELD.MessageSetNumber;
End-If;
End-For;
Else
&SQL1.Execute(&rBusExpDtl);
End-If;
End-For;
End-If;
End-For;
&rsBusExp = &MYFILE.ReadRowset();
End-While;
&MYFILE.Close();
Make call-section dynamic?
The execution of a PeopleSoft Application Engine starts with the Main section and flows
down to other sections which are called from the main section.
For calling a section from within one, we use the call section action. To do this, in the call-
section action, we specify the name of the App engine and the section we wish to call. If the
section is in the same App engine, then, providing the name of the App engine is optional.
How to use Dynamic Call-Section in App engine?
Often, business logic requires us to call different sections based on occurrence of certain
conditions in different scenarios and that too from the same call-section. To enable this kind
of logic, we will have to make the call-section dynamic. This is how we can do it.
Dynamic Call-Section State Record
To enable dynamic call-section, we need to have a state record that can support it. The
state record, in this case, should have two extra fields – AE_APPLID and AE_SECTION. If
you intent to make a dynamic call to sections that are in the same App engine as the calling
section, then the state record would be good to go with just AE_SECTION.
PeopleCode for Dynamic Call-Section
Once you have the state record in place, it’s time to set the values for the extra fields –
AE_APPLID and AE_SECTION. This should be done before the dynamic call section. The
simplest way to implement this is to use a if-else as shown below:
if condition then
AE_APPLID = "AE_ABC_TEST";
AE_SECTION = "SEC_STATE";
else
AE_APPLID = "AE_ABC_TEST";
AE_SECTION = "SEC_CITY";
end-if;
Call-Section Action
This is the final step. Insert a Call-section action into the App engine. Check the Dynamic
check-box that states that the call-section is dynamic. On finding the dynamic check-box
checked, the processor looks for the values of AE_APPLID and AE_SECTION in the state
record and calls the section mentioned in AE_SECTION from the app engine that is
mentioned in the AE_APPLID.
If the AE_APPLID is blank, the processor calls the section mentioned in AE_SECTION from
the current application engine.?

Implementing Parallel Processing in Application Engine


Implementing Parallel Processing
There is no simple switch or checkbox that enables you to turn parallel processing on and
off. To implement parallel processing, you need to complete a set of tasks in the order that
they appear in the following list.
1. Define your Temporary Tables by defining and saving your Temporary Table records as
type “Temporary Table”.
2. Set the Temporary Table Online pool. This will set the basic Temporary Table Online pool
based on the PeopleTools Options specifications. (Note: This is done one time by the PS
Admin group).
3. Assign Temporary Tables to your Application Engine program in its Program Properties,
setting the appropriate number of Instance Counts and Runtime option.
4. Build/Rebuild your Temporary Table record. This will build the necessary Batch temporary
tables into that record’s Temporary Table pool for use at execution time.
5. Code %Table meta-SQL as references to Temporary Tables in your Application Engine
program, so that Application Engine can resolve table references to the assigned Temporary
Table instance dynamically at runtime.

The DDDAUDIT finds inconsistencies between PeopleTools record and the database objects. The
SYSAUDIT identifies orphaned PeopleSoft objects and other inconsistencies within the system.

Audit Record:
To audit an already exisiting PeopleSoft record, we need to create a record definition and SQL
table in which we store audit information. When creating the audit record, 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.Incase of
multiple auditing multiple records
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
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
3 Tier
Logical 3-Tier - Application Server and database engine on same physical machine
Physical 3-Tier - Application Server and database engine on separate physical machines

Why sql and call section are mutually exclusive?


When we run SQL it basically locks that speicifc table which is in use. At the same time if we
use call section there might be the case where it is using same table which will cause a
deadlock situation leading to failing of the process. Due to this reason SQL and Call section
cant be used under same step.

Multiple State Record in Application Engine?


Multiple State Record are used to store related variables in to one state record instead of
keeping all variables in to one single state record.
It is a good practice to have related variables in one state record.

What is SJT tables?


The security join table SJT_OPR_CLS stores the relationship between User IDs and
permission lists with data permissions.
The data in SJT_OPR_CLS comes from three sources:
.. PSOPRDEFN This record contains the relationship between the User ID and row security
permission list from the User Profile - General page.
.. PSROLEUSER This record contains the relationship between the User IDs and roles from
the User Profile – Roles page.
.. PSROLECLASS This record contains the relationship between roles and permission lists
from the Roles - Permission Lists page.

Difference in error action by using error message in Field edit and Save edit?
In FieldEdit, Error stops processing, displays a message, and highlights the relevant field.
In SaveEdit, Error stops all save processing and displays a message, but does not highlight
any field.

Errors in other Events.


Field Default
Field Formula
Row init
Field Change
Prepopup
Row insert
Save prechange
Save post change

The user has no control over processing that occurs in these events. If the Component
Processor encounters an Error in one of these events, the user can't fix it. The Component
Processor requires the user to cancel the component to avoid unpredictable results, which
results in loss of any changes that the user has made.
In SaveEdit, Error stops all save processing and displays a message, but does not highlight
any field.

Warning in other Events


Do not use the Warning function in any of the remaining events, which include:

Field Default
Field Formula
Row init
Field Change
Row insert
Save prechange
Save post change.
The end-user has no control over processing that occurs in these events. If the Component
Processor encounters a condition that would warrant a warning message in these events,
the end-user can't fix it. The Component Processor therefore requires the user to cancel the
component to avoid unpredictable results, which results in loss of any changes that the end-
user has made.

Gray Function
Gray, Hide, Ungray, and Unhide usually appear in RowInit programs that set up the initial
display of data, and in FieldChange programs that change field display based on changes
the user makes to a field.
This function shouldn't be used in any event prior to RowInit.
Grayu function shouldn't be used in any event prior to RowInit.

SQLExec statements that result in a database update (specifically, UPDATE,


INSERT, and DELETE) can only be issued in the following events:
Save prechange
save postchange
workflow

Diff between the User-Profiles,Roles and the Permission Lists?


Ans:
Diff between Load-Lookup and Arrays

What are the Steps in the Implementation?


How many Events are there in the PeopleCode,When do they get Fired?

What is the Architecture of the PIA? What are its Components?

Why is Process Monitor used and in What is that Which Updates the Status of the
Process Monitor?

PSXLATITEM table to know the value corresponding to a process run status.

SELECT XLATLONGNAME, FIELDVALUE FROM PSXLATITEM WHERE FIELDNAME =


'RUNSTATUS';

XLATLONGNAME ------------ FIELDVALUE


------------------------------------------------------------ ----------
Cancel ------------------------ 1
Not Successful --------------- 10
Posted ------------------------ 11
Unable to post --------------- 12
Resend ----------------------- 13
Posting ----------------------- 14
Content Generated --------- 15
Pending ----------------------- 16
Success With Warning ------ 17
Blocked ----------------------- 18
Restart ----------------------- 19
Delete ------------------------- 2
Error -------------------------- 3
Hold -------------------------- 4
Queued ----------------------- 5
Initiated ---------------------- 6
Processing -------------------- 7
Cancelled --------------------- 8
Success ----------------------- 9

Which Web Services is only used as a Proxy Server?

What are the record types available in Application Designer.


What is the difference between SQL View and Dynamic View.
How many scrolls can be there on a page.
How will you delete the buttons (Add, Update / Display, Correction) from a page that is
displayed in the browser.
How will you add a component to the portal.
What is the relationship between User Profiles, Roles and Permission Lists.
What is the difference between Prompt table and Translate table.
What is the purpose of State record.
What is the difference between Local and Component variables in Peoplecode.
What are the steps in Implementation.
How can you save a component with out press save button/or how do you trigger save
action on a component having no save button?
- using dosave()
-
How many objects are there in Peoplesoft 7.5, 8.12 and 8.4.
How many events are there in peoplecode. When do they get fired.
What is the architecture of PIA. What are its components.
How will you read data from a CSV file and upload it into the database using SQR.
Why is On-Break used.
Why is Process Definition in Process Scheduler used and What are the options available in it.
What are the object classes available in Peoplecode.
What are the ways of registering a component in Portal Registry.
What is the difference between Update Display, Update Display All and Correction modes.
How will display an image in SQR.

What are the components which form the part of Integration Broker?

What is selectbykey?

%DateOut,

%TimeOut

Can we insert rows within a standalone rowset without using fill?


yes with rowset method . normally with fill method

Statuses in PeopleSoft Compare Reports


PeopleSoft shows the following statuses on Compare Reports. Each status has it own
meaning and significance during an upgrade. Let’s look at each one of them.

Same
The compared definitions are defined the same in both databases that are compared. Such
definitions need not be migrated to the other database.

Absent
This status is shown when the definition is present in one of the databases but not in the
other. If the target database does not have the definition, it may have to be migrated.

Unknown
This is the default status for all non-comparison definitions. PeopleSoft doesn’t compare the
definitions that show this status. They may have to be compared manually or using a non-
PeopleSoft utility.

Changed
This status states that there is a change in the definitions that are being compared, across
the databases. This also states that the change was carried out by PeopleSoft (Oprid
PPLSOFT)

*Changed
This status states that there is a change in the definitions that are being compared, across
the databases. But unlike the previous status, in this case, the change was carried out NOT
by PeopleSoft.

Unchanged
Unlike the meaning of this status, there were changes found in this case as well. But the
date time stamp on such definitions is prior to the release date time stamp on the compared
databases. It also states that the change was carried out by PeopleSoft.

*Unchanged
This status is similar in meaning to the above status except that the changes to the objects
in this case was carried out NOT by PeopleSoft.
 The compare reports are critical tools for the Fit/Gap analysis and determining the
effort to re-apply/re-develop customizations.
 The PeopleSoft Compare Reports provide a comparison of PeopleSoft delivered
functionality (vanilla) at the new release level to a client’s copy of production.
 The compare process is executed to identify the object and system data differences
between current production and new release levels.
 The purpose of the compare report is to identify which customizations, objects and
system data to upgrade to the new release level.
 The technical team will run the compare process and involve the client/functional
team in the analysis to make the appropriate business decisions.
 When you review the compare reports always look at the following combinations and
take the appropriate action.

Source Target Action


Unchanged Changed* Keep Target
Changed Changed* Copy and re-apply customization
Absent Changed* Keep Target
All other Copy

Change Assistant Introduction


Change Assistant (CA) was first released in PeopleTools 8.44. Change Assistant (CA)
automates many task for applying any bundle, maintenance pack etc. Some benefits of
using CA are:
- CA can find out bundles/MPs that have already been applied to a PeopleSoft Database
- CA can figure out Bundles/MPs that need to be applied
- CA can download new bundles/MPs
- CA can determine pre-requisites and post-requisites
- CA can determine the order in which new Bundles/MPs are applied
- CA can migrate bundle/MP project automatically
- CA can generate and execute DDL scripts
- CA can execute Data Mover Scripts
- CA can deploy files such as SQR, COBOL etc to file servers
query to find the permission lists associated to a user:

SELECT A.OPRID, D.ROLEUSER, B.ROLENAME, B.CLASSID, C.ClASSDEFNDESC


FROM PSOPRDEFN A, PSROLECLASS B, PSCLASSDEFN C, PSROLEUSER D
WHERE A.OPRID=D.ROLEUSER AND B.CLASSID=C.CLASSID AND
B.ROLENAME=D.ROLENAME AND A.OPRID= 'USER_NAME'
ORDER BY B.CLASSID

Why do we run PSVERSION application Engine


should only be run when there is reason to believe that the versions in the PSVERSION table
are no longer coherent, or when the versions in one of the managed objects tables are out
of sync with PSVERSION

Running sqr from command line:


D:\PT848\bin\sqr\DB2\BINW\sqrw.exe D:\pt848\SQR\infup_file_name.sqr -iD:\pt848\SQR\
-xmb -xcb -ZIFD:\pt848\SQR\pssqr.ini -S -DEBUGX -PRINTER:PD -EH_PDF
-fD:\pt848\output_file_name.pdf -oD:\pt848\log_file_name.log

Options:
-i => Input file Directory
-f => Output File Name
-o => Log file Name
-ZIF => SQR Initialization File Name

Process groups are stored in


PRCSDEFNGRP
PRCSJOBGRP

How to Declare a Function in PeopleCode


Declare Function GetUserDescr PeopleCode FUNCLIB_PTSEC.OPRID FieldFormula;

3 different functions or ways to get text from a message catalog?

MsgGet(message_set, message_num, default_msg_txt [, paramlist])


The MsgGet function
retrieves a message from the PeopleCode Message Catalog and substitutes
in the values of the parameters into the text message.
Example: &MsgText = MsgGet(30000, 2, "Message not found");

MessageBox
retrieves messages from the Message Catalog but provides the
flexibility to change the severity of a message through the Message
Catalog, without modifying PeopleCode.
MessageBox(style, title, message_set, message_num, default_txt [, paramlist])
Example: MessageBox(0, "", 30000, 1, "Message not found", BUS_EXPENSE_PER.EMPLID,
BUS_EXPENSE_PER.EXPENSE_PERIOD_DT);

MsgGetText is very similar to MsgGet except the message set and message number will not
appear after the text of the message.

MsgGetText(message_set, message_num, default_msg_txt [, paramlist])


Example: &MsgText = MsgGetText(30000, 2, "Message not found");
A small list of new features in 8.50 and application 9.1

Partial Page Refresh


Modal Lookup Prompts & Error Messages
FNew Menu, Favorites, Recent Visits
Homepage Pagelet Drag/Drop
Independent Pagelet Refresh
Type Ahead/Auto-Complete
Modal Zoom Grid for existing grids
New Grids (sortable, drag/drop, etc.)
Updated Stylesheet
Rich Text Editor
Mouse-over Popups
IM Presence (eg. Beehive, Yahoo, etc.)

Tables which store peoplecode/application engine


PSPCMPROG
Contains information for all PeopleCode objects. The following SELECT will show all entries
for AppEngine programs. Note: The PeopleCode is not displayed in clear text format in the
database.
SELECT * FROM PSPCMPROG WHERE OBJECTVALUE7 LIKE 'OnExecute%'

PSSQLTEXTDEFN
Contains all SQL objects in the database. The following SELECT will show all entries for AE
programs.
SELECT * FROM PSSQLTEXTDEFN WHERE SQLID like '%Step%'
The following SQL will show the program name, last update time, and last user to update
the program.
SELECT AE_APPLID, LASTUPDOPRID, LASTUPDDTTM FROM PSAEAPPLDEFN ORDER BY
LASTUPDDTTM

Process Definition information can be stored in five ables:


PS_PRCSDEFN
PS_PRCSDEFNGRP
PS_PRCSDEFNPNL
PS_PRCSDEFNXFER
PSPRCSRQST

Copying Rowsets
I find that you often need to create and manipulate standalone rowsets. Sometimes you can
get the data for your standalone rowset from the database using the Fill method, however
sometimes you'll want to copy from existing rowsets. This is where the CopyTo method
comes in handy.
However there is one important thing to note when using CopyTo - it will only copy like-
named record fields and subscrolls at corresponding levels
In order to work correctly, the record in the source rowset must have the same name as the
record in target rowset, unless you specify a record list in the parameters.
For instance, say I have data in a rowset &rsExample with one record, EXAMPLE which is
populated in the component buffer.
The EXAMPLE record has the following fields:
EMPLID
NAME
Now, say I want to copy the data from my rowset &rsExample to another rowset,
&rsExampleAudit which consists of an audit record for EXAMPLE called AUDIT_EXAMPLE.
The AUDIT_EXAMPLE record has the following fields:
AUDIT_OPRID
AUDIT_STAMP
AUDIT_ACTN
EMPLID
NAME
What I want is to copy the like-name fields between &rsExample and &rsExampleAudit (the
fields EMPLID and NAME).
The following code will NOT work:
&rsExample.CopyTo(&rsExampleAudit)
Why? Because &rsExample consists of a record named EXAMPLE, but &rsExampleAudit
consists of a record named AUDIT_EXAMPLE. Because the two rowsets do not have the
same underlying record name, the copy does absolutely nothing (quite frustrating!).
In this scenario, we need to specify a record list, so it knows the source and target record
names. This how I need to write this code to make it work:
&rsExample.CopyTo(&rsExampleAudit, Record.EXAMPLE, Record.AUDIT_EXAMPLE)
Generically the syntax is:
&rsSource.CopyTo(&rsTarget, Record.SOURCE_RECNAME, Record.TARGET_RECNAME)

SQR Trace

One of the first things you learn as a PeopleSoft developer is to add debug flags in an SQR
program and then to run the program with debug flags turned on to get additional
information in your .log (.out in the process monitor) file.

The general syntax is to append:


-debug[trace flag letters]

Some of the common trace flags include -debugd generally for data and -debugf for flow
(where you are in the program). You can determine the flags you want my scanning
through the SQR (related SQCs) and picking out the appropriate trace flag letters by looking
for #debug[letter] statements in the code.

Or, you can use a catch-all like this (note it also catches just a -debug statement without a
letter at the end)
-debugabcdefghijklmnopqrstuvwxyz

You do this in the process definition by appending to the parameter list in the override options
like so:
SQR SQL Trace

To trace the status of cursors being executed, append the -S flag to your parameter list.
You can do this through the command line (if you're brave) or through the process definition
in the override options:

While you can normally extract the appropriate SQL from the SQR, there are cases where
this proves quite useful. In particular it is really helpful for investigating performance issues
with SQRs as it tells you the SQL text, number of compiles, executes and rows related to
the cursor.

%SelectAll
If you ever need to create a view that selects all fields from a particular record, then you
should be using the %SelectAll meta-sql construct.
Why? Because %SelectAll uses the underlying record definition to select the fields - so it will
always return all fields from the underlying record, even if that record definition changes.
The basic syntax is:
%SelectAll(RECORD_NAME ALIAS)
There is all a %SelectDistinct construct which adds a distinct to the select clause and uses
the same syntax.
%SelectAll returns all the fields for the record specified and includes a from clause.
For example, say I want the latest effective dated, active fields from PSXLATITEM. My SQL
might start something like this:
select
FIELDNAME,
FIELDVALUE,
EFFDT,
EFF_STATUS,
XLATLONGNAME,
XLATSHORTNAME,
LASTUPDDTTM,
LASTUPDOPRID,
SYNCID
from
PSXLATITEM A
where
EFFDT = (
select max(EFFDT)
from PSXLATITEM
where FIELDNAME = A.FIELDNAME
and FIELDVALUE = A.FIELDVALUE
and A.EFFDT <= sysdate
)
and A.EFF_STATUS = 'A'
;
Instead of typing out all those fields, lets use %SelectAll - that's what I did to generate this
example btw ;)
So our meta-sql would look like this - (I've also replaced sysdate with %CurrentDateIn)
%SelectAll(PSXLATITEM A)
where
EFFDT = (
select max(EFFDT)
from PSXLATITEM
where FIELDNAME = A.FIELDNAME
and FIELDVALUE = A.FIELDVALUE
and A.EFFDT <= %CurrentDateIn
)
and A.EFF_STATUS = 'A'
Note that %SelectAll wraps date, time and date/time fields with %DateOut, %TimeOut,
%DateTimeOut as well. This resolves into the following meta-sql:

SELECT A.FIELDNAME
, A.FIELDVALUE
, TO_CHAR(A.EFFDT
,'YYYY-MM-DD')
, A.EFF_STATUS
, A.XLATLONGNAME
, A.XLATSHORTNAME
, TO_CHAR(A.LASTUPDDTTM
,'YYYY-MM-DD-HH24.MI.SS."000000"')
, A.LASTUPDOPRID
, A.SYNCID
FROM PSXLATITEM A
WHERE EFFDT = (
SELECT MAX(EFFDT)
FROM PSXLATITEM
WHERE FIELDNAME = A.FIELDNAME
AND FIELDVALUE = A.FIELDVALUE
AND A.EFFDT <= TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD') )
AND A.EFF_STATUS = 'A'
Note that the example includes an alias of A in the parameters to %SelectAll. If you are
using %SelectAll you might have to play with your SQL a bit to get it work, especially if you
are using joins to other tables. It may not work in all cases, but if nothing else, its a time
saver

Search Field Value from Field Default

This is a simple trick but can be easy to forget. If you want to use the default value of your
field as your search field value there are two steps involved:

Step 1: Set the field default on your search field

In this example, I want the SETID to default from the operator defaults table in campus
solutions OPR_DEF_TBL_CS for my SETID search field.

To do this, I set my field default as shown:

Step 2: Add SearchInit PeopleCode to set the search value from the field default

Add the following PeopleCode to either the Record.Field.SearchInit or


Component.Record.SearchInit PeopleCode.

SetSearchDefault(RECORD.FIELD);

Where RECORD.FIELD refers to the name of the record and field that you set the field
default for in the first step.

Now when you hit the search page, your search field should be defaulting its value from its
field default settings.

What is a Record Group ID?

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 panel 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. 3. Detail – Contains database column values.
4. 4. Page Footer – Used to write page numbers and address.

What do search views delivered by People soft do besides displaying the dialogBox?

Search views delivered by People soft are used to implement row level security as well as
display a dialog box.
PSPROJECTDEFN table stores information about projects created in Application Designer.
Try it out:
SELECT * FROM PSPROJECTDEFN
WHERE PROJECTNAME = ‘Your_Project_name’;

PSPROJECTITEM table stores objects inserted into your Application Designer project.
Try it out:
SELECT * FROM PSPROJECTITEM
WHERE PROJECTNAME = ‘Your_Project_name’;
Portal Structure

PSPRSMDEFN is a Portal Structure Definition table. A good example is to use this table to
find portal path for a specific component. Take a closer look on how this is done!.

PSPRSMPERM: Shows the permission lists that are assigned to a portal registry structure
(content reference). The permission list name is under field PORTAL_PERMNAME.
XLAT Tables

XLATTABLE: Stores translate values (PeopleSoft version prior to 8.4).


PSXLATDEFN: Stores all fields that have Xlat values. This table does not store any Xlat
values.
PSXLATITEM: Stores fields with their actual translate values (PeopleSoft version 8.4 and
above).
Record & Field Tables

PSRECDEFN: Stores informations about tables. One row for each table. Field count and
record type are two fields that are stored on this table.
CASE RECTYPE
WHEN 0 THEN ‘Table’
WHEN 1 THEN ‘View’
WHEN 2 THEN ‘Derived’
WHEN 3 THEN ‘Sub Record’
WHEN 5 THEN ‘Dynamic View’
WHEN 6 THEN ‘Query View’
WHEN 7 THEN ‘Temporary Table’
ELSE TO_CHAR(RECTYPE)
END CASE

PSRECFIELD: Stores records with all their fields (sub-records are not expanded)

PSRECFIELDALL: Stores records with all their fields (sub-records are expanded)

PSINDEXDEFN: Contains 1 row per index defined for a table.

PSKEYDEFN: Containes 1 row per key field defined for an index.

PSDBFIELD: You got it, stores information about fields.


CASE FIELDTYPE
WHEN 0 THEN ‘Character’
WHEN 1 THEN ‘Long Character’
WHEN 2 THEN ‘Number’
WHEN 3 THEN ‘Signed Number’
WHEN 4 THEN ‘Date’
WHEN 5 THEN ‘Time’
WHEN 6 THEN ‘DateTime’
WHEN 8 THEN ‘Image’
WHEN 9 THEN ‘Image Reference’
ELSE TO_CHAR(FIELDTYPE)
END CASE

PSDBFLDLABL: Stores field label information.


Process Definition Table(s)

PS_PRCSDEFNPNL: Stores the process definition name, process type(sqr report, application
engine…), and the component name associated with the process definition.

PS_PRCSDEFN: Process definitions table. The record stores processes that can run within
the Process Scheduler. Security information such as components and process groups are
also stored on this table.
Message Catalog Tables

PSMSGCATDEFN: Stores information about PeopleSoft message catalogs such as message


set number, message number and the actual message text.

PSMSGCATLANG: language table.


– Example
SELECT * FROM PSMSGCATDEFN
WHERE LAST_UPDATE_DTTM > TO_DATE(’03-DEC-07', ‘DD-MON-YY’)
AND LAST_UPDATE_DTTM TO_DATE(’03-DEC-07', ‘DD-MON-YY’)
AND LAST_UPDATE_DTTM > PeopleTools >> Utilities >> Administration >> URLs
Application Classes

PSAPPCLASSDEFN: Application Class Definitions table. You can use field PACKAGEROOT to
search for a specific Application Package.
PeopleSoft Query Tables

PSQRYDEFN: Stores query related info.


PSQRYFIELD: Stores all fields used in a query (both the fields in the Select and Where
clause).

PSQRYCRITERIA: Stores criteria query fields. You can get the name of the fields by joining
the PSQRYFIELD table.

PSQRYEXPR: Stores query expressions.

PSQRYBIND: Stores query bind variables.

PSQRYRECORD: Stores all records used in all aspects of query creation

PSQRYSELECT: Stores all SELECT requirements by select type. Example would be sub
select, join, ect.

PSQRYLINK: Stores the relationships to child queries.

PSQRYEXECLOG: Query run time log table that stores (only 8.4x and higher)

PSQRYSTATS: Query run time statistics table such as count of query execution, and date
time of last execution (only in 8.4x and higher).
SQL Objects

PSSQLDEFN: Stores SQL object definitions.

PSSQLDESCR: Stores SQL objects descriptions, and description long.

PSSQLTEXTDEFN: Stores actual SQL text. You can filter by SQLTYPE field to get SQL objects
of interest such as Views SQLs and Application Engine SQLs.
– When SQL type is:
0 = Stand alone SQL objects
1 = Application engine SQL
2 = Views SQLs
Application Engines

PSAEAPPLDEFN: Table that stores Application Engine program definitions.

PSAEAPPLSTATE: Stores application engine STATE records and a flag to indicate if the
record is the default STATE record.

PSAESECTDEFN: Application engine section information and also stores last user id to
update a specific section.

PSAESECTDTLDEFN: AE section along with descriptions and wither the section is active or
not.

PSAEAPPLTEMPTBL: If your application engine uses Temp tables it will show on this record.

PSAESTEPDEFN: Steps in application engines are stored in this table.

PSAESTMTDEFN: Stores your application engine actions and along with their types, such as
“Do Select” and so on.
PSAESTEPMSGDEFN: Application engine message action definition table.

AEREQUESTTBL: Application Engine request table behind the AE run control page.

AEREQUESTPARM: Application Engine request parameters table behind the AE run control
page.
PeopleCode Tables

PSPCMNAME: PeopleCode Reference table.

PSPCMPROG: Store actual PeopleCode programs (actual code behind PeopleCode events).
Process Request Tables

PSPRCSQUE: This record contains the process request information to run a process request.

PSPRCSRQST: This record contains the process request information to run a process
request.

PS_PMN_PRCSLIST: A view to list all process requests in the Process Monitor except for
“Delete” (runstatus = 2) process requests.
Other Useful Tables

PSSTATUS: Stores PeopleSoft information such as PS Tools release version and the
UNICODE_ENABLED boolean flag where a value of 1 indicates the DB is to be treated by
Tools as a UNICODE DB.

PSCHGCTLLOCK: Description as explained by PeopleSoft “This table contains a a row for


every object that is currently locked by any user. When the user requests to lock an object
in the Application Designer, first this table is searched to see if the object is locked by
another user. If it is not found, a row is inserted into the table. When the user requests to
unlock an object, the row in this table is deleted.”
Visit this post to see how could you make use of this table.

PSMAPFIELD: Stores Field mapping of Activity


PS_PRCSRUNCNTL: Run Control record stores Run Control IDs created online.

Das könnte Ihnen auch gefallen