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

peoplesoft application engine interview questions

  • Upload
    ganesham

  • View
    15.697

  • Download
    2

Embed Size (px)

DESCRIPTION

peoplesoft application engine interview questions

Citation preview

Page 1: peoplesoft application engine interview questions

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.

 

Page 2: peoplesoft application engine interview questions

4) How to read the runctrl parameters in AE

1) SQL: -   %Select (EMPLID) Select EMPLID from PS_AERUNCONTROL where

PROCESS_INSTANCE = %PROCESS_INSTANCE and ORPID = %oprid

2) People code: - &SQL = “Select EMPLID from PS_AERUNCONTROL Where

PROCESS_INSTACNE =” | PS_TEST_AET.PROCESS_INSTANCE | “and OPRID =” |

%oprid.

%PROCESS_INSTANCE or %Bind (PROCESS_INSTANCE) can be used.

%PROCESS_INSTANCE is more efficient and faster

5) How do you execute Application Engine through Push Button?

1)      CreateProcessRequest () , Schedule ()

2)      CallAppEngine.

6)  What is the syntax for CallAppEngine?

   CallAppEngine (applid [, state record]);

7) What are the 3 trace parameters you can pass to your psae.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.

Page 3: peoplesoft application engine interview questions

9) What 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).

10) What are the 3 common ways to pass a trace parameter and value to your program

psae.exe?

      Configuration manager, Process Definition, Command prompt.

11) What are the Different types of Application Engine?

       Standard: Standard entry-point program.

       Upgrade Only: Used by PeopleSoft Upgrade utilities only.

       Import Only: Used by PeopleSoft Import utilities only

       Daemon Only: Use for daemon type programs.

      Transform Only: Support for XSLT Transform programs.

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.

Program Properties

    On the Advanced tab in the program properties dialog box, make sure that disable

restart is not checked.

Page 4: peoplesoft application engine interview questions

Configuration manager

    In the configuration manager, sure that Disable restart is not selected on the process

scheduler tab.

 Section Level

Section type

      The option for section type are prepare only and critical updates

          If the section is preparing data i,e select data, Populating temporary

tables, or updating temporary tables then the section should be prepare

only.

          If the section is updating the permanent application tables in the

database, you should select critical update.

Step Level

Add an order by clause

 %Select Field Select Field1 from PS_SOME_RECORD Where FIELD1 >  %Bind

(FIELD1) Order by FIELD1.

 

Add a switch to the selected table

Delete processed rows. 

    The only restriction for batch runs occurs when you have restart enabled, and you

are inside a Do Select that is of the Select/Fetch type (instead of "Re-select" or

"Restartable"). with select/Fetch, all commits inside the loop are ignored, including the

commit frequency if it's set.

Page 5: peoplesoft application engine interview questions

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. 

14) Advantages of Set Processing?

Improved Performance: - Our internal testing has revealed that, in an overwhelming

majority of cases, set processing performs significantly better than it is -by-row

counterpart for “reasonable” batch processing volumes.

Minimized SQL Overhead: - It tends to use fewer Application Engine SQL statements

that each processed more data than the statements executed in row-by-row processing.

Easy Maintenance: - if need to make a fix or add an enhancement to SQL, it’s just a

matter of modifying the SQL or inserting the new “Chunk”.

Leveraging the RDBMS: - With Set – based processing, you take advantage of the SQL

processing engine on the database rather than placing the processing burden and overhead

on the application executable.

15) Testing and debugging application engine?

 Application Engine Trace file-You can track the step execution of your application

execution.

Application Engine Interactive Debugger – First click on the trace tab and turn off the

statement timings. Select Profile -> Edit Profile-> Process Scheduler Tab -> Application

section Select Debug check box.

 

Page 6: peoplesoft application engine interview questions

(You can dynamically modify the state record run application engine step by step

People Code Debugger for the Application Engine.)

AE Trace files: - AE_<Program Name>_<Process Instance>.AET

Without the process instance: - AE_<Date/Timestamp>_<OS_PID>.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

Page 7: peoplesoft application engine interview questions

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

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

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, synchronously, and at random times.

Potential for simultaneous executions

Uses the online Temporary Table pool.

Not restart able.

Page 8: peoplesoft application engine interview questions

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.

 

21) What are the important steps for implementing the parallel processing?

Define you Temporary Tables.

Set the Temporary Tables Online pool.

Page 9: peoplesoft application engine interview questions

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.

 

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?

Configuration manager, Process Definition, Command prompt.

Page 10: peoplesoft application engine interview questions

 

25) What is the main purpose of the Access property in the Section?

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?

Sql and callsection.

27) Error handling or Exception handling in Application Engine ?

 Step properties:-

On Error:- 

Abort   – Write message to message log and terminate.

Ignore - Write message to message log and continue.

uppress – No message will be written, but program will continue.

People code Action: - On return options can used to handle run time errors.

Abort: - Exits immediately – Not recommended.

Break:- Exits the current step and section and control returns to the calling step.

Skip Step:- The program exits the current step, and continues processing at the next step

in the section. If this is the last step in the section, the calling step resumes control of the

processing.

SQL Action properties:-

Page 11: peoplesoft application engine interview questions

No Rows:- When the Sql doesn’t return any rows, you can tell what application engine

program should do.

Abort: - Program terminates

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

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.

 Commits inside the step (commits in the Called Section) are ignored if AE is Restart

enabled.

Reselect: -

Page 12: peoplesoft application engine interview questions

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.

29)What is the maximum limitation on temporary tabel instances in AE.

     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.