Important Points and Interview questions in app Engine

Important Points and Interview questions in app Engine

App Engine

1.     PeopleSoft Application Engine is a PeopleTool designed to help you develop, test, and run background SQL processing programs. PeopleSoft Application Engine is the PeopleTool that you use to develop batch or online programs that perform high-volume, background processing against your data.
2.     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 contain a Mobile trigger. This is required because Oracle does not allow the reading of mutating tables in a row trigger. You should consider using this feature only when the INSERT SQL is called multiple times in the absence of intervening Commits
3.     Set processing is an SQL technique used to process groups, or 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 (whether it remains in the same table), you effectively eliminate the network round trip and database API overhead.
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.
4.     Unless you select the ReUse property for you SQL Action, %BIND fields are substituted with literal values in the SQL statement. This means that the database has to recompile the statement every time it is executed. However, selecting ReUse converts any %BIND fields into real bind variables (:1, :2, and so on), enabling Application Engine to compile the statement once, dedicate a cursor, and re-execute it with new data multiple times. This reduction in compile time can result in dramatic improvements to performance.
5.     One key feature of PeopleSoft Application Engine is its built-in checkpoint/restart capabilities. If there is an abnormal termination (abend) or failure on a step in the program, the end user can restart the request from the last successful checkpoint, or the step immediately preceding the step that failed. The end user restarts the program from the Process Request page.

The commit level you select plays a major role in how restart works in a program. Each time that PeopleSoft Application Engine issues a commit with restart enabled, it records the current state of the program. The recording of the current state that PeopleSoft Application Engine performs is referred to as a checkpoint.
 The ability for Application Engine to “remember” what steps have already completed and which steps have not depends on an important record called AERUNCONTROL—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.

6.     What the difference between %Select, %SelectInit & InsertSelect?
a.     %Select to fetch value
b.     %SelectInit if the SELECT returns no rows, %SelectInit reinitializes the buffers
c.     %InsertSelect will select & insert
7.     App engine Peoplecode functions?
a.     Meta SQL Functions:  %Bind, %Execute Edits, %Select, %SelectInit, %SQL, %Table, %TruncateTable, %UpdateStats
b.     Peoplecode Functions: CallAppEngine, CommitWork, GetAESection
8.     People Soft allows multiple long fields per State Record?  False
9.     Maximum number of Actions in a Step?
a.     There are 8 actions available. But we can use only 7 actions in 1 step. They are
b.     1.Sql (or) Call Section (We can use only one of this two)
c.     2.People Code 3.Log Message 4.Do Select 5.Do When 6.Do While 7.Do Until
10.  Two Program views of AE Program?
a.     Definition, Program flow
11.  State Record can be Dynamic Record?
a.     Yes, if you don't have restart enabled, state record can be dynamic.
12.  In Call Section – Action it is possible to leave the Program ID with blank Value in certain cases?
a.     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
13.  Meta-SQL where is it stored? Temp Table
14.  How many temporary records are there in app engine?
a.     There can be n number of Temporary tables, but App. engine. Creates up to 99 instances for a single temporary table
15.  Why state records are needed?
a.     State records are used in Application engine development and customization. Basically they are used to pass the values (variables, database field) from section to another section, from action to another action. Each application engine can have multiple state records but there will be only one default state record. It can be a SQL table or derived table. All state record ends with _AET.

16.  Why temporary records are needed?
a.     AE programs run in batch mode so the multiple instances of the same program get 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 affected by business logic in the temp table and then you can perform the operations on it instead of the main table. Once the processing is completed you can send the data back to the main table.
17.  Differences between State and temporary records?
a.     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 temp table can have multiple rows.
2. State record had only single instance, while the temp table can have maximum of 99 instances.
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 cannot be used.
18.  How do you debug your AE?
a.     Peoplesoft>Peopletools>Process Schedule>process> Select Process Name 
b.     In the page select "Over Ride Options"
c.     *Parameters List > Append > -Trace.
19.  Different ways to run AE, SQR?
a.     SQR: command line (sqrw.exe), process scheduler & peoplecode AE: commandline (psae.exe), process scheduler, peoplecode-callappengine (aename,st-rec)
20.   

People Soft Important Interview Questions

People Soft Important  Interview Questions

  1. How did you apply bundles?
a.     Use the PeopleSoft delivered Upgrade Assistant or Change Assistant for PT8.45 and above.
  1. How did you do your retrofitting for peoplecode, sql
a.     Say we are working on one version of peoplesoft and the same works well in other version, we simply compare the objects between them were necessary and make some minor changes (if any) and copy the same where there exists a problem. This minimizes time in fixing and helps bring consistency amongst various versions. This is how i retrofit if I encounter such an incident (problem or issues).
  1. How did you migrate from legacy?
a.     Identify the fields to be extracted from legacy
b.     Map the legacy fields to PeopleSoft fields. Create the new fields if needed
c.     Apply the business logics and get the legacy data to peoplesoft using PeopleSoft tools such as AE/CI
  1. What is left join, right join? (Learn all joins)
a.     Left Join: Merging the values of Table-A & Table-B of common fields between them & also other values of Left Table (Table-A). Right Join: Merging the values of Table-A & Table-B of common fields between them & also other values of Right Table (Table-B).
  1. People Soft allows multiple long fields per State Record?  False
  2. Maximum number of Actions in a Step?
a.     There are 8 actions available. But we can use only 7 actions in 1 step. They are
b.     1.Sql (or) Call Section (We can use only one of this two)
c.     2.People Code 3.Log Message 4.Do Select 5.Do When 6.Do While 7.Do Until
  1. PeopleCode variables (global, component, local, and parameter), method, and property names can now be up to characters long? Ans 1000
  2. Prompt table with no edit to no edit?
a.     User can enter values from prompt table b) user can enter values from prompt table and default value will be populated
  1. Changing Prompt Table with NO Edit to Prompt Table with Edit?
a.     Only selection of existing data is possible
  1. DoSave () can be called from one of the following events?
a.     FieldEdit, FieldChange, or MenuItemSelected PeopleCode.
  1. Two Program views of AE Program?
a.     Definition, Program flow
  1. State Record can be Dynamic Record?
a.     Yes, if you don't have restart enabled, state record can be dynamic.
  1. In Call Section – Action it is possible to leave the Program ID with blank Value in certain cases?
a.     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.
  1. PSWORKLIST record is used for workflow routing. It should contain minimum of?
a.     6 keys in Ascending orders BUSPROCNAME, ACTIVITYNAME, EVENTNAME, WORKLISTNAME, INSTANCEID, TRANSACTIONID
  1. Which one of the following PeopleCode debugging tools automatically converts values of any data type other than object into string values for viewing during debugging?  WinMessage  
  2.  What is the minimum number of objects an object group can consist of? 19
  3.  What is the logic used by Component Buffer? Depth First Algorithm 
a.     If scroll level zero of a page contains only controls associated with primary scroll record fields that are search keys or alternate search keys, then only the search key and alternate search key fieldsare in the component buffer, not the entire record. The values for the fields come from the keylist, and the record cannot run RowInit PeopleCode. If level zero contains at least one record field from the primary scroll record that is not a search key or alternate search key, then all the record fields from the primary scroll record are available in the buffer. Methods used: GetRecord, GetField, GetRow, GetRowset
  1.  Fit gap analysis implementation and upgrade?
a.     Fit gap analysis as the name says it is not a complete upgrade doc. to fit in the gap between the new and existing system from which we are going to migrate to the new system we run an compare and document in the changes that need to be performed in then new system.
  1. Meta-SQL where is it stored? Temp Table
  2. Where do you set PeopleCode trace?
a.     Configuration Manager and application server. We can also do this for app engine at Peopletools-process scheduler- processes (select the app engine name), options tab-choose append- write - value TRACE.
  1. What is PSCAMA (Peoplesoft Application messaging attribute)?
a.     PSCAMA contains fields common to all messages. The <PSCAMA> tag repeats for each row in each level of the <Transaction> section of the message. The sender can set PSCAMA fields to provide basic information about the message. For example, to indicate the message language or the type of transaction a row represents. When receiving a message, your PeopleCode should inspect the PSCAMA records for this information and respond accordingly.
  1. What is app messaging, where did you use?
a.     App Messaging is an integration tool that allows PeopleSoft to send and receive information in an XML format over a HTTP connection. It is used extensively to send information from a PeopleSoft system to another PeopleSoft system and to exchange data with external systems. 
  1. How many temporary records are there in app engine?
a.     There can be n number of Temporary tables, but App. engine. Creates up to 99 instances for a single temporary table
  1. Why state records are needed?
a.     State records are used in Application engine development and customization. Basically they are used to pass the values (variables, database field) from section to another section, from action to another action. Each application engine can have multiple state records but there will be only one default state record. It can be a SQL table or derived table. All state record ends with _AET.
  1. Different ways to run AE, SQR?
a.     SQR: command line (sqrw.exe), process scheduler & peoplecode AE: commandline (psae.exe), process scheduler, peoplecode-callappengine (aename,st-rec)
  1. What is component interface, where did you use?
a.     A component interface is a people tool to enable a peoplesoft component for synchronous access from another application (java, c, c++, xml).
  1. Why temporary records are needed?
a.     AE programs run in batch mode so the multiple instances of the same program get 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 affected by business logic in the temp table and then you can perform the operations on it instead of the main table. Once the processing is completed you can send the data back to the main table.
  1. Differences between State and temporary records?
a.     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 temp table can have multiple rows.
2. State record had only single instance, while the temp table can have maximum of 99 instances.
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 cannot be used.
  1. DDDAudit what is it?
a.     DDD Audit is a SQR used to find the inconsistencies between the data structures defined in Peopletools table against the underlying database.
b.     SYS Audit is an SQR used to compare the different people tools tables and find inconsistencies like orphaned objects ex. Peoplecode not attached to any record etc.,
  1. What is scroll select, etc?
a.     ScrollSelect function selects records from a table and loads them into the scroll buffer area of a page. In parent/Child relationships, ScrollSelect chooses all corresponding child rows and inserts them under the next higher-level row. The function requires the specification of the target scroll area, a source record from which to select rows and an optional SQL string. The parameters passed to ScrollSelect vary based on the scroll level at which the function is targeted.
b.     Level 1 ScrollSelect (1, RECORD.target_recname, RECORD.sel_recname);
c.     Level 2 ScrollSelect (2, RECORD.level1_recname, RECORD.target_recname, RECORD.sel_recname);
d.     Level3ScrollSelect (3, RECORD.level1_recname, RECORD.level2_recname, RECORD.target_recname, RECORD.sel_recname);
  1. How do you debug your AE?
a.     Peoplesoft>Peopletools>Process Schedule>process> Select Process Name 
b.     In the page select "Over Ride Options"
c.     *Parameters List > Append > -Trace.
  1. What happens if you don't specify a Search Record for a Component?
a.     The search record has to be specified else component definition cannot be saved. If the component design is such that no search record is needed to be specified then give the search record as "INSTALLATION". It directly loads the actual page without going to the search page with the information on the page referring to the user who is currently logged in to the Peoplesoft portal
  1. What are the think-time functions?
a.     Think time functions are DoModal, WinMessage, messagebox, DoCancel and Exec.... think time function are cannot write following events save prechange, rowselect, savepostchange, workflow.
  1. How to use a Dynamic prompt table? What we need to...
a.     In order to use a dynamic prompt table; the field that is going to have the dynamic prompt must point to a field in the DERIVED record. The prompt table can be dynamically assigned with the following code.
b.     If(condition) %derivedrecordfield.value=promttable1 else derivedrecordfield.value=promttable2 end-if;
  1. What is the difference between a Grid and a scroll?
a.     Scroll area is used to maintain parent child relationship we insert grid in low level scroll
b.     Example: assume we have 3 scroll levels in our page level1, level2 and level3 we insert grid in level 3
  1. How many Grids can we insert in a single component or page? 1
  2. Tell me about component Buffer?
a.     Component stores all page related information in one set of record buffers, organized by scroll level and then by page level. This component buffer consists of rows of buffer fields that hold data for the various records that are associated with page controls, including the primary records, related display records, derived work records, and translate table records.
  1. If there is same Component X in two different menus, menu1 and menu2 and if u want to assign a different Search record?
a.     Can be done from Menu Item Properties, where there an option of specifying search record which will have precedence over the one specified in the component properties
  1. What is the difference between component level peoplecode and record level peoplecode?
a.     Component and Record level PeopleCode are executed when the control is passed to the associated Component and Component containing the record respectively. Since a single record might be associated with several different Components, It is possible to trigger the same Record PeopleCode from several components while the component level code is associated with a unique component.
  1. What’s the advantage and disadvantage of SQLExec
a.     By using SQLExec function we can do the manipulation to the database. We can write insert, update, delete sql-commands. But drawback while selecting the data using sqlexec, it will return only one at a time. Another drawback, if the name of the records changed, then you have to make the changes in the code as the query will in the quotes inside sqlexec
  1. Is there any function existing in peoplecode, which stops the processing of whole component?
a.     Think-time functions suspend processing until the user has taken some action such as clicking a button in a message box or until an external process has run to completion (example some remote process)
b.     Following are Think time functions:
c.     DoCancel, DoModal, DoModalComponent, Exec (only when Synchronous) , File attach functions, Prompt, RemoteCall, WinMessage and WinMessageBox
  1. What is Component Processor?
a.     The Component Processor Controls the Peoplesoft Applications from Initial data retrieval through updating the database.
  1. While pressing Save Button how many times Save Pre Change and Save Post Change triggers and when does the commit occur?
a.     It depends on which level (record level, record field level or component level) you are placing you peoplecode. if you have people code in your save prechange event of the record level or record field level, then it will get executed for all the active rows of your scroll area. Similarly save post change. the commit will happen after each save prechange. To avoid this you have to write this in a component level. Then it will get executed only once
  1. The following are various steps that describe the peoplecode logic while implementing a Component Interface?
a.     1.Establish a user session, 2.Get the Component Interface, 3.populate the Create Keys, 4.Create an Instance of the CI, 5.pulate the required fields, 6. Save the CI
  1. The main attributes of a Component Interface (CI) are?
a.     Keys, Properties & Collections, Methods and Name
  1. Which one of the following are standard properties when a Component Interface (CI) is created?
a.     InteractiveMode, GetHistoryItems, and EditHistoryItems
  1. Which of the following can be mapped as Find Keys for a Component Interface?
a.     Search key and alternate search key
  1. If you are PS developer then in what scenarios Component Interface will have advantages over component?
a.     A component exposes your pages to peoplesoft only. Moreover it helps us to define common properties for a set of related pages.
b.     A component interface is a set of application programming interfaces (APIs) that you can use to access and modify PeopleSoft database information programmatically. PeopleSoft Component Interfaces expose a PeopleSoft component (a set of pages grouped for a business purpose) for synchronous access from another application (PeopleCode, Java, C/C++, or Component Object Model [COM]).
  1. How do we maintain Consistency between Components and CI?
a.     A CI is called in Save-prechange with Currently active component buffer data’s. The called CI gets saved successfully. But the component from which CI called gets errored in Save-postchange. How do we maintain consistency between two components?