Search This Blog

Friday, September 18, 2009

PeopleSoft Generic Questions

Define People Tools?
A Collection of software programs, utility scripts and (reports, messages, Cobol SQL statements, database tables and data that provide the frame work for creating, using and modifying people soft applications. People tools provide built in business functionally and maintains the capability that directly increase productivity and simplify system design.

What does Application Designer mean?
It is an integrated development environment that is used to develop People soft applications.

Functionality of Application Designer?
The following are the uses of Application Designer.
1. Design and create database tables.
2. Design on-line panels
3. Controlling on-line processing flow.
4. Create application windows and menus
5. Providing security for the database.

Difference between Two-tier and Three-tier architecture?
Incase of three-tier architecture an application server is connected between the database server (Back end) and the client (front end).
Incase of two-tier architecture the server is directly connected to the client.

Advantages of three-tier architecture?
The advantages of three-tier configuration are…
1. Reduce the LAN traffic.
2. Built-in functionality
3. Increase the productivity.
4. No SQL at the client level.
5. Improved performance over WAN.
6. Increased Scalability. (regardless of the number of users connected you can maintain constant performance level)

What is MDI?
Multiple Document Interface – having an option to open multiple windows at the same time. But only one window can be activated at a time

What is Morphing?
The Application designer uses an approach of morphing, or dynamically transforming the menus and toolbars to edit the definition in the active window.

How is data stored, retrieved, manipulated and processed in People soft applications?
People soft is a table-based system. A database for a people tools application contains three major sets of tables…
1. System catalog tables; it stores physical attributes of tables and views. (e.g. Sys, Columns, Sys tables)
2. People Tools tables; it contains information that you define using People Tools (e.g.
3. Application Data Tables; Store the actual data users enter and access through People Soft application windows and panels. (E.g. PS_ <>)

What is SQL Talk?
SQL Talk is an interface to Peoplesoft database.

How many types of RDBMS support Peoplesoft?
The following are the list of RDBMS supporting Peoplesoft application..
1. DB2 2. DB2/AS400 3. DB2/MVS 4. SQL Base 5.Oracle 6. MSSQI.Server 7. Informix

What are the various Field attributes?
The commons filed attributes are:
1. Data type 2. Field name 3. Long name 4. Short name 5. Formatting 6. Help context number 7. Translate values – stored in separate table (XLATTABLE).

Define Field properties?
Fields are
1.Globally defined
2.Reusable components and can be shared across multiple record definitions
3.A change to the Field properties affects all the records that include the field.

. Explain briefly about record properties?
KEY: the record knows a field, which uniquely identifies each row, as a key.
1. According, to the key field, we will search and retrieve data from the database.
2. This will not allow duplicate and not null values.
3. It is a primary key
4. It allows multiple keys
5. Maximum keys allowed in a record is 15
6. It should be placed at the top of the record definition.

Duplicate Order Key:

1. It provides a way of ordering data in the table when the duplicate values are allowed.
2. It will create index for the column. However the index can be disabled.

Alternate Search key:

1. It identifies the field as a key that provides an alternative path into table data.
2. Due to alternate search key the system becomes slow, because database index will be created when SQL creates the tables, so it will consume the disk space.
3. It allows duplicate values.
4. Alternate search will be seen in the search dialog box when update/display mode is selected.

Descending order key:
It is used to retrieve data in the form of 3-2-1 or C-B-A and normally it is
used in Effective date.

What is ordering key?
The following way we have to arrange the fields
1. Field with primary key and search box.
2. Field with primary key
3. Field with duplicate order key.

Define Scroll? How many types of scrolls are there?
A Scroll is used to enter multiple rows and retrieve multiple row data. There are two types of scrolls:

Nested scrolls – For each repeating data and for each entry with other set of repeating set of data is called a nested scroll. Maximum 3 nested levels are allowed. The nested scrolls share same high-level keys.
2. Independent scrolls – At each scroll level a maximum of 15 screen be included.

Define Occurs Level?
Occurs level specifies the level of a scroll bar relative to any other scroll bars on a panel. The following are the occurs level at each nested scroll bar.
The primary scroll bar in a set of nested scroll bars has an occur level 1 A Secondary scroll bar has an occurs level of 2, which means it is subordinate to scroll bar 1.The third scroll bar has an occurs level of 3, which means it is subordinate to scroll bar 2.

What are the types of controls that can be placed on the panel?
There are three types of controls:
1. Aesthetic Control: It is used to organize the information on the panel and it is not associated with the database. There are 4 types of aesthetic contents. A) Text B)Frame C) Group box D) Static image.
2. Data entry control: It is used to offer different way to enter and maintain the information. There are 7 types of Data entry controls. A) Edit box B) Drop down list box C) Long edit box D) Check box E) Radio button F) Sub-panel image.
3. Function and data processing control: It adds command and maintains level of information on the command. There are 6 types of data processing controls
A) Command push button B) Process push button C) Secondary panel D)Scroll bar E) Grid control F) Tree.

Define Sub-panel and Secondary panel?
Sub-panel : It is a predefined, preside group control, which will appear in more than one panel. (Utility: if you have group of controls, such as address coasts, which you use on multiple panel definition, you can save those panel control groups on sub- panel)
Secondary Panel: An invisible control that associates a secondary panel with a primary panel. (Utility: Secondary panels are used to gather or display supplemental information related to the object that appears in a primary panel)

Explain about display control field and related display control field?
Display control field: It is controlling the field in some other record.
Related control field: display control field controls it.

What is panel group? Explain in brief about panel group?
Panel group is the bridge between panel and menu. A panel group is a set of panels
That should be processed as if it is one panel. The panel group represents a complete business transaction because all the Information goes together. The group must be stored in the database as a single Unit of work. At runtime, we are opening and saving panel group not individual Panels.

Define a Menu? How many types of Menus exist?
Menus are used to navigate the application (Menu is a window to the application)
There are two types of menus:

1. Standard menu: It appears in the menu bar of a Peoplesoft application.
2. Popup menu: Allows the user to navigate related information in other areas of application by right clicking on a panel or panel control.

How many types of securities are available in People soft?
There are 6 types of securities:
1. RDBMS Security 2. Network security 3.Operator security 4. Object security 5.Tree level security 6. Query security (row level security)

Application Engine

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 not be required 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
%PROCESS_INSTANCE is more efficient and faster.

How do you execute Application Engine through Push Button?
1) CreateProcessRequest () , Schedule ()
2) CallAppEngine.
6) What is the syntax for CallAppEngine?
CallAppEngine (applid [, state record]);

What are the 3 trace parameters you can pass to your psae.exe?
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 parameter determines what type of data is recorded in your trace files (s).

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: Standard 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 XSLT Transform programs.

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

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.

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
9) Do until

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)

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

What are the important steps for implementing the parallel processing?
Define you Temporary Tables.
Set the Temporary Tables Online pool.
Assign Temporary Tables to your Application Engine program in it program.
Set Temporary Table Batch Pool – Instance count in the AE.
Build / Rebuild your Temporary Table record.
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 parameters 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 are the 3 common ways to pass a trace parameter and value to your program psae.exe?
Configuration manager, Process Definition, Command prompt.

What is the main purpose of the Access property in the Section?
Basically they have two option, 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 callsection.

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) Restart able

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 tabel instances in AE.

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.

Component Interface

What are the main elements in the component Interface ?
Main elements of component Interface
• Component interface name
• Keys
• Properties and collections
• Methods

Difference between Get keys, find keys and Create Keys ?
Get keys: - These are mapped to the fields marked as scrh in the component's search record. Automatically "Search key" fields in search record become Get keys.
We cannot change it.

Find keys: - These are mapped to fields marked as Alt or Srch in the component search record. You may remove Find keys that you do not wish to make available for searching.
Create Keys: - It is generated from the key fields for the search record. If Add search record is present then its key fields are taken. We cannot change it.

How do you provide security for the component interface?
• Open the Permission list
• On the Component Interface tab
• Add row and select the newly created Component Interface
• Edit the permissions to give permission for the standard methods
• Get, Create, Save, cancel, find.

What the steps that you need to do in people code to invoke Component Interface?
• Establish a user section
• Get the component interface definition
• Populate the create keys
• Create an instance of the component interface
• Populate the required fields
• Save the component Interface.

&Session = GetSession();
&CI = &Session.GetcompIntfc(CompIntfc.INTERFACE_NAME)
If not &CI.Create () Then

Populate other fields

Populate the other fields

If not &CI.Save () Then

How do you test Component Interface?
• Using the Component Interface tester
• Give values in the tester for options
• Get Existing, Create new, Find and perform the operation from the CI Tester

Catching error message in the component Interface? Or
Use of PSMessages in the CI ?

This function needs to be called when ever methods like Find, Save, Create methods return false.
Error text and Error type can be printed in the log message for any other action in to the log messge.

Function CheckErrorCodes()

&PSMessages = &Session.PSMessages;
&ErrorCount = &PSMessages.Count;
For &i = 1 To &ErrorCount
&ErrorText = &PSMessages.Item(&i).Text;
&ErrorType = &PSMessages.Item(&i).Type;


What is method? What are the different types of method?
- A method is an object that performs a very specific function on a component interface at run-time.
Standard methods and user-defined methods.
Standard methods: - Automatically generated upon the creation of a new component Interface in Application.
Apart from the Standard methods there are Standard methods available for the use with any collection.
User-Defined methods: - User-defined methods are those that you can create to meet the requirements of an individual component interface.

What are properties?
The Fields in the level 0 in the component are the properties of the component.

Standard properties User-Defined properties
Createkeyinfocollection Developer can further control the exposed Getkeyinfocollection field properties.
Property Info collection
GetHistoryItems (Update/Display mode or Correction mode)
EditHistory Items

9) Traversing the Collections in the Component Interface?
COLL_JOB – Collection
Coll_JOBItm – Row in the collection.
For &i = 1 to &COLL_JOBCol.Count
&COLL_JOBItm = &COLL_JOBCol.Item (&i);
For &J = 1 to &COLL_JOB_JRCol.Count
&COLL_JOB_JRItm = &COLL_JOB_JRCol.Item (&j);

10) How do you login in correction mode in the Component Interface?
Get History Items and Edit History items property to should be set to true.
Get History Items alone: - Update display all - modes will be used.


No comments:

Post a Comment