Friday 6 April 2012

PeopleCode Interview Questions



1. Where PeopleCode get stored?
 In Database Server (PSPCMPROG table)
2. Suppose if there is same component X in two different menus, menu1 and menu2 and if you want to assign a different search record for each menu, then which PeopleCode function do you use and where do u write the code?
Instead of using PeopleCode, Directly we can assign the search record at the menu level which will override the search Record specified at the component level.
 3. What is Component Processor?
 The Component Processor is the PeopleTools runtime engine that controls processing of an application from the time that a user requests a component from an application menu until the database is updated and processing of the component is complete.
4. Explain How to send email to the all employee from the PeopleSoft application when a certain event is true? What is the event used to trigger?
Create a workflow. In the workflow, use a query with active employees and their email ids as inputs. On the successful occurrence of the event, trigger this workflow using TriggerBusinessEvent.
5. Explain the advantage and disadvantage of SQLExec in PeopleCode?
By using SQLExec function we can do the manipulation to the database. We can write insert, update and delete SQL commands. But drawback while selecting the data using SQLExec, it will return only one at a time another drawback, if the name of the records changed, then you have to make the changes in the code as the query will in the quotes inside SQLExec. 
6. Tell me where can we write the PeopleCode?
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 
7. Tell me is there any function exist in PeopleCode which stops the processing of whole component?
It is "Error" Function. Use the Error function in FieldEdit or SaveEdit PeopleCode to stop whole processing and display an error message. It is distinct from Warning, which displays a warning message, but does not stop processing. Error is also used in RowDelete and RowSelect PeopleCode events. 
8. Tell me what is the difference between SQL Object and SQLExec?
SQL Object is a people tool definition which can be created using app designer as well as using PeopleCode command CREATESQL( ). It is mainly used for reusability of the SQL statements. So whenever this statement is required no need to hard code, just create an SQL object of the same and use where ever it is required.
SQLExec is a PeopleSoft delivered function used to retrieve only one row and u can update multiple rows of data. It directly interacts with the database.
9. Tell me what is the diff between component level PeopleCode and record level PeopleCode?
Record level PeopleCode :
The PeopleCode written on the Record level PeopleCode will effect all the Components in which that particular record is used.
Component Level PeopleCode :
The component level PeopleCode works only for that particular component and if any record in the component is referenced by component level PeopleCode then it would not effect any other component where same record is used.
Sequence: first Record level PeopleCode will fire and then Component level PeopleCode.
10. Can you explain about component Buffer?
                When you open any page in a component, the system retrieves all of the data records for the entire component and stores them in one set of record buffers, organized by scroll level and then by page level. PeopleCode frequently must refer to data in the Component Buffer, that is, the area in memory that stores data for the currently active component.
There are two methods of specifying a piece of data in the Component Buffer from within PeopleCode
-------- Contextual references, which refer to data relative to the location of the currently executing PeopleCode program.
-------- References using scroll path syntax, which provide a complete, or absolute, path through the Component Buffer to the referenced component.
The component buffer contains current active component data it is temporary memory area. 
12. What is the sequence of events fired when a page is saved.
SaveEdit--->SavePreChange--->Workflow--->SavePostChange
13. How to store output of SQL query in a variable using PeopleCode?
Using SQLExec() function
                SQLExec(“select EMPLID, NAME from PS_PERSONAL_DATA”, &emplid, &name);
14. 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 the 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.
15. PeopleCode attached with Push Button can be associated with which events?
                Field Edit, Field Change
16. Which PeopleCode debugging tool automatically converts values of any data type?
                WinMessage
17. What is Differed processing and its advantage?
                Postpones some user actions to reduce the number of trips to the database.
                Advantages:       1) Reduces network traffic
                                                2) Increase performance
18. What is Rowset?
Rowset is data structure representing the hierarchical data. Rowset consists of set of rows, where each row consists of set of records and child Rowsets. We can retrieve data from data buffer and component buffer using Rowset.
19. Difference between SavePreChange and SavePostChange?
SavePreChange is fired when the component buffer is not cleared. It provides one final opportunity to manipulate data before the component processor updates the DB where as SavePostChange is fired when the buffer is cleared (i.e., component processor updates the DB) and before the commit is issued by the database.
20. How to change prompt table dynamically?
Using PeopleCode function “%EditTable”
21. What are Think time functions?
Think-time functions suspend the processing of the whole of component either until the user has taken some action (such as clicking a button in message box) or until an external process has run to completion.
Ex:  DoCancel, DoModal, DoComponent, WinMessage, WinMessageBox etc..
22. What is the difference between RowInit and RowInsert?
RowInit event fires the first time the Component process encounters a row of data.
RowInsert event fires when the end-user adds a row of data. Don’t put PeopleCode in RowInsert that is already exists in RowInit, because a RowInit always fires before the RowInsert event, which will cause your code to be run twice.

No comments:

Post a Comment