Peoplesoft Application Engine Interview Questions and FAQs

7/26/2009 1 Comment

Peoplesoft Application Engine Interview Questions.

Explain what is the advantage of using Application Engine?
The following are the advantages of using Application Engine.

Encapsulation
Unlike applications developed using COBOL or SQR, Application Engine applications reside completely within your database. With Application Engine, there are the programs to compile, no statements to store, and no need to directly interact with the operating environment in use. You can build, run and debug your applications without existing People Tools.

Effective DatingApplication sections are effective dated-meaning you can activate/deactivate a section as of a particular date. This enables you to archive sections as you modify them, instead of destroying them. In the future if you decide to revert to a previous incarnation of a section you can simply reactivate it.

SQL / Meta-SQL SupportIn addition to writing your SQL within Application Engine, you can also copy SQL statements into Application Engine from SQL talk or any other SQL utility with few – if any changes.

RDBMS platforms have many differing syntax rules – especially in regard to date, time and other numeric calculations. For the most part you can work around this problem using Meta-SQL which Application Engine supports. This language was created to handle different RDBMS SQL syntax’s by replacing them with a standard syntax, called Meta-strings.

With in Platform specific sections you can also have the ability to call generic portions of SQL statements by using the & CLAUSE function. This means you can write your generic SQL portions just once, and reference them from your different platform versions.

Set Processing SupportSet processing is a SQL technique used to process groups (or sets) of rows of one time rather than one at a time. Application Engine is particularly effective of processing these types of applications.

Object Orientation:
Unless designed to anticipate changes in field attributes. COBOL applications may need to be modified when things change. If a developer increases a field’s length, then it may need to be changed in every instance where the COBOL program uses this field as a bind or select variable. This can require a good bit of effort. And, if not handled properly, a change like this can cause confusing errors. For example, if the length of a field in the COBOL is wrong, it may work fine, or you may get an error, or the field may get truncated.
One of the corner stone’s of People soft functionality is Application Designer. Because of the way it works, most field attributes (type, length and scale) can be specified once, globally. If the field is used on more than one record, it has the same attributes in each of these records.

Portability
you can use Data Mover to import/export your applications. This means that you can export an application(s) into a file, and attach it to an e-mail message. Then, the recipient can simply use the IMPORT feature of Data Mover, and the application is ready to run.


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

What is Prerequisite for the Temporary record?
1) Should have process Instance as key
2) Name should end with _TAO

What are the different types of Temporary tables
- Dedicated
- Un Dedicated (Shared)

Why Parallel Processing is 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).

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

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.

Which actions are mutually exclusive and why they are mutually exclusive?
Sql and callsection.

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


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: -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 maximum limitation on temporary tabel instances in AE.
99

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.


Which are the mutual exclusive actions in AE, why?
SQL and Call section are mutually exclusive actions in an AE so they cannot be called at the same time as there is a chance to get into infinite loop if they are in the same step. Because it gives database traffic, as same time both the actions will call database.

How to perform the set-processing and row-by-row processing in Application Engine?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. Because the updates in set processing occur within the database, use temporary tables to hold transient data while your program runs.
Although temporary tables are not required for set processing, they are often essential to achieve optimum performance in your batch program.

What is the use of process instance Application Engine and where we are using this?Process instance is the instance created by the process scheduler when u run the process. Using this process instance we can write our business logic(code).
SQL: - %Select (EMPLID) Select EMPLID from PS_AERUNCONTROL where PROCESS_INSTANCE = %PROCESS_INSTANCE and ORPID = %oprid

How to restart the application engine programs? Which table is used to restart application engine process? 1. One of the state record needs to SQL Table, Since All Derived work record will be re-initializing on commit.
2. On the Advanced tab in the program properties dialog box, make sure that disable restart is not checked.
3. In the configuration manager, make sure that Disable restart is not selected on the process scheduler tab.

What is the configuration file for Application Servers?
Configuration Manager

State Record is mandatory for coding an Application Engine programs?
False

Recreating the table will have an impact on the existing data?
True
How many types of Application Engine programs we have and what are those?
There are 5 types of processes:
1. Standard: which is a standard or normal entry point program.
2. Upgrade only: used by PeopleSoft upgrade utilities only.
3. Import only: used by PeopleSoft import utilities only.
4. Daemon only: use for daemon type programs.
5. Transform only: Support for extensible style sheet language transformations(XSLT).

What is the Maximum limit of call section actions in Application Engine to call other sections?
AE supports up to 99 levels of nested call sections actions. For example the first call section can call a second, which can call a third, and so on upto 99 call 

What is the use of Daemon Application Engine Program?
PSDEAMON process supports limited tracing because it runs indefinitely. Specially it only allows Application Engine tracing at the step and SQL levels.
In addition to the standard peoplesoft SQL and peoplecode tracing.
How do you check the process status in peoplesoft?
Go to PeopleTools -> Process Scheduler -> Process Monitor.

What is the APP engine event in peoplecode? 
Application engine peoplecode event is OnExecute.

How do we free locked temporary tables?
We free locked temporary tables using the Manage Abends page:
Select PeopleTools, Application Engine, Manage Abends.
Identify the program that has the particular temporary tables locked.
You can uniquely identify programs using the process instance, run control ID, program name, user ID, and run date and time columns.
Click the Temp Tables link.
On the Temporary Tables page, click the Release button to unlock the temporary tables associated with the program.

Where can we set Enabling and Disabling Restart?
To disable restart, use any of these methods:
Select the Disable Restart check box on the PeopleSoft Application Engine Program Properties dialog box.
To access program properties, select File, Definition properties, and select the Advanced tab.
Select the Disable Restart check box in the Configuration Manager profile.
To access the profile, start Configuration Manager, select the Profile tab, and
Click Edit. Then select the Process Scheduler tab.
Include the −DR Y option in the command line of PSAE.EXE.
If you’ve disabled restart in any of these three places, restart is disabled.

How do we Use Restart at the Program Level?
PeopleSoft Application Engine automatically performs all state record updates. When an Application Engine program starts, it inserts a row in the state record for the assigned process instance.

If the state record the program uses is a work record, no database updates can be made to the record. Consequently, if you restart the program, you might get unexpected results, because the memory was lost when the program terminated. In fact, the system reinitializes any state records that are work records at each commit, to ensure consistent behavior during a normal run and a restarted run. Therefore, you may need to make at least one of your state records a SQL table to contain values that must be retained across commits or in case of termination.

Finally, the other consideration for programming for restart at the program level is to check both the PeopleSoft Application Engine Program Properties dialog box and PeopleSoft Configuration Manager to make sure that Disable Restart check box is not selected.

1 comment :

 

Aired | The content is copyrighted and may not be reproduced on other websites. | Copyright © 2009-2016 | All Rights Reserved 2016

Contact Us | About Us | Privacy Policy and Disclaimer