Phani's Peoplesoft: PeopleSoft Payroll for North America - Payroll steps

PeopleSoft Payroll for North America - Payroll steps

Brief idea on PeopleSoft North American Payroll

Payroll for North America provides the tools to calculate Earnings, Taxes and Deductions, maintain balances and report Payroll data. It also provides you, how you want to group the workforce, when you want to pay them.

Payroll system enables you to calculate gross-to-net pay, Leave accruals, retroactive pay, and direct deposits.


PeopleSoft Payroll consists of below steps.

·         Setting up Foundation Tables (HR, Payroll)
·         Setting up Employees
·         Paysheet Creation
·         Pay Calculation
·         Pay Confirmation
·         Post to General Ledger, Pay Taxes, Pay Third Parties, Produce Reports


To Use PeopleSoft Payroll for North America we need set up the following components in PeopleSoft Human Resources:

HR Tables:

Installation Table
SETID Table
Business Unit
Company Table
Location Table
Department Table
Job Code Table

Payroll Process Tables:

The primary function of the payroll process tables is to allow to group employees together for payroll processing and to define how earnings are calculated. These tables will help to organize how a payroll will be processed

Form Table
Bank Table
Source bank Table
Paygroup Table
Special Accumulator Table
Earnings Table
Earnings Program Table
Shift Table
Deduction Subset Table
Deduction table
General Deduction Table
Company General Deduction Table
Federal/State Tax Tables
Local Tax Tables
Tax Location
Company State/Local Tax Table
Garnishments

Payroll Processing flow:

Payroll Process flowGood Explanation on PeopleSoft North American Payroll

Phani's Peoplesoft: Workflow Steps to Setup in People Soft workflow application

Phani's Peoplesoft: Workflow Steps to Setup in People Soft workflow application

Workflow Steps to Setup in People Soft workflow application


Steps to Setup Workflow in PeopleSoft

1. Designing a Workflow Application
– Analyze and document business requirements.
– Diagram the process flow.
– Document the workflow object attributes for business processes, activities, steps, events, and email and worklist routings.
2. Build Supporting Definitions
3. Create Workflow Maps
– Create the workflow maps comprising the steps, activities, and business processes required for your workflow as determined in step one.
4. Define Roles and Role Users
– Define the roles and the role users, including any Query roles, required for your workflow.
5. Define Worklist Records
– Create a record definition that will be used to store all of the application-specific information for the worklist.
6. Define the Workflow Objects
– This is the step in which you define the workflow application. You enter each of the objects onto a business process definition in Application Designer as determined in step one.
7. Define Event Triggers
– Define the business rule in PeopleCode on the triggering application record definition. Workflow programs are defined on a record definition for one of the tables that the component accesses. They contain the business rules used to decide whether to trigger the business event. The PeopleCode detects when a business rule has been triggered and determines the appropriate action.
8. Test
– Test your workflow, or use the workflow monitoring tools in Workflow Administrator to validate worklist routing results.

PeopleTools Basic Knowledge -Part 2

PeopleTools Basic Knowledge -Part 2

PeopleTools Basic Knowledge - 2


HTML


With Derived Records you can display an HTML object on a PeopleSoft page.
  1. Create a new HTML object and put your HTML code in the blank object screen.
  2. Create a Derived Record to store the HTML Field.
  3. Create a Page with an HTML Object area on the page.
  4. Set the HTML Object Properties.
  5. Set the Field Formula Property of the HTML Object.
  6. Add a page to a component.
  7. Add a component to a menu.
  8. Add a component to a portal.
  9. Configure Content Reference Administration.
  10. Add a component to a permission list.
  11. Register the Component, Menu, and the Permission List in the Registry Wizard.
  12. View your Hello World Page.
  • Unable to add a component to a permission list ? .... Try using public
Message Catalogs
PeopleSoft error messages are maintained by set number and are all stored in the Message Catalog.You add and maintain system messages using the Message Catalog page. PeopleSoft reserves all message set numbers up to 20,000. To add a message set:
  1. Go to PeopleTools | Utilities | Administration | Message Catalog, and on the search page click Add New Value.
  2. Enter the value of the new Message Set Number and click Add.
  3. Enter a Description, a Short Description, and a Message.
  4. Save.
To add a message to a Message Set:
  1. Open the Message Set.
  2. Click the plus sign button to add a new row.
Query Manager
The Query Manager gives you a useful GUI interface to create customized queries. You can create a nice end-user layer with trees to keep a tight handle on the security within the queries. Unless the record you are accessing in the Query is in the tree that you have the permission for, you will not be able to see the results of the query.
  • One of the main features of the Query Manager is that it will automatically join the Effective Date and Effective Sequence for you properly, so if you are new to PeopleSoft and having a hard time getting your queries properly written, use the Query Manager to help create the queries you need.
  • You also get the added advantage in your queries of running them and dropping the results into Excel. This is a nice feature: you can convert your ad hoc queries into queries in the Query Manager, give your customers access, and allow them to run them on demand and put the results into Excel.
  • Users can have the permission (depending on what the security administrator has given them) to save their queries, modify existing queries and save them under a different name, and delete queries.

PeopleTools Basics -Part I


Application Designer
Application Designer is an interactive and easy-to-use rapid application development tool. It provides an integrated development environment that allows you to work with several definitions stored in a Project container in one single work area. Application Designer is the main development environment for PeopleSoft.
Any object created is defined both in metadata and the database. The Object Definition and Object will not respond if PeopleSoft metadata repository and physical database object do not match. When building objects in PeopleSoft, you must always keep in mind that they have to be defined and removed from two places: the physical database level and the metadata repository.

PeopleCode
PeopleCode is the programming language delivered by PeopleSoft for the customization of the PeopleSoft Application.
There are two types of PeopleCode available to you as a Developer: PeopleSoft Component Interface PeopleCode, fired off by an object like a button on an event, andPeopleSoft Application Engine PeopleCode. It is important to understand that PeopleCode is the language that is written via the Application Designer interface. PeopleCode is a PeopleSoft proprietary language that is object-oriented.

SQR
Structured Query Report Writer is a PeopleSoft-delivered reporting tool(3rd Party Tool). SQR has a robust report-writing environment with complex procedural logic built in.
You can combine database retrieval and row processing. You can even embed PL/SQL in your reports and do complex database manipulation.

Application Engine
Application Engine is a batch processing tool.
Application Engine is different from regular batch programs in that it is not procedural. It focuses on set-based SQL logic and goes to a much deeper level of the underlying application definitions.
Note:
1) Why would Application Engine show up as part of Oracle Fusion?

a) Oracle doesn’t have a good tool for batch development.
b) Application Engine fits well within Oracle as it is a set-based tool.
2) SQR also has the advantage of being a little bit more independent of the applications.
3) SQR has zero understanding of the underlying applications that it’s working with. Trees, effective dating, setids, row-level security, related language records, etc. all have to be coded by hand when you’re writing SQR code
4) Aside from being a very PeopleSoft-specific tool, App Engine lacks any kind of built-in output capability.

Meta-SQL
“Meta-SQL” is a PeopleSoft extension of SQL that converts to correct SQL code.
Meta-SQL expands to platform-specific SQL substrings and then causes another function to be called, or substitutes a value. Meta-SQL constructs are used in functions that pass SQL strings, such as SQLExec.

Fusion Middleware Tools
Oracle Fusion Middleware is a comprehensive middleware family composed of SOA and middleware products. When used in conjunction with Oracle Fusion Middleware Enterprise Portal, PeopleTools is designed to serve as a point of access for all enterprise applications.

XML Publisher
XML Publisher, called BI Publisher in the Oracle Application world, handles the data formatting and output and has recently been integrated with PS/Query and PeopleCode, which makes it accessible from Application Engine. It’s not a big stretch to see how Application Engine could be enhanced to use BI Publisher natively as an output tool and effectively get rid of the need to use SQR at all.

Oracle Business Intelligence Publisher (BI Publisher, formerly XML Publisher) is an enterprise reporting solution to author, manage, and deliver all types of highly formatted documents eliminating the need for costly point solutions. Built on open standards, IT staff and developers can create data models against practically any data source and use BI Publisher APIs to build custom applications leveraging existing data sources and infrastructure. End users can easily design report layouts using familiar desktop tools, dramatically reducing the time and cost needed to develop and maintain reports. Extremely efficient and highly scalable, BI Publisher can generate tens of thousands of documents per hour with minimal impact to transactional systems. Reports can be viewed online or scheduled for delivery to a wide range of destinations.

Definitions in PeopleSoft Application Designer
In the Application Designer you will define the metadata definition as well as allow the tool to build the SQL that can be submitted to your DBA to build the physical database object. Always
be cognizant that the two objects must match in every aspect: size, type, decimal places, and format. If they do not match in every aspect, you will receive an unknown object definition error via the PeopleSoft PIA.

Fields
Fields are the lowest-level definition in PeopleSoft. Fields have the following attributes:
  • Type
  • Length
  • Decimal places (if a number type)
  • Translation values (optional)
  • Long name
  • Short name
  • Format
Available field types include
  • Character
  • Long Character
  • Number
  • Signed Number
  • Date
  • Time
  • Datetime
  • Image
  • ImageReference
  • Attachment
    1) The attributes for fields are stored in the database table PSDBFIELD, which is a metadata catalog table that is populated when a field is created or changed in the PeopleSoft System
    2) The catalog table PSDBFIELDLANG stores the long and short descriptions in multiple languages.
    3) To see fields that are used in Record definitions, look at the catalog table PSRECFIELD.

    Records
    • A collection of fields is a record definition.
    • A record can be a table (SQL table or Temporary table), view, subrecord, derived work record, query view, or dynamic view.
    • Tables and views would exist in both the PeopleSoft metadata and the physical database; the other types of records are only available via the PeopleSoft metadata.
    • Record definitions are stored in the metadata catalog table PSRECDEFN which stores the attributes for the records. It holds the properties of the record definition.These properties are of three types: General Properties, Type Properties, and Use Properties.
    • General Properties of a Record have the following attributes: Description, Record Definition, Owner ID, Last Updated Date/Time and Last Updated By User.
    • Type Properties of a Record have the following attributes: Record Type and Non-Standard SQL Table Name.
    • Use Properties of a Record have the following attributes: Set Control Field, Record Relationships(Parent Record, Related Language Record, Query Security Record, Optimization Delete Record), Record Audit, Audit Options(Add, Change, Selective, Delete) and Record-Level Auto-Update(System ID Field, Timestamp Field)
    • PSRECDEFN holds table space name in the SQL Table definition. Each record that is a SQL table and was delivered by PeopleSoft is stored with a prefix of PS_; a table that is created in PeopleTools will be named with the PS_ convention except when the name is defined in the Non-Standard SQL Table Name field in the configuration.
    • Set Control Field is the property that is used in a multi-company environment to share records across company databases. In order to do this, PeopleSoft delivered SETID field needs to be defined as the first field in the record definition as a Search Key.
    • Parent Record: Parent/Child definitions and relationships help create automatic joins for use in the PeopleSoft Query Tool,
    • Related Language Record setting is used in the case of multilingual application, and this setting brings that functionality down to the record level.
    • Query Security Record setting is available for PeopleSoft Query. This setting will provide row-level security for the record definition.
    • Record Audit: The audit flag if turned on in the record definition will record all inserts, updates, and deletes in an audit table. PeopleSoft will create a trigger at the database level that will write these transactions off to a table. This will allow you as the developer to know who updated, deleted, and/or added records as well as when (time and date) that was done.
    • Record Field Properties: PSRECFIELD stores the fields that are contained in the record definition. Within the PSRECFIELD table is a column USEEDIT, a 32-bit integer field. The following shows the basic settings:
    • Translate Values: Translate tables allow you to create prompt tables or list boxes that have predefined values for your users to choose from. This will make data entry quicker and more accurate. The rules for the data that you need to follow when creating a translate table are as follows:follows:
      a) Field type is Character.
      b) Field length is 1 to 4 characters.
      c) Field values consist of a relatively small, static set of values that are not maintained by the user.
      d) No other fields relate to this field.
    • Derived Work Record is primarily used to store temporary data, data that
      do not need to be reused. One of the main functionality of a Derived Work Record is to store totals.
       Another common use is for buttons, messages, and temporary fields. Derived Work records are only available during your session with the page and are reset anytime the page is re-entered.
    • Subrecord Is used for SubPages and creates the one-to-many relationship.
    • Dynamic View Are views that are recreated dynamically with each use.
    • Query View Are used to define the record as a view using the PeopleSoft Query Tool.
    • Temporary tables Are used for running PeopleSoft Application Engine batch processes.
    Pages
    The main graphical representation of the data on the web via the PeopleSoft application is through a page. Pages represent the data in your tables; they display the fields, columns, and rows in the database. They are used to view, update, and enter data in the application database.
    • One of the important elements in your page creation is to determine the mode in which you wish to handle the processing of the data back to the server(App Server -> DB Server). There are two choices for processing modes:Deferred mode and Interactive mode.
    • Most of the PeopleSoft-delivered components run in deferred processing mode; this mode reduces the need for the application to have increased interaction with the server and reduces the number of calls, leading to increased performance. Each trip to the server will refresh the browser page, and too much interaction can lead to screen flicker and slowing down the application.
    • If a component is using deferred-processing mode, pages and fields within that component can be made interactive on an individual basis (by unticking the "Allow Deferred processing" box). However, if a component is interactive, then all pages and fields on that component are interactive as well.
    • The page action options are directly related to the actions you can perform on data. The available options are limited to the type of data row that you are trying to retrieve, modify, insert, or update. The rules that are directly linked to effective date are Include History and Correct History actions.
    • PeopleSoft pages have three essential types of elements that you can use to design your pages: basic aesthetic elements, for example, lines and pictures; functional elements, which include buttons and links; and data-entry elements, including check boxes and radio buttons. The following are the common elements used in a PeopleSoft page.
      ■ Frames Allow you as a Developer to draw a frame around a set of elements and create a group from them. These are display-only boxes that create a grouping of fields on a page.
      ■ Group boxes Similar to frames, but they allow for text labels. They group and identify related fields.
      ■ Horizontal rules Horizontal lines that are display only.
      ■ Images Unchanging graphics on your page; an example would be your Company logo.
      ■ Text Static text that is unchanging and can give a set of instructions on a page.
      ■ Check boxes These directly correspond to the capturing of data entry for an on/off, yes/no field. A check box has only two options.
      ■ Radio buttons Similar to check boxes but allow for a set of options to be chosen in the collection of data entry.
      ■ Buttons A button can perform a number of actions, calculate a value, and refresh the fields on the page, open a new page, and help with navigation in the application. Buttons are very dynamic and can be coded to do a variety of actions and navigations.
      ■ Links Can redirect the navigation to a new site outside or inside of PeopleSoft.
      ■ Edit boxes Allow for data entry. They directly correlate to the field in the database; any limits on type and size are defined by the field. Edit boxes with spell check enabled will display a spell check button.
      ■ Long edit boxes Are the same as edit boxes, but they allow for the data entry of longer character strings.
      ■ Drop-down list boxes Allow for the selection of a data item for entry from a predefined list.
      ■ Grids Grids are spreadsheets on the PeopleSoft page; they allow for the display of one to many relationships on PeopleSoft pages.
      ■ Scroll areas These are similar to grids, but the data is displayed in a free-form manner—not in a spreadsheet-type display. Both grids and scroll areas allow for the sharing for key data into each new row that is created. These keys become important in the creation of scroll levels in the component and can cause problems with sharing of data between multiple levels.
    Components
    A component is derived from several pages and defines the way that the page will behave in the Internet browser. It is also where you define the pages that display as tabs across the top of the page. The component is based on the page and the properties that define the way that the page will be displayed in the browser.

    Menus
    Menu Name needs to be created in Application Designer and PeopleTools->Portal->Structure and Content are used to create a Menu.

    Roles and Permission Lists
    Permission and security are tied to the page through the component and menu. Menu
    under the Page tab is defined in the Permission List object. A role is defined as one or more permission lists, and a permission list is defined as access to one or more pages via the component.

    Inserting the data into 3 levels (0,1,2,3 levels) into database from flat file using Application Engine

    Inserting the data into 3 levels (0,1,2,3 levels) into database from flat file using Application Engine
    Inserting the data into 3 levels (0,1,2,3 levels) into database from flat file using Application Engine Below is the sample code (Ive used 2 fields in all the 3 levels)

    Level0 -> Organisational ID, Organisational Name
    Level1 -> College ID, College Name
    Level2 -> Department ID, Department Name
    Level3 -> Employee ID, Employee Name, Age


    Local Record &R0, &R1, &R2, &R3;

    &R0 = CreateRecord(Record.A_ORG_TBL);
    &R1 = CreateRecord(Record.A_COL_TBL);
    &R2 = CreateRecord(Record.A_DEPT_TBL);
    &R3 = CreateRecord(Record.A_EMPL_TBL);

    &myfile = GetFile("C:\temp\phani.txt", "R", %FilePath_Absolute);
    &myfile1 = GetFile("C:\temp\pha.txt", "W", "A", %FilePath_Absolute);
    &myfile1.writeline("empty array creation");
    &myarray = CreateArrayRept("", 0);

    If &myfile.Isopen Then
       While &myfile.Readline(&str);
          &myfile1.WRITELINE("FILE OPENED");
          &myfile1.WRITELINE("string value is " | &str);
          &myarray = Split(&str, ",");
         
          SQLExec("SELECT A_ORGID FROM PS_A_ORG_TBL WHERE A_ORGID = :1", &myarray [1], &ORGID);
          &myfile1.WRITELINE("array value of orgid is " | &ORGID);
          &myfile1.WRITELINE(" A_ORGID VALUE IS " | &ORGID);
         
         
          SQLExec("SELECT A_ORGID,A_COLID FROM PS_A_COL_TBL WHERE A_ORGID = :1", &myarray [1], &ORGID1, &COLID1);
          SQLExec("SELECT A_ORGID,A_COLID,A_DEPTID FROM PS_A_DEPT_TBL WHERE A_ORGID = :1", &myarray [1], &ORGID2, &COLID2, &DEPTID);
          SQLExec("SELECT A_ORGID,A_COLID,A_DEPTID FROM PS_A_DEPT_TBL WHERE A_ORGID = :1", &myarray [1], &ORGID2, &COLID2, &DEPTID);
          SQLExec("SELECT A_ORGID,A_COLID,A_DEPTID,A_EMPLID FROM PS_A_EMPL_TBL WHERE A_ORGID = :1", &myarray [1], &ORGID3, &COLID3, &DEPTID3, &EID3);
         
          If &myarray [1] = &ORGID Then
             &R1.A_ORGID.Value = &myarray [1];
             &R1.A_COLID.Value = &myarray [2];
             &R1.A_COLNAME.Value = &myarray [3];
             &R1.Insert();
             &myfile1.WRITELINE("values inserted at level 1 ");
             rem End-If;
             rem SQLExec("SELECT A_ORGID,A_COLID,A_DEPTID FROM PS_A_DEPT_TBL WHERE A_ORGID = :1", &myarray [1], &ORGID2, &COLID2, &DEPTID);
          Else
             &R0.A_ORGID.Value = &myarray [1];
             &R0.A_ORGNAME.Value = &myarray [2];
             &R0.Insert();
             &myfile1.WRITELINE("values inserted at level 0 ");
          End-If;
         
          If &myarray [1] = &ORGID1 And
                &myarray [2] = &COLID1 Then
            
             &R2.A_ORGID.Value = &myarray [1];
             &R2.A_COLID.Value = &myarray [2];
             &R2.A_DEPTID.Value = &myarray [3];
             &R2.A_DEPTNAME.Value = &myarray [4];
             &R2.Insert();
             &myfile1.WRITELINE("values inserted at level 2 ");


          End-If;
          If &myarray [1] = &ORGID2 And
                &myarray [2] = &COLID2 And
                &myarray [3] = &DEPTID Then
             &R3.A_ORGID.Value = &myarray [1];
             &R3.A_COLID.Value = &myarray [2];
             &R3.A_DEPTID.Value = &myarray [3];
             &R3.A_EMPLID.Value = &myarray [4];
             &R3.A_EMPNAME.Value = &myarray [5];
             &R3.A_EMPLAGE.Value = &myarray [6];
             &R3.Insert();
             &myfile1.WRITELINE("values inserted at level 3 ");
            
          End-If;
         
         
       End-While;
      
       &myfile.Close();
       &myfile1.Close();
    End-If;

    Date display format on Page

    Date display format on Page
    In Order to change the date format through Personalization, please follow the steps given below:

    1. Navigate, Root > People Tools > Personalization > Personalization Options > Search

    Here, you will get the option for the different application for which you want to change the Date Format or you can also choose PPTL (People Tools) which change the Date Format in the Tools itself. Select, PPTL.

    2. Now, you can see there is a Definition---> DFRMT, for the Date Format.

    3. On the Top of this page and beside the Definition Tab, you will find the Format Tab, just click on this Tab.

    4. Now, click on the "Set Option Default Value".

    5. Change the Option Default Value as per your requirement MMDDYY and click OK.

    6. Save the changes.

    ========================================
    ========================================

    If you want to change the Date Format for a Specific User on specific page then you can also do this through People Coding.

    You can also play with the below code with the help of %oprid, like if %oprid then the below code or w.r.t roles through "IsUserInRole" function.

    There is one built-in function "DateTimeToLocalizedString". You can use this if you want to change the date format through people code for your PIA pages.

    How to use:

    Example 1:
    &String = DateTimeToLocalizedString(&Date, "M/d/y");
    /* if you are picking the date from any record field and using &Date for that field */

    Example 2:
    &String = DateTimeToLocalizedString(%Date, "M/d/y");
    /* if you want to pick the system date and want to use it on your page with different formats. */

    -- Assign this String variable (&String) to your desired field.

    Note: Here 'd' for date and 'y' for year both must be in smaller letters only. And, 'M' for months should be in Caps.

    Appl Engine Interview Questions

    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”?