Академический Документы
Профессиональный Документы
Культура Документы
Else
FieldFormula
Else
Continue processing...
RowInit
SearchInit
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
Default processing
RowInit
Display panel,
wait for user action
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
RowInsert
Error/Warning Else
Result Default processing
RowInit
Error Accept/Warning
Result
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.
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.
Does Save Edit & Save Prechange are in Component Level or Component Record
Level?
Ans: These are available in Component Level.
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.
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.
/* 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.
&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);
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.
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.
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.
(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
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.
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 Three PeopleSoft Tables the DB User mentioned in Connect ID should have
permission?
PSACCES
PRFLPSSTATUS
PSOPRDEFN
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
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 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.
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);
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 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
“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
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)
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 DataMover?
Ans: DataMover is a Peopletool which is used to move Data between different DataBases.
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.
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.
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.
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.
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.
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 are the Debugging Commands in the SQR ? Diff between them?
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’
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 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.
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
exit(1)
We can use the on-execute event. sometimes we can use the saveprechange event also.
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
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.
Dosave(): save the current page. DoSave defers processing to the end of the current
PeopleCode program 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.
What is the event that fires after all database updates are over
Savepostchange
Which is a record that PeopleTools adds to every level of the Message Structure
during processing
PSCAMA
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
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.
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
Which actions are mutually exclusive and why they are mutually exclusive?
Sql and callsection
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.
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.
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 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.
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
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 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
Add the field, SETID, as a key field to each table you want to share, and then define the set
control field.
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?
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.
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 ?
Which tree types are NOT supported in the PeopleSoft tree manager?
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.
What PeopleSoft tool is used to change the value of your SQR environment
variables ?
Ans: The Configuration Manager.
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
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?
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.
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
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.
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.
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
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.,
Standalone Rowset
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.
This code creates a rowset with MYREC as the level zero record.
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.
&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);
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.
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;
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 Events
PostBuild event
PreBuild event
SavePostChange event
SavePreChange event
Workflow event
Page Events
Activate
Menu Events
ItemSelected
-In Sql view manually write the SQL statement, Query view use the PS QUERY tool.
If these queries give different results, you should bring them in sync by executing below
statements:
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.
*** 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.
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.
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.
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.
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:
3rd party applications All interfaces to third party applications to & from
Peoplesoft will be considered in scope of as part of
upgrade process
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.
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)
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.
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.
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?
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
7. The following are various steps that describes the peoplecode logic while implementing a
Component Interface?
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
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?
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
Unlimited
34. How will you get a single ouptut by combining two or more queries?
UNION
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?
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?
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?
SavePostChange
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
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 ?
55. Changing Prompt Table with NO Edit to Prompt Table with Edit?
56. Which command is valid in both bootstrap and regular mode when operating the data
mover?
GRANT_USER
ENCRYPT_PASSWORD
ENCRYPT_PASSWORD
Derived/Work Record
63. You have downloaded an Application fix as a project from the customer connection.
Whrere would you upgrade it to ?
Demo
DB Server
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
Commit
71. Which one of the following steps is NOT part of performing an upgrade?
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?
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
1. MS IIS
2. Apache
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
1. Component
2. PeopleCode
3. Separator
88. What are the People Tools available for Integration Broker?
DB Server
Yes
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
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?
true
97. The physical, dedicated tables are locked at the time the Application Engine program is
loaded into memory?
True
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?
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?
108. What is the result of the search with the following criteria in PS Books?
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?
111. The application server dynamically scales server processes according to the volume of
transaction requests which is known as?
Spawning
Security Administrator 20
113. What is the event that fires after all database updates are over?
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?
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?
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?
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?
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
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?
133. Which one of the following is NOT a valid PeopleSoft query type?
Local
135. The following ApiObject data type objects cant be declared as Global:?
JavaObject
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.
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?
141. People Soft allows multiple long fields per State Record?
False
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
Event definition
148. You have 3 App. Servers where do you define the Failover.?
Configuration Properties
Component
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.
Business Process
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?
Application Server
157. Worklist for a particular user contains marked worked and reassigned buttons. The
reassigned button is set from?
app server
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
a)xml
b)csv
c) fixed length
a) Temp Table
b) SQL Table
c) Query Table
d) Dynamic(Guess: Temp Table, check People books App Engine)
a) SQL table
b) SQL View
a) Sequence of processes
b) Sequence of jobs
c) batch processes
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)
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.
a) Database Server
b) App Server
c) Batch Server
e) Web Server
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
177. PSWORKLIST record is used for workflow routing . It should contains minimum of ?
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
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
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.
(scenario based on process profile / process group)Server o/p path override , process he
can access
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 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.
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.
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
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.
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.
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 .
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
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;
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.
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 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 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.
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.
SQCs that are needed by default to run an SQR and their uses
Prcsdef.sqc
Prcsapi.sqc
Setenv.sqc
Stdapi.sqc
Difference between Display and Show commands in SQR One field at a time and
many fields at a time.
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.
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
SQR Debugging?
Difference between active row count, current row number, row count?
&rsBusExp = CreateRowset(Record.PERSONAL_DATA,
CreateRowset(Record.BUS_EXPENSE_PER,
CreateRowset(Record.BUS_EXPENSE_DTL)));
&rsBusExpPer = &rsBusExp.GetRow(1).GetRowset(1);
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();
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)));
&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.?
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
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.
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.
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.
Why is Process Monitor used and in What is that Which Updates the Status of the
Process Monitor?
What are the components which form the part of Integration Broker?
What is selectbykey?
%DateOut,
%TimeOut
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.
Options:
-i => Input file Directory
-f => Output File Name
-o => Log file Name
-ZIF => SQR Initialization File Name
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.
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
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.
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
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:
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.
Step 2: Add SearchInit PeopleCode to set the search value from the field default
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.
Record group ID is a group of record definitions that are Sharing the same set control field.
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.
2. Activity Map
3. Step Map
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
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)
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
PSAPPCLASSDEFN: Application Class Definitions table. You can use field PACKAGEROOT to
search for a specific Application Package.
PeopleSoft Query Tables
PSQRYCRITERIA: Stores criteria query fields. You can get the name of the fields by joining
the PSQRYFIELD table.
PSQRYSELECT: Stores all SELECT requirements by select type. Example would be sub
select, join, ect.
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
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
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.
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
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.