Вы находитесь на странице: 1из 43

There could be situations when you need to bypass search page depending upon the

user logged in.


For instance to use self services employees should not see the search page, they
should automatically be transferred to their self service data like phone, emai
l,
education, address, emergency contact and others. There are also situations when
you need to bypass search page depending on the user s role.
Suppose there is a performance review or salary increment module and you want th
at the manger should be able to see the data of employees below him.
So these are the typical scenarios where you may need to bypass the search page,
there could be other situations too.
Below I am going to tell you that how can you bypass the search page using Peopl
eCode.
In the example PeopleCode below using the user s role we will decide whether to by
pass the search page or not.
This code has to be written in the SearchInit event of the search field of the S
earch record or at the Component level search Record.
&EMP_ROLE = "Y";
For &I = 1 To %Roles.Len;
If %Roles [&I] <> "EMP" Then
&EMP_ROLE = "N";
End-For;
If &FLAG_ROLE = "Y" Then
COMPONENT_SEARCH_RECORD.EMPLID = %EmployeeId;
/*Hide emplid and name so user can not search, as these are the keys used in the
search record*/
Hide(COMPONENT_SEARCH_RECORD.EMPLID);
Hide(COMPONENT_SEARCH_RECORD.NAME);
/* To skip search page use below PeopleCode function with parameter 0 */
SetSearchDialogBehavior(0);
AllowEmplIdChg( True);
End-If;
Now if you want to show the search page for those users who have manager role or
a role other than employee you can use below code.
&EMP_ROLE = "Y";
For &I = 1 To %Roles.Len;
If %Roles [&I] <> "EMP" Then
&EMP_ROLE = "N";
End-For;
If &FLAG_ROLE = "Y" Then
COMPONENT_SEARCH_RECORD.EMPLID = %EmployeeId;
/*Hide emplid and name so user can not search, as these are the keys used in the
search record*/
Hide(COMPONENT_SEARCH_RECORD.EMPLID);
Hide(COMPONENT_SEARCH_RECORD.NAME);
/* To skip search page use below PeopleCode function with parameter 0 */
SetSearchDialogBehavior(0);
AllowEmplIdChg( True);
Else
/*Allow this user to see the search page*/
SetSearchDialogBehavior(1);
/*Unhide emplid,name for user to be able to search */
UnHide(COMPONENT_SEARCH_RECORD.EMPLID);
UnHide(COMPONENT_SEARCH_RECORD.NAME);
End-If;
Else
End-If;
Sub Page and Secondary Page have totally different contexts and are used for dif
ferent purpose.
A Sub Page is utilized where you want to display or capture similar information
for various entities,
for example, capturing an address, for a company or for a person, would need sim
ilar information like Street address, State county,
Country,Pincode etc.. In those situations a sub page would be used, to design on
ce and reuse at multiple places.
A Secondary Page is used to display or capture...
How to store output of a SQL query in a variable using PeopleCode?
Using SQLExec Function
SQLExec ("SELECT EMPLID,NAME FROM PS_PERSONAL_DATA", &Emplid, &Name);
What is an array in people code?

An array is a collection of data storage locations, each of which holds the same
type of data.
The maximum depth of a PeopleCode array is 15 dimensions.
Push and UnShift are the functions of the array used to add the elements into th
e array one from the end of the array and one from the beginning.
Pop is a function of array used to select and delete an element from the end of
the array.
Application Designer is an integrated development environment that is used to de
velop PeopleSoft applications.
The following are the uses of Application Designer.
1. Design and generate database tables.
2. Design on-line pages
3. Controlling on-line processing flow.
4. Providing security for the database.
What is the difference between SQLEXEC and CREATESQL?
SqlExec means it bypasses the component buffer and it is directly contacts datab
ase to retrieve data. But it retrieves the data row by row and not possible for
bulk insert.
But in the case of Create SQL we can able insert the data in bulk.
What is the advantage of using Application Engine?

The following are the advantages of using Application Engine.


Encapsulation
Effective Dating
SQL / Meta-SQL Support
Within Platform specific sections
Set Processing Support
Portability
Object Orientation
What does each scroll area allow you to maintain?
Multiple records for related tables
What is the purpose of a Search Key?
The Search Keys define which fields will appear in the search dialog box. Users
select which row of data to display on the page based on Search Keys.
If you are only interested in information that is specific to only one country,
where would you access this data in the system?
Country specific or local navigation/pages (Use Local, Setup Local)
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.
What role do keys play in data retrieval?
Keys identify a unique row in a table. No two rows in the same table will have t
he exact same key values.
Most Keys are also Search Keys. What field have we seen that is an exception to
this rule (Key field which is not a Search Key)?
Effective Date is a Key but not always a Search Key
Where do you set the Web Server cache?
configuration.properties file under webserv folde
In which file you make the settings for the activity trace of PSAPPSRV server pr
ocess ?
PSAPPSRV.tracesql
What is the benefit of using existing Run Control Ids?
A Run Control is a database record that contains values for the parameter settin
gs.
Instead of entering the same values each time you run a report, you can create
and save a run control with those settings.
Therefore, when you want to run another report with these same parameters (date
s, printing options, etc.) half your work is already done.
Will the PeopleSoft Internet Architecture, now that it embeds BEA WebLogic and I
BM WebSphere, work with my other corporate web servers and tools?
One of the core values of the PeopleTools development group is investment protec
tion.
The time, money and resources that you may have already invested in licensing an
other web server, training developers and administrators,
building and deploying other web applications will not be compromised by this de
cision.
For the servlet layer on the web server, what version of the Java Servlet API ar
e the PIA Java Servlets coded to with PeopleTools 8.4?
The PIA Java servlets in PeopleTools 8.4 are coded to JavaSoft's Java Servlet AP
I 2.0 and are fully compatible with Servlet API 2.2.
It should be noted that the PeopleSoft Internet Architecture is supported only o
n the BEA WebLogic and WebSphere servlet engines.
Is it possible to setup web server load balancing with PeopleTools 8.4 ?
Customers can setup clusters of BEA WebLogic for IBM WbSphere servers to do web
server load balencing.In such scenarios, if an instance is down,
requests are automatically routed to another instance.
For more information on high availabilty and clustering wth WebLogic, Websphere
and other web servers.
Are there advantages and disadvantages to using BEA wabLogic over IBM webSphere
or vice versa?
NO. Both product are certified with PIA as of version 8.4 and work eqully well.B
y offering both BEA webLogic and IBM webSphere,
we give our customers more choices and flexibility to run PeopleSoft in thier pe
rferred environment.
What are Events, Workflow PeopleCode and Approvals?
Events are conditions that have associated routings. Define the condition in Peo
pleCode, which is attached to the record definition underlying a step in a step
map.
When a user saves the page, completing the step, the system runs the PeopleCode
program to test the condition. If the condition is met, the system performs the
routings.
To trigger a business event from a page, you add a PeopleCode program to the wor
kflow event in...
What are Roles in PeopleSoft Workflow?
Roles describe how people fit into the workflow. A role is a class of users who
perform the same type of work, such as clerks or managers.
Your business rules typically specify which roles do which activities. For examp
le, a rule can say that department managers (a role) must approve external cours
e requests
For example: User list roles, Query Roles.
What is Routings in PeopleSoft Workflow?
Routings specify where the information goes and what form it takes: email messag
e or worklist entry. Routings make it possible to deploy applications throughout
the enterprise.
They work through the levels and departments of an enterprise to bring together
all of the roles that are necessary to complete complex tasks.
What are Rules in PeopleSoft Workflow?
Rules determine which activities are required to process your business data.
For example, you might implement a rule that says department managers must appro
ve all requests for external classes.
You implement rules through workflow events, such as PeopleCode that evaluates
a condition and triggers a notification (a routing) when appropriate.
Define Workflow?
Workflow enables to efficiently automate flow of time-consuming business process
es and deliver the right information to the right people at the right time throu
ghout enterprise.
You can merge the activities of multiple users into flexible business processes
to increase efficiency, cut costs, and keep up with rapidly changing customer an
d competitive challenges.
For example, when you order supplies, you are really initiating an approval proc
ess: someone else reviews...
What are Data Mover operating modes?
Regular Mode: Using PeopleSoft User Id
Bootstrap Mode: Using Database access Id
Explain about Data Mover?
PeopleSoft Data Mover is a stand-alone two-tier program, which you can run throu
gh a graphical interface on Microsoft Windows or with a command line interface o
n either Microsoft Windows or UNIX systems.
PeopleSoft Data Mover enables you to perform the following tasks:
Transfer application data between PeopleSoft databases.
Move PeopleSoft databases across operating systems and database platforms.
Execute Structured Query Language (SQL)...
What are MetaStrings or MetaSQL?
MetaStrings are special type of SQL expressions preceded by % sign.
MetaStrings are used in the following:
SQLExec
In application designer to build dynamic views
With rowset object methods (select, fill)
SQL objects
Record class methods (Insert, Update)
Application Engine
Cobol
How many sub pages, secondary pages can be created in one level?
We can create only one Secondary Page. But we can create any no of Sub Page in o
ne Level.
Why do PeopleSoft often use views as search records?
Search views are used for three main reasons.
Adding criteria to the search dialogue page
Providing row level security
Implementing search page processing
What are Setid s and Table set sharing?
SetId is the highest level key in the PeopleSoft.
Location, Department and Jobcode tables are control tables and setid s control the
control tables during the transaction.
Table set sharing is a place where control tables are listed. It is accessed by
business unit.
EX: If we have two locations Arizona and Ohio with setid s xyz and abc, suppose if
we change Ohio s setid to xyz then we can access all information related to
Arizona/xyz...
What is Auto Update in PeopleSoft?
This record field property is used to update the date field of particular record
with the server's current date and time whenever a user creates or updates a ro
w.
Even the user enter the data into that field, the data which the user enters wil
l be updated by the system s current date and time.
What are classes in PeopleCode?
A class is the formal definition of an object and acts as a template from which
an instance of an object is created at runtime.
The class defines the properties of the object and the methods used to control
the object s behavior.
PeopleSoft delivers predefined classes (such as Array, File, Field, SQL, and so
on).
You can create your own classes using the Application class. You can also extend
the functionality of the existing classes using the...
What is an Expert Entry in PeopleSoft?
Expert entry enables a user to change from interactive to deferred mode at runti
me for appropriate transactions.
What conditions are required to establish parent child relationship between two
records? What are the advantages with that?
To maintain Parent child relationship in PeopleSoft Records following conditions
should be satisfied:
1) The child record should have all the key fields of parent record and at least
one more key field other than the key fields of parent record.
2) We should mention the parent record in the record properties of child record.
3) We cannot go for more than three...
How can a component have more than one search record?
You might want to reuse the same component multiple times with different search
records.
You can accomplish this by overriding the component search record at runtime whe
n the component is opened from a menu item without creating separate copies of t
he component.
The component override is temporary, and occurs only when the component is opene
d from the menu item in which the override is set. It does not change the compon
ent definition.
How is data stored, retrieved, manipulated and processed in PeopleSoft applicati
ons?
PeopleSoft is a table-based system and it contains three major sets of tables,
1. System catalog tables; it stores physical attributes of tables and views.
(Example: Sys, Columns, Sys tables)
2. People Tools tables; it contains information that you define using People Too
ls
(Example: PSRECDEFN, PSMENUDEFN)
3. Application Data Tables; Store the actual data users enter and access through
People...
Can you hide a primary page in a component?
No we cannot hide the primary page of a component. If the component had only one
page then by making this page also invisible
we won t have any component existing so we are not allowed to hide the primary pag
e.
What are the different types of keys available in PeopleSoft?
KEY:
The record knows a field, which uniquely identifies each row, as a key.
1. We will search and retrieve data from the database according to the key field
.
2. This will not allow duplicate and 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...
What is PeopleTools?
PeopleTools is a Collection of software programs, utility scripts, database tabl
es and data that provide the frame work for creating, using and modifying people
soft applications.
People tools provide built in business functionality and maintain the capability
that directly increase productivity and simplify system design.
What is a Field in PeopleSoft?
Fields are basic building blocks in People soft and can be used in application
when they are added to at least one record. Fields are globally defined.
The common 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).
Fields are
1. Globally defined
2. Reusable components and can be shared across multiple record...
How many types of Displays are there in the tool bar?
1. Field Display - It shows the field attributes (fieldname, Type, Len, Format,
H, and Shortname, Long name
2. Use Display - It shows key related characteristics and default values for the
fields
(Field name, type, direction indicates, search key, list, system indicates, audi
t, H, default values)
3. Edit Display - It shows the auditing options available for the fields (field
name, type required , edit, prompt table, reasonable...
How many types of records are there in PeopleSoft?
There are six types of records
1. SQL table - Corresponding physical SQL table in the database we create with b
uild option.
2. SQL View It is not a physical SQL table on the database, it gives the replica
te of joined tables. It is used for security and faster access.
3. Dynamic View It is actually stored in the form of SQL view text and is execut
ed at runtime. It uses the built in indexes, whereas normal view is executed...
What is Effective Date?
Effective date is used to store History, Current and Future data.
What are the limitations of Translate table?
1. Field type should be character
2. Minimum Field length should be 1 to 4 characters.
3. Field values should be small (static).
What fields should be at the top of every search record definition that use tabl
e set Ids?
SETID is the field that should be at the top of every record definition that use
s table setIds.
List the three output destinations available through the Process Scheduler?
You can direct the output to a printer, file and windows screen.
What is Translate Table?
A translate table is a prompt table that serves as data dictionary to store valu
es for fields that don t need individual prompt tables of their own.
What restrictions are placed on multi-process jobs?
A multi process jobs can only be scheduled to run on a server.
What is a Record Group ID?
A Record group ID is a group of record definitions that are Sharing the same set
control field.
Where can you run Jobs?
The process scheduler can run jobs on the client or a server machine.
What are the types of layers in Crystal reports?

There are 4 types of layers in Crystal Reports


1. Report Header - In this, we will write title, date, and logos of the company.
2. Page Header Used to write column headings.
3. Detail Contains database column values.
4. Page Footer Used to write page numbers and address.
Differentiate Error V/s Warning statements in People code?
The error statement issues a message and the condition causing the error must be
corrected before proceeding.
The warning statement issues a message and the user can proceed without changing
any values.
What is Dynamic View?
Dynamic view is a view that can be used like a view in pages and PeopleCode, but
is not actually stored as a SQL view in the database.
Instead, the system uses the view text as a base for the SQL Select that is perf
ormed at runtime.
Dynamic views can provide superior performance in some situations, such as searc
h records and in PeopleCode Selects, because they are optimized more efficiently
than normal SQL views.
Indexes for Dynamic views are created implicitly.
Write the syntax to access third level record field using object oriented People
Code?
&field=Getlevel0()(1).GetRowset(Record.RecordatLevel0Name.GetRow(1). GetRowset(R
ecord. RecordatLevel1Name).GetRow(1).
GetRowset(Record.RecordatLevel2Name).GetRow(1).
GetRecord(Record. RecordatLevel3Name).GetFieild(FieldAtLevel3Name));
What are the types of record definitions?
SQL Tables
SQL views
Dynamic views
Derived / Work Records
Sub Records
Query views
What are differed processing and its advantages?
Deferred processing postpones some user actions to reduce the number of trips to
the database so that increases the performance (in system edits, field edit, an
d field change).
Advantages:
1) Reduces the network traffic.
2) Increases the performance.
What are the steps involved in Data Conversion?
Extract data from the legacy system
Reconcile the extracted data
Identify the tables to be leaded with the new system
Data Mapping
Identify the tools (SQR or Import Manager or SQL Loader etc)
Write programs to perform conversion
Test the programs using test data
Check the data outline
Reconcile concerted data.
What is difference between GetRowset and CreateRowset in people code?
GetRowset is used to get rowset for a record in the component buffer.
CreateRowset is used to create rowset for a record which in database, and is also
called a Standalone rowset.
Where are the search records assigned?
Search records are assigned to a component in a menu.
What are the built-functions used to control translate values dynamically?
Adddropdownitem()
Deletedropdownitem()
What is Getlevel0()?
Getlevel0() ---used the get the rowset of the level 0.
What is the use of %subrec and %selectall functions?
%subrec-- %subrec is used only in Dynamic View SQL where it expands to the colum
ns of a subrecord.
%selectall--%SelectAll is shorthand for selecting all fields in the specified re
cord, wrapping date/time fields with %DateOut, %TimeOut.
What is difference between field default and RowInit?
Field default specifies only the default value for a field when we are in Add mo
de.
Row init fires only when a row of data coming from database to component buffer.
What is default processing?
in default processing, any blank fields in the component are set to their defaul
t value.
You can specify the default value either in the Record Field Properties, or in
FieldDefault PeopleCode.
What are different variables in people code and their Scope?
System variables and
User defined variables.
Scope: Global, Component and Local.
How is the SearchInit event most often used by people soft application?
SearchInit fires before the search dialogue page is displayed to the end use. Fo
r this reason searchinit is often used to enhance row level security by
inserting and graying out certain values to the search dialogue page.
When we select a component what events will be fired?
If default mode for component is search mode: only searchinit will be fired.
If default mode for component is new mode: Field default, field formula, rowinit
, searchinit will be fired.
How can find out whether the user is in Add mode or Update mode in PeopleCode?
Using %mode
%Mode returns
A - for Add mode.
U - for Update mode
E - for Correction mode
What is PIA and what are its components?
It is n-tier architecture. We have client, web server, application server and Da
tabase server. We have jolt and tuxedo. We have WSL, WSH, JSL, JSH, QUEUES and s
ervices.
In database server we have system tables, PeopleTools tables and application tab
les.
What are Application Engine State records?
The State Record is a PeopleSoft record that must be created and maintained by t
he Application Engine developer.
This record defines the fields a program uses to pass values from one Action to
another.
Think of the fields of the Application Engine State Record as comprising the wor
king storage for the Application Engine program.
An Application Engine State Record can be either a physical record or a work rec
ord, and any number of State...
What is built in restart logic in Application Engine programs?
Within each Application Engine program, you must define how frequently the progr
am will issue a COMMIT.
After doing so, each COMMIT becomes a "checkpoint" that Application Engine uses
to locate where within a program to restart after it goes into abend.
This type of built-in logic does not exist in COBOL or SQR.
What are maximum number of actions possible in a step?
Various actions possible in Application Engine step are as follows:
Do while
Do when
Do select
PeopleCode
SQL
Call section
Log Message
Do until
One action can be called only once in a step of an Application Engine program.
What is the difference between a Process and a Report?
The Process receives a command line parameter where as the Report receives run c
ontrols from the page.
What are the three actions that can be attached to menu?
Component
Separator
PeopleCode
How many ways we can run the application engine program?
Running from Application Designer.
By calling People Code function.
Running from DOS Environment (Debugging).
Running from Application Engine People Tool.
Running from People soft Application.
What is the difference between scroll and grid?
Scroll area is used to maintain parent child relationship and we insert grid in
low level scrolls to display multiple rows of data.
Example: Assume we have 2 scroll levels in our page level1 and level2 we insert
grid in level 2.
What is the difference between search record and add search record?
Search Record: Specify the search record for the component. The search record co
ntrols access to rows of data in a table.
Its keys and alternate search keys appear on the search page as criteria.
Add Search Record : Specify if you want a different search record specifically f
or add actions.
What is the difference between Translate values and Prompt tables?
Translate Table:
Translate table is a special kind of table that is limited to validating data of
four characters or less. The translate table serves as a universal prompt table
and is effective-dated
Prompt Table:
Prompt table are used to provide users with validate values from other tables ot
her values are generally populated by system users and are often application spe
cific.
List down Think-Time Functions.
Following are Think time functions:
DoCancel
DoModal
DoModalComponent
Exec (only when Synchronous)
File attach functions
Prompt
RemoteCall
RevalidatePassword
WinExec(only when Synchronous)
WinMessage
WinMessageBox
Which function in PeopleCode stops the processing of whole component?
Think-time functions suspend processing either until the user has taken some act
ion (such as clicking a button in a message box),
or until an external process has run to completion.
Where is PeopleCode stored?
PeopleCode is Stored PSPCMPROG Table.
What is the difference between SavePrechange and SavePostchange events?
SavePrechange is the last event where you can validate and correct your data bef
ore updating the database. Once it is done, database will get updated
SavePostchange will be used to play with tables which are not present in your co
mponent buffer.
What is the difference between PreBuild & PostBuild events ?
Prebuild can be used to validate your search data, discarding rows.
Postbuild can be used to play with the pages (hide, unhide), filling up scrolls.
How many types of PeopleCode functions exists in PeopleSoft?
People code supports these types of functions:
Built in
Internal
External people code
External non-people code
What is difference between component level peoplecode and record level peoplecod
e?
Component level PeopleCode is associated with unique component, where as record
level peoplecode can be associated with any number of components.
What is mandatory step of application engine program?
Main-Step-Action
Main is the required section in Application Engine.
- There can be multiple steps in single application engine but at least one step
should be part of AE.
- Similarly you can have multiple actions in AE but you should have minimum 1 ac
tion part of step.
What are state records?
The state record will be used to pass variable information between two applicati
on engine sections.
It can be physical or derived work record. Physical record can be used when you
have restart logic and when you have disabled the restart logic derived work rec
ord can be used.
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.
How is performance management taken care in People Tools?
Indexing tables on the database side helps in batch processing a great deal.
Analyzing tables helps.
If there is custom code make sure the SQL queries used are written well with the
use of proper keys and joins are correct as well.
What is SQL and View Temporary Table?
SQL View: SQL View has fields from one or more tables in the reorganized way.
This provides alternative view of information stored in the tables.
Temporary Table: are used for running application engine batch processes.
Temporary tables can store data to update without risking the main application t
able.
How to create prompt table?
Using edit table option in record field properties
How do you bring component buffer in to application engine program?
You can assign a record which is used in component buffer to a state record of A
pplication engine.
What data buffer classes are available in people code?
Rowset,
Row,
Record,
Field,
Array,
File,
Sql,
Chart,
Grid etc.
What is the use of set control field in record field properties?
Set Control id is used when you want to share tables in PeopleTools applications
.
What is the difference between FieldEdit and SaveEdit?
In Field edit for each field change, a transition to the application server to t
he database is taken place.
In Save edit for all the fields, only one transition to the application server t
o the Database is taken place.
What is the difference between component buffer and data buffer?
Component buffer contains all the data of the active component.
Data buffer contains the data other than the data in the component buffer (Data
of other records)
What is component buffer?
Component Buffer is the area in memory that stores data for the currently active
component.
What is Component Processor?
The Component Processor Controls the PeopleSoft Applications from initial data r
etrieval through updating the database.
The component processor manages the flow of data processing as users enter infor
mation on pages.
Issues INSERT, DELETE and UPDATE statements to maintain data in the database and
SELECT statements to retrieve data.
What are the different types of method in a Component Interface?
A method is an object that performs a very specific function on a component inte
rface at run-time.
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 me
et the requirements of an individual component interface.
Define Object Security?
The Security profile which is created as an operator security to restrict access
to PeopleSoft data is known as Object Security.
What are the rules used by the system to determine whether a user is authorized
to update an object?
The user should have the permission to update the object. This is given by the D
efinition security.
The group, which holds the object, should be added to the permission list of the
user in update mode.
What are the different ways we can set up the portal security to access componen
t in portal?
1) Structure & content
2) Menu import
3) Register component
What are the steps that you need to do in people code to invoke Component Interf
ace?
· 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)
&CI.KEY_FILED_NAME = NEW
If not &CI.Create () Then
Else
Populate other fields
End-if;
Populate the other fields
If not &CI.Save () Then
Else
End-if;
Before accessing a people soft application what levels of security must be passe
d through?
a) Field level security
b) Row level security
c) Maintain security
d) Definition security
e) Portal security.
What are the commands that can be called from setup section of a SQR?
Ask
Define-Chart
Define-Layout
Define-Image
Define-Printer
Define-Procedure
Define-Report
Dollar-Symbol
How do you link SQR reports to process scheduler?
Create/modify/add run control table if you have any new fields
Create/modify/add run control page if you have any program inputs
Create a menu definition (Note Menu group name: ABC)
Give operator security
Create Process scheduler definition
Use-Process definition process definition add
Give report name and report type
Why SQR is used?
Data conversion
Reports
Interface programs.
What are variable types in SQR?
& Data base reference fields Read only
$ Character (Same for Date)
# Numeric
{ } Variable in ASK or # define
[$ variable] Dynamic variable referencing
How to do performance tuning in SQR?
We can use following to make our SQR more preferment :
Load Look Up
Arrays
Multiple Report
-Bnn
Using SQT Files
Run on the BATCH Server
Proper Programming Logic
Set processing
SQL Tuning
What are the important SQC s that needs to be attached to SQR program?
#include 'setenv.sqc'
#include 'stdapi.sqc'
#include 'prcsdefn.sqc'
#include 'prcsapi.sqc'
#include 'curdtrim.sqc'
#include 'hrctlnld.sqc'
#include 'datwtime.sqc'
What is .SQC and .SQT?
.SQC is a Function Library file. It is like a sub program is saved by extension
.SQC and this program can be called in the SQR program.
.SQT is compile time/Run time file. When a file with XXX.SQR is compiled we get
the output as XXX.SQT and when is XXX.SQT is executed we get the output XXX.LIS
(List file/Output file).
What is the program flow of SQR?
Setup section
Heading section
Footing section
Program section
Procedure section
What are the stages of program flow in SQR?
Compile stage :
All the Preprocessor directives are compiled (which starts with #include).
Example: All the SQC are run.
Check for the syntax errors for the conditions.
Example: if for loop while loop are properly ended with the respective syntax.
Allocates memory structure if you are using the Arrays and load look up
Execution stage
Starts interpreting the code line by line Checks for the
Begin -Program
Begin -Heading
Begin- Footer
How many records can you have in one scroll level?
Each scroll level can have only one primary scroll record, but can have related
display records, derived/work records and Translate table buffer fields.
The primary record on a level one scroll area must be a child of the primary rec
ord on level zero, the primary record on a level two scroll area must be a
child of the primary record on its enclosing level one scroll area, and the prim
ary record on a level three scroll area must be a child of the primary record on
its enclosing level two scroll area.
Explain Component Buffer
Component buffer is the area in memory that stores data for the currently active
component. The component buffer consists of rows of buffer fields that hold dat
a for the
records associated with page controls, including primary scroll records, related
display records, derived/work records, and Translate table records. PeopleCode
can reference buffer fields
associated with page controls and other buffer fields from the primary scroll re
cord and related display records.
What is the difference between User defined and System Defined Variables?
User-defined variables
These variable names are preceded by an & character wherever they appear in a pr
ogram. Variable names can be 1 to 1000 characters, consisting of letters A-Z and
a-z,
digits 0-9, and characters #, @, $, and _.
System variables
System variables provide access to system information. System variables have a p
refix of the % character, rather than the & character.
Use these variables wherever you can use a constant, passing them as parameters
to functions or assigning their values to fields or to temporary variables.
What are various types of User Defined Variables?
Global
The variable is valid for the entire session. A global variable must be declared
, however, in each PeopleCode program where it s used.
Use global variables rarely, because they are difficult to maintain.
Component
The variable is valid while any page in the component in which the variable is d
efined stays active. Similar to a global variable, a component variable must be
declared in each
PeopleCode program where it s used.
Local
The variable is valid for the duration of the PeopleCode program or function in
which the variable is defined. If you do not declare a variable, it s automaticall
y declared with
the scope Local and the data type Any.
You can declare variables using the Global, Local, or Component statements, or y
ou can use local variables without declaring them. Here are some examples:
Local Number &SALARY;
Global String &NAME;
Component Rowset &ROWSET1;
Local Any &FIELD1;
Local ApiObject &MYOBJ;
Local Boolean &CompareMe = True;
Variable declarations are usually placed above the main body of a PeopleCode pro
gram (along with function declarations and definitions).
The exception is the Local declaration, which you can use within a function or t
he main section of a program.
PeopleSoft tracks object changes using a system table. Which PeopleTools System
table is used to track object changes?
PSAUDIT Table
What are the PeopleTools components used for Integration Broker in PeopleSoft ?
File layout
Component Interface
App Messaging
What is the difference between SaveEdit and FieldEdit?
Field Edit can be used to check the syntactial errrors made by the user.
Field Edit peoplecode is fired when you try to change the value of a field on th
e page.
Save Edit is used to check the logical existance or invalid data inputs.It can b
e used for complex business logic tests.
Save Edit peoplecode is fired when you try to save the page.
Both Field edit and Save edit validates data but Field Edit peoplecode is used t
o validate the data for only that particular field which is
changed and Save Edit peoplecode is used to validate all the data changes made t
o the fields on the page.
Example : If a component of compensation becomes ineffective after a perticualr
date, and if some calculations are done after that date,
logic can be written in save edits to stop further processing and help the user
identify that this component of compensation is no longer given to the employee.
Explain what are componentbuffer and databuffer?
Component Buffer: Component Buffer contains all the Data of an active component.
Every component has at least one level 0 record definition.The search key, and o
ther feilds from the same record definition, all have level of 0.
Data Buffer: Data Buffer contains Data other than the Data in the Component Buff
er.
Data Buffer classes are available in peopleocode following classes
Rowset
Row
Record
Field
Array
Sql
File
Chart
Grid etc..
Which event is triggered when we click a button on a page in PeopleSoft?
PeopleCode programs started by button are placed in the FieldChange event.
How do you setup table-sharing in PeopleTools application ?
SETID feild needs to be added in ll the tables that has to be shared and then de
fine the control feild.
Explain difference between Assignment by Value and Assignment by Reference?
Assignment by Value : The result of the right-hand expression is assigned to the
variable as a newly created value, in its own allocated memory area
Assignment by Reference : When both sides of an assignment statement are object
variables, the result of the assignment is not a copy of the object.
You re making a copy of the reference only. The variable names do not refer to se
parate and distinct objects; they both refer to the same object.
Variables are passed by Reference to functions.
How are external Peoplecode functions stored?
These are stored in FieldFormula event in the record with the prefix FUNCLIB_.
Internet scripts are stored as WEBLIB_.
To use a function in a program, it must be declared at the top of the program.
Which function is used to force Save on a page?
DoSave()
In which events, we should not write any error or warning?
Errors and warnings should not be used in
FieldDefault,
FieldFormula,
RowInit,
FieldChange,
RowInsert,
SavePreChange,
WorkFlow, and
SavePostChange PeopleCode events.
An error or warning in these events causes a runtime error that forces cancellat
ion of the component.
How can we place the focus on the field that caused the error or warning conditi
on on an Error or Warning function in SaveEdit within the current component?
Use the SetCursorPos to place the focus in a specific field anywhere in the curr
ent component
What is the APP engine event in peoplecode?
OnExecute
What are the PeopleCOde events assosiated to a Record Feild ?
SearchSave
FeildEdit
FeildChange
SaveEdit
RowInsert
RowDelete
SavePreChange
Which record definition in PeopleSoft is not stored in Database ?
Derived/Work recordS
Which record definition in PeopleSoft is not required to built and why ?
Derived/Work recordS as it is not stored in the database.
Which process is used for running AE which are need to be run at a frequency of
less than one day ?
PSDAEMON
What are the parts of an AE program ?
Section
Setup and
Action
Which event is fired after database update ?
SavePostChange
Which Data type of Oracle is not supoerted by the PeopleCode programming environ
ment ?
TIMESTAMP.
How many Message nodes are possible for a database ?
unlimited.
How to move one project from one database to another ?
Use Copy DB menu from appdesigner then enter the username and password for the t
arget database.
All the objects being moved should be closed in the source database and unocked
in Target database.
In which plateform does Crystal reports and Psnvision works ?
Windows
Where are WorkFlow work items found ?
WorkList
What are file formats supported by FileLayout ?
CSV (Tab delimited)
CSV (Comma delimited) and
Fixed Length
What are the limitations of PS query?
The biggest disadvantage is that PS queries cannot be used to perform DML(update
insert detele) operations.
It can only fetch data.
What is the difference between Business Unit and SetId ?
Business Unit :
Business Unit is a way of tracking and reporting specific business information f
or reporting and roll up of data collection.
It does not have to be a legal entity.
SetId :
SetId is used for tableset sharing by assigning SetIds to specific record groups
for Business unit to restrict the view of rows of data within controll tables.
What are the four types of tables used in PeopleSoft HRMS ?
Translate
Defaulting and Processing
Control (Prompt and Setup)
Transaction tables
Which language technology is used in App. Messaging ?
XML
What are the menu types available in PeopleTools ?
Component
PeopleCode
Seprator
hat are the tree types NOt supported in PeopleSoft tree manager ?
Query trees
Combination trees
What is difference between Translate table and Prompt table?
Following are the differences between Translate tables and prompt tables
Translate Tables :
Translate values have to be added through the App Designer
Translate tables have a max lenght of 4 char for each element.
There can be only 30 entries in a translate table.
These values are stored on a people tools table called XLATTABLE.
Prompt Table :
Prompt table values may be modified when users add data to the system.
Prompt table elements have no such limitation.
Prompt table can have any number of entries.
Is used to provide users with validate values from other tables. Prompt table wi
th edit prompt table with no edit.
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.
What is method? What are the different types of method?
Methods: - A method is an object that performs a very specific function on a com
ponent 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 me
et the requirements of an individual component interface.
How to use PSMessages in the component Interface?
PSMessages 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;
End-For;
End-Function;
How to use error message in the component Interface?
PSMessages 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;
End-For;
End-Function;
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)
&CI.KEY_FILED_NAME = NEW
If not &CI.Create () Then
Else
Populate other fields
End-if;
Populate the other fields
If not &CI.Save () Then
Else
End-if;
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 is the difference between Get keys, find keys and Create Keys ?
Get keys: - These are mapped to the fields marked as scrh in the component s searc
h 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 s
earch record. You may remove Find keys that you do not wish to make available fo
r 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 and when to Use the Excel to CI Utility?
Used to upload data from Microsoft Excel into a PeopleSoft database.
A template is used to create worksheets that are specific to the business logic
that you need to use when you are uploading data.
Uses Visual Basic and a DOM (Document Object Model) structure to submit data to
a CI where all necessary PeopleCode events nd field-level edits occur.
Based on results from saving the CI, another DOM is created that returns success
, warnings, and/or errors to the Excel document.
Records in error can be corrected and resubmitted.
Restrictions/Guidelines
An Excel spreadsheet has a physical limitation of 252 columns and 65,000 rows.
This utility is best used with small to medium-complexity CIs. For large CIs, o
ther methods of uploading data like File Layout and Application Engine, may be m
ore appropriate.
How to Program a Component Interface in PeopleCode?
PeopleCode events and functions that relate exclusively to GUI and online proces
sing cannot be used by CI.
These include:
Search dialog processing
Menu PeopleCode and pop-up menus
Transfers between components
DoSave() and DoSaveNow()
Application Designer can generate a template in the form of boilerplate PeopleCo
de that you can adapt to your purposes.
Application Designer also provides a built-in function that allows you to test t
he CI.
What are the Methods in Component Interface?
A function that performs a specific task on a CI at runtime.
Standard methods are those available for all CIs such as Find, Get, Save, and Ca
ncel.
User-defined methods provide added functionality to the CI. These methods are f
unctions that are made accessible through the CI.
Each function maps to a user-defined method.
What are the Collections in Component Interface?
A special type of property that corresponds to a scroll.
Contains fields and subordinate scrolls as defined in the underlying component.
What are the Keys in a Component Interface?
Keys are special properties containing values that retrieve an instance (get key
s) or a list of instances (find keys) of the CI.
Get and find keys are based on the search record definition for the underlying c
omponent.
Create keys are included for components that have the Add action enabled.
What are the Properties of a Component Interface?
Standard properties are assigned automatically when the CI is created and can be
set to true or false.
Examples include
InteractiveMode,
GetHistoryItems, and
EditHistoryItems.
User-defined properties map to record fields on the component.
You have control over which user-defined properties are included in the CI.
What is the Name of a Component Interface?
Each CI requires a unique name that is specified when the CI is created. The ca
lling program uses the name of the CI to access properties and methods.
What is the Architecture of Component Interface ?
Every component interface has the following attributes:
Name
Keys (get keys, create keys, and find keys)
Properties and collections (fields and records)
Methods
Why would I want to use a Component Interface?
Component interfaces execute the business logic built into the component and as
a result, they provide a higher level of data validation than a simple SQL inser
t/update/delete.
That includes any fields that use prompt tables to limit values as well as any ed
iting of data with PeopleCode logic.
What is a CI?
Component interfaces can be viewed as "black boxes" that encapsulate PeopleSoft
data and business processes, and hide the details of the underlying page and dat
a.
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 b
e 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 p
rocess 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 shoul
d 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
Add a switch to the selected table
Delete processed rows.
The only restriction for batch runs occurs when you have restart enabled, and yo
u
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 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 paramete
r to rollback database changes.
Exit (0) caused immediate termination of a Peoplecode Program but don t make rollb
ack in the database.
What is the difference between the %SELECT and %SELECTINIT meta sql Functions?
%select : if any values have not selected then previous value will be there
%selectinit : if any values have not selected then previous value will reinitila
te to null
What is the maximum limitation on temporary tabel instances in AE.
99
What are different types Do Select?
1- 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 Res
tart enabled.
2- 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 restar
t is enabled.
3- Restart able: - similar to select/Fetch but it WILL COMMIT inside the loop
thus allowing the checkpoint to the PS_AERUNCONTROL table.
Explain 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 st
ep.
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 engi
ne program should do.
Abort: - Program terminates
Section Break: - Application Engine exits the current section immediately, and c
ontrol 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 t
he commit.
Which actions are mutually exclusive and why they are mutually exclusive?
Sql and callsection.
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 id
entify which input rows belong to it,
and each program instance inserts the rows from the source table into its assign
ed temporary table instance using %Table.
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 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.
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 conti
nue
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 ppropriate
Application Engine programs.
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 onlin
e temp tables.
If the instance number is in use psae.exe puts the program in Queue until the as
signed 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.
Restartable.
It allocates instance number based on the availability on a record by record bas
is and psae.exe begins with the lowest instance numbers.If the properties are se
t 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 is Prerequisite for the Temporary record?
1) Should have process Instance as key
2) Name should end with _TAO
Why Parallel Processing required in Application Engine Program?
Potential performance improvements by splitting the data to be processed into gr
oups and simultaneously running multiple instance of your program to deal with d
ifferent groups of data.
If you have a one program that uses a temporary table and is invoked multiple ti
mes, that single temporary table could be used concurrently in multiple executio
ns of the code.
This could create unpredictable results since the different instances of the cod
e 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 t
ables.
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 i
t (for each Application Engine program you write).
What are the different types of Temporary tables in Application Engine Program?
- Dedicated
- Un Dedicated (Shared)
What is the Order and flow of action types in an Application Engine Program?
1) Do When
2) Do While
3) Do Select
4) Peoplecode
5) SQL
6) Call Section
7) Message Log
8) XSLT
9) Do until
How to test and debug an application engine program?
Application Engine Trace file-You can track the step execution of your applicati
on execution.
Application Engine Interactive Debugger First click on the trace tab and turn of
f the statement timings.
Select Profile -> Edit Profile-> Process Scheduler Tab -> Application section Se
lect 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_<Program Name>_<Process Instance>.AET
Without the process instance: - AE_<Date/Timestamp>_<OS_PID>.AET
Advantages of Set Processing?
Improved Performance: - Our internal testing has revealed that, in an overwhelmi
ng 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 tatements
that each processed more data than the statements executed in row-by-row proces
sing.
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 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.
What are the common ways to pass a trace parameter and value to your program psa
e.exe?
Configuration manager,
Process Definition and
Command prompt.
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).
Which Trace option is the best place to start for general performance informatio
n?
- TRACE <trace value> 384 mostly used trace value.
What are the 3 trace parameters you can pass to your psae.exe?
- TRACE <trace value>
- TOOLSTRACESQL <trace value>
- TOOLSTRACEPC <trace value>
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 rec
ord
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.
What is the syntax for CallAppEngine?
CallAppEngine (applid [, state record]);
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.
How do you execute Application Engine through Push Button?
CreateProcessRequest () ,
Schedule () and
CallAppEngine.
What 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 pr
ogram is running.
They are saved at commits and checkpoints, So they can be used for restarts. Com
ponent variables are same as Global incase of the AE.
The main attributes of a Component Interface (CI) are ?
Keys,
Properties & Collections,
Methods and Name
What is the difference between them?
Show is used to display more than one variable at a time.
Display is used to display only one variable at a time.
Show & Display are debugging commands
How to place an corporate logo in sqr?
Using Declare Image command
What is -RS & -RT Flags?
RS is used to generate SPF file ie; stopping the program after the comilation. _
RT is used to run
the SPF file .This is also one kind of Performance increasing technique by savin
g the compilation time.
What is -Tnn flag?
This is mainly used for testing purpose. We can restrict the system to generate
only a specific number of pages instead of generating all pages for testing.
this is used in Windows Environment.
What is -Bnn flag?
This is used to specify the number of rows that are to be taken from Dbase to th
e Buffer because
default the system takes 10 rows at a time.
How to refer a global variable in local procedure?
After special character (ex.#,&) we use underscore(_) after that variable name.
How does PeopleSoft Process monitor knows that the process (Say sqr report) is a
t what stage such as initiated, in process, completed etc ?
From the Field Value of RUNSTATUSDESCR field from PS_PMN_PRCSLIST table.
How can u Debugging SQR programs?
We can Debug SQR using Debugging Commands such as
#IF DEBUGxxx
#END-IF
DISPLAY and
SHOW
What are On-break parameters?
ON-BREAK causes the specified action to perform in a tabular report when the val
ue of a
field changes . The default action prints the field only when its value changes
(PRINT=CHANGE).Mainly used for Redundancy of Printing on a page.
How to pass command line flags to a sqr report running through process scheduler
?
Using override options in the process definition in the Process Scheduler in the
People Tools.
What are the steps required to run the SQR from PeopleSoft environment?
There are three steps we have to fallow to run the SQR program from the PeopleSo
ft environment (Process
Scheduler). These steps include
a. Making the SQR program API aware by calling two procedures (stdapi-init, stda
pi-term) from
the Begin-program section and including the Stdapi.sqc in the bottom of the prog
ram.
b. Create new run control table or using existing run control table and creating
run control page,
component and register the component. Creating new run control SQC if we create
a new run control table.
c. Giving the permission to the user by giving process groups.
Can you connect more than one database using one Sqr?
Yes
What are the differences between Load lookup and Array
ARRAYS LOAD-LOOKUP
1. Arrays can be declared in any section. 1. Load-Lookup is declared
in only in
SETUP section only.
2. Number of rows are not automatically 2. Numbers of rows are autom
atically added.
gives a error if the number of added.
Exceeds the specified number.
3. We should insert data in to Array by 3. Rows are automatically
inserted in to
programming. Load-Lookup.
4.We can retrive any number of fields. 4.We can retrive only Two
fields from
from a table. a table.
5.We have Length & Data type. 5.We don t have Length & Da
ta type.
6.We cannot directly print from Array. 6.We can directly print f
rom Load-Lookup.
How many ways of performance tuning are there in SQR?
1. Using LOADF-LOOKUP & LOOKUP.
2. Using ARRAYS.
3. Using MULTIPE REPORTS.
4. Using SQT Files.
5. Using Bnn Command line Flag.
6. Running on BATCH SERVER.
7. Using Proper Programming Logic in SQR such as Using BREAK statement in EVALUA
TE
Command.
8. Proper SQL tuning such as using Sub queries instead of Joins.
How will you perform ERROR handling in SQR?
We can do Error handling in SQR using some command line flags such as O, -L,-ZMF,
-XMB and using
Error handling commands such as
ON-ERROR = Skip/Warn/Stop (for Compile time errors)
ON-ERROR = Procedure Name (for execution stage errors).
What is use of SETENV.SQC?
This is used to set the Default Environment based on the Database such Printer T
ype, Paper Size, Date
formats Etc
How will you display an image in SQR?
Using DECLARE-IMAGE , END-DECLARE command.
Which section is mandatory in an SQR program?
BEGIN-PROGRAM Section is Mandatory for an SQR program
What is the SQT file? What are the advantages of SQT files?
SQT file is nothing but resultant file after the compilation (i.e.) Runtime File.
By using this SQT file for Execution we can increase the Performance of the prog
ram by reduciong the Compilation Time.
What is the purpose of Stdapi.sqc
This is a Process Scheduler Interface sqc which is used to initiate and terminat
e some field
values such as Process_instance & Run_cntl_id
How to pass Inputs for sqr program while running from windows?
Using ASK & INPUT Commands.
How to pass Inputs to the SQR while running through the Process Scheduler?
Using Procedures & SQC s to access data on Run Control Page (Run Control Fields).
Is there any read-only variable in sqr?
Column Variables & System Variables are Read-Only Variables.
What are different types of variables in sqr?
Types of variables in SQR are
1. Column Variables.
2. List Variables.
3. System Variables.
4. Document Variables.
5. Substitution Variables.
User Defined Variables
What is the difference between sqr and sqc?
SQR SQC
1.This is nothing but the Actual 1.This is like a function in SQR.
Source program.
2.This consists of Program Section. 2.This does not consists of program Se
ction.
3.This can be Compiled & Executed. 3.This cannot be Compiled and Executed.
4.We cannot call one SQR from 4.We can call one SQC from another
SQC or another SQR
or SQC. SQR program.
How can you Debug SQR programs?
We can Debug SQR using Debugging Commands such as
1. #IF DEBUGxxx
#END-IF
2. DISPLAY and
3. SHOW
What are On-break parameters?
ON-BREAK causes the specified action to perform in a tabular report when the val
ue of a field changes.
The default action prints the field only when its value changes (PRINT=CHANGE).M
ainly used for
Redundancy of Printing on a page.
What are the commands used in filehandling of sqr?
Using File Handling we can Import. Steps are
1. Opening a File Using OPEN FOR-READING command.
2. Reading Data From File Using READ command.
Writing Data into Table Using BEGIN-SQL paragraph & INSERT command
Some of the most commonly used SQC s are
STDAPI.sqc : This Is Process Scheduler Interface which is used to initiate and t
erminate some
field values such as Process instance & Run control id
SETENV.sqc : This is used to set the Default Environment based on the Database s
uch Printer
Type, Paper Size, Date formats Etc .
NUMBER.sqc : This file contains generalized routines to format numbers.
DATETIME.sqc : This file contains generalized routines to format dates and times
.
RESET.sqc : This is an important Footing Sqc.
Can you Call a SQR from another SQR? How?
We can call one SQR program from another SQR program using Call.callsystem. But
this is possible only in UNIX Operating system.
What is Load-lookup? Give the Syntax for Load-Lookup?
The LOAD-LOOKUP command defines an array containing a set of keys and values and
loads it into memory.
With LOAD-LOOKUP, you can reduce the number of tables that are joined in one SEL
ECT. Use this
command in conjunction with one or more LOOKUP commands.
Syntax:
begin-setup
load-lookup
name=prods
table=products
key=product_code
returnvalue=description
end-setup
Is it possible to increase the array size once defined?
No, it is not possible to increase the Array size once defined
1. What are the sections and paragraphs available?
There are five sections and three paragraphs available in SQR programming. The s
ections include
Begin-setup End-setup.
Begin-program End-program.
Begin-procedure End-procedure.
Begin-heading End-heading.
Begin-footing End-footing
And the paragraphs include
Begin-select paragraph.
Begin-SQL paragraph.
Begin-document paragraph
1. What are the sections and paragraphs available?
There are five sections and three paragraphs available in SQR programming. The s
ections include
Begin-setup End-setup.
Begin-program End-program.
Begin-procedure End-procedure.
Begin-heading End-heading.
Begin-footing End-footing
And the paragraphs include
Begin-select paragraph.
Begin-SQL paragraph.
Begin-document paragraph
2. Is it possible to increase the array size once defined?
No, it is not possible to increase the Array size once defined
3. What is Load-lookup? Give the Syntax for Load-Lookup?
The LOAD-LOOKUP command defines an array containing a set of keys and values and
loads it into memory.
With LOAD-LOOKUP, you can reduce the number of tables that are joined in one "SE
LECT". Use this
command in conjunction with one or more LOOKUP commands.
Syntax:
begin-setup
load-lookup
name=prods
table=products
key=product_code
returnvalue=description
end-setup
What is the purpose of the Process Scheduler?
The Process Scheduler is the part of the system that actually runs most of the r
eports. It can run several kinds of processes COBOL programs,
database queries, reports on a regular schedule or at your request. It can run t
he processes at your workstation or on a server.
which are the Think-Time functions in PeopleSoft?
Think-time functions suspend processing either until the user has taken some act
ion (such as clicking a button in a message box)
or until an external process has run to completion (for example, a remote proces
s).
Call to external DLL, DoCancel, DoModal, InsertImage, AttachFile, RemoteCall., R
evalidatePassword., WinExec (think-time only when synchronous),
WinMessage, MessageBox (depending on the style parameter) etc.
What event is associated with a Page?
The only event for Peoplecode to be written on a Page = Activate Event (not supp
orted by Sub-pages)
what is the difference between Get and Create functions in Instantiating Objects
?
Get functions, which include functions such as GetField, GetRecord, and so on, g
enerally provide access to data that already exists,
whether in the data buffers or from an existing definition.
Create functions, which include functions such as CreateObject, CreateArray, Cre
ateRecord,
generally create defined objects that do not yet exist in the data buffer. Creat
e functions create only a buffer structure.
They do not populate it with data. For example, the following function returns a
record object for a record that already exists in the component buffer:
&REC = GetRecord();
The following example creates a standalone record. However, there is no data in
&REC2. The specified record definition must be created previously,
but the record does not have to exist in either the component or data buffer:
&REC2 = CreateRecord(EMP_CHKLST_ITM);
What is the difference between SQL Object and SQL Exec?
SQL Object can be used with Fetch to return multiple rows, whereas SQLExec can f
etch only one row.
1. Advantages of People Code?
2. Why SQR is used and advantages of SQR?
3. How are you running your HRMS systems either by JOBCODE or by POSITION_NBR?
4. What is the challenging and complicated People code you have written?
Why do you think it is complicated?
5. What is the challenging and complicated SQR you have written why do you think
it is complicated?
6. Steps involved in Data Conversion?
Extract data from the legacy system
Reconcile the extracted data
Identify the tables to be leaded with the new system
Data Mapping
Identify the tools (SQR or Import Manager or SQL Loader etc)
Write programs to perform conversion
Test the programs using test data
Check the data outline
Reconcile concerted data.
7. Why SQR is used?
Data conversion
Reports
Interface programs.
8. SQR Runtime flags?
9. Import SQC files?
10. How do you link SQR reports to process scheduler?
Create/modify/add run control table if you have any new fields
Create/modify/add run control panel if you have any program inputs
Create a menu definition (Note Menu group name: XYZ)
Give operator security
Create Process scheduler definition
Use-Process definition process definition add
Give report name and report type
Give menu group name (XYZ)
11. How do you create operator classes / users?
12. What are variable types in SQR?
& Data base reference fields Read only
$ Character (Same for Date)
# Numeric
{ } Variable in ASK or # define
[$ variable] Dynamic variable referencing
13. How do you format in PRINT (9,X, B, etc)?
14. How many types of display views are there in Data Designer?
15. What is a record definition?
16. What are the types of record definitions?
SQL Tables
SQL views
Dynamic views
Derived / Work Records
Sub Records
Query views
17. What is an Application Processor?
18. Types of People code?
Search
Field
Row
Save
Workflow
19. Field Edit Vs Field change?
20. Save edit Vs save pre change Vs save post change?
21. Scroll select Vs scroll select new?
22. SQL EXEC Vs Scroll select?
23. Scroll select Vs Row Scroll select?
24. Row scroll select Vs Row scroll select new?
25. Table loading Sequence (installation)?
Company table
Installation
Location
Department
Salary Plan
Salary step
Job code
Pay group
Benefit Programs
26. What are FUNCLIB* records?
1. 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 databa
se.
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 w
ill 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 mo
de 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.
2. 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.
3. Define Scroll? How many types of scrolls are there?
A Scroll is used to enter multiple rows and retrieve multiple row data. There ar
e two types of scrolls:
1. Nested scrolls For each repeating data and for each entry with other set of r
epeating set of data is called a nested scroll. Maximum 3 nested levels are allo
wed. The nested scrolls share same high-level keys.
2. Independent scrolls At each scroll level a maximum of 15 screen be included.
4. Define Occurs Level?
Occurs level specifies the level of a scroll bar relative to any other scroll ba
rs 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 Sec
ondary scroll bar has an occurs level of 2, which means it is subordinate to scr
oll bar 1.The third scroll bar has an occurs level of 3, which means it is subor
dinate to scroll bar 2.
5. 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 t
he information. There are 7 types of Data entry controls. A) Edit box B) Drop do
wn 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.
6.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 g
roups on sub- panel)
Secondary Panel: An invisible control that associates a secondary panel with a p
rimary panel. (Utility: Secondary panels are used to gather or display supplemen
tal information related to the object that appears in a primary panel)
7. 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.
8. 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 pane
ls
That should be processed as if it is one panel. The panel group represents a com
plete 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 open
ing and saving panel group not individual Panels.
9.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.
39. 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.T
ree level security 6. Query security (row level security)
Does Application Messaging work between 8.1x and 8.4 applications?
Application Messaging is used by PeopleSoft applications to communicate withone
another.
This is true not just for 8.1x and 8.4 applications, but also between an 8.1x an
d an 8.4 application.
For example, the HRMS 8.3 applications, which are based on PeopleTools 8.15, can
communicate with Financials 8.4applications,
which are based on PeopleTools 8.4, using Application Messaging.
If specific issues materialize relating to the Application Messages published by
certain applications, these new messages will be made available to customers.

Q: What are the compulsary SQC's that should be used in SQR Program?
A: Following are the SQC's that must be includen in every SQR program
Setenv.sqc
setup02.sqc
prcsapi.sqc
prcsdef.sqc
curdttim.sqc
datetime.sqc
What is the default Crystal Report that PeopleSoft query tool created ?
ACTQRY.RPT
What happens when changing from NO EDIT to EDIT option ?
Users can enter only prompt table values and the defult values get populated fro
m the database.
Where is WorkItem is available ?
WorkList Record
Which Peopleools system table is used to track object changes in PeopleSoft ?
PSREALEASE
What record changes does not affect Database ?
Change in ListBox in Record Feild properties.
Name some fields that are effective dated on the Personal Data pages?
1. Name
2. Address
3. Marital status
4. Smoker
Implementing Parallel Processing
There is no simple switch or checkbox that enables you to turn parallel processi
ng on and off. To implement parallel processing,
you need to complete a set of tasks in the order that they appear in the followi
ng list.
1. Define your Temporary Tables by defining and saving your Temporary Table reco
rds as type Temporary Table .
2. Set the Temporary Table Online pool. This will set the basic Temporary Table
Online pool based on the PeopleTools Options specifications.
(Note: This is done one time by the PS Admin group).
3. Assign Temporary Tables to your Application Engine program in its Program Pro
perties, setting the appropriate number of Instance Counts and Runtime option.
4. Build/Rebuild your Temporary Table record. This will build the necessary Batc
h temporary tables into that record s Temporary Table pool for use at execution ti
me.
5. Code %Table meta-SQL as references to Temporary Tables in your Application En
gine program, so that Application Engine
can resolve table references to the assigned Temporary Table instance dynamicall
y at runtime.
Application Engine Program Meta-SQL
A critical step in implementing parallel processing is to make sure that you ve in
cluded all of the appropriate meta-SQL within the PeopleCode that your Applicati
on Engine program executes.
To reference a temp table (Online or Batch), you need to use:
%Table(record)
You can reference any table with %Table, but only those records defined as Tempo
rary Tables get replaced by Application Engine with
a numbered instance of a Temporary Table from the Temporary Table pool.
For batch/dedicated Temporary Tables, when Application Engine resolves any %Tabl
e, it checks an internal array to see if a Temporary Table instance has
already been chosen for the current record. If so, then Application Engine subst
itutes the chosen table name. If there are no more batch/dedicated instances ava
ilable,
then Application Engine uses the base table instance by default (if the Runtime
option Continue has been chosen). Regardless of whether %Table is in PeopleCode
SQL
or in an Application Engine SQL Action, the program uses the same physical SQL
table.
For synchronous calls to Application Engine, an available instance number will b
e selected at random according to internal rules. Synchronous refers to using th
e CallAppEngine
PeopleCode function; all other methods that you use to invoke Application Engine
programs are asynchronous which means the page is not frozen while the program ru
ns to completion.
Populate your Temporary Table Process Instance with the Process Instance
All temporary tables should be keyed by Process Instance as a general rule. Also
, if you have opted to use the Continue runtime option when batch/dedicated tables
can t be assigned,
Process Instance is required as a key field. The current Process Instance is aut
omatically put into the State record, but when you Insert rows into your Tempora
ry Tables you must supply that Process Instance.
%ProcessInstance or %Bind(PROCESS_INSTANCE)
This meta-SQL returns the numeric (unquoted) Process Instance. The %PROCESSINSTA
NCE meta-SQL is more efficient and faster than using the %Bind(PROCESS_INSTANCE)
.
Note: The Process Instance value is always zero for programs initiated with Call
AppEngine. This is because the program called with CallAppEngine runs in process ,
that is, it runs within the same unit of work as the component with which it is
associated.
Clear Temporary Tables (%TruncateTable)
The Temporary Tables are truncated automatically at the end of processing. If th
e shared base table has been allocated because no batch/dedicated instances
were available, then Application Engine performs a delete of rows by Process Ins
tance instead of performing a truncate. In such a case,
the PROCESS_INSTANCE is required as a high-level key.
You can perform additional deletes of Temporary Table results during the run, bu
t you will need to include your own SQL Action that does a %TruncateTable.
Temporary Tables in PeopleSoft
Temporary tables are used exclusively with Application Engine programs and are i
ntended to provide parallel processing. The Application Engine programs may be e
xecuted online via CallAppEngine PeopleCode function or invoked through the Proc
ess Scheduler.
Parallel or concurrent processing allows multiple instances of an Application En
gine program to execute against the same tables while drastically reducing the r
isk for table contention.
Batch process performance can be improved by splitting the data to be processed
into groups and simultaneously running multiple instances of the program to deal
with different groups of data. For example, employees could be processed by las
t name by splitting the group into multiple groups alphabetically.
If you have a program that uses a temporary table and it is invoked multiple tim
es, that single temporary table could be used concurrently in multiple execution
s of the code.
This could create unpredictable results since the different instances of the cod
e would be issuing Deletes, Inserts, and/or Updates unsynchronized with each oth
er.
You could solve this problem by creating multiple temporary tables as a pool of
tables. Each invocation of your program would have to allocate an unused tempora
ry table, mark it as in use and release it back to the pool when you are through w
ith it.
By using the Temporary Table record type definition, you are able to define a re
cord and the PS Build process will build multiple uniquely named copies of your
Temporary Table as a pool.
Additionally, PS does Temporary Table management for your Application Engine pro
grams. You can code your program with supplied meta-SQL (%Table) so each executi
on of your Application Engine program will be given access to its own copy of th
e Temporary Table for its exclusive use. When the program ends, the table will b
e returned to the pool of Temporary Tables.
Temporary Table Pools
Online Pool
Defined in PeopleTools Options by PS Admins. Our current setting is five (5).
Used by Application Engine programs invoked by CallAppEngine.

Batch Pool
Defined in Application Engine program properties. Properties that must be set in
clude:
§ Assign Temporary Tables to the Application Engine program (Temp Table tab)
§ Set the Instance Count (Temp Table tab). The number entered here will dedicate t
he number of instances requested for the AE program.
§ Set the Runtime option (Temp Table tab). This is the action the AE program will
take if batch/dedicated tables cannot be allocated at runtime.
Continue the base table will be used instead (using Process Instance)
Abort program execution terminates.
§ Set the Batch Only checkbox (Advanced tab). If the program will only be run in b
atch mode and not executed from the CallAppEngine() PeopleCode function,
you should use this checkbox. Any dedicated temporary tables used for Batch Only
programs do not have online instances created.
Important Notes
Instance Count and the Batch Only checkbox should be set prior to building the r
ecord definition.
Ø If the temporary table was originally built with online instances (Batch Only ch
eckbox is not checked) and then changed to batch only , online tables must be dropp
ed manually
PeopleSoft Security Tables
When conducting an audit of PeopleSoft, eventually you will need to run queries
against the PeopleSoft security tables.
Listed below are the PeopleSoft delivered security table names, and a brief desc
ription of the table contents.
PSROLEUSER User Roles
PSOPRDEFN Operator ID and password information. Passwords stored
are encrypted. Updated by Security Administrator.
PSAUTHITEM Menus, panels and items an Operator is authorized to ac
cess. Updated by Security Administrator.
PSAUTHSIGNON Records sign-on times for all Operators. Updated by Securi
ty Administrator.
PSAUTHPRCS Records process groups for all Operators. Updated by Sec
urity Administrator.
PSACCESSPRFL Security table used to allow a super-user to create an acc
ess profile that would contain an Access ID and Access Password. Access ID and P
asswords are used to connect PeopleSoft to the underlying database. (only in ver
sion 7 and above)
PSOPRCLS Maps one Operator to multiple Operator Classes. (only
in version 7 and above)

PeopleSoft and LDAP Integration- How it works


There are 3 scenarios where LDAP may be used with PeopleSoft
1- Delivered external authentication:
In this instance the customer chooses an attribute in the user object which will
contain the PeopleSoft user ID. The login process is configured to access the L
DAP server using the user
credentials entered in the challenge screen. Signon PeopleCode connects to the L
DAP server, retrieves the user object which matches the value entered by the use
r as the "UserID",
extracts the DN from the user object and attempts to BIND the user object using
the entered password. If this sequence is successful,
Signon PeopleCode extracts the value in the attribute which has been configured
as storing the PeopleSoft user ID, usually "uid" and makes a call to SetAuthenti
cationResult to
cache the user profile and log the user into a PeopleSoft session.
2- Default or Dynamic Role creation:
This is an extension to the authentication functionality above. If the user suc
cessfully authenticates against LDAP but does not have an entry in PSOPRDEFN and
a default Role
has been configured, the entry will be created in PSOPRDEFN and the user will be
logged into that default Role in PeopleSoft. This default Role is usually the S
elf Service Role,
so customer PeopleSoft administrators do not have to create an account for ever
y employee, for instance.
With Dynamic Roles, a user account can be created or modified using attribute va
lues in the user object, queries against the PeopleSoft instance or other custom
logic.
2- PeopleSoft Directory Interface (PDI):
This is a licensable option with HCM and developed/supported as an Enterprise C
omponent.
With this option, the LDAP schema is modified with PeopleSoft specific object cl
asses and attributes to create a structure in LDAP which reflects the organizati
onal structure
defined in HCM. Messages are created from Workforce Management events to modify
the LDAP structure to reflect changes in the workforce.
LDAP authentication and Role management are described in the Security Administra
tion PeopleBook,
http://www.oracle.com/applications/peoplesoft/tools_tech/ent/ptools/peoplebook-s
ecurity-administration.pdf
which is part of the PeopleTools suite., PDI is described in the Enterprise Comp
onents PeopleBook, http://download.oracle.com/docs/cd/B40039_02/psft/acrobat/hrc
s9ecq-b1206.pdf
which is part of the HCM suite.
PeopleSoft supports LDAP v3, and delivers 4 pre-built configurations:
- Oracle Internet Directory
- Sun Java System Directory Server
- Novell eDirectory
- Microsoft Active Directory
There is also a custom option to allow any other configuration to be defined.
State and temp Records in PeopleSoft
State Records
A state record is a PeopleSoft record object that contains one or more fields us
ed by the Application Engine program to pass values between steps and actions.
Essentially it is a work record for your application to store common variables t
hat can then be used throughout the program.
A state record can either be a database table or a PeopleSoft work record. If yo
u make a state record a database table it must be keyed by process instance.
Otherwise the state record will not work properly. If you want to implement the
restart logic inside the application engine you have to make state record as da
tabase table to store the values.
If the state record is used as work record then it would lost all the values in
case of abend or error and you would not be able to restart the application eng
ine from a point where it has failed.
Because state records contain process instance, you can use the following SQL ac
tion to get the operator ID and run control ID of the person who triggerred the
application engine program.
%Select and %Bind are special Meta-SQL elements for working with application eng
ine state records. %Select puts data in the state record and %Bind gets data fro
m the state record.
Think Select-In and Bind-Out.
%Select(OPRID,RUN_CNTL_ID)
SELECT OPRID ,RUN_CNTL_ID
FROM PS_AE_REQUEST
WHERE PROCESS_INSTANCE = %Bind(PROCESS_INSTANCE)
Points to Ponder
1. State record at any point of time has only single line information, as it's d
riven by the Process Instance. While temp table can have multiple rows.
2. State record had only single instance, while the temp table can have maximum
of 99 instances.
3. State record is used for restart logic.
4. State record can be used for dynamically calling AE section, by adding AE_SEC
TION, AE_APPLID as fields. Temp table can not be used.
Standalone Rowset
In PeopleCode a rowset object, instantiated from a Rowset class, is a collection
of rows associated with buffer data.
Standalone rowset is an independent rowset object which is not associated with t
he component buffer. It means if you are using a rowset which is not in the comp
onent buffer,
it is a Standalone rowset. Standalone rowset allows you to work with data outsi
de of the buffer by getting whatever additional data you need form the database.
In this sense Standalone rowset is somewhat similar to the functionality of deri
ved records which were once used as place holders to store data not directly ass
ociated with the component.
Standalone rowset is not associated with the component buffer, there is no autom
atic action taken by the component processor on it.
So if you want to manipulate (Delete/insert/Update) data using Standalone rowset
then code needs to be written manually to save the changes done.
Standalone rowsets are not associated with a component or page.
The scope of Standalone rowsets can be Local, Global, or Component.
Code to create a standalone rowset object
Local Rowset &rsStandAlone;
&rsStandAlone = CreateRowset(Record.MYREC);
This code creates a rowset with MYREC as the level zero record.
Filling a standalone rowset
The Fill method in the Rowset class is used to populate the rowset, the Fill met
hods flushes the rowset ,reads the records from the database and populates them
into the Standalone rowsets. The parameters to the fill method are :- a where cl
ause and bind values.
Local Rowset &rsStandAlone;
&rsStandAlone = CreateRowset(Record.MYREC);
&emplId = 106149
&rsStandAlone.Fill( where emplid=:1 ,&emplId);
SQR Sections
In this article you can find various sections used in SQR programs.
1. Begin-Document
Begins a DOCUMENT paragraph.
A DOCUMENT paragraph allows you to write free-form text to create form letters,
invoices, etc.
This used when you want some text to be inserted as a paragrapgh into a report.
2. Begin-Footing
Begins the FOOTING section.
This section defines and controls information to be printed at the bottom of eac
h page.
If you want some text to apear at the bottom of every page in a report you can u
se this section.
This section can also be used to print dates or page numbers in footer.
3. Begin-Heading
Begins a HEADING section.
This section defines and controls information to be printed at the top of each p
age.
If you want some text to apear at the top of every page in a report you can use
this section.
This section can also be used to print dates or page numbers in header.
4. Begin-Procedure
Begins a procedure.
It is used to modularize functions and provide standard execution control.
Used to write your procedures, You can a procedure from another procedure.
5. Begin-Program
Begins the PROGRAM section of an SQR program.
After processing the commands in the SETUP section, if any, SQR starts program e
xecution at the BEGIN-PROGRAM section.
6. Begin-Report
Same as Begin-Program
7. Begin-Select
Begins a SELECT paragraph.
8. Begin-Setup
Begins a SETUP section.
This section is optional but, if included, is processed prior to the BEGIN-PROGR
AM, BEGIN-HEADING, and BEGIN-FOOTING sections.
9. Begin-Sql
Begins a SQL paragraph.
This paragraph can reside in a PROCEDURE, SETUP, or PROGRAM section.
Basic Concepts of Component Interface
Every component interface has the following main attributes:
Keys : When you create a new component interface, component interface keys are c
reated automatically based on the underlying component's search record.
However, you can add or change certain keys, if desired.
GetKeys: These keys automatically map to search key fields in the underlying com
ponent's search record. You need to change GetKeys only if you modify the keys o
f the component after
you've created a component interface.
Findkeys : These map to both search key fields and alternate search key fields i
n the underlying component's search record. You may remove FindKeys based on
Alt fields that you don't wish to make available for searching.
Createkeys : Create is only available if the underlying component allows Add mod
e. If it doesn't then you can't create anything in the component,
and thus you can't create anything using the component interface. The create met
hod will be disabled in the component interface properties.
Properties and Collections :
CreateKeyInfoCollection : Returns a collection of items described by Createkeys
.
GetKeyInfoCollection : Returns a collection of items described by Getkeys.
FindKeyInfoCollection : Returns a collection of items described by Findkeys.
PropertyInfoCollection : Returns a collection of items that describes propertie
s.
GetHistoryItems : Controls whether the component interface runs in "Update/Disp
lay" mode or "Correction" mode when the underlying component is effective dated.
Applies only to getting a component interface, not to creating a component inter
face.
InteractiveMode : Controls whether to apply values and run business rules immed
iately, or whether items are queued and business rules are run later, in a singl
e step.
Interactive mode is recommended for most cases where you use a component interf
ace to establish "real-time" integration with another interactive application.
StopOnFirstError : When this property is set to True, the first error generated
by the Component Interface will halt execution of the program. The default valu
e is False.
ComponentName : Returns the name of the component class as named in Application
Designer.
Component Interface Revised
Component Interface:
A component interface is an integration tool in PeopleSoft. It exposes the parti
cular component for other applications like PeopleSoft to PeopleSoft and PeopleS
oft
to third party applications.
A component interface is created to access a Component buffer without actually a
ccessing the Component physically from the PIA.
Component interfaces also are known as Enterprise Integration Points (EIP).
Component Interface is a replica of the underlying component.
If there are errors in the underlying component the same would be replicated in
the Component Interface, so before using a component in the Component Interface
test it carefully.
When should I be using a Component Interface?
If you have a requirement where you want to insert/update/delete the data throug
h PeopleCode and you also want for performing these operations
you want all the business logic defined in the application for that component t
o be also performed.
You can use Component Interface in this scenario as you would not have to check
and implement all the business logic again.
While creating the Component Interface all the business logic of the underlying
Component would be replicated and latter on you can modify any additional change
s.
Component Interface is fastest and robust approach for bulk processing of data.
Before using Component Interface its better to know some basic Concepts of Compo
nent Interface.
How to turn SQL Trace and PeopleCode Trace on an App Engine
Go into the process definition of the Application Engine
On the "Override Options" tab, on the parameter list, choose APPEND and enter th
e following:
-TRACE 7 -TOOLSTRACEPC 3596 -TOOLSTRACESQL 131
Change the numbers to reflect the level of tracing you desire.
Run the App Engine through the normal processing pages. In the process monitor,
you can retrieve the SQL and PeopleCode trace files with the logs.
Once you are finished, change the settings back (most likely it was originally s
et as NONE).
Improved System Performance of your PeopleSoft system Makes a Happy User
If you run PeopleTools 8.4 or above and want to increase performance by eliminat
ing extra trips to the database and unnecessary caching,
then here is a PeopleSoft Performance tip that you need!
1. Make sure that the database that the application server runs against
produces clean SYSAUDIT runs. If SYSAUDIT is not clean, the LOADCACHE program ma
y fail.
2. Make sure the user who is executing the program has the "Load Application Ser
ver Cache" component defined to its Permission List in User Profile.
Find or add the Utilities page for the users permission list and add the compon
ent Load Application Server Cache.
3. Check your psprcs.cfg file (Process Scheduler configuration file). psprcs.cfg
is where you specify the type of objects to cache using the EnableServerCaching
parameter.
For PeopleTools 8.4 set it to 2. The LOADCACHE reads this setting and caches met
adata according to the value specified in the Process Scheduler configuration.
SQR Reserved Variables
When you create multiple reports, the variables apply to the current report. SQR
reserves a library of predefined variables for general use.
#current-column The current column on the page.
$current-date The current date-time on the local machine when SQR starts running
the program.
#end-file Set to one (1) if end of file occurs when reading a flat file; otherwi
se, it is set to zero (0).
Your program should check this variable after each READ command.
#page-count The current page number.
#current-line The current line on the page.
This value is the physical line on the page, not the line in the report body. Se
e Getting Started with SQR.
Line numbers are referenced in PRINT and other SQR commands used for positioning
data on the page.
Optional page headers and footers, defined with BEGIN-HEADING and BEGIN-FOOTING
commands,have their own line sequences.
Line 2 of the heading is different from line 2 of the report body or footing.
#return-status Value to be returned to the operating system when SQR exits.
Can be set in your report. #return-status is initialized to the success return val
ue for the operating system.
#sql-count The count of rows affected by a DML statement (INSERT, UPDATE, or DEL
ETE). This is equivalent to ROWCOUNT in Oracle and Sybase.
Manipulating List Variables
You can perform the following actions with list variables:
Define a list variable
You can use a list variable to hold multiple rows of information. Before you ass
ign a list variable, define it using the following syntax:
let
%listname=LIST(col_var|num_var|str_var|str_lit|num_lit[,...])
Or
let
%listname[num_lit]=list(NUMBER|DATE|TEXT$colname | .colname [,...])
Assign a list variable To assign a list variable, use the following syntax:
let
%listname|%listname[num_var|num_lit]=list(col_var|str_var |num_var|str_lit|num_
lit[, ])
Access a list variable To access a list variable, use the following syntax:
let str_var|num_var=%listname[num_var|num_lit].#colname
Modify a list variable When you modify a list variable, you can modify a specifi
c row element of any list item.
In list-variable arguments, the value between the brackets indicates either the
number of rows in the list for the definition case or the row within the list to
be modified or assigned.
If there are no brackets, there is no need to predefine; assign the types based
on the given variable types.
For multirow lists, the assignment must be compatible with the types given in th
e definition.
A NUMBER field has the same characteristics as an undeclared #var; the underlyin
g storage depends on the contents, and the DEFAULT-NUMERIC setting applies.

Вам также может понравиться