Professional Documents
Culture Documents
Introduction
What is an Application Engine
Application Engine is used for BATCH or ONLINE processing where you have a large (or small) amount of data that needs to be processed without user intervention. Application Engine is the PeopleTool that you use to develop BATCH or ONLINE PROGRAM that are effective alternatives to COBOL or SQR programs for Performance. Program for NON-REPORT PROCESSING. Programs that perform HIGH VOLUME BACK GROUND PROCESSING against your data.
Introduction
Technical Definition
An AE program is a set of SQL statements, People Code, and Program Control Actions defined in Application Designer that performs a business process. Think of Application Engine as a tool that allows you to define a program's framework, as in its algorithm, structure, and looping constructs.
Allows you to take advantage of features such as the People Code File objects and Interlink objects, Component Interfaces, Application Messaging, and so on.
www.itwisesolutions.com
Structure Of An AE Program
Sections
Steps
o
Actions
Section
Section Name (e.g. MAIN, etc) and Description Market Platform Effective Date and Status Auto Commit and Access Type
www.itwisesolutions.com
Section Properties
Section Name (e.g. MAIN, etc) and Description Market Platform Effective Date Effective Status : Active & Inactive Auto Commit Access Type
Section Properties
Section Type : Critical Update & Prepare Only In the case of an abnormal termination of the program, the value of this system field specifies whether or not you will need to Restart the Section. If a Section controls a procedure that, if not run to completion, could corrupt or desynchronize your data, choose Critical Updates. Otherwise, use the default value of Preparation Only.
Execution Precedence If a Section for the current Market exists, execute it. If a Section for the current Platform, or RDBMS, exists, execute it. If a Section for the current Effective Date exists, execute it.
Step
A Step represents the smallest unit of work that can be committed in a program.
When you first create a program, you have a default MAIN Section and Step, initially named Step01. All programs require at least one Section, all Sections should contain at least one Step, and all Steps should contain at least one Action.
Step(Design View)
www.itwisesolutions.com
Step Properties
Commit After Default You can opt to select Default, which means the Step will inherit what ever Commit level you have specified for the Section in which the Step resides. Later By selecting Later, you postpone the commit until a subsequent Commit occurs, as specified by developers. Again, here you can override the Sectionlevel commit, if it happened to be set to After Step.
After Step Selecting After Step is useful if you have a Commit level of None specified at the Section level. This way, you can override the Section-level commit, and commit a specific Step within a Section with no other commits.
Step Properties
Frequency Blank default (any number can be added) The Frequency control only becomes enabled when a Step contains one of the following Actions: Do While, Do Select, or Do Until. This control will only accept numeric values. The value indicates the frequency of the rows with which Application Engine should commit. If non-zero, Application Engine commits every N iterations, and then again after the last iteration.
Step Properties
On Error Here you can specify how Application Engine should respond to an error at the Step level. The On Error routine behaves the same for both SQL and People Code Actions. The program only aborts on errors, not warnings. Abort The application will terminate with an error message. Ignore The program continues but logs an error message. Suppress The program will continue and present no error message.
Action
There are eight types of Actions that you can include within a Step, and a Step can contain multiple Actions.
You can only include one of each Action type within a single Step. The only mutually exclusive Actions within a single Step are Call Section and SQL Statement.
Action(Execution Hierarchy)
Action(Execution Hierarchy)
Action Types
Program Flow Actions Program Flow Actions are used to control the execution of your program. With these Action types you can control the execution of subsequent Sections, Action(s), or SQL statements depending on the results of a "Do" SQL statement in the form of a SELECT. Below are the four types of Program Flow Actions Do When Do While Do Select Do Until
No. Select this option to disable ReUse. With ReUse off, the Application Engine runtime process recompiles the SQL statement every time the loop executes. By default, ReUse will be disabled.
Yes. Select this option to enable basic ReUse functionality.
The Do While is identical to the COBOL "WHILE" function. In other words, the subsequent Actions within the Step are executed in a loop as long as at least one row is returned by the SELECT statement for the DO While Action.
If the Do While does not return any rows of data, the Action terminates.
Configurable Properties 1. RE-USE Statement : (Already Explained in action type Do When)
The DO Select Action is a SELECT statement that executes subsequent Actions once for every row of data that the Do Select returns. DO Select can execute a SQL statement for each row returned from the SELECT statement. The subsequent Actions within the Step are executed in a loop based on the results of the SELECT statement.
Select/Fetch Performs a Fetch for each iteration of the loop to get each row from the SELECT. When a FETCH results in an "end of table", the looping is complete. It cannot be restarted.
Re-Select It opens a cursor and fetches the first row. This means that, with ReSelect, your program processes the "first row" returned from the Select statement. Cursor gets re-opened for each iteration of the loop. Restartable This option is similar to the Select/Fetch in that Application Engine opens the cursor associated with the DO Select once, and then it performs a Fetch on each iteration of the loop to get each row from the SELECT. It can be Restarted.
Configurable Properties
1. RE-USE Statement : (Already Explained in action type Do When)
Use this Action if you want to perform the following SQL commands on multiple rows: UPDATE INSERT DELETE SELECT The SQL action differs from the Program Flow action , which also contains the SQL , in that SQL Action does not control the Flow of the Program. Configurable Properties 1. RE-USE Statement : (Already Explained in action type Do When)
2.No Rows In the event that the SQL (INSERT, UPDATE, and DELETE) associated with the SQL Action does not return any rows, you need to specify what your Application Engine program should do.
Abort The 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.
Call Section is the only supported way to call Application Engine programs or Sections from other Application Engine programs or Sections.
Program ID Since you can call Sections in the current program or Sections that exist within other programs, you need to specify the Program ID, or Program Name, of the program containing the Section you intend to call. The drop-down list contains all of the program definitions that currently exist.
Parameters A list of comma-delimited values to substitute for %1, %2, and so on markers in the message text.
Program Properties
www.itwisesolutions.com
Temporary Tables
PeopleSoft batch applications employ the technique of SET processing, and set processing (in most cases) involves extensive use of temporary tables. Temp Tables are used to store transient or intermediate results Improve performance for e.g. if you find that multiple times during a run of program access a small set of rows from a much larger table , you can insert the necessary rows into a temp table as as initialization task . Any Program can access temporary tables. When AE manages a dedicated temp table instance , it controls the locking of table before use and unlocking after use
Temporary Tables
Instance Count o It controls the number of physical tables to be created for each dedicated table for this program during the SQL build procedure in Application designer o Typically, you would set this number to equal the number of parallel program runs that anticipate o As long as table is keyed to PROCESS_INSTANCE , and the application SQL includes the Process instance in the where clause, then the table can be shared among multiple process
Runtime o When you are implementing dedicated temporary tables , you must consider how your program should behave in the event the number of active processes exceeds the number of dedicated temporary table instance
Temporary records enable set processing o Temp tables let the data base do the work o Foundation for parallel processing o Temp tables are not temporary! o Online and Batch have different temporary tables
Making batch temp tables parallel processing aware o Instance count is the number of concurrent instances o Batch Temp tables = Sum of the instance count for each program a table is used o Naming convention PS_NAME_TMPnn
Batch Temporary Table Usage o Each table is reserved separately at program load time. o A single program may get a different instance table number for each table o Locked by a record entry in a shared table when program is loading o Programs that can restart retain lock until successful completion o Table is cleared when loaded (unless its the base table) o If no temp tables are available, program may use a shared base table
Online AE program is one that is started by the CallAppEngine() function call Intent is to share code between online and batch Let Online take advantage of same processing capabilities batch has o Set processing o Temp tables Online is part of a transaction, so no commit
Online parallel processing o Temp Table Instances (Online) is: Number of temp tables built for all temp tables used in an App Engine program not designated as batch only o Temp Table Instances (Total) is: Difference between Total and Online is the number of temp tables built for custom allocation
Online Temp Table Usage o Temp table is reserved at CallAppEngine time by a random distribution algorithm o Same table instance locked for every table o Released when online transaction is committed o In the case of a crash, tables do not remain locked o If no temp tables program will enter a queue and wait o CallAppEngine is available from exit points where a transaction will happen
Set processing allows you apply your business rule directly on the data (preferably while it resides in a temporary table) in the database using an UPDATE or INSERT/SELECT statement
The bulk of the performance gain lies in the fact that the processing occurs in the database as opposed to pulling the data into the application program, processing it, and then inserting the results back into the database tables Since the data never leaves the database with set processing (whether or not it remains in the same table), you effectively eliminate the network round trip and database API overhead required to pull the data into the application program and then insert the results back into the database.
1. Easy Maintenance
1. Leveraging the RDBMS
Invoking AE Program
To invoke or run an Application Engine program, choose one of the following methods: Process Scheduler PeopleCode Command Line
Invoking AE Program(Peoplecode)
CallAppEngine To call a particular Application Engine program synchronously from a page using PeopleCode, you need to use the CallAppEngine() function in your SavePreChange or SavePostChange PeopleCode. The basic syntax for CallAppEngine() is as follows: CallAppEngine(applid [, statereclist ]);
Debugging AE Program
1. Execute the Application Engine program that you wish to debug. 2. At the Application Engine Debugger prompt, enter the appropriate command that enables the desired debugging option.
Application Engine Debugger - enter command or type ? for help. AETESTPROG.MAIN.STATS> ? Debug Commands: (Q)uit Rollback work and end program E(X)it Commit work and end program (valid between steps) (C)ommit Commit work (valid between steps) (B)reak Set or remove a break point (L)ook Examine state record fields (M)odify Change a state record field (W)atch Set or remove a watch field (S)tep over Execute current step or action and stop Step (I)nto Go inside current step or called section and stop Step (O)ut of Execute rest of step or called section and stop (G)o Resume execution (R)un to commit Resume execution and stop after next commit
AE Run
Push Button
Process Command Peoplecode Call
Logon Retrieve AE Program Definitions Issue AE program
PSAE.exe
Execute AE Constructs Peoplecode Program Files
PS Database
SQL
Thank You