You are on page 1of 21

APPLICATION ENGINE

1. What is Application Engine?


Application Engine is a Development PeopleTool designed to create applications,
these applications are useful to perform the background SQL process, means we
can develop, test, and run background SQL processing programs. It is a set of
SQL statements people code and program control actions defined in A.D that
performs business process.
2. What is the use of A.E program?
We can use PeopleSoft Application Engine for straight row-by-row processing, but
the most efficient Application Engine programs are written to perform set-based
processing.
PeopleSoft Application Engine does not generate SQL or PeopleCode it executes
the SQL and PeopleCode that we include in an Application Engine action as part
of our overall program.
PeopleSoft Application Engine is designed for batch processing where we have a
large amount of data that must be processed without user intervention. Ex:
calculating the salaries in payroll processing

3. What are the advantages with Application Engine over SQR and
Cobol/SQL?
A.E is a PeopelTool Object remaining or 3rd party tools.
Using A.E we can run parallel processing
The main advantage is restart facility.
Meta SQL support is there.

Encapsulation: Application Engine programs reside completely within the


database. In COBOL or SQR; programs reside completely within the File server. If
we make any changes on objects it will effect across the database. In Application
Engine, there is no need to compile our programs, there are no statements to
store, and there is no need to directly interact with the operating environment.
We can develop our entire program from scratch, including the table definitions;
we can run and debug our applications without leaving the People Tools
environment. We can Build, run and debug our applications without existing
People Tools.

Easy Up gradation: For this PeopleSoft People gave some scripts, by running
these scripts we can upgrade easily. But we can't do this things in COBOL and
SQR, for this we have to do the record change then modify our batch programs
using some other mechanism all while make sure to keep track of what was
changed and how and where it affects the batch program. With Application
Engine and People Tools, it's all taken care of automatically.

Portable to Operating System: We can call different versions of a section for


different platforms, as needed. Supported RDBMS platforms are DB2, Oracle,
Informix, DB2/Unix, Sybase, and Microsoft. If there is no RDBMS-specific version,
Application Engine uses the default version.

People Code & SQL Editors: People Code & SQL Editors are available in the
Application Engine, these are useful to validate the program while writing
program. In SQR we can write the programs on Notepad or WordPad. Here we
won’t validate the program.
Restart Facility: Suppose we are executing an Application Program, after
executing some line due to some problems the program is aborted. After
rectifying the error, now we want to run the program from where the program
was aborted. It is possible to restart the program from one point where we last
executed successfully, and continues with the processing from that point. This
type of built-in logic does not exist in COBOL or SQR.

Meta-SQL support: It supports the meta-SQL, so that we can make the


program platform independent that is RDBMS independent. By using Meta SQL
we can generate portions of SQL statements.

Graphical Development Interface: It supports the GDI environment, so that


we easily develop the objects. The Application Designer offers Application Engine
developers the following benefits: At a time we can open multiple Application
Engine programs. Ability to work at once on the entire Application Engine
program. It supports two views. The Definition view and the Program flow view.
In the Definition view we can create and modify the programs. In the Program
Flow view we can see the actual order in which the program will execute the
statements (It shows the graphical representation of the program execution).

Effective Dating: Application sections are effective-dated, means at a particular


date we can activate/deactivate a section.

Reuse Business Logic: In the Application Engine program we can invoke the
people Code using the call Application Engine program. Using this we can call
other Application Engine program.

4. How many types of A.E program’s are there?


There are 5 types of A.E programs are there.
Standard, this is a normal entry-point program.
Upgrade only, which is used in PeopleSoft Upgrade utilities.
Import only, which is used by PeopleSoft Import utilities.
Daemon Only, a special type of program used as a daemon process.
Transform only, another special program type used to support XSLT.

5. What is demon A.E program?

PSDAEMON runs continuously when the Process Scheduler is running, and is


intended for recurrent jobs. It polls the system checking for certain conditions to
be true for events and when true, it schedules a process to handle the event. The
most common usage of the PSDEMON is to check for files that have been loaded
to the server and when found launch a process to import the file. The purpose of
Daemon program is to poll the system for a condition and when the condition is
true initiate a process.

6. What is demon group?

Once the demon programs are created they need to be defined in a Daemon
Group. The Daemon Group contains all the daemon programs for one server.
Daemon Group is attached to Process Scheduler Server and Daemon is enabled.

7. What is Transform program type?


These types of programs enable different systems to communicate with one
another by transforming messages into appropriate formats. When we specify an
Application Engine as a Transform Only program, we must specify an Action Type
of XSLT. We can use transform programs to do any of the following:
Apply a transformation to a message to make its structure comply with the target
system's requirements.
Perform a data translate
on a message so its data is represented according to the target system's
conventions.
Determine whether to pass a message through to its target, by filtering it based
on its content.

8. Where will you use XSLT action?

In Transform only program type we will use XSLT action.

9. What are the other Tools, which are useful to execute the background
SQL processing programs?
COBAL / SQL.
SQR Process.
Mass Change
COBAL / SQL and SQR are belongs to 3rd party tools not belongs to PeopleSoft. Mass
change is peopleTools.

10. Why we are not using the Mass Change as background SQL Process for
PeopleSoft Applications?
The problem is there is no program logic. But the advantage is we can generate SQL,
no need to write anything for this.

11. . What is the purpose of the Back Ground SQL Process?


We can validate the data.
We can move the data from one or more tables to one or more tables (Reporting
Tables).
We can update Database.

12. What is meant by Scheduling processing?


Processing the data without user involvement

13. What is the name of the Application Engine executable and what
language is it written in?
PSAE.exe and It is written in standard C++.
And this file resides in c:\<PS_Home>\bin\Client\Winx86\PSAE.exe.

14. Where are Application Engine programs stored?


Application Engine programs are stored in the PeopleSoft database.
15. Where can we create the Application Engine programs?
In the Application Designer.

16. What is the limitation to the Application Engine program name?


12 characters.

17. Can we generate the SQL using the Application Engine?


No. Application Engine does not generate SQL, it executes the SQL what we provide.
We can generate the SQL by using the Query Tool.

18. How can we make the database as platform independent?


By using the meta-SQL in our programs.

19. How many types of components can include the Application Engine?
Application Engine includes two distinct components: one is the "front-end" used to
define batch program and the other is "back-end” used to run the program what we
developed.

20. What are the changes from 7.5 Version to 8.x Version?
Up to 7.5 the importance of the Application Engine Program is very less.
 Designing purpose: In 7.5 Application Engine is useful. In 8.x Application
Designer is useful.
In 8 Application Designer is useful for only designing purpose, for execution
purpose Application Engine is useful. But in 8.4 both are possible in Application
Designer only.
 Programming: There is no such type of programming languages in 7.5.
PeopleCode is the programming language for writing the programs in 8.x.
Cache Records: (Cache records are useful for Memory purpose). 7.5 support
only one cache record. 8.x supports more than one cache record.

 Temporary Tables: These are useful for increasing the performance of the
program by storing the intermediate results during a program run. No such type
of tables in 7.5. Available in 8.x
 Messages: No multi language support in 7.5, Available in 8.x.

21. How many components include Application Engine Program? The


Structure of the Application Engine Program?
Program: An executable program must contain at least one Section, called MAIN.
The execution of the program always starts from the MAIN section, and used to
identify the starting point of the program.
Sections: A Section is a set of ordered Steps. When a section is called, its steps are
executed sequentially. The execution starts with the first step of the MAIN section
and ends with the last step. We can call Sections (and other programs) from Steps
within other Sections. We can put n number of sections in the program, but at least
one section should be there, that is MAIN. Without MAIN section we can also develop
Application Engine Program, but we can use this as an Application Library. They can't
be executed directly because they have no MAIN Section.
Steps: A Step is the smallest unit of work. We can use a Step to execute a
PeopleCode command or log a message, execute a SQL statement or to call another
Section. Every program begins by executing the first Step of the MAIN Section and
ends after the last Step in the last Section completes successfully. We can specify
the properties to the Section level and Step level.
Actions: It contains the code we wish to execute. The primary type is a SQL
statement. But we also have log messages, people code, call other section, and
perform transformations.

22. What should we get when we open a new Application Engine program?
We can get only one section that is MAIN and Step01 (with no actions yet).

23. What is the purpose of the Program?


An Application Engine program identifies the set of processes to execute a given
task.

24. Can we change the name of the MAIN section?


No, we can’t. This is only one section we can’t rename.

25. Can we have A.E program without MAIN?


No,

26. What is an Application Library?


Application Library is program that contains collection of callable sections. We can’t
run the Application Library as a standalone program.

27. What are the properties of the Sections?


Section name: We can specify the section name and the limitation is 8 characters.

Description: We can write some description about the section.

Market: Select the Market for which the section is intended. If a particular Market is
irrelevant to your batch program, keep the default Market value of Global (GBL).

Platform: In some cases, we may develop an application for some other RDBMS.
For this we can specify the Platform name here only.

Effective Date: We can make a particular section effective-dated and we can enter
the effective date. The default effective date is 01/01/1900.

Effective Status: Specify whether a section is active or not. Active refers to being
enabled at runtime. Inactive Sections are bypassed at runtime.

Section Type: In the case of an abnormal termination of the program, the value of
this system field specifies whether you must restart the section.

Auto Commit: You can opt to have no commit or you can have Application Engine
commit after the step successfully completes.

Access: We can specify that a section can or can’t be called from another program.
If select this check box means we can’t call this from other section. Otherwise we
can call this form other section.

Comments: We can add additional comments for this section.

28. What are the parameters of the steps?


Step Name: We can specify the Step name.
Step Description: We can write some description about the Step.
Commit After: We can determine when commit will be executed.
Default: uses value supplied for the section.
Later: don’t commit now.
After step: commit when step completes.
Frequency: Only available in Loops.
On Error: We can specify any one action to take when an error occurs.
Abort: The program terminates and will write the message-to-message log.
Ignore: It will write message-to-message log and continue.
Suppress: no message will be written, but the program will continue.
Comment: We can add additional comments for this Step.

29. How can we view the comments of a particular section?


By selecting View, Show all comments or by pressing F2 or Right click on a particular
section in that select Show Comment.

30. How many actions can Application Engine supports?


8 actions.
SQL
PeopleCode.
Call Section.
Log Messages.
Do Select
Do While
Do Until
Do when

31. What is the sequence of execution of A.E. program?


Do When
Do while
Do select
SQL \ call section
People code
Log message
Do until

32. At a time how many actions allows the Application Engine program?
7 actions.

33. What are the mutually exclusive actions?


SQL and Call Section are mutually exclusive.

34. Why call section and SQL are mutually exclusive?


Both SQL and call section is used to perform DML operations so we will use either
SQL or call section.

35. Can we put same action in one step?


We can't put same action in one step.

36. Can we have commits after every step?


Yes we can have commit after every step.

37. What is the use of the Log Messages?


A Log Message Action can be used to write a message to the MESSAGE_LOG based
on a particular condition in the program. This gives your program multi-language
capability. The Message Log refers to the People Tools table (PS_MESSAGE_LOG)
where execution messages reside. Any substitution parameters are written to
PS_MESSAGE_LOGPARM

38. What is the purpose of the Do Select?


Do Select is nothing but a For Loop and is used to populate state record values
within the Application Engine program. Do select statement is a select statement
that executes subsequent actions with in the step once for every row of data that is
returned.

39. What are the select types of the DO SELECT?


Select/fetch
Reselect
Restartable

40. What is Select/fetch?


Select and fetch opens the cursor to the database.
Selects the first row that meets the sql condition in the Do Select.
Executes the actions in the step (call section, sql, etc).
Once the subsequent actions are completed the program returns to the open cursor
from the Do Select, retrieves the next row and continues again with the rest of the
actions.

41. What is Reselect?


Reselect opens a cursor to the database.
Selects the first row that meets the sql condition in Do Select.
Closes the cursor.
Executes the following Actions in the step (Call Section, sql, etc)
Once the subsequent Actions are completed the program returns to the sql in the do
select and opens a cursor again.

42. What is Restartable?


It will acts like select and fetch but the only difference is we will use this with
reselect option.

43. What is the purpose of the Do While?


It is a SELECT statement that runs before subsequent actions of the step. The
subsequent actions within the step are executed in a loop as long as the SELECT
statement returns at least one row for the Do while action. Do While is nothing but a
While Loop.

44. What is the purpose of the DO until?


A Do until action is a Select statement that runs after each action when a step
completes. If the Select returns any rows of data, the step terminates. Do Until is
nothing but a Repeat Loop.

45. What is the purpose of the Do When?


The Do When action is a SELECT statement that allows subsequent actions to be
executed if any rows of data are returned. This is the first executable statement with
in the step. Do when is nothing but an If Loop. It contains SQL that tests for a
condition. If the condition is true then it returns a row of data, and it executes the
subsequent actions within the step. If the condition is false then no row of data
returned and it terminates the entire step. If there are no more steps to execute, the
program will end.

46. What is the purpose of the SQL action?


SQL Statements are used to perform the DDL, DML, and DCL operations. Majority
cases we are using the DML commands (UPDATE, DELETE, INSERT, SELECT).

47. What is the use of the Call Section?


Call Section is used to call one section from another section. The "called" Section can
be in the same program as the calling Section, or it can be in an external program. If
a Section already exists in one program, rather than copying it into another program,
just call it.

48. What is the use of people code action in A.E program?


People code provides reusing common faction libraries of A.E program. And used to
build dynamic SQL performs simple if /then/else edits set defaults and perform other
tasks that don’t required trip to the database.

49. What is difference between Do select and SQL?


The Do Select action is a SELECT statement that executes subsequent actions once
for every row of data that the Do Select returns. It works like a FOR loop. It returns
a row. Do Select is a test condition. Where as SQL executes DML and Meta SQL.

50. What is difference between call section action and dynamic call check
box?
Call Section is used to call one section from another section. The "called" Section can
be in the same program as the calling Section, or it can be in an external program. If
a Section already exists in one program, rather than copying it into another program,
just call it.

Use the AE_APPLID and AE_SECTION fields in the state record to execute different
sections depending on the conditions a program encounters during runtime.
These two fields must be defined on the default state record for the program. If
AE_APPLID is not present or is blank (at run time), the current program is
substituted for the AE_APPLID value. If AE_SECTION is not present or is blank, an
error occurs.
When issuing a dynamic call, both the section and the Program ID must be
dynamically set. You enable a dynamic call by first having your program store
different section names in the AE_SECTION field, and different program names in
AE_APPLID field. The values you insert in these fields are normally based on various
conditions met within your program. You then create a Call Section action that calls
the section name defined in the State record field by selecting the Dynamic check
box.
Selecting dynamic automatically populates the AE_SECTION field with the symbolic
value %Section, and the Program ID field with the symbolic value %AEAPPLID. At
runtime, the program calls the section name stored in AE_SECTION that belongs to
the program name defined by AE_APPLID.

51. How can we expand all the nodes in the Application Engine program?
By using the + icon or by selecting View, Expand All or (Ctrl+Shift+X) or expand all
nodes toolbar button available in the standard toolbar.
52. How can we hide all the nodes in the Application Engine program?
Select View, Collapse All and View, Hide All Details. Or (Ctrl+Shift+C)

53. How can we filter some particular sections?


Select View > Section Filtering > Custom. Then specify the market type (ex: GBR)
and click
OK. So that we can get only some section which are belongs to the GBR market
type. To
disable this option select View > Section Filtering > No Filtering.

54. How many levels of actions support the Application Engine program?
Application Engine supports up to 99 levels of nested Call Section Actions.
For example, the first called Section can call a second, which can call a third, and so
on, up to 99 calls.

State Record

55. Can we have more than one state record in single A.E?
Yes we can have more than one state record in A.E but one should be the default
state record.

56. Tell me what you know about state record?


State records are used to assign variables for Application Engine program. State
Record used as a worktable. Key field is Process_instance. It can be a derived work
record or SQL table. No people code fires on AE state record. To restart facility we
put the Process_instance field.

57. How will u pass variable from one A.E. to another A.E. program?
Through state record.

58. What is the purpose of the State Record?


To pass the variables for the Application Engine program.

59. What is the other name to the State Record?


Cache record.

60. How many state records can be associated with an Application Engine
program?
An Application Engine program may have zero, one, or many state records. Only one
state
record will be the default.

61. Where do we associate a state record with an Application Engine


program?
Program Properties.

62. Who creates the State Record in the Application Engine program?
The State Record must be created and maintained by the Application Engine
developer.
63. What type of record is a state record?
Can be a Physical record (SQL table) or a derived work record. If it is Physical table
we
Should build before using this.

64. What is the extension to the state record?


_AET. Then only the system identifies the record as a state record.

65. How many rows we can have in state record?


We will have one row in state record. But in case if multiple A.E programs use same
state record as default state record then there will be multiple rows in state record.
i.e. one row for each record.

66. What field is used as the key field on a state record?


PROCESS_INSTANCE.

67. Why we are using the PROCESS_INSTANCE as a key field in the state
record?
For restart facility.

68. What Meta SQL is used to retrieve values form a state record?
%BIND.

69. What Meta SQL is used to store values into a state record?
%SELECT.

70. Can we specify the Date type field as a required field?


No, we can specify only character and numeric fields as required fields.

71. Is people code fires on A.E sate record?


No PeoplCode fires on an Application Engine state record.

Properties Of The Application Engine Program:

72. How can we access the properties of the Application Engine Programs?
If we want to view and modify the properties of an Application Engine program open
it in the Application Designer, select File > Object Properties while the program is
open and press the Properties button. We can also press ALT+ENTER. Then it
displays the Program Properties Dialog Box, and it consists of 4 controls.
 General
 State Records
 Temp Tables
 Advanced

General:
Description: Used to enter a descriptive name. In this edit box we can enter
up to 30-character only.

Comments: Used to enter the comments about the program. Or add any
other useful comments that development or administrative staff may need to
see.

Owner ID: Used to enter the Owner ID for the program. Owner ID is a way
to identify which objects are owned by which PeopleSoft products, such as
General Ledger, Accounts Receivables, and so on. The values in the dropdown
list are Translate table values associated with the OBJECTOWNERID field. This
field is entirely optional.

State Records:

Qualify Search: By default, the Record List box will contain all record names
that end with the extension AET. We can also specify the state record name.

Get List: Press this button, to populate the Record List box.

Record List: This text box contains the results of the State Record search.

Selected: This group box is where we select State Records for use with a
particular program. Use the Add button to include selected records that
appear in the Record List. Use the Remove button to exclude selected records
that appear in the selected list box. Indicate which State Record will act as
the default State Record by selecting its checkbox. For the default State
Record, we only need to reference fieldnames in the PeopleCode and SQL (for
the active program). When we reference a non-default State Record, we do so
by using recname.fieldname.

Temporary Tables:

Qualify Search: This edit box is useful to enter any wild card characters or
complete table names to limit the results that will appear in the Record List.
By default, the Record List box only will contain records that are of type
"Temporary Table". This is an attribute applied at the time you create the
Record in Application Designer.

Get List: Press this button, to populate the Record List box.

Record List: This text box contains the results of the Temp Table search.

Selected: This group box is where you select temporary tables for use with a
particular program. Use the Add button to include selected records that
appear in the Record list. Use the Remove button to exclude selected records
that appear in the selected list box.

Instance Count: The Instance Count value controls the number of physical
tables to be created for each dedicated table for this program during the SQL
Build procedure in Application Designer. Typically, you would set this number
to equal the number of parallel program runs that you anticipate. For instance
if you expect up to five instances of the same program to run simultaneously,
then you would set the Instance Count to 5.

Insert Selected List into Project: If the active Application Engine program
definition belongs to a Project, then you can opt to include the dedicated
temporary tables for this program within the same project.

Runtime: 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 instances. Do
you want the program to abort, or do you want it to use the base table
(PS_recname with no suffix), which is a non-dedicated table. The Runtime
options enable you to control how an Application Engine program behaves in
the event that an instance of its specified dedicated temporary tables are not
available. If you select Continue, then Application Engine uses the base
version, or undedicated version, of the temporary tables. If you select Abort,
then the program exits with a meaningful error message.

Advanced:

Disable Restart: Application Engine has built-in restart capabilities. In many


cases, we will want to have Restart enabled. To disable restart for a particular
program, select DisableRestart.

Application Library: Most Application Engine programs are defined to be


executable. An executable program has a main entry point in its definition:
the Section MAIN. This defines the entry point so whatever method we choose
to invoke the program, such as command line or Process Scheduler, can
initiate the program. However, in some cases, we may want a program to
only contain a collection, or "library," of common routines (in the form of
"callable" Sections) that we do not want to run as a standalone program.
When sections are defined as "Public," other programs can call the Sections,
or routines, that exist in the "library" at runtime. Because this type of
Program is not designed to run as a stand-alone program, it does not require
the MAIN Section, or initial entry point. Setting the Application Library option
renames or removes any existing MAIN Section.
Note: Application Libraries are the appropriate spot to store a collection of
shared Application Engine program Sections. It is not intended to store a
specific SQL Action with in a Section. To share common SQL, use the SQL
repository.

Upgrade Only: This option is for programs intended to be used for upgrade
purposes only. PeopleSoft delivers some Application Engine programs for
upgrade-only uses. Unless you are responsible for the upgrade procedure at
your site, you won't need to deal with these programs. These programs are
documented specifically within the Upgrade documentation accompanying
your shipment. Message Set. Specify the message set value that you want
assigned as the default message set number for this Application Engine
program. The system uses this Message Set value for all Log Message Actions
where the message set isn't specified.
Execution Of A.E Program

73. Difference between online and batch execution:

Online Execution Batch Execution

Started by CallAppEngine from Started through PeopleSoft Process


PeopleCode. Scheduler.

Program runs quickly, synchronously, Programs run for longer amounts of


and at random times. time, asynchronously, and at scheduled
times.

Potential for simultaneous execution. Can be designed for parallel execution


for performance.

Uses the Online Temporary Table pool. Uses the Batch/Dedicated Temporary
Table pool.

74. How many ways we can execute A.E program?


Batch Using PeopleSoft Process Scheduler
Online Using PeopleCode
Manual Using the Command Line

Batch Using PeopleSoft Process Scheduler

This is the most typical mode of execution. You invoke programs that run in this
mode using PeopleSoft Process Scheduler or the Application Engine Process Request
Page. Batch mode is also referred to as asynchronous execution meaning that it runs
independently in the background. PeopleSoft Application Engine runs on any
operating system that PeopleSoft supports as an application server.
To run Application Engine programs on the batch server, you must install Tuxedo.
This applies to both UNIX and Windows NT batch servers. If you run your batch
server on the same server machine as your application server, then the application
server and the batch server can share one Tuxedo install. If your batch server is
separate from your application server, then you must install the Tuxedo CD-ROM to
your batch server.

Online Using PeopleCode


Application Engine programs
that execute online typically get executed from a page with the CallAppEngine
PeopleCode function. Such online processes are synchronous meaning that
subsequent processes wait on the results. For instance, a page may be "frozen" until
the online process returns the necessary results. With CallAppEngine there are no
COMMITs issued. There is an asynchronous online PeopleCode option,
ProcessRequest. With ProcessRequest, COMMITs are allowed.

Manual Using the Command Line


Usually, you use this technique only during testing or if you need to manually restart
the program.
In this section, we discuss how to:
Most Application Engine programs are scheduled to run using the Process Scheduler.
In 4 ways we can execute A.E program, they are
Use Process Scheduler to start Application Engine batch programs.
Use the Application Engine Process Request page.
Use PeopleCode to call an Application Engine program.
Use the command line to invoke an Application Engine program

Running From within the Application Engine


For this we have RUN PROGRAM icon on the Application Engine Tool bar.
Create new record (ID, Name, and Salary). Save (EMP_TBL) and Build.
Create page, component, and menu. Register the component.
Create new Application Engine Program, insert SQL action and write
INSERT INTO PS_EMP_TBL (ID, NAME, SALARY) VAULES (‘100’, ‘NUTAN’, 20000);
Click on RUN Button.

2. Through PeopleCode
To run through peoplecode we should create a push button on a page. When we click
the push button, Filed change PeopleCode is triggered and associated PeopleCode
will be executed.
Create new record (ID, Name, and Salary), then save (EMP_TBL) and build.
Write PeopleCode (Salary field and Field Change Event)
CALLAPPENGINE (“EMP_AE);
Create new page, insert record fields (ID, Name, and Salary). And insert a push
button. Then double click on the push button and specify the record name and field
name. Then click on label tab and select any image ID. Click OK.
Create component and menu.
Create new Application Engine program. Insert SQL Action.
INSERT INTO EMP_TBL (ID, NAME, SALARY) VALUES (‘100’, ‘NUTAN’, 30000);
Save the program with EMP_AE.
Open the component click the Push Button. Then observe the results.

3. Running From PeopleSoft Process Scheduler.


Create one record (ID, Name, salary). Create Page and Component and Menu.
Register the Component. Save the record with EMP_TBL.
Create new Application Engine object, insert SQL action, Then write the SQL, INSET
INTO PS_EMP_TBL (ID, NAME, SALARY) VALUES (‘100’, ‘NUTAN’, 50000); then save
the program with EMP_AE.
Open Browser environment PeopleTools > Application Engine > Request AE then click
on add new value then enter User ID and Run control ID and Program name. SAVE.
Go to Process Scheduler > Process, Click on Add New value, then enter the Process
type as Application Engine and Process name (Program name).
Go to the Process Definition Options tab; specify the server name and Component
name as AE request and Process Group.
Again go to the request AE (PeopleTools, Application Engine, and Request AE). Open
the process which we created. Then click on RUN button.
Go to the Process Monitor click on Refresh.
Running From Command Line
For this we should create .BAT file.
Open any notepad file, write C:\PT8.42\bin\server\WINX86\PSAE -CD
<database name> -CO <userID> -CP <User Password> -R <Run Control
ID> -AI <Program Name>
Then save the file with .BAT extension.
Run Time Parameters for END-USER:
-CT: Database Platform
-CD: Database Name
-CO: User ID
-CP: User Password
-R: Run Control ID
-AI: Program Name
-I: Instance Number
Run Time Parameters for Developers:
-TRACE n: Generate AE Trace File
-DEBUG a: Invoke Online AE Debugger
-CONVERT: Convert to release 7 to 8

75. What is the function used to call A.E program through people code?
CallAppEngine function

76. In which events of people code we can write CallAppEngine function?


You need to include the CallAppEngine PeopleCode function within events that allow
database updates. This includes the following PeopleCode events:
SavePreChange (Record)
SavePostChange (Page)
Workflow
Subscription (Message)
FieldChange

77. Diff between online A.E program and batch job?


Online A.E program is executed from a page with the call app engine people code
function. In this process the page, which is calling from Online will be frozen until the
process returns any results. No commits are issued until the program complets.
Batch process is the typical mode of execution, in this mode programs are run using
process scheduler or A.E request page.

Debugging Of A.E Programs:

78. Why we need the Debugging concept?


After completion of the program successfully, due to some problems the output is
not what we expected, the problem may be the network, hardware, system software,
database, procedures or application software, So that we need to find the mistake.
That means we have to debug the program.

79. Where can we view the failure details of the program?


Process Monitor.

80. Application Engine supports what type of Debugging Tools?


Process Monitor
Application Engine Trace file (In the Configuration Manager)
Application Engine Interactive Debugger
PeopleCode Debugger.

81. How can we access the Application Engine Interactive Debugger?


Set the Debug check box on, in the Process Scheduler folder tab in the Configuration
Manager.
Open the Configuration Manager.
First click on the Trace tab and turn off the statement timings.
Click on the profile tab.
Click on the Edit push button.
On the Process Scheduler page, we will find the Application Engine options.
Select the Debug check box.
Click the OK to save the new configuration.

82. When we use A.E Interactive Debugger?


It can be used while running on the client or when running directly on the server –
out side of the process scheduler.

83. How can we access the Debug Commands?


After specifying the Debug option in the Configuration Manger, Run any program
then we will see the DOS communication window, then type a ? And press ENTER.
Then it displays all the debugging commands.

84. How can we set A.E Trace file?


For process running on a windows workstation, we can set trace option in
configuration manager.
In configuration manager > Trace tab > A.E Trace will be there in that we can set
trace.

85. What do the A.E Trace file shows you?


A.E Trace will show the steps and sql issued in the order and complete information.
In addition it shows execution timings.

86. How can you debug A.E program form command line argument and
other?
PSAE.EXE —CT <DB_TYPE> -CD <DB_NAME> -CO <OPRID> -CP <PASSWORD> -R
<RUN_CONTROL> -AI <PROGRAM_NAME> -I <PROCESS_INSTANCE>
87. How do you debug an A.E program?
You can set the Debug option in the following locations:
Start PeopleSoft Configuration Manager and select the Process Scheduler tab. In the
Application Engine group, enable Debug by selecting the Debug check box. This is
the method that applies to all methods of invocation.
If you used the command line option to invoke your Application Engine program,
then you can just include the —DEBUG Y parameter in the command line you submit
to PSAE.EXE. If you already have the Debug check box selected in PeopleSoft
Configuration Manager, then you do not need to include the —DEBUG parameter in
your command line.

If you have PeopleCode in your Application Engine program, you should also enable
the PeopleCode Debugger. When you launch your program and the PeopleCode
Action executes, you will enter the PeopleCode Debugger at that point.

Note. Setting the debug capabilities in either PeopleSoft Configuration Manager or


the command line will turn debug mode on. The only situation where this is not true
is when you have Debug enabled in Configuration Manager and you explicitly submit
—DEBUG N on the command line. In this case, the PeopleSoft Configuration Manager
setting defines your "default" command line value, and the command line can
override the default.

88. How do you enable the PeopleCode Debugger for Application Engine?

Sign on to PeopleTools using the same User ID that you are going to use to invoke
the Application Engine program.
Open PeopleSoft Application Designer.
Select Debug, PeopleCode Debugger Mode.
Your Application Engine program can be open on the desktop, but you do not need to
open the Application Engine program or the PeopleCode action that you want to
debug.
Select Debug, Break at Start.
This causes the Application Engine program to break prior to executing any
PeopleCode programs within it.

Temporary Tables In A.E Programs:

89. What is temparary table and instances?


Temporary table is buffer allocation, which consists of row and columns. Application
Engine programs run in batch mode, multiple instances of the same program often
execute in parallel processing. When this happens, there is a significant risk of data
contention and deadlocks on tables. To avoid this PeopleSoft PeopleTools has a
feature that enables you to dedicate specific instances of temporary tables for each
program run.You can also use temporary tables to improve performance. Instances
determine the no… of temp tables to be created.

90. Difference between online and batch job temparary table instances?

91. What is work record?


It’s a temp table used to store temporary values.

92. Difference between _Tmp and _Tao?


For on line process we will use _tmp and for batch process we will use _tao
93. How you assign the temp tables to A.E program?
Open a.e program >program properities>temp tables

Select the table you want


Click ok

Save the program


Open app designer
Open the record
Build the record
Save
94. What is A.E run control record?
A.E Run control record stores the values of A.E program parameters.
95. What is restart facility?
The restart facility is used to restart the A.E program where it was stopped.

96. What you need to do for making restart facility in A.E program?
At least one state record needs to be physical record as the data will be available in case of abend.
We have to select the restart check box in A.E program properties.
In configuration manager select the process scheduler tab and uncheck the disable
restart.

97. How you improve performance of A.E. Program?


By using temp tables we can improve performance.
By using traces and reusing options.
Avoid using SQL execution logic in a people code action. Instead use the logic in do
conditions.
Bulk insert option can speed up your program with in a loop.

Define the following Meta sqls


%Bind: Used for retrieve data from the state record
%Select: Inserting values in to state record
%Table: For referencing a table across multiple databases(In App Engine only Temp
tables)
%Truncate: To delete the temporary table
%DateIn: Where dt is either a Date value or a date literal in YYYY-MM-DD format,
expands into platform-specific SQL syntax for the date. %DateIn should be used
whenever a date literal or Date bind variable is used in a comparison in the WHERE
clause of a SELECT or UPDATE statement, or when a Date value is passed in an
INSERT statement
%DateOut: Where dt is a date column, expands to a platform-specific SQL
substring representing dt in the SELECT clause of an SQL query.
%Mode: Gives the correct user action Mode, like add/update…
%Execute edit: Enables People Soft Application Engine to support data dictionary
edits in batch
%Join: Expands the join dynamically while executing this Meta sql

98. What is the max no of temp table instances can be created?


The system creates a maximum of 99 temporary table instances only, even if the
sum exceeds 99 for a particular temporary table.
The naming convention for the temporary table instances is as follows.
Where nn is a number between 1 and 99, as in PS_TEST_TMP23.

99. What is parallel processing?


The ability for multiple instances of the same programme to run simultaneously is
called parallel or concurrent processing.

100.What is set processing?


Set processing is nothing but processing sets of rows at one time rather than
processing each row individually. Set processing enables you to 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. Most of the performance gain is
because the processing occurs in the database instead of loading the data into the
application program, processing it, and then inserting the results back into the
database tables. Because the data never leaves the database with set processing,
you effectively eliminate the network round trip and database API overhead.
Note. Because the updates in set processing occur within the database, PeopleSoft
encourages you to 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. The only select
statements used in set processing appear in sub queries of an insert and update
statements,

Example for Row by Row processing query


declare A cursor for select dept_id from department where profit
50000;
open A;
fetch A into p_dept_id
while sql_status == OK
update personnel set salary = (salary+1000) where dept_id =
p_dept_id;
fetch A into p_dept_id;
end while;
close A;
free A;
Example for set processing query

update personnel set salary = (salary + 1000)


where exists
(select 'X' from department
where profit > 50000
and personnel.dept_id =
department.dept_id)

101.What is bulk insert?


Inserting buffering rows into database. PeopleSoft Application Engine offers this non-
standard SQL enhancement on the following databases: Oracle, Microsoft SQLServer,
and DB2. This feature is named Bulk Insert. For those database platforms that do
not support bulk insert, this flag is ignored.
You should consider using this feature only when the INSERT SQL is called multiple
times in the absence of intervening COMMITs When used in conjunction with
statements like INSERT INTO tablename (field1, field2...) VALUES (%BIND(ref1),
%BIND(ref2), Bulk Insert offers the most powerful degree of performance
enhancements related to reUse. This option turns on ReUse, and, in addition, it holds
all the data in a buffer and performs an insert only after a large volume of rows has
gathered in the buffer. The number of rows allowed to gather in the buffer depends
on your database platform. Keep in mind that storing data in the buffers is applicable
only if you've selected Bulk Insert and the SQL is an INSERT statement. For
statements other than INSERT/...VALUES, the Bulk Insert option is ignored.
This option is only applicable if the sql in our sql action contains a sql insert
102.Where we have to set options for disable and enable restart facility?
There are three places that we can enable or disable restart
Check box on the Program Properties dialog box
Check box in the Configuration Manager Profile
To disable, include the option —DR Y to the command line of PSAE.EXE (or delete to enable restart)
If in any of these three places you've disabled restart, then restart is disabled.

To enable or disable restart in Program Properties dialog box:


Select File, Definition Properties or click the Properties button.
Select the Advanced tab and select or clear the Disable Restart check box
appropriately.
If you are developing programs and are ready to test but don't want a restart
condition to get in the way, you could leave the Disable Restart check box clear in
the Program Properties. Then, you could have the Disable Restart check box on the
Configuration Manager selected, or if you are invoking your program from the
command line, you could have the Restart flag enabled. This allows you to test new
development and avoid errors about forcing you to restart during your testing. At the
same time it prevents you from inadvertently leaving Disable Restart selected in the
Program Properties when you moved the program into production.

To enable or disable restart in PeopleSoft Configuration Manager:


Start Configuration Manager. Select the Profile tab and click the Edit button.
Select the Process Scheduler tab and select or clear the Disable Restart check box
appropriately.

103.What we have to do for restart facility?


Program level:
One state record should be sql table.
On the advanced tab in the program properties dialog box make sure that disable
restart is not checked
In configuration manager make sure that disable restart is not selected on the
process schedular tab
Section level:
The options for section type should be prepare only and critical updates.
If the section is only preparing data as selecting it populating temporary tables or updating temporary tables
the section type should be prepare only.
If the section is updating permanent application tables in the database we should
select critical updates.
Step Level:
We need to have some conditions that reduce the answer set returned by the
doselect
Add and order by clause:
%select field1
select field1
from ps_some_record

where field1>%bind(field1)
order by field1
Add a switch to the selected table
Select column1, column2
From ps_table1
Where processing_switch = ‘N’
Delete processed rows.

104.. What code we used for restart facility?


%select field1
select field1
from ps_some_record
where field1>%bind(field1)
order by field1
Add a switch to the selected table
Select column1, column2
From ps_table1
Where processing_switch = ‘N’
Delete processed rows.

105.How can we validate application engine data?


What is the syntax for reading and writing a file from people code action?
The following example opens an existing Unicode file for reading:
&MYFILE.Open(&SOMENAME, "E", "U");
If &MYFILE.IsOpen Then
while &MYFILE.ReadLine(&SOMESTRING)
/* Process the contents of each &SOMESTRING */
End-While;
&MYFILE.Close();
End-If;

The following example opens a numbered file for writing in ANSI format,
without overwriting any existing files:
&MYFILE.Open("C:\temp\item*.txt", "N",
%FilePath_Absolute);
If &MYFILE.IsOpen Then
&MYFILE.WriteLine("Some text.");
&MYFILE.Close();
End-If;
106.How can we call a section dynamically in app engine?
Use the AE_APPLID and AE_SECTION fields in the state record to execute different
sections depending on the conditions a program encounters during runtime.
These two fields must be defined on the default state record for the program. If
AE_APPLID is not present or is blank (at run time), the current program is
substituted for the AE_APPLID value. If AE_SECTION is not present or is blank, an
error occurs.

When issuing a dynamic call, both the section and the Program ID must be
dynamically set. You enable a dynamic call by first having your program store
different section names in the AE_SECTION field, and different program names in
AE_APPLID field. The values you insert in these fields are normally based on various
conditions met within your program. You then create a Call Section action that calls
the section name defined in the State record field by selecting the Dynamic check
box.
Selecting dynamic automatically populates the AE_SECTION field with the symbolic
value %Section, and the Program ID field with the symbolic value %AEAPPLID. At
runtime, the program calls the section name stored in AE_SECTION that belongs to
the program name defined by AE_APPLID.

You might also like