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. 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) Component/Global People code variables 3) Temporary records – Multiple rows of data can be passed. 3) What is Prerequisite for the State record? 1) Should be either Derived work record Or SQL Table. 2) Name of the record must end in AET; this is how the system identifies the record as a state record. 3) PROCESS_INSTANCE must be a key. 4) Any data types except character or numeric must not be required fields. Note: - No People code fires on an Application Engine state record. No Validation of translate values or Prompt tables are done.

&SQL = “Select EMPLID from PS_AERUNCONTROL Where PROCESS_INSTACNE =” | PS_TEST_AET.exe? TRACE <trace value> TOOLSTRACESQL <trace value> TOOLSTRACEPC <trace value> 8) Which Trace option is the best place to start for general performance information? TRACE <trace value> 384 – mostly used trace value. . 6) What is the syntax for CallAppEngine? CallAppEngine (applid [.PROCESS_INSTANCE | “and OPRID =” | %oprid. Schedule () 2) CallAppEngine. 7) What are the 3 trace parameters you can pass to your psae.%Select (EMPLID) Select EMPLID from PS_AERUNCONTROL where PROCESS_INSTANCE = %PROCESS_INSTANCE and ORPID = %oprid 2) People code: . state record]). %PROCESS_INSTANCE is more efficient and faster 5) How do you execute Application Engine through Push Button? 1) CreateProcessRequest () .4) How to read the runctrl parameters in AE 1) SQL: . %PROCESS_INSTANCE or %Bind (PROCESS_INSTANCE) can be used.

.exe? Configuration manager. Program Properties On the Advanced tab in the program properties dialog box. make sure that disable restart is not checked. Import Only: Used by PeopleSoft Import utilities only Daemon Only: Use for daemon type programs.9) What is the difference between a Trace value and Trace parameters? A Trace parameter determines which type of trace is turned on. 11) What are the Different types of Application Engine? Standard: Standard entry-point program. 12) How do you program AE program for the restarts? Program Level State Record One of the state record needs to SQL Table. Since All Derived work record will be re-initializing on commit. Upgrade Only: Used by PeopleSoft Upgrade utilities only. Transform Only: Support for XSLT Transform programs. A Trace parameter determines what type of data is recorded in your trace files (s). Command prompt. 10) What are the 3 common ways to pass a trace parameter and value to your program psae. Process Definition.

 If the section is updating the permanent application tables in the database. Section Level Section type The option for section type are prepare only and critical updates  If the section is preparing data i. you should select critical update.Configuration manager In the configuration manager. Step Level Add an order by clause %Select Field Select Field1 from PS_SOME_RECORD Where FIELD1 > %Bind (FIELD1) Order by FIELD1. with select/Fetch. and you are inside a Do Select that is of the Select/Fetch type (instead of "Re-select" or "Restartable"). Add a switch to the selected table Delete processed rows. including the commit frequency if it's set.e select data. . or updating temporary tables then the section should be prepare only. Populating temporary tables. The only restriction for batch runs occurs when you have restart enabled. all commits inside the loop are ignored. sure that Disable restart is not selected on the process scheduler tab.

Our internal testing has revealed that.With Set – based processing. Select Profile -> Edit Profile-> Process Scheduler Tab -> Application section Select Debug check box. commit. Easy Maintenance: . set processing performs significantly better than it is -by-row counterpart for “reasonable” batch processing volumes. of rows at one time rather than processing each row individually. you only select those rows that meet the filtering criteria and then run the rule once again all the affected rows. Application Engine Interactive Debugger – First click on the trace tab and turn off the statement timings. apply rule x to row Update row. determines if it meets a given criteria.13) What is Set Processing? Set Processing uses SQL to process groups.It tends to use fewer Application Engine SQL statements that each processed more data than the statements executed in row-by-row processing. Leveraging the RDBMS: . 14) Advantages of Set Processing? Improved Performance: . or sets.if need to make a fix or add an enhancement to SQL. Minimized SQL Overhead: . 15) Testing and debugging application engine? Application Engine Trace file-You can track the step execution of your application execution. With row by row processing you following a repetitive loop that selects a row. . in an overwhelming majority of cases. if so. you take advantage of the SQL processing engine on the database rather than placing the processing burden and overhead on the application executable. With set processing. it’s just a matter of modifying the SQL or inserting the new “Chunk”.

) AE Trace files: .AET 16) Order and flow of action types 1) Do When 2) Do While 3) Do Select 4) Peoplecode 5) SQL 6) Call Section 7) Message Log 8) XSLT 9) Do until 17) What is Prerequisite for the Temporary record? 1) Should have process Instance as key 2) Name should end with _TAO 18) Different types of Temporary tables Dedicated .AE_<Date/Timestamp>_<OS_PID>.AE_<Program Name>_<Process Instance>.(You can dynamically modify the state record run application engine step by step People Code Debugger for the Application Engine.AET Without the process instance: .

If you have a one program that uses a temporary table and is invoked multiple times. . This could create unpredictable results since the different instances of the code would be issuing delete. 20) How running AE program as Batch differs from running it online? Application Engine programs are designed for two types of execution and each has its own pool of Temporary Tables Online: Invoked by CallAppEngine from People code Run quickly. Not restart able. Potential for simultaneous executions Uses the online Temporary Table pool. Inserts and/or updates unsynchronized with each other.- Un Dedicated (Shared) 19) Why Parallel Processing required? Potential performance improvements by splitting the data to be processed into groups and simultaneously running multiple instance of your program to deal with different groups of data. Each invocation of your program would have to allocate an unused temporary table. and at random times. You could solve the problem by creating multiple temporary tables as a pool of tables. synchronously. 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). that single temporary table could be used concurrently in multiple executions of the code.

Base table is used with Process instance as key.exe puts the program in Queue until the assigned instance becomes free. asynchronously. Restart able. . Set the Temporary Tables Online pool. Can be designed for parallel execution for performance. If Re-starable – Locked across Restarts until completes successfully. 21) What are the important steps for implementing the parallel processing? Define you Temporary Tables.exe randomly assigns an instance number from the number range on your online temp tables. Uses the Batch/Dedicated Temporary table. If the instance number is in use psae.If the properties are set continue .Psae. and at scheduled times. on Crash free from Manage Abends.exe begins with the lowest instance numbers. Batch: Invoked through the Process Scheduler. It allocates instance number based on the availability on a record by record basis and psae. If not Re-startable on Program completion. Run for longer amounts of time. Unlock on completion.

22) What happens when all the instance of the temporary table are in use? It behavior can control by AE developer. 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. so that Application Engine can table references to the assigned Temporary Table instance dynamically at runtime.Assign Temporary Tables to your Application Engine program in it program. and each program instance inserts the rows from the source table into its assigned temporary table instance using %Table. Command prompt. Code %Table Meta – SQL as reference to Temporary Tables in your Application Engine program. Process Definition. you should change the Temp table runtime options to “Abort” in the appropriate Application Engine programs. . Build / Rebuild your Temporary Table record. If temp table doesn’t contain PROCESS_INSTANCE as a key field in a Temporary table. Set Temporary Table Batch Pool – Instance count in the AE.exe? Configuration manager. If the runtime options are set to continue “People Tools will insert rows into the base table using the PROCESS_INSTANCE as a key”. 24) What are the 3 common ways to pass a trace parameter and value to your program psae.

27) Error handling or Exception handling in Application Engine ? Step properties:On Error:Abort – Write message to message log and terminate. Skip Step:. Abort: .25) What is the main purpose of the Access property in the Section? Basically they have two option. Ignore .Write message to message log and continue. but program will continue. People code Action: .Private we cannot call from other program. SQL Action properties:- . public and private if section declared as public then it be access from other program.The program exits the current step. the calling step resumes control of the processing. If this is the last step in the section.On return options can used to handle run time errors. uppress – No message will be written.Exits the current step and section and control returns to the calling step. Break:. 26) Which actions are mutually exclusive and why they are mutually exclusive? Sql and callsection. and continues processing at the next step in the section.Exits immediately – Not recommended.

only use skip step at by-pass the commit.The program continues processing Skip Step: . Abort: .Application Engine exits the current section immediately. 28) What are different types Do Select? 1) Select/Fetch 2) Reselect 3) Restart able Select/Fetch: Opens the cursor only at the first time and retrieve rows one at loop. 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.When the Sql doesn’t return any rows. Continue: . Reselect: - . you can tell what application engine program should do. Commits inside the step (commits in the Called Section) are ignored if AE is Restart enabled. and control returns to the calling step.Application Engine exits the current step immediately and moves on to the next step.Program terminates Section Break: .No Rows:.

Restart able: . Exit (0) caused immediate termination of a Peoplecode Program but don’t make rollback in the database. Use this parameter to rollback database changes. 99 30) what is the difference between the %SELECT and %SELECTINIT meta sql functions.It opens the cursor and closes the cursor on each iteration of the loop. 29)What is the maximum limitation on temporary tabel instances in AE. 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. 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.similar to select/Fetch but it WILL COMMIT inside the loop thus allowing the checkpoint to the PS_AERUNCONTROL table. It will reselect the same row of data.

Sign up to vote on this title
UsefulNot useful