Appl Engine Interview Questions


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.
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.
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 required not be fields.
Note: - No People code fires on an Application Engine state record.
No Validation of translate values or Prompt tables are done.

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

How do you execute Application Engine through Push Button?

1) CreateProcessRequest () , Schedule ()
2) CallAppEngine.

What is the syntax for CallAppEngine?

CallAppEngine (applid [, state record]);

What are the 3 trace parameters you can pass to your psae.exe?

- TRACE
- TOOLSTRACESQL
- TOOLSTRACEPC

Which Trace option is the best place to start for general performance information?

- TRACE 384 – mostly used trace value.

What is the difference between a Trace value and Trace parameters?

A Trace parameter determines which type of trace is turned on.
A Trace value determines what type of data is recorded in your trace files (s).
Where does the trace file is written to?
The trace file is written to the server directory when you’ve specified the trace on the client. If the client has %Temp% set to a drive or directory that does not exist on the server, PeopleSoft Application Engine does not generate a trace file.
For an Application Engine program running on a server, PeopleTools writes the generic PeopleTools trace for SQL and PeopleCode trace files to the same directories as the AET traces. The prefix of the trace file name is also the same, and the suffix is trace. On the Windows workstation, the trace is written to the “People Tools Trace File” specified in the Trace folder of PeopleSoft Configuration Manager.
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 are the Different types of Application Engine?

Standard: Which is a Standard or normal 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 Extensible Stylesheet Language Transformations (XSLT).
XSLT Transform programs.

How is PSDAEMON process runed?
One PSDAEMON process can run for each row in the PS_SERVERDEFN table. The PS_SERVERDEFN.DAEMONENABLED field must be set to 1.

Does system automatically modifies all static references in other programs to the renamed program?

The system automatically modifies all static references in other programs to the renamed program. For instance, if you call the renamed program from another Application Engine program, the Call Section action in the calling program is modified to reflect the new program name. All sections and steps are saved under the new name. Only one occurrence of a program name can exist for a given database.

What is the function that can have PeopleSoft Application Engine recompile a reused statement?
Using the %Clear Cursor function.
What happens if the renamed program is called in a dynamic Do action?
The reference is not automatically modified. You should also manually check and modify any embedded references to the new program name in CallAppEngine or other PeopleCode functions.

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.
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
n If the section is preparing data i,e select data, Populating temporary tables, or updating temporary tables then the section should be prepare only.
n 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.

Why Sections are reordered alphabetically by name?

Sections are always reordered alphabetically by name at save time to make it easier to locate a given section. However, order of execution is dependent on internal call section references, and is therefore independent of the order that sections are inserted and displayed.

What does On Error property do?

The On Error property does not apply to compile errors (for example, specifying erroneous SQL statements). It checks only for execution-type errors. If your program has a syntax error, the program terminates.

What is to be intend to include multiple SQL statements within a single action?
Use the meta-SQL construct %EXECUTE. The previous sample SQL statement sample contains bind variables from a previous Application Engine action.
Entries in the AEREQUESTTBL table do not have any effect on Application Engine programs called from PeopleCode using the CallAppEngine function.
What are the Tables Used in the Process Request Page?
The Application Engine process request page inserts values into the following tables:
  • AEREQUESTTBL.
Contains all of the values that appear on the page except those in the Parameters group.
  • AEREQUESTPARM.
Includes only initial state record values specified in the Parameters group, if needed.
How do you invoke an Application Engine program through the command line?
  • Restarting.
When a program abends, a system administrator might restart the program using the command line. If needed, you can locate all of the specific program and process information from Process Monitor on the Process Request Detail dialog box. Normally, users (or system administrators) perform a restart from Process Monitor.
  • Development or Testing.
Many developers include the command line in a batch file to launch a program they are developing or testing. This way, they can quickly execute the batch file as needed. This also enables separation of development of the application program from its associated pages.
  • Debugging.
To debug a program running on the server, you can sign into the server (using telnet, for example) and invoke the program from the command line.
What are the Bulk Inserts ignored?
Bulk Insert is also ignored when all three of the following conditions are true: the database platform is Oracle, the record contains and EFFDT field (effective date), and the record contains a mobile trigger. This is required because an Oracle database does not allow the reading of mutating tables in a row trigger.
What is another way to populate PS_MESSAGE_LOG instead of Log Message action?
You can also use MessageBox PeopleCode to populate PS_MESSAGE_LOG instead of using the Log Message action. This enables you to easily record errors encountered within Application Engine PeopleCode programs.

What happens is if an Application Engine program is not set up for restartability?

When an Application Engine program is not set up for restartability, then commits are not controlled, monitored, or restricted by PeopleSoft Application Engine. When Restart is disabled, commits are controlled by the program.

PeopleSoft Application Engine does not commit a step containing a Do Select action with the Select/Fetch option enabled until the entire step completes successfully, regardless of the other options you have selected.

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.

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.

What is Prerequisite for the Temporary record?

1) Should have process Instance as key
2) Name should end with _TAO

Different types of Temporary tables

- Dedicated
- Un Dedicated (Shared)

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.
(You can dynamically modify the state record run application engine step by step
People Code Debugger for the Application Engine.)
AE Trace files: - AE__.AET
Without the process instance: - AE__.AET

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
-

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

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, If not Re-startable on Program completion.
ü 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.

What are the important steps for implementing the parallel processing?

  1. Define you Temporary Tables.
  2. Set the Temporary Tables Online pool.
  3. Assign Temporary Tables to your Application Engine program in it program.
  4. Set Temporary Table Batch Pool – Instance count in the AE.
  5. Build / Rebuild your Temporary Table record.
  6. 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 parameter 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 is the main purpose of the Access property in the Section?

Basically they have two options, 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 call Section.
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) Restartable
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 table 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.
What is the Mandatory property of App.engine?
Main-->Step-->Action
Is the Mandatory property of App.engine
Main is the required section in Application Engine.

2. There can be multiple steps in single application engine but atleast one step should be part of AE.

3. Similarly you can have multiple actions in AE but you should have minimum 1 action part of step.

4. Save as AE
What is the use of temporary records and state record in application engine?
Temp Tables: 
They are used to store the immediate values during the processing of the AE.
They help in batch processing by creating multiple instances and there by facilitating parallel processing.
If used properly they can greatly improve the performance.
State Records: 
They are used to pass on values from one section/step/prog to the other.
There can be a max of 200 state records that can be used in a single AE but only one of them can be default. state record name must end with _AET.
What are the Functions to call an AE? Syntax for CallAppEngine?
CallAppEngine
GetAESection
Commitwork
CallAppEngine (applid [, statereclistprocessinstance]);
Does PeopleSoft A.E write the timings trace?
PeopleSoft A E does not write the timings trace to a table for programs invoked by the CallAppEngine People Code function.
While your COBOL program runs, can it access and return values to the state record?
Yes.
What is the difference between dowhen and doselect?
DoSelect: here we don't need to increase the counter. Pointer to the next row in the selected data will be moved automatically.
DoWhen: Here we need to write the select query to skip the processed row.
What is the difference in using SQL directly and calling SQL from PeopleCode in Application Engine?
If you use SQL directly then it will go to database directly to fetch rows of data. But if u write SQL'S in PeopleCode den the trip will be from application server to database because PeopleCode resides in app server

One should avoid writing SQL'S in App engine PeopleCode as it would degrade the performance.

How many types of ways you can run an Application Engine program?

1. Running from Application Designer.
2. By calling People Code function.
3. Running from DOS Environment (Debugging).
4. Running from Application Engine People Tool.
5. Running from People soft Application.

What is a state record?

State Record is used to pass the values from sections to sections and actions to actions. State record is not a temporary record, it can be Sql record or derived work record. Mainly sql record is used for restart of the application engine program. It should have naming convention of _AET.
State record is a method by which u pass the values to u r application engine program.
Why can’t the SQL and call Section Actions be present simultaneously in a single step?
Call section and SQL actions are mutually exclusive so they cannot be called at a time. There is chance to get into an infinite loop if they are appeared in the same step.

How to test an application engine program in 8.8?

One can test Application in two ways:
1. Running Application engine from 2-Tier
2. Running Application engine from 4-Tier.
1. Running Application Engine from 2-Tier: Open Application Designer Then open desired Application engine. Then on top middle tool bar you can see 'Run Programm button' click on to that button give vales to parameter like Process Instance Run Cntrl id etc and click. this will run application engine and genreate a trace file to you local system. After complition of Application engine you can see if you got desired results or not.
2. Running Application engine from 4-Tier: Open 4-Tier link Go to peopleTools-> Process Schedular -> Process Add you Application engine process here in 'Process Defination Options' give 'PRCSMULTI' in COMPONENT and 'TLSALL' in Process Group and then Save the page.
After defining Application engine Go to peopleTools-> Process Schedular -> System Process Request then add a RUN CONTROL ID After adding run control id click on the RUN button on the page this will lead you to page where all the process will be listed Select you process name (Application engine Name) and clik on ok. This will run you Application engine.

What is the APP engine event in PeopleCode?

Application engine PeopleCode event is On Execute.

How do you debug your AE?

Go to configuration manager of 2 tier (App Designer). Then navigate thru Profile > Edit > Process Scheduler > Application Engine check the Debug option. 
2. Open the App Engine program needs to debug and click the traffic light run program button. 
3. Enter the run control id & debug the AE.
Differences between State and temporary records?
1. State record at any point of time has only single line information as it's driven by the Process_Instance as key field. While temptable can have multiple rows. 
2. State record had only single instance while the temp table can have maximum of 99 instance. 
3. State record is used for restart logic. 
4. State record can be used for dynamically calling AE section by adding AE_SECTION AE_APPLID as fields. Temp table can not be used.
Why temporary records are needed?
Defines the record definition as a temporary table. Temporary images of the table can be created specified by the PeopleTools Options Page. Temporary tables are used for running Application Engine batch processes. Temporary tables can store specific data to update without risking your main application table.
What are the difference between AE and SQR?
1. AE is very systematic as it is structured as Section step and Action. While SQR is not systematic. 
2. AE flow is easy to read and understand while SQR is not that easy. 
3. AE is easy to debug as you can do line by line debugging. With SQR it’s not easily possible. 
4. By using SQR you can create and maintain different reports which are not possible in AE's.
Difference between sql statements and metasql statements?
SQL - INSERT UPDATE CREATE DELETE
METASQL - BIND EXECUTE EDITS SELECT SELECTINIT SQL TABLE TRUNCATE TABLE UPDATESTAS.
SQL statements:The SQl statements are used to fetch/retrieve update insert delete data from the database. In PeopleSoft we use the sql stmts using sqlexec or createsql. Differnet sql statements are: Select Insert Update Delete.
Meta Sqls: Different RDBMS have difference date and time formats. Though the component processor takes care of the automatic conversion but at the time of using the sqlexec the automatic conversion does not take place. So in order to understand this the meta sql concept has come. Which we can use in diff sql stmts. for example datetimein date time currentdatetime datetimeout etc.
dateIn: This is used in the where clause of Select and update
dateout: This is used while selecting the data.
Which of the following menu options allows you to modify the Last Process Instance Number used within the system?
Process Scheduler, Use, Process Definitions
Meta-SQL where is it stored?
Temporary Tables.
What are the different actions in APP Engine?
In addition to the 8 listed above there is an additionally action for AE programs that are marked as Transform programs and the action is XSLT.
To launch an Application Engine program from another App Engine program, which one of the following is correct?
CallSection Action
What is an inbound and outbound Process?
Importing data by using a file layout requires the following sequence of activities:
  1. Provide the import data in a properly formatted flat file.
Each record in the file must correspond to a record with the same name in the PeopleSoft database, and its fields must have the same names and data formats as the database record’s fields. Each record in the file must end with a new line character.
  1. Create a file layout definition to match the record and field structure of the data.
Insert the appropriate record definitions into the file layout, then reposition the file records and file fields to match the record and field positions in the file.
  1. Preview and troubleshoot the input data format and content.
  2. Generate the data import Application Engine program and PeopleCode.
  3. Run the Application Engine program to import the data.
Export Data:-
To export data to a flat file, you create a file layout definition, and then write PeopleCode to transfer the data to a file. The PeopleCode can be initiated from Application Engine or from any event. It should populate text strings, rowset objects, or record objects, and it should apply the WriteRecord or WriteRowset method from the File class to transfer the data to the file by using the file layout definition to position the records and fields as required by the target application.
What is an interface program?
Define physical n derived state record?
Which process is used for running AE programs, which are to be run at a frequency of less than a day?
PSAppsrv
PSAESRV
PSDAEMON
PSQCKSRV
(Some scenario) Find which is not part of AE Program, Options would be
1. Action, Section, Step, Event

In an Application Engine Program, Maximum number of Actions in a Step?

a. 8
b. 6
c. 7 (SQL & Call Section can’t be together)
In an Application Engine Program Call Section – Action it is possible to leave the Program ID with blank Value in certain cases?
a. True
b. False
Let us take a Temp Table TMP_TAO.
In People Tools options the following instance settings are done
Temp Table Instances (Total) : 5
Temp Table Instances (Online): 4
In AE1 App Engine Program the instance count to TMP_TAO is 3
In AE2 App Engine Program the instance count to TMP_TAO is 5.

PeopleSoft allows multiple long fields per State Record?

a. True
b. False

How many instances are created to TMP_TAO?

a. 8
b. 17
c. 13 (5+3+5) refer to Temporary Table in App Engine
d. 12
The physical, dedicated tables are locked at the time the Application Engine program is loaded into memory?
a. True
    1. False

State Record can be Dynamic Record?

a) True
b) False
AE does Parse SQL?
a) True
b) False

Report Output files are stored in

1. App Srv 2. Batch Srv 3. Web Srv 4. File Srv

Trace 255 command line option produces the trace file with the name?

a). PI.AET
b). PID.AET
c). PD.AET
d). None of the above
Which process is used for running AE programs, which are to be run at a frequency of less than a day?
  1. PSAppsrv
  2. PSAESRV
  3. PSDAEMON
  4. PSQCKSRV
Which of the following are parts of an AE program? (choose 3)
a. Section
b. Procedure
c. Step
d. Function
e. Action

Which of the following is application for UPGConvert?

(a). Conversion of Data, consists of cobol programs
(b). Conversion of Data, consists of SQR programs
(c). Data conversion, consists of AE programs
Where do u write meta-SQL?
1.Dynamic View
2.Derived Work/Record
3.SQL View
4.Query View
Your Onsite DBA has called you up and told you that one of the tables PS_ABC_TAO has grown very big in size. Based on the standard naming convention, you have determined that the record is a temporary record since it ends with _TAO
You look into the database and decide that the data is not required any more.
You ask the DBA to delete the data in the table.
Next day you get a call from an irritated user who says that a daily process that took only 1 minute to run is taking about 2 hours today. You look into his process and find that it uses PS_ABC_TAO as a temporary table.

Two Program views of AE Program?

a). Definition, Program flow
b). Definition, Program view
c). Program view, Object view
d). None of the above
In Call Section – Action it is possible to leave the Program ID with blank Value in certain cases?
a) True
b) False

State Record can be Dynamic?

True
False

People Soft allows multiple long fields per State Record?

a). True
b). False

How many instances are created to TMP_TAO?

  1. 8
  2. 17
  3. 13
  4. 12
The physical, dedicated tables are locked at the time the Application Engine program is loaded into memory?
a). True
b). False
To launch an Application Engine program from another App Engine program, which one of the following is correct?
a). CallAppEngine
b). CallSection Action
c). a & b
d). None of the above
Meta-SQL where is it stored?
a) Temp Table b) SQL Table c) Query Table d) Dynamic

How do you set the Debug options in AE through Web?

Other than the follwing two options:
a) Through configuaration Manager b) Through command line
Explain the sequential steps to dump the data from CSV file to Database tables (Inbound), but not fetching the data Row by Row?
What type of situations did you used DoSelect and DoWhen
What is difference b/w Get Record and Create Record? And what CreateSQL will do?
What is the use of Getgrid function?
Explain about the %OperatorId
Is it used to restrict the access to records or fields to specific operators or not?
What is the use of using setid?
Passing parameters for an AE program from web.
How do we capture errors thrown by the system in AE.
Restart option if enabled how does it function in an AEprogram?Using the restart feature enables you to perform commits more often in a program. Restart reduces the overall impact on other users and processes while the background program is running, because it reduces the amount of rows that are locked by the program, allowing multiple instances of the program to run concurrently (parallel processing), which may be useful for high-volume solutions. Restart is essential for programs that primarily do set-based processing.
With restart, if a failure occurs at any point in the process, the user can restart the program and expect the program to behave in the following manner:
  • Ignore the steps that have already completed up to the last successful commit.
  • Begin processing at the next step after the last successful commit.
The ability for PeopleSoft Application Engine to“remember completed steps depends on a record called AERUNCONTROL, which is keyed by process instance.
When a program runs, each time PeopleSoft Application Engine issues a commit it also saves all of the information required for a program restart in the AERUNCONTROL record.
What are the characteristics, if we want to disable restart?
If program has one the following characteristics, you may want to disable restart:
  • It’s mainly row-by-row processing.
  • The overhead involved with PeopleSoft Application Engine performing a checkpoint during the program run is not desirable.
  • The program commits after N iterations of a looping construct within a step, and the Select statement driving the loop is composed in such a way that if the program terminated and then started again, it would ignore transactions that were already processed in the previous program run. In this sense, the program processes the restart internally, in that PeopleSoft Application Engine treats each start of a program as a fresh start, instead of restarting a previous instance.
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.
How do we Use Restart at the Section Level?
The section level property associated with restart is section type, which has the options Prepare Only and Critical Updates.
If a section is only preparing data, as in selecting it, populating temporary tables, or updating temporary tables, then set the section type to Prepare Only. However, if the section updates permanent application tables in the database, set the option to Critical Updates.
During runtime, when the system arrives at the first section set to Critical Updates, it sets the AE_CRITICAL_PHASE value in the AERUNCONTROL record to Y. Once set, the value of AE_CRITICAL_PHASE remains Y until the program completes successfully. When the program completes, the corresponding row in AERUNCONTROL is deleted. Therefore, a Prepare Only section following the Critical Updates section won’t reset the AE_CRITICAL_PHASE value to N.
If your program terminates, the user can check the AE_CRITICAL_PHASE value. If it’s Y. the user knows that the section that failed is critical and that the program should be restarted to ensure data integrity. If AE_CRITICAL_PHASE is N,restarting may not be necessary; however, as a general rule, you should restart even if AE_CRITICAL_PHASE is set to N.
How do we Use Restart at the Step Level?
In your programs Where clause of a Do Select action, you should include conditions that reduce the answer set returned from the Select statement.
For example,
SELECT RECNAME, FIELDNAME
FROM PS_AE_RECFIELD
ORDER BY RECNAME, FIELDNAME
If you ran this Select statement as part of a Do Select action with Restartable selected as the Do Select type, the system might process some of the rows twice after a restart. Also, if you have specified Reselect, the program could execute in an infinite loop, because there’s nothing to reduce the answer set. However, if you modified the Select statement to look more like the following, you could make it Restartable.
SELECT RECNAME, FIELDNAME
FROM PS_AE_RECFIELD
WHERE RECNAME > %Bind(RECNAME)
OR (RECNAME = %Bind(RECNAME) AND FIELDNAME > %Bind(FIELDNAME))
ORDER BY RECNAME, FIELDNAME
A Do Select action that has been coded for Restartable can be converted to Select/Fetch, but the opposite is not true.
Message creation process in Peoplesoft.

In an AE when running in batch mode program how to share the value?

A) Using state records

Is Encapsulation possible in AE?

Yes
How to insert and update rows into a record using Application Engine and Component Interface?
There are many ways to Insert and Update rows into a record either using Application Engine or Component Interface.
In Application Engine programme, using peopelecode we can create a stand-alone rowset with the record to be updated.
Fill the rowset using rowset.fill method. Manipulate the data and use record.Save() method.
In Component Interfaces, if the record is in the C.I buffer and is populated in the buffer, the C.I Save method will Update or Insert the data in the record.
What is the Mandatory property of App.engine?
1. Main is the required section in Application Engine.

2. There can be multiple steps in single application engine, but atleast one step should be part of AE.

3. Similarly you can have multiple actions in AE but you should have minimum 1 action part of step.

4. Save as AE

What is the use of temporary records and state record in application engine?

Temp Tables:
They are used to store the immediate values during the processing of the AE.
They help in batch processing by creating multiple instances and there by facilitating parallel processing.
If used properly they can greatly improve the performance.
State Records:
They are used to pass on values from one section/step/prog to the other.
There can be a max of 200 state rec that can be used in a single AE but only one of them can be default.state record name must end with _AET.
Scope of the state record is limited to the application engine Program only.
It can be physical or derived work record. Physical record can be used when you have a restart logic and when you have disables the restart logic derived and work record can be used.
The naming convention is, it must end with _AET identifier and process instance should be the one and the only key for the state record, so that application will identify the record as a state record.
PeopleCode events used in AppEngine
We can use the on-execute event. Sometimes we can use the saveprechange event also.
What is state record?
Ans: This is used to pass values between, Sections, Steps and Actions.
What are the meta-sqls used in state record?
Ans: %BIND, %SELECT & %SELECTINIT.

What type of records used in state record?

Ans: Derived/ Work Record & SQL Table.
What are the Doselect, Dowhile & Dountil?
Ans:
What is set processing?
Ans: Performing Data Processing as a Sets of Data and at the Database level is called ‘Set Processing’.
What is restart facility? Where do you set this?
Ans: This is set at the Application Engine Advance Properties.
What is parellel processing?
Ans: Dividing the retrieved data to different temp tables based on some criteria’s.
How can we overcome from deadlocks in Application Engine?
Ans: locking the temp table before processing data and unlocking the temp table after
Process data.

How are Abnormal Terminations controlled?

A controlled abnormal termination (sometimes called an abend) means that Application Engine exits gracefully because of a calculated error condition. Some examples of controlled abends are:
  • SQL errors while you have set On Error toAbort.
  • A PeopleCode return value, when On Return is set to Abort.
  • A SQL statement that affects no rows, when you have set On No Rows to Abort.
In these situations (when PeopleSoft Application Engine is in control) the Run Status field in Process Monitor reads Error.

How can we Restart an Application Engine Programs?

There are two ways to restart an Application Engine program:
  • From the command line.
Collect the command line values associated with the failed program.
Enter the following command line syntax at the command prompt substituting
the values from the previous step.
PSAE.EXE −CT DB_TYPE -CD DB_NAME -CO OPRID -CP PASSWORD -R RUN_CONTROL -AI PROGRAM_NAME -IPROCESS_INSTANCE
  • From a process request page.
You can restart programs from a process request page only for those programs that run on the server.
  1. Open PeopleSoft Process Scheduler by selecting PeopleTools, Process Scheduler, System Process Requests.
  2. Locate the run control ID number of the program to restart.
  3. To display the details of the failed process, click the Process Detail link.
  4. On the Process Request Details page, select Restart Request, and click OK.
How many instances can we able to give in AE?
Ans: Maximum instances are 99.

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 free locked temporary tables?
We free locked temporary tables using the Manage Abends page:
  1. Select PeopleTools, Application Engine, Manage Abends.
  2. Identify the program that has the particular temporary tables locked.
  3. You can uniquely identify programs using the process instance, run control ID, program name, user ID, and run date and time columns.
  4. Click the Temp Tables link.
  5. On the Temporary Tables page, click the Release button to unlock the temporary tables associated with the program.
What is the difference between Temp Table instances (Online) and Temp Table
Instances (Total)?
What is the difference between %select and %selectinit?
Ans:If we tried %select and it returns no value then state record fields retain their previous value. If we tried with %selectinit and it returns no value then it reinitializes buffers.
What is the flow of actions in AE?
Ans: DoWhen--> DoWhile-->Doselect-->Peoplecode-->SQL-->Logmessage-->DoUntil
What is the difference between Reuse and Restart operation?
Ans: Reuse operation recompiles the SQL statements every time the loop executes.Restart operation is for select/fetch and it creates checkpoints wherever the program fails.
While I ran AE getting an error like “File data is not reading properly……” why this error is showing? And How to rectify it?
Ans:This error will occur because of problem on reading the file data.For this we use readrowset function. I think miscalling this fucntion in the inbound program.
Suppose by running AE we can able to insert 100 rows. But the requirement is user want to know which rows have been inserted and which rows haven’t been inserted. How to reach it?
Ans: We should use temporary tables. if the row passed successfully then insert into temporary table.
While I am running AE getting an error like “Processes are suspended…..” Why this error is coming and how to resolve the same?
Ans: a)If we used to run on same runcontrol id then we got this error.
b) If the peoplecode debugger is not enable then we got this error
In an AE when running in batch mode program how to share the value?
A) Using state records
Is Encapsulation possible in AE?
A) Yes
How to insert and update rows into a record using Application Engine and
Component Interface?
A) There are many ways to Insert and Update rows into a record either using Application Engine or Component Interface.
In Application Engine programme, using peopelecode we can create a stand-alone rowset with the record to be updated.
Fill the rowset using rowset.fill method. Manipulate the data and use record.Save() method.
In Component Interfaces, if the record is in the C.I buffer and is populated in the buffer, the C.I Save method will Update or Insert the data in the record.
Does PeopleSoft A.E write the timings trace?
Ans: Yes
What is the difference in using SQL directly and calling SQL from Peoplecode in
Application Engine?
As we have the option AE and SQR to do interfaces why we use CI with AE?
Ans: Its easy to write Peoplecode in AE using CI and also the peoplecode enhancements
will also applicable to CI.
While I am running AE getting an error like “Processes are suspended…..” Why this
Error is coming and how to resolve the same?
How to pass run control parameters to AE?
While I ran AE getting an error like “File data is not reading properly……” why this
error is showing? And How to rectify it?
---------- is the required the section in AE Programs.
Application Engine Programs can be written without having the State Record. (True/False)—
-------------- Sections are allowed in the Application Engine Programs.
The key field in the State Record is --------------
Which are the primary methods to trigger Application Engine Programs?
A. Batch file
B. PeopleCode
C. Process Scheduler
D. from within Application Designer
E. COBOL
How do you run an online job or process in PeopleSoft?
You can run using a Run Control page, once you click the run button it will submit the job to Process Scheduler. to check the status of submitted job click on Process Monitor link.
What is the APP engine event in peoplecode?
A: Application engine peoplecode event is OnExecute.
What are the different actions in APP Engine?
A1: dowhen,dowhile,doselect,peoplecode,sql,call section,log message,do until.
A2: in addtion to the 8 listed above, there is an additionally action for AE programs that are marked as Transform programs and the action is XSLT
How many temporary records are there in app engine?
A1: Maximum we can use 99 Temp Tables in App Engine.
A2 : There Can be n number of Temporary tables, but App. engine. creates upto 99 instances for a single temporary table.
How do you debug your AE?
A1: 1. Go to configuration manager of 2 tier (App Designer). Then navigate thru Profile > Edit > Process Scheduler > Application Engine, check the Debug option.
2. Open the App Engine program needs to debug and click the traffic light, run program button.
3. Enter the run control id & debug the AE.
A2: 1)Peoplesoft>Peopletools>Process Schedule>process> Select Process Name
2)In the page select "Over Ride Options"
3)*Parameters List > Append > -Trace.
A3 : 1 .Open the Configuration Manager and click the ‘Profile’ tab. You will see a list of instances to choose.
2. You can double-click the instance or highlight the instance and click on the ‘Edit’ push button
3. Click on the Process Scheduler tab. You will see the ‘Debug’ checkbox in the upper right hand corner.
Why temporary records are needed?
A1: Temporary tables are basically used for the parellel processing and for better performance.
A2: Defines the record definition as a temporary table. Temporary images of the table can be created, specified by the PeopleTools Options Page. Temporary tables are used for running Application Engine batch processes. Temporary tables can store specific data to update without risking your main application table.
A3: Temp tables are mainly used for Parrellel processing. Also you take the data you want for manipulation into your Temp table, and you can play with that. Finally when you get the desired data, you can update the main tables.
A4: One important thing, when dealing with temp tables. When you use PeopleCode to call the app-engine, it runs synchronously and also it doesn't use any temporary table instances created for batch processing instead it uses the instances created for online processing which by default is 3.
A5: We use temp records for batch processing.This temp table can store specific data to update without risking our main application table.
A6 :temporary tables are used by PF_RESOLVER in EPM. The source data will be resolved based on the run time parameters and inserted into the temporary table instance based on the record suite ID.
A7 : AE programs run in batch mode so the multiple instances of the same program gets created and due to this the deadlock situation can come. To avoid this situation peoplesoft provides the concept of temp tables i.e. the data that needs to be updated by the AP program is stored in the temp tables. This avoids the situation where the programs fetches the row one by one, process it, and then send the updated data back. By creating temp tables you can store the data that is effected by business logic in the temp table and then you can perform the opertaions on it instead of the main table. Once the processing is completed you can send the data back to the main table.
A8 : Temporary table can be used in application engine programs to support parallel processing and better performence.
Why state records are needed?
A1: State Records are used to pass parameters and values between the various sections in an Application Engine. State record may be either SQL Table or a Derived Work record.
A2: state record is a method to allocate variable for yr app. engine programs, using state record we can pass values from one section to another.
A3: State records are used in Application engine development and customization. Basically they are used to pass the values (variables, database field) from from section to another section, from action to another action.Each application engine can have multiple state record but there will be only one default state record. It can be a SQL table or derived table. All state record ends with _AET.
A4: The use of State record beside just passing the parameters between different steps of AE, is to enable restart logic. The programmer can program AE by using state record, in such a way that it can be restarted from any point of AE. But to enable the restart, the state record should be physical table and not the derived/work record.
A5 : State record is used for providing the variables, database fields to different sections of the application engine. Scope of the state record is limited to the application engine program. AE can have multiple state records, but can have only one as a default state record.
It can be physical or derived work record. Physical record can be used when you have a restart logic and when you have disables the restart logic derived and work record can be used.
The naming convention is, it must end with _AET identifier and process instance should be the one and the only key for the state record, so that application will identify the record as a state record.
A6: The state records main use is passing values between sections. ONE of the other main resons is to hold the run time parameters passed from a run page as well when application engine is triggered from a run page as also run time pareameters passed from within a peoplecode ust before the app engine is called. THis does not mean the default state record holds only the exact number of fields on the run page. Example AE_EXISTS helps as flag and whoose value can be used for controlling the logic between the execution of SQLS between the sections of the application Engine.
A7: State records are created by app engine program developers. The state records are used to pass vaules from one action to aonther. State records can be considered as temporary storage for online processing.
%Bind is used to retrieve value from ate record.
%select is used to pass values to the state record.
Differences between State and temporary records?
A1: 1. State record at any point of time has only single line information, as it's driven by the Process_Instance a skey field. While temp table can have multiple rows.
2. State record had only single instance, while the temp table can have maximum of 99 instance.
3. State record is used for restart logic.
4. State record can be used for dynamically calling AE section, by adding AE_SECTION, AE_APPLID as fields. Temp table can not be used.
A2: In the above comment by Vaibhav, "State record is used for restart logic", Temp records can also be used for restart logic. That should not be counted as a diff. FYI.
Temp tables are used for set processing kind of things whereas state records for row processing.
A3: The Temp table data is available only for the duration of run. Hence when the program is aborted the data stored in Temp table is lost and you can not restart the program from that particular point. Hence the statement I used is correct that State record can only be used for re-start logic.
What is set processing and row processing?
also why is it said that once the process is aborted the temp table data gets lost? it s a table afterall and until the table is explicitly truncated, we can retrieve the values, right? what restart logic?
This is in addition to all the replies above -
If you create a sql table as State Record - data will be stored in the database. If at any point of time, App Engine programs stops, you can continue from that point on provided Restart is enabled. This is called the restart logic. With restart enabled, you don't have to run app. engine program all over again. For this to be true, state record cannot be a derived record. It has to be a sql table.
Temp. table is primarily used for set processing. If there are several users running the program at the same time, copies of tables are created in order to process in parallel. Temp. table lives only until the program runs and is dissolved immediately after.
A6: purpose of Temp record is different that is parallel processing not the restart logic. and it's right that state record can be used for restart logic because it have last row processed.
Different ways to run AE, SQR, (Command, process scheduler)?
A: command prompt, process schedular, online, manually from 2-tier.
A2:SQR:command line(sqrw.exe),process scheduler & peoplecode
AE: commandline(psae.exe),process scheduler,peoplecode-callappengine(aename,st-rec).
Difference between sql statements and metasql statements?
A: Insert, Select, Update, Insert.
Metasql - %InsertSelect, %Select, %Selectinit.
A2: SQL - INSERT,UPDATE,CREATE,DELETEMETASQL - %BIND,%EXECUTE EDITS,%SELECT,%SELECTINIT,%SQL,%TABLE,%TRUNCATE TABLE,%UPDATESTAS.
A3: can u specify the difference between sql and meta sql.
A4: SQL statements:
The SQl statements are used to fetch/retrieve, update, insert, delete data from the database. In PeopleSoft we use the sql stmts using sqlexec or createsql. Differnet sql statements are:
Select, Insert, Update, Delete.
Meta Sqls:
Differnet RDBMS have differne date and time formats. though the component processor takes care of the automatic convesion but at the time of using the sqlexec the automatic conversion does not take place. So in order to understand this the meta sql concept has come. Whcih we can use in diff sql stmts. for example %datetimein, %date, %time, %currentdatetime, %datetimeout etc.
%dateIn: This is used in the where caluse of "Select and update"
%dateout: This is used while selecting the data.
A5: SQL Statements are PLaform Dependent where as Meta-SQL statements are Platform Independent.
Name some app engines u worked on?
A1: I created a standard appengine program from scratch.
A2: Which populates employees table. I don't remember the exact name, it must be like PER016.
A3: the name of the ae program is per099. Which is used to refresh the employees. after creating the person from the workforce administration we have to run the refresh employees ae program, then the entries will be made in the database.
A4: AR_UPDATE(POSTING ITEMS, MAKING PAYMENTS)
AR_PREDICT(AUTOMATIC CHSH APPLICATION PROCESS)
AR_DRAFTS( USED IN DRAFT PROCESSING)
AUTO_MAINT (USED FO|R AUTOMATIC MAINTAINENCE)
THESE ARE SOME OF THE APP ENGINE PROGRAMS I DELT WITH WORKING WITH AR (Accounts Receivable) module.
What is the difference between dowhen and doselect?
A1 : Do When is something like IF statement. It is the first action in execution order. if the query written in the Do When action returns any rows then the subsequent actions will be executed.
In a simple way
DoWhen is a conditional action.
DoSelect is a looping action.
How many types of ways you can run an Application Engine program?
A1: We can run AE program in 5 ways;
1. Running from Application Designer.
2. By calling People Code function.
3. Running from DOS Environment (Debugging).
4. Running from Application Engine People Tool.
5. Running from People soft Application.
A2: 5 ways to run an AE: for end-uses: Process Scheduler for developers: Process Scheduler, PP Tools>AE, Dos Command Line, App Designer, called by PP Code.
A3: We can Run Application engine programs three ways
1. Two tier mode
2. Using Process scheduler
3. Command prompt
What is a state record?
A1: State record is a method by which u pass the values to u r application engine program..
A2: State record is temporary memory storage for AE program. It can be a record or a table
A3: A State Record is temporary record which is used in AE Programs, Which is used pass the values between one Section to another section.
A4: State Record is used to pass the values from sections to sections and Q183actions to actions. State record is not a temporary record; it can be Sql record or derived work record. Mainly sql record is used for restart of the application engine programme. It should have naming convention of _AET.
A5: The State record is used to pass variable information between the application engine sections
Why can’t the SQL and call Section Actions be present simultaneously in a single step?
A: If u use both call section and sql it gives the data base Traffic. Same time both will call d/b.
How to test an application engine program in 8.8?
A: One can test Application in two ways:
1. Running Application engine from 2-Tier
2. Running Application engine from 4-Tier.
1. Running Application Engine from 2-Tier: Open Application Designer, Then open desired Application engine. Then on top middle tool bar you can see 'Run Program button' click on to that button, give vales to parameter like Process Instance, Run Cntrl id etc and click. this will run application engine and generate a trace file to you local system. After completion of Application engine you can see if you got desired results or not.
2. Running Application engine from 4-Tier: Open 4-Tier link, Go to peopleTools-> Process Schedular -> Process, Add you Application engine process here, in 'Process Defination Options' give 'PRCSMULTI' in COMPONENT and 'TLSALL' in Process Group and then Save the page.
After defining Application engine, Go to peopleTools-> Process Schedular -> System Process Request, then add a RUN CONTROL ID, After adding run control id, click on the RUN button on the page, this will lead you to page where all the process will be listed, Select you process name (Application engine Name) and clik on ok. This will run you Application eingine.
How do you run an online job or process in PeopleSoft?
A. You can run using a Run Control page, once you click the run button it will submit the job to Process Scheduler. To check the status of submitted job click on Process Monitor link.
Two Program views of AE Program?
A1: Definition, Program flow
A2: PeopleSoft Application Designer enables you to display your program in the following two views:
Definition
Program Flow.
In Call Section – Action it is possible to leave the Program ID with blank Value in certain cases?
A: True
A2: The Answer is True, as many times you will call section from the same App Engine. In such scenario, the Program Id can be blank.
State Record can be Dynamic?
A: Yes, if you don't have restart enabled, state record can be dynamic.
People Soft allows multiple long fields per State Record?
A: False
Let us take a Temp Table TMP_TAO.?In People Tools options the following instance settings are done.Temp Table Instances (Total) : 5Temp Table Instances (Online): 4In AE1 App Engine Program the instance count to TMP_TAO is 3 In AE2 App Engine Program the instance count to TMP_TAO is 5.How many instances are created to TMP_TAO ?
A: 13
The physical, dedicated tables are locked at the time the Application Engine program is loaded into memory?
A: True
To launch an Application Engine program from another App Engine program, which one of the following is correct?
A: Call Section Action.
What are the differences between AE and SQR?
1. AE is very systematic as it is structured as Section, step and Action. While SQR is not systematic.
2. AE flow is easy to read and understand, while SQR is not that easy.
3. AE is easy to debug as you can do line by line debugging. With SQR, it’s not easily possible.
4. By using SQR, you can create and maintain different reports, which are not possible either AE's.
The main difference and advantage is when a people soft object are changed, APP engine will be updated automatically, while SQR should be done manually.
What are two program views in AE Program?
Definition and Program flow
What is the APP engine event in peoplecode.
Application engine peoplecode event is "OnExecute". Sometimes we can use the saveprechange event also.
Why temp records are needed?
Temporary tables are basically used for the parallel processing and for better performance
What is the Mandatory property of App.engine?
1. Main is the required section in Application Engine.
2. There can be multiple steps in single application engine, but atleast one step should be part of AE.
3. Similarly you can have multiple actions in AE but you should have minimum 1 action part of step.
4. Save as AE
How do you check the process status in peoplesoft?
A. Go to PeopleTools -> Process Scheduler -> Process Monitor.
Purpose of Application Engine?
Ans: 1.Backgroung SQL processing.
2. To pass data between Modules.
3. To pass data between Databases.
4. To populate Reporting tables using data in Transaction Tables.
5. For integration purpose.
6. Validation of data
7. Data Manipulations.
8. For Version Up gradation.
9. Archive Data .Etc….
Process instance no is stored in which table?
PSPRCSRQST
How will you read Data from the CSV file or Excel file and Upload it into the Database using AE Program?
Ans: Using File Layout Integration Tool.
PeopleSoft reserves ALL Message Sets (in Utilities, Message Catalog) up to which number?
10,000
19,999
30,000
40,000
50,000
What are the Tabs that you see in a Application Engine’s Program Properties?
(1). General (2). State Records (3). Advanced
(4). Section Filtering (5). Temp Tables
(a). 1, 2, 4, 5 & 3 (b). 1, 5, 2 & 4 (c). 1, 2, 5 & 3 (d). 1, 2, 3, 4 & 5
The Section Filtering menu options allow you to filter the current view so that you only see Sections and Steps based on specified criteria. This feature will typically be used in situations where you are developing Application Engine programs intended to run:
(a). in Multiple Markets (b). On Multiple Platforms
(c). with effective dated sections (d). All of the above
Which in of the following is correct regards to the usage of ReUse statement in App.Engine Programs:
(1). Don't use ReUse if you use %BIND variables to build parts of the SQL statement
(2). If you use STATIC option on the %BIND you can use ReUse.
(3). Don't use ReUse if you have %BIND variables in the field list of a SELECT
statement unless the value is constant.
(4). You can have Application Engine recompile a reused statement by using the %ClearCursor function.
(a). 1 & 3 only (b). 2 & 4 only (c). 1, 2 & 3 only (d). 2, 3 & 4 only (e). All 1, 2, 3 & 4
Which of the following is not true:
(a). Application Engine Definition is an Application Designer Object
(b). Application Engine Developers can take advantage of all the interface benefits that Application Designer offers.
(c). Multiple window support, which allows a developer to have multiple Application Engine programs open simultaneously.
(d). Change control support allows you to manage access to Application Engine objects by locking records.
(e). You can easily launch the PeopleCode Editor and the SQL Editor from within the Application Engine Designer interface, as needed.
(f). None of the above.
Difference between Interface, Report & Process?
Ans: Interface: This is used to interact with other system may be PS or Legacy System
Report: This has a user interaction to execute or generate.
Process: This is scheduled in Batch Server so there is no need for the user to especially run it. It automatically executes.
Ways to call AE programs (peoplecode,batch file,process scheduler,application designer.
Where can u see the status of the job report and details in secured way?
Process monitor
Where does one see the status of the process requested to be executed?
Process monitor
Which of the following menu options allows you to modify the Last Process Instance Number used within the system?
a) Process Scheduler, Use, Job Definitions
b) Process Scheduler, Use, Process Servers
c) Process Scheduler, Use, Process System
d) Process Scheduler, Use, Administration
e) Process Scheduler, Use, Process Definitions
Which process requests will run through the process scheduler server?
a) All processes submitted on the server
b) All SQR and COBOL processes ONLY
c) All processes submitted on the client
d) Application related processes ONLY (no PeopleTools processes)
e) All processes submitted on the client or server
Application engines are comprised of one or more steps and are quite similar, in construct, to other programming language constructs.
Referring to the above information, which one of the following has the equivalent construction of an application engine?
Choice 1
A SQL script
Choice 2
A database agent
Choice 3
A message agent
Choice 4
A SQR program
Choice 5
A COBOL paragraph
Where can you place Meta-SQL?
In a Derived/Work Table.
Advantages of Set Processing in AE Programs
  1. Improved Performance
  2. Minimized SQL Overhead
  3. Easy Maintenance
  4. Leveraging the RDBMS
  5. All of the above
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
  4. All of the above
  5. None of the above
Which user login must you use to log in to the Data Mover in Bootstrap mode?
  1. Security Administrator
  2. Peoplesoft Superuser
  3. Data Mover Superuser
  4. Database Superuser
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
1. What are the advantages of application engine over SQR?
Ans: 1. AE is very
it is not easily possible
3. And the main advantage is When peoplesoft changes systematic as it is structured with section, step and action. While SQR is not systematic.
2. AE is easy to debug as we can do it line by line. In SQRs are done AE is updated automatically, while SQR should be done manually.
2. How many types of Application Engine programs we have and what are those?
Ans : 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).
3. What is the Maximum limit of call section actions in Application Engine to call other sections?
Ans: 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 sections.
4. What is the use of Daemon Application Engine Program
Ans: 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.
5. How many types of actions we have in Application Engine. What are those?
Ans: There are 8 but we usually use 7 in an AE as SQL and Call Section cannot be used in a single step.
1. DO WHEN
2. DO WHILE
3. DO SELECT
4. PEOPLE CODE
5. SQL
6. CALL SECTION
7. LOG MESSAGE
8. DO UNTIL
<**************** Do i have to mention XSLT action also?************************>
6. Explain the following terms
• What is Application State Record?
• What is the use of state record?
• How to create the state record.
• Is there any mandatory fields in state record if so what are those fields?
Ans: A state record is a PeopleSoft record that must be created and maintained by the application engine developer. This record defines the fields an AE program uses to pass values from action to another.
An AE state record could be a physical/work record and any no of state records can be associated with an AE program. But physical state record must be keyed by process instance. And one these records will be default one.
7. which are the mutual excusive actions in AE, why?111111
Ans: 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.
8. How to perform the set-processing and row-by-row processing in Application Engine? Ans: 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.
9. What is the use of process instance Application Engine and where we are using this?
Ans: Process instance is the instance created by the process schedular 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
10. How to restart the application engine programs? Which table is used to restart application engine process?
Ans: 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.
sqr
1. Explain what is on-break in SQR with options and their use?
Ans: On-break is a very powerful SQR feature that will allow you to control what happens when values in a column break, or change. Specifically, you will use on-break to:
• Suppress duplicate values
• Produce subtotals
• Produce subheadings
• Control the flow of your SQR
Syntax: print {field} (a, b, c) on-break {print = change |
print = change/top-page |
print = always |
print = never}
before = procedure_name
after = procedure_name
save = $text_var
skiplines = nn
level = nn
2. What is the load look up concept in SQR?
Ans: A common function within an SQR program is to join tables in order to get the long description of some data code.
For instance, in a given table, you may have a COURSE or DEPT_ID but the corresponding description is in another table.
This situation requires the SQR program to retrieve subordinate data and can be done via a join, or by performing a procedure that performs a
separate SELECT from within the main SELECT statement. However, for large tables with large amounts of data, a table join can be a slow process.
There is a more efficient way of retrieving this data in SQR. You can use lookup tables to save static data in a dynamic structure providing you more
efficient data retrieval during the execution of an SQR program. Lookup tables are implemented in SQR programs using the load-lookup and lookup commands.
load-lookup
Example: load-lookup
name=EmployeeDetails
rows=12
table=PSJOB
key=EMPLID
return_value=NAME
where=DEPT=’’Company’’’
and (effective dating logic) … (this is the syntax we gve in set-up section)
lookup EmployeeDetails &EMPLID $NAME(this is how we call from a procedure)
3. How do you pass parameters among procedures, what is the alternative to do that?
Ans: We usually pass parameters from one procedure to another using variables prefixed by $ or # depending on the data type.
<******************************* I doubt even arrays ****************************************>
4. How do you control page breaks?
Ans: You can prevent page breaks within a record by following four simple rules:
1. Place ON-BREAK columns ahead of other columns in the select paragraph.
2. Place the lower-level ON-BREAK columns ahead of the higher-level ON-BREAK columns in the select paragraph.
3. Use the same line positions for all ON-BREAK columns.
4. Avoid using WRAP and ON-BREAK together on one column.
5. How do you influence report output to landscape or portrait
Ans: PeopleSoft has standardized the Setup section using SQC files references by the #include command. Examples
setup31.sqc Portrait mode
setup32.sqc Landscape mode
6. How you debug SQRs
Ans. 1. By displaying data when the query runs using show/display so that isolate problems areas by temporarily skipping the program that is not working.
Show is used to show any number of variables. Display is also speified for any variable, column or literal but it displays only one value.
2. SQR provides #debug command to make temporary changes to the code.
7. Explain Complier directives in SQR
Ans. Compiler directives are #IF, #ELSE, #END-IF, #IFDEF, #IFNDEF used before the substitution variables declared by #DEFINE.
1. #if: Compiles the commands followed by #if if the condition satisfies.
2. #else: compiles the commands followed by else if the #if condition doesn’t satisfy.
3. #end-if : Ends the #if.
4. #ifdef : Compliles the commands under #ifdef if the substitution variable is defined.
5. #ifndef : Compliles the commands under #ifdef if the substitution variable is not defined.
8. How many flat files can be opened through SQRs and what is the limitations in reading or write those files?
Ans. As many but the maximum number of files is 99.
9. What is a difference between Ask & Input command?
Ans. 1. Ask : Retrives values from compile time variables, and can be written in begin-setup section only. The retrieval can be either from userinput, command line, or from a file.
2. Input : Accept dat entered by the user into the variable specified.
10. How do we work on Effective dated rows on SQR?
Ans. We add the criteria in the sql command the effective date must be equal to current date.
EFFDT = (SELECT MAX(E.EFFDT) FROM PS_JOB A
WHERE A1.EMPLID = A.EMPLID
AND A1.EMPL-RCD = A.EMPL-RCD
AND A1.EFFDT <= DATENOW()
11. How to Refer Global variable in a local procedure through SQR?
Ans: <**********************not sure of ans **************************************>
12. How do you declare a local procedure and global procedures in SQR?
Ans: SQR procedures that contain variables that are visible throughout the program are called global procedures. These procedures can also directly reference any program variable.
In contrast, procedures that take arguments, such as the spell number procedure in this section’s check-printing sample program, are local procedures. In SQR for PeopleSoft, any procedure that takes arguments is automatically considered local.
13. What is the difference between Begin-Select & Begin-SQL?
Ans: 1. The Begin-SQL paragraph allows you to execute any non-select SQL statements (Insert, Update, Delete) DML
2. The Begin-Select paragraph is the heart of the SQR program.
example: begin-SELECT [DISTINCT]
COLUMN_NAME
[SQR commands]
FROM TABLE/VIEW
[WHERE…]
[Order by …]
end-SELECT
14. Can multiple columns be retrieved in Load-Lookup command in SQR?
Ans: <**************************** I wud like to know this ans**************************************>
15. How do you control the number of iterations or fetch records firing SQL statement in SQR?
Ans: By looping
16. What is a difference between EDIT & Format in SQR?
Ans: Edit is used to edit any data type and format is used to edit only date fields in input command.
17. How do you Execute SQR using Process Scheduler?
Ans: BEGIN-SELECT
FROM PS_
WHERE OPRID = $PRCS_OPRID
AND RUN_CNTL_ID = $PRCS_RUN_CNTL_ID
END-SELECT
18. Are SQR commands and variables case sensitive?
Ans: SQR commands and variables are not case sensitive.
19. Do SQR programs require a dot(.) sqr extension? Do SQR runtime files require a dot (.) sqt extension?
Ans: Yes a SQR needs to be saved as (.sqr) extension and runtime file need (.sqt).
20. How can I read invariable length delimited fields from a sequential file? An example format would look like this: field1|field2|field3|...
Ans: With the field separator as in above example "|" is the delimiter.
21. How can I insert a null value into a numeric field in the database?
Ans: By inserting zero ('0') into the field we can give null values to numeric field.
22. What does the SQR variable “#sql-count” holds?
Ans: #sql-count holds the count of rows that are affected by a begin-select paragraph(INSERT, UPDATE, or DELETE).
23. How do you reset the page number printed on a PAGE?
Ans:
24. For multiple reports is it compulsory to use command “declare layout”? Or can we create multiple reports without “declare layout”?

SHARE

peoplesoft

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment

Phaniraavi@gmail.com