You are on page 1of 12

PeopleSoft Interview Questions Application Engine.

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.
lobal ! "omponent These variables are available while the Application Engine
program is running. They are saved at commits and chec#points$
%o they can be used for restarts. "omponent variables are same as lobal incase of the
AE.
&) 'hat are the (ifferent ways pass data between the steps?
1) %tate records )ne row can be passed and can have many state records.
&) "omponent!lobal *eople code variables
+) Temporary records ,ultiple rows of data can be passed.
+) 'hat is *rere-uisite for the %tate record?
1) %hould be either (erived wor# record )r %.L Table.
&) /ame of the record must end in AET0 this is how the system identifies the record
as a state record.
+) *1)"E%%23/%TA/"E must be a #ey.
4) Any data types e5cept character or numeric must not be re-uired fields.
/ote6 7 /o *eople code fires on an Application Engine state record.
/o 8alidation of translate values or *rompt tables are done.

4) 9ow to read the runctrl parameters in AE
1) %.L6 7 :%elect ;E,*L3() %elect E,*L3( from *%2AE1</")/T1)L where
*1)"E%%23/%TA/"E = :*1)"E%%23/%TA/"E and )1*3( = :oprid
&) *eople code6 7 >%.L = ?%elect E,*L3( from *%2AE1</")/T1)L 'here
*1)"E%%23/%TA"/E =@ A *%2TE%T2AET.*1)"E%%23/%TA/"E A ?and )*13( =@ A
:oprid.
:*1)"E%%23/%TA/"E or :Bind ;*1)"E%%23/%TA/"E) can be used.
:*1)"E%%23/%TA/"E is more efficient and faster
5) 9ow do you e5ecute Application Engine through *ush Button?
1) "reate*rocess1e-uest ;) $ %chedule ;)
&) "allAppEngine.
C) 'hat is the synta5 for "allAppEngine?
"allAppEngine ;applid D$ state recordE)0
F) 'hat are the + trace parameters you can pass to your psae.e5e?
7 T1A"E Gtrace valueH
7 T))L%T1A"E%.L Gtrace valueH
7 T))L%T1A"E*" Gtrace valueH
I) 'hich Trace option is the best place to start for general performance information?
7 T1A"E Gtrace valueH +I4 mostly used trace value.
J) 'hat is the difference between a Trace value and Trace parameters?
A Trace parameter determines which type of trace is turned on.
A Trace parameter determines what type of data is recorded in your trace files ;s).
1K) 'hat are the + common ways to pass a trace parameter and value to your program
psae.e5e?
"onfiguration manager$ *rocess (efinition$ "ommand prompt.
11) 'hat are the (ifferent types of Application Engine?
%tandard6 %tandard entry7point program.
<pgrade )nly6 <sed by *eople%oft <pgrade utilities only.
3mport )nly6 <sed by *eople%oft 3mport utilities only
(aemon )nly6 <se for daemon type programs.
Transform )nly6 %upport for L%LT Transform programs.
1&) 9ow do you program AE program for the restarts?
*rogram Level
%tate 1ecord
)ne of the state record needs to %.L Table$ %ince All (erived wor# record will be
re7initialiMing on commit.
*rogram *roperties
)n the Advanced tab in the program properties dialog bo5$ ma#e sure that disable
restart is not chec#ed.
"onfiguration manager
3n the configuration manager$ sure that (isable restart is not selected on the process
scheduler tab.
%ection Level
%ection type
The option for section type are prepare only and critical updates
3f the section is preparing data i$e select data$ *opulating temporary
tables$ or updating temporary tables then the section should be prepare
only.
3f the section is updating the permanent application tables in the
database$ you should select critical update.
%tep Level
Add an order by clause
:%elect Nield %elect Nield1 from *%2%),E21E")1( 'here N3EL(1 H :Bind
;N3EL(1) )rder by N3EL(1.

Add a switch to the selected table
(elete processed rows.
The only restriction for batch runs occurs when you have restart enabled$ and you
are inside a (o %elect that is of the %elect!Netch type ;instead of O1e7selectO or
O1estartableO). with select!Netch$ all commits inside the loop are ignored$ including the
commit fre-uency if itPs set.
1+) 'hat is %et *rocessing?
%et *rocessing uses %.L to process groups$ or sets$ of rows at one time rather than
processing each row individually. 'ith row by row processing you following a repetitive
loop that selects a row$ determines if it meets a given criteria$ if so$ apply rule 5 to row
<pdate row$ commit. 'ith set processing$ you only select those rows that meet the
filtering criteria and then run the rule once again all the affected rows.
14) Advantages of %et *rocessing?
3mproved *erformance6 7 )ur internal testing has revealed that$ in an overwhelming
maQority of cases$ set processing performs significantly better than it is 7by7row
counterpart for ?reasonable@ batch processing volumes.
,inimiMed %.L )verhead6 7 3t tends to use fewer Application Engine %.L statements
that each processed more data than the statements e5ecuted in row7by7row processing.
Easy ,aintenance6 7 if need to ma#e a fi5 or add an enhancement to %.L$ itRs Qust a
matter of modifying the %.L or inserting the new ?"hun#@.
Leveraging the 1(B,%6 7 'ith %et based processing$ you ta#e advantage of the %.L
processing engine on the database rather than placing the processing burden and overhead
on the application e5ecutable.
1S) Testing and debugging application engine?
Application Engine Trace file7Tou can trac# the step e5ecution of your application
e5ecution.
Application Engine 3nteractive (ebugger Nirst clic# on the trace tab and turn off the
statement timings. %elect *rofile 7H Edit *rofile7H *rocess %cheduler Tab 7H Application
section %elect (ebug chec# bo5.

;Tou can dynamically modify the state record run application engine step by step
*eople "ode (ebugger for the Application Engine.)
AE Trace files6 7 AE2G*rogram /ameH2G*rocess 3nstanceH.AET
'ithout the process instance6 7 AE2G(ate!TimestampH2G)%2*3(H.AET
1C) )rder and flow of action types
1) (o 'hen
&) (o 'hile
+) (o %elect
4) *eoplecode
S) %.L
C) "all %ection
F) ,essage Log
I) L%LT
J) (o until
1F) 'hat is *rere-uisite for the Temporary record?
1) %hould have process 3nstance as #ey
&) /ame should end with 2TA)
1I) (ifferent types of Temporary tables
7 (edicated
7 <n (edicated ;%hared)
1J) 'hy *arallel *rocessing re-uired?
*otential performance improvements by splitting the data to be processed into groups
and simultaneously running multiple instance of your program to deal with different
groups of data.
3f you have a one program that uses a temporary table and is invo#ed multiple times$ that
single temporary table could be used concurrently in multiple e5ecutions of the code.
This could create unpredictable results since the different instances of the code would be
issuing delete$ 3nserts and!or updates unsynchroniMed with each other.
Tou 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$
mar# it as Uin useR $ use it and release it bac# to the pool when you through with it ;for
each Application Engine program you write).
&K) 9ow running AE program as Batch differs from running it online?
Application Engine programs are designed for two types of e5ecution and each has its
own pool of Temporary Tables
Online:
3nvo#ed by "allAppEngine from *eople code
1un -uic#ly$ synchronously$ and at random times.
*otential for simultaneous e5ecutions
<ses the online Temporary Table pool.
/ot restart able.
*sae.e5e randomly assigns an instance number from the number range on your online
temp tables.
3f the instance number is in use psae.e5e puts the program in .ueue until the assigned
instance becomes free.
<nloc# on completion$ on "rash free from Manage Abends.
Batch:
3nvo#ed through the *rocess %cheduler.
1un for longer amounts of time$ asynchronously$ and at scheduled times.
"an be designed for parallel e5ecution for performance.
<ses the Batch!(edicated Temporary table.
1estart able.
3t allocates instance number based on the availability on a record by record basis and
psae.e5e begins with the lowest instance numbers.3f the properties are set continue 7 Base
table is used with *rocess instance as #ey.
3f 1e7starable Loc#ed across 1estarts until completes successfully.
3f not 1e7startable on *rogram completion.

&1) 'hat are the important steps for implementing the parallel processing?
(efine you Temporary Tables.
%et the Temporary Tables )nline pool.
Assign Temporary Tables to your Application Engine program in it program.
%et Temporary Table Batch *ool 3nstance count in the AE.
Build ! 1ebuild your Temporary Table record.
"ode :Table ,eta %.L 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.

&&) 'hat happens when all the instance of the temporary table are in use?
3t behavior can control by AE developer. 3f the runtime options are set to continue
?*eople Tools will insert rows into the base table using the *1)"E%%23/%TA/"E as a
#ey@. 3f temp table doesnRt contain *1)"E%%23/%TA/"E as a #ey field in a Temporary
table$ you should change the Temp table runtime options to ?Abort@ in the appropriate
Application Engine programs.

&+) 9ow can you divide the data to be processed by different instance of the program to
perform parallel program?
1un 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.

&4) 'hat are the + common ways to pass a trace parameter and value to your program
psae.e5e?
"onfiguration manager$ *rocess (efinition$ "ommand prompt.

&S) 'hat is the main purpose of the Access property in the %ection?
Basically they have two option$ public and private if section declared as public then it be
access from other program.*rivate we cannot call from other program.
&C) 'hich actions are mutually e5clusive and why they are mutually e5clusive?
%-l and callsection.
&F) Error handling or E5ception handling in Application Engine ?
Step properties:-
)n Error67
Abort 'rite message to message log and terminate.
3gnore 7 'rite message to message log and continue.
uppress /o message will be written$ but program will continue.
People coe Action6 7 )n return options can used to handle run time errors.
Abort6 7 E5its immediately /ot recommended.
Brea#67 E5its the current step and section and control returns to the calling step.
%#ip %tep67 The program e5its the current step$ and continues processing at the ne5t step
in the section. 3f this is the last step in the section$ the calling step resumes control of the
processing.
SQ! Action properties:-
/o 1ows67 'hen the %-l doesnRt return any rows$ you can tell what application engine
program should do.
Abort6 - *rogram terminates
%ection Brea#: - Application Engine e5its the current section immediately$ and control
returns to the calling step.
"ontinue6 7 The program continues processing
%#ip %tep6 7 Application Engine e5its the current step immediately and moves on to the
ne5t step. 'hen using s#ip step #eep the following in mind6
1) Application Engine ignores the commit for the current step at runtime
&) 3f the current step contains only one Action$ only use s#ip step at by7pass the commit.
&I) 'hat are different types (o %elect?
1) %elect!Netch
&) 1eselect
+) 1estart able

%elect!Netch6 7
)pens the cursor only at the first time and retrieve rows one at loop.
"ommits inside the step ;commits in the "alled %ection) are ignored if AE is 1estart
enabled.
1eselect6 7
3t opens the cursor and closes the cursor on each iteration of the loop.
3t 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.
"ommits are not ignored and will be committed in a reselect loop when the restart is
enabled.
1estart able6 7 similar to select!Netch but it '3LL "),,3T inside the loop thus allowing
the chec#point to the *%2AE1</")/T1)L table.
&J)'hat is the ma5imum limitation on temporary tabel instances in AE.
JJ
+K) what is the difference between the :%ELE"T and :%ELE"T3/3T meta s-l
functions.
Ans :select 6 if any values have not selected then previous value will be there
:selectinit 6 if any values have not selected then previous value will reinitilate to null
+1) what is the difference between e5it;K)$e5it;1) when we are using this functions in AE
E5it ;1) causes immediate termination of a *eople"ode program. <se this parameter to rollbac#
database changes.
E5it ;K) caused immediate termination of a *eoplecode *rogram but donRt ma#e rollbac# in the
database.

You might also like