Peoplesoft Application Engine Interview Questions
Peoplesoft Application Engine Interview Questions
1) There are different types of variables in the Application Engine people code?
Local variable – these are available for the duration of the program in which they are
declared.
Global / Component – These variables are available while the Application Engine
program is running. They are saved at commits and checkpoints,
So they can be used for restarts. Component variables are same as Global incase of the
AE.
2) What are the Different ways pass data between the steps?
1) State records – One row can be passed and can have many state records.
2) Name of the record must end in AET; this is how the system identifies the record
as a state record.
4) Any data types except character or numeric must not be required fields.
1) CreateProcessRequest () , Schedule ()
2) CallAppEngine.
7) What are the 3 trace parameters you can pass to your psae.exe?
8) Which Trace option is the best place to start for general performance information?
A Trace parameter determines what type of data is recorded in your trace files (s).
10) What are the 3 common ways to pass a trace parameter and value to your program
psae.exe?
Program Level
State Record
One of the state record needs to SQL Table, Since All Derived work record will be
re-initializing on commit.
Program Properties
On the Advanced tab in the program properties dialog box, make sure that disable
restart is not checked.
Configuration manager
In the configuration manager, sure that Disable restart is not selected on the process
scheduler tab.
Section Level
Section type
The option for section type are prepare only and critical updates
Step Level
%Select Field Select Field1 from PS_SOME_RECORD Where FIELD1 > %Bind
(FIELD1) Order by FIELD1.
The only restriction for batch runs occurs when you have restart enabled, and you
are inside a Do Select that is of the Select/Fetch type (instead of "Re-select" or
"Restartable"). with select/Fetch, all commits inside the loop are ignored, including the
commit frequency if it's set.
13) What is Set Processing?
Set Processing uses SQL to process groups, or sets, of rows at one time rather than
processing each row individually. With row by row processing you following a repetitive
loop that selects a row, determines if it meets a given criteria, if so, apply rule x to row
Update row, commit. With set processing, you only select those rows that meet the
filtering criteria and then run the rule once again all the affected rows.
Minimized SQL Overhead: - It tends to use fewer Application Engine SQL statements
that each processed more data than the statements executed in row-by-row processing.
Easy Maintenance: - if need to make a fix or add an enhancement to SQL, it’s just a
matter of modifying the SQL or inserting the new “Chunk”.
Leveraging the RDBMS: - With Set – based processing, you take advantage of the SQL
processing engine on the database rather than placing the processing burden and overhead
on the application executable.
Application Engine Trace file-You can track the step execution of your application
execution.
Application Engine Interactive Debugger – First click on the trace tab and turn off the
statement timings. Select Profile -> Edit Profile-> Process Scheduler Tab -> Application
section Select Debug check box.
(You can dynamically modify the state record run application engine step by step
1) Do When
2) Do While
3) Do Select
4) Peoplecode
5) SQL
6) Call Section
7) Message Log
8) XSLT
9) Do until
- Dedicated
- Un Dedicated (Shared)
If you have a one program that uses a temporary table and is invoked multiple times, that
single temporary table could be used concurrently in multiple executions of the code.
This could create unpredictable results since the different instances of the code would be
issuing delete, Inserts and/or updates unsynchronized with each other.
You could solve the problem by creating multiple temporary tables as a pool of tables.
Each invocation of your program would have to allocate an unused temporary table,
mark it as ‘in use’ , use it and release it back to the pool when you through with it (for
each Application Engine program you write).
Application Engine programs are designed for two types of execution and each has its
own pool of Temporary Tables
Online:
If the instance number is in use psae.exe puts the program in Queue until the assigned
instance becomes free.
Batch:
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.
21) What are the important steps for implementing the parallel processing?
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.
22) 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.
23) 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.
24) What are the 3 common ways to pass a trace parameter and value to your program
psae.exe?
Basically they have two option, public and private if section declared as public then it be
access from other program.Private we cannot call from other program.
26) Which actions are mutually exclusive and why they are mutually exclusive?
Step properties:-
On Error:-
People code Action: - On return options can used to handle run time errors.
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 Break: - Application Engine exits the current section immediately, and control
returns to the calling step.
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.
1) Select/Fetch
2) Reselect
3) Restart able
Select/Fetch: -
Opens the cursor only at the first time and retrieve rows one at loop.
Commits inside the step (commits in the Called Section) are ignored if AE is Restart
enabled.
Reselect: -
It opens the cursor and closes the cursor on each iteration of the loop.
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.
99
30) 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
31) 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.