Dear Readers, Welcome to Peoplesoft Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your Job interview for the subject of Peoplesoft. These Peoplesoft Questions are very important for campus placement test and job interviews. As per my experience good interviewers hardly plan to ask any particular questions during your Job interview and these model questions are asked in the online technical test and interview of many Medical Industry.
PeopleCode is an object oriented proprietary (case-insensitive) language used to express business logic for PeopleSoft applications.
1. Record field level
2. Page people code
3. Component level people code
4. Component record people code
5. Component record field people code
6. Menu item people code
7. Application engine people code
8. Component interface people code
9. Messaging people code
10. Application package people code
Database server (PSPCMPROG) table:
objectvalue1 – table name
objectvalue2 – field name
objectvalue3 – event name
1. Searchinit
2. Searchsave
3. Rowselect
4. Prebuild
5. Field Default
6. Field Formula
7. RowInit
8. PostBuild
9. Activate
10. FieldEdit
11. FieldChange(PrePopup, ItemSelected)
12. RowInsert
13. RowDelete
14. SaveEdit
15. SavePreChange.
16. WorkFlow
17. SavePostChnage.
After the save pre change work flow event get fired.
Two types:
1. Conventional data type (Any, Boolean, float, integer, object, string, time, date, number)
2.Object data type (record, rowset)
REM can be used to comment a single line, but it will be processed by the component processor
Single and multiple lines commenting:
/* PeopleCode Statements
------ ------ ------ ----
*/
Nested Comments:
<*
/* PC Statements..... ..... ..... */
/* ...... Some info on code ...... */
/* More comments */
*>
Two types of variables:
1) user defined variable prefixed with ‘&’
2) system defined variable prefixed with ‘%’
Component processor is a runtime engine that controls processing of an application from the time user request the component from the menu till the database is updated and processing of component is completed.
In short Component Buffer contains all the Data of active component. The data buffer is used to store data added from sources other than the component, such as from a PeopleSoft Application Engine program, an application message, and so on.
PeopleTools 8 provides an alternative to the scroll level, row, and field components in the form of the data buffer classes Rowset, Row, Record, and Field, which you reference using dot notation with object methods and properties.
SQLExec can only select a single row of data. If your SQL statement retrieves more than one row of data SQLExec sends only the first row to its output variables. Any subsequent rows are discarded.
If you need to SELECT multiple rows of data use the CreateSQL or GetSQL functions and the Fetch SQL class method.
Use the GetSQL function to instantiate a SQL object and associates it with the SQL definition specified by sqlname. The SQL definition must already exist, either created using PeopleSoft Application Designer or the StoreSQL function. Processing of the SQL definition is the same as for a SQL statement created by the CreateSQL function.
Syntax: GetSQL (SQL.sqlname [, paramlist]);
Use the Transfer function to close the current page and transfers the end-user to another page, either within the current component or in another component. Transfer can either start a new instance of the application and transfer to the new page there, or close the old page and transfer to the new one in the same instance of PeopleTools
Transfer(new_instance, MENUNAME.menuname,BARNAME.barname, ITEMNAME.menu_itemname, PAGE.component_item_name,action [, keylist] [,AutoSearch]);
Example:
Transfer (false, MenuName."CREATE_PROJECTS", BarName."USE",
ItemName."PROJECT_SUMMARY", Page."PC_PROJSUMMARY_PNL", "U", BUSINESS_UNIT, PROJECT_ID);
Use the TransferPage function to transfer control to the page indicated by PAGE. page__namename within, or to the page set with the SetNextPage function. The page that you transfer to must be in the current component or menu. TransferPage([PAGE.page_name_name])
The Activate event get fired each page gets activated. Active PeopleCode can only be associated with pages. The event is used for security validations such as field enabling and hiding a scroll, enabling user to programmatically control the display of that page controls. This event is used for component build processing in add mode and update mode.
FUNCLIB is a reusable function stored in derived/work record field event. So, first create a new record and set the record type to Derived/Work. FUNCLIB records do not hold data, so they do not need to exist at the database Level. Add the field ATTACHADD to this record and save the record as APT_ATTACH_FUNC. PeopleSoft recommends placing FUNCLIB PeopleCode in the FieldFormula event.
Deferred processing is used speed up the data-entry process. This means that the system does not validate the data for each field as you Tab through a page. You can enter in all the data for your page without unnecessary trips to the server for data validation.
Entered data is validated when:
You navigate to another page in the component
Click the Save button
Click the Refresh button (access key: Alt+0)
If there are any errors in your data, you are notified at this time.
Field Edit event will not fire until we press the SAVE button if the deferred processing is ON.
You can select Deferred Processing mode at the following levels:
Page control
Grid
Page (include subpage and secondary page)
Component levels
A rowset object, instantiated from a Rowset class, is a collection of rows associated with buffer data. A component scroll is a rowset. You can also have a level zero rowset.
The following two lines of code are equivalent:
Want to get field value into people code which is at level 2.
GetLevel0 ()(1).GetRowset(Scroll.level 1recordname).GetRow(CurrentRowNumber()).record.fieldname
The default method for the Rowset class is GetRow. This means you can specify just a row number, and not use the GetRow method. For example, the following two lines of code are equivalent &MyRow = GetRowset()(5); or &MyRow = GetRowset().GetRow(5)
SaveEdit -> SavePreChange -> workflow -> SavePostChange
this is similar to Interactive Processing where as in this Field Change, Field Edit Peoplecode events & System edits will be differed until we press the Save Button.
In Save Prechange we can get the data from Component Buffer for that particular Component where as in SavePost change Component Buffer is cleared we have to get data from Database and this is used to update values outside the database.
Fieldedit event is fired every time for each row when field is edited where as saveedit is fired only once when a user click on save button
The FieldFormula event is not currently used. Because FieldFormula PeopleCode initiates in many different contexts and triggers PeopleCode on every field on every row in the component buffer, it can seriously degrade application performance. Use RowInit and FieldChange events rather than FieldFormula.
If a field value is changed, whether through PeopleCode or by a user, the IsChanged property for the row is usually set to True. However, if a value is set in FieldDefault or FieldFormula, the row is not marked as changed. At save time, all newly inserted and changed rows are written to the database. All newly inserted but not changed rows are not written to the database.
As a matter of convention, FieldFormula is now often used in FUNCLIB_ (function library) record definitions to store shared functions. However, you can store shared functions in any PeopleCode event. FieldFormula PeopleCode is only associated with record fields.
PreBuild fires before any PeopleCode events on all the rows and fields in the component such as FieldDefault and RowInit. During the PreBuild event there will not be any data in the component buffer structure other than search record as its executing prior to the component build process. That’s why it is called PreBuild.
During the PostBuild event you will have access to the data read from the database into the component buffer structure. That’s why it is called PostBuild.
a)The MsgGet function retrieves a message from the PeopleCode Message Catalog, substitutes in the values of the parameters into the text message and is stored in database, where as WinMessage doesn’t store in database.
b) MsgGet function message number is mandatory parameter, but there is no such parameter in WinMessage.
Use the Gray function user to make field unavailable for entry a page. Preventing the user from making changes to the field .Gray make a field display-only, while hide makes it invisible.
Syntax: Gray (fieldname)
Use the Ungray function to make a gray (non-editable) page field editable .If the field was grayed with call to the Gray function. If the page field is made display-only in page the field properties dialog, then Ungray has no effect.
Syntax: UnGray (fieldname)
Use the all function to verify a field contain value, or if all the fields in a list of fields contain values. If any of the fields are NULL, then all return false. A blank character field or zero numeric value in a required numeric field is considered a null value.
Syntax: ALL (fieldname)
None function to checks that a field or lists of fields have no value.
a) AddDropDownItem: The AddDropDownItem method adds an item to the dropdown list in the control for the field. The first time this method is called, it overrides the prompt table or translate table used to populate the list. Those items no longer appear in the list. Only the items added using this method display. Subsequent calls to this method add additional items to the dropdown list. The items added with the first call to the method also display. If there is an existing value and the dropdown list is changed with these functions, the selection shows as (Invalid value) unless the new list contains an entry with the same code as the existing value.
Syntax: AddDropDownItem (CodeString, DescriptionString).
b) ClearDropDownItem: The ClearDropDownList method clears all items added to the dropdown list using the AddDropDownItem method. In addition, this method causes the prompt table or translates table values defined for the list to come back into effect again (unless they’re subsequently overridden again with AddDropDownItem).
Syntax: ClearDropDownList ().
Rowset, row, record and field.
Local variable-type & varname;
In PeopleCode standalone rowset is an independent rowset object not associated with component buffer. They allow you to work data with outside of the data whatever additional data you need from the database. In this sense they replace the functionality of the derived records which were once used as place holders to store data not directly associated with the component. Because a standalone rowset is standalone, there is no automatic action by the component processor on it. This means that if a standalone rowset is used to manipulate data (insert/update), code will need to be added to manually save changes.
GetRowset is used to get rowset for a record in the component buffer.
CreateRowset is used to create rowset for a record which is in database, and is also called as standalone rowset.
Used to remove all rows inside target scroll area and frees it associated buffer. Rows that are flushed are not deleted from the database. This function is often used to clear work scroll before a call to ScrollSelect.
Syntax: ScrollFlush (scrollpath)
WorkFlow PeopleCode executes immediately after SavePreChange and before database update that precedes SavePostChange. The main purpose of the workflow event is to segregate PeopleCode related to workflow from the rest of applications PeopleCode. Only PeopleCode related workflow (Such as triggerbusinessevent) should be in workflow programs. Your program should be deal with workflow only after my SavePreChange process completed.
Think-time functions suspended processing until the user has taken some actions (such by clicking button in message box), or until external function has run to completion (for example a remote process).
Think-time function hold avoids the following events: SavePreChange, Workflow, RowSelect, SavePostChange.
FieldEdit, FieldChange, or ItemSelected.
36. Callappengine () explain with syntax?
The CallAppEngine function should only be used in events that allow database updates because generally, If your are calling PeopleSoft application engine. You’re intending to perform database updates. This includes following events: SavePreChange, SavePostChange, Workflow, Message Subscription, and FieldChange.
CallAppEngine Cannot use in Application engine PeopleCode actions. If you need to access one application engine program from another application engine program, use the CallSection action
Error stop the process, warning allow processing to continue. An error in FieldEdit prevents the system from accepting the new value of a field. A warning enables the component processor to accept the new data.
An error in SaveEdit prevents the system from saving any row of data. A warning in SaveEdit also is applied to all data in the page or component, but the component processor will accept the data
RemoteCall is a PeopleTools feature that enables executing COBOL program remotely from within a PeopleSoft application. RemoteCall is made using the RemoteCall PeopleCode function.
a) AddAttachment
Syntax: AddAttachment (URLDestination, DirAndFileName, FileType, UserFile [, MaxSize [, PreserveCase [, UploadPageTitle [, AllowLargeChunks]]]])
Use the AddAttachment function to upload a file from an end-user machine to a specified storage destination. Note that it is the responsibility of the calling PeopleCode program to store the returned file name for further use.
b) DeleteAttachment
Syntax: DeleteAttachment (URLDestination, DirAndFileName [, PreserveCase])
Use the DeleteAttachment function to delete a file from the specified storage location.
DeleteAttachment does not generate any type of "Are you sure" message. If you want the user to verify the deletion before it is performed, you must write your own checking code in your application
c) DetachAttachment
Syntax: DetachAttachment (URLSource, DirAndFileName, UserFile [, PreserveCase])
Use the DetachAttachment function to enable a user to make a copy of an attached file on their local client system. The file is sent to the browser with appropriate HTTP headers to cause the browser to display a save dialog box to the user. The user can save the copy of the file with any filename.
d) ViewAttachment.
Syntax: ViewAttachment (URLSource, DirAndFileName, UserFile [, NewWindow [, PreserveCase]])
Use the ViewAttachment function to enable an end-user to view a file on a system.
The copy of the file to be viewed may have a different name than the file at the storage location.
Any method of accessing PeopleCode programs displays a window where PeopleCode programs can be input or modified. This window is the PeopleCode editor. The PC editor enables you to edit and navigate all pc programs that belong to the same parent definition.
On the left side of the window is a drop-down list box showing the current field and other available fields, records, and components. Any field with PeopleCode attached is listed in bold. The right side of the window has a drop-down list box listing the current PeopleCode event and other acceptable events for that definition. Events already containing PeopleCode for that definition are listed in bold.
SQL Statements are Platform Dependent, where as MetaSQL statements are Platform Independent.
MetaSQL: - %Bind, %Execute Edits, %Select, %SelectInit, %Sql, %Table, %Truncate Table.
SQL: The SQL statements are used to fetch/retrieve, update, insert, delete data from the database. In PeopleSoft we use the SQL statements using SQLExec or CreateSQL. Different SQL statements are: Select, Insert, Update, Create and Delete.
MetaSQL: Different RDBMS have different date and time formats. Though the component processor takes care of the automatic conversion but at the time of using the SQLExec the automatic conversion does not take place. So in order to understand this, MetaSQL concept has come. Which we can use in diff SQL stmts. for example %datetimein, %date, %time, %currentdatetime, %datetimeout etc.
%dateIn: This is used in the where clause of "Select and update"
%dateout: This is used while selecting the data.
Application Designer.
PeopleCode is only case sensitive within a quoted literal.
SearchSave, FieldEdit, SaveEdit and RowDelete primarily. You may also code errors and warnings in RowSelect.
Since FieldFormula is performed every time the panel is displayed on every row of data, its biggest drawback is the performance overhead it adds.
FieldChange. Since RowInit initializes the data before it is displayed, usually it is used along with FieldChange to accommodate any of the changes that are performed by the operator once the panel is displayed.
SavePostChg is different from all other Peoplecode events since it is performed after the updates are made on the database.
If a variable is not declared PeopleCode will assume it is a local variable.
PeopleCode functions are used to perform the same logic in multiple programs while only having to maintain it in one place.
A PeopleCode function is called by referencing the function name and then passing the function the appropriate number of parameters in parentheses.
Bootstrap mode is actually logging into the App designer in 3-tier mode i.e. Logon to the
App server. Data mover scripts are run on 3-tier mode.
SavePostChange
1. FieldChange
2. FieldDefault
3. FieldEdit
4. FieldFormula
5. PrePopup
6. RowDelete
7. RowInit
8. RowInsert
9. RowSelect
10. SaveEdit
11. SavePostChg
12. SavePreChg
13. SearchInit
14. Search Save
I5. Workflow
List Box item
Oracle, db2, Informix
SETTD
Using UNION
State Records are used in AE to pass values from action and section to the other. It also allows you to restart the App engine. For this, the State record has to be a SQL table. A state record either can be an SQL table or derived Work record. Process_instance field is mandatory in the State Record.
CI’s can be used to upload data from legacy systems through excel to Cl or create new
data within PeopleSoft from another component.
When you want to validate data upfront before loading them into db. better plan to use appeng or ci, when you are thinking of huge data to be loaded SQR would be a better option
I. Use Load-lookup and Arrays
2. Use SQT files.
3. Generate multiple reports.
4. Use correct sql joins.
Field Edit Validate particular field only, but Save Edit validates all the fields in that component.
AE is built on PeopleSoft proprietary language called People Code, where as SQR is a third party tool.
Record peoplecode is triggered whenever you deal with the record. EX when u right a piece of code on Record Field change that code is fired whenever the Field is changed in any page. There is nothing called Row PeopleCode.
Scrollselect (1, targetname, recordfiledname)
SQL statements are Database specific whereas meta-SQL statements are Db independent.
2-tier, 4-tier, process scheduler
delete($filename)
True
Trigger Business Event (BusProcess, BusActivity, BusEvent);
The statement being executed is line 233 of the PeopleCode program.
Starts a Process Scheduler
Starting Web Server
SQL Table OR Field
Sql, data mover commands
Specifies the output path
Spawning
Security Administrator 20
Save post change
Query view 9
PSRELEASE
PSRECORDNAME
PSCAMA
PS APPSR V.CFG
psadmin -c shutdown! -d ps8OOdmo
PSACCESPRFLPSSTATUS PSOPRDEFN
Projects provide the ability to migrate all objects at once or each object type individually.
Process Scheduler, Use, Process Definitions
PID.AET
Process monitor
PIA-.PeopleTools-> Integration Broker->Node DefinitionApplication Designer Message -Properties
People Tools
Page def
Once you exit PeopleSoft and log back in.
97. Interlink data type can be declared as?
Local
Integration Broker
Field/Edit
Apache JServ was a servlet engine that was supported in PeopleTools 8.1x. This support has been removed from PeopleTools 8.4 for several reasons: v JServ is no longer an active product and is in maintenance mode and there are no longer any new official releases. v Our customers have exhibited a desire to use commercial products for mission-critical enterprise web application servers rather than open source solutions. Therefore, moving to support Tomcat is not seen as a reasonable solution. v Apache can still be used as an HTTP server with BEA WebLogic .