Search This Blog

Monday, December 14, 2009

More PeopleSoft Questions

1.What is a record?
A record definition is a definition of what your underlying SQL database tables will look like, and how they will process data.

2.What are the record structures available in Peoplesoft?
Multiple types of records can be created within application designer.
SQL Tables
SQL Views
Dynamic Views
Derived /Work records

3. How to define parent-child relations in peoplesoft?
Some times while creating records, you'll have a field within a table for which you want to allow multiple occurrences, in which case you create a subordinate or child table. For ex. For employee reviews, an employee can be reviewed for performance in multiple categories - organization skills, interpersonal skills etc.  These categories and ratings are stored in a separate child table, EE_REVIEW_RT, which is related to REVIEW_DT, the parent table which stores data about employee reviews. The keys you set on parent record will determine which keys are required on any child records. The child must have the same keys as the parent, plus one or more keys that uniquely identify each row.

4. Can we assign default value for a field in Data Designer?
Yes, we can assign a default value to a field. Record field properties - Use - Default value

5. How do we create custom field format?
Custom field format allows you to create your own format definitions using format notation, and apply them to fields. These formats are organized into Format Families, which can include one or more unique formats.

6. What are the keys available in Peoplesoft?
Key - Search Key - Duplicate Order Key - Alternate Search Key - Descending Key

7. What is significance of 'Rs Dt' in Data Designer?
Reasonable date specifies whether a reasonable date test will be performed on a date field. The reasonable date test warns if the date is outside a 30-day range before and after the current date.

8. What is a prompt table?
If you want to provide prompt support for a field based on the data stored in a separate table, enter the name of the table you want to use as the Prompt Table at: Record field properties - Edits - Prompt table. This will enable users to position their cursor on the field and press F4 to prompt for a list of values stored on the table.

For example, let's say that we want users to enter Employees IDs in the EMPLID field, which is stored in PERSONAL_DATA. By entering PERSONAL_DATA as the Prompt Table, users simply press F4 on EMPLID to select from a list of Employee ID values for this field.

9.What is Translate/xlatt field?
The translate table is a table that stores values for fields that need to be validated but don't need individual tables of their own.

10.What is the maximum field length for an xlatt field and what data types does it support?
 Max field length – 4, ‘CHAR’ Datatype.

11. What is the significance of 'No Edit ' in edits section in Data Designer?
If you don't want to establish any special edits for a record field click 'No Edit' option button in Record field properties - Edits

12. What is Set control field, where can it be utilized?
When you enter a name in Prompt Table (Record field properties - edits) and tab off the field, Set Control Field is activated. This enables you to select a Set Control Field that overrides the Set Control Field of the record definition specified in Prompt table. If you don't specify a name in this field, it defaults to the Set Control Field of the table specified in prompt table.

13. What is Cache how is it useful for clients?
The Cache or Cache record is a PS record, keyed by process instance, that must be created and maintained by the Application Engine Developer. This record defines the fields that an application uses to pass values from one SQL statement to another. When an application is started, a row in the cache record is created for the assigned process instance. It is then updated by application engine whenever a COMMIT is performed. The cache row is deleted upon successful completion of the application.

14.What is Query Security Record?
Query Security Record is to secure access to a particular record using a security view.

15.What is a Dynamic view record?
Record def that can be used like a view in panels and Peoplecode, but is actually not stored as a SQL View in the database. Instead, Application Processor uses the text as a base for the SQL SELECT that is executed at runtime. Dynamic views some times provide superior performance such as search records.

16.What is the use of Derived/work record?
A temporary work space to be used during online panel processing. A derived or work record is not stored on the database, so you don't build it.

17.What is Query view, how to define it?
A view constructed using Peoplesoft Query tool.

18.What is the use of Search key and list box item?
When you turn on Search Key, the system will include this field in the search dialog for a panel. And it automatically turns on the List Box item. Turn on the List Box Item if you want the field to appear in F4 prompt lists and in the list box preceding a panel.

19. Can we rename a field/record, How does it effect front-end and database?
When you rename a record definition, the system automatically renames all references to it in Peoplecode except in the text portion of the SQL Functions, such as SQLExec and Scroll Select. If you have already SQL Created the underlying tables for the record definition you renamed, you'll need to recreate the table. If you have data in this table you want to preserve, you should use the SQL Alter function to rename the data base tables. When you rename a field, the system automatically renames all references to it in Peoplecode, except in the text portion of the SQL functions such as SQLExec and Scroll Select.

20.Can we delete a field in the record structure?
You cannot delete a field if it is currently used on any records. Before you delete a field, you must first remove it from any records where it resides.

21.How exactly index are built in application designer?
Using Application Designer, you create several kinds of object definitions that represent database components. Record definitions represent tables, indexes and views. The Build process is the centerpiece of Application Designer, which uses DDL to construct a database component (index is one such componet) based on the associated records and fields. Some indexes are defined automatically, based on the search key, list box items and alternate search keys you set in your records. However it is sometimes necessary to define additional indexes to improve the performance.

22.What are system tables, application tools table, User tables in peoplesoft?
System Catalog Tables Ptools Tables Application Tables Sysobjects PSRECDEFN JOB_DATA Syscolumns PSPNLDEFN PERSONAL_DATA

23.What is audit? How many types of audits available in peoplesoft?
For some field values, you may want to keep a history of who adds, changes, or deletes data. When you set the options for tracking that info it is called auditing. When you turn on the Audit field options (Record field properties - Use) Psoft track the info into PSAUDIT table. Three types of audits are available in peoplesoft?
Field Add: Audits the field whenever a new row of data is added.

Field Change: Audits the field whenever the contents are changed.

Field Delete: Audits the field whenever a row of data is deleted.

24.What is the System Maintain field in Record field properties - Use?
The System maintained option is for system documentation purposes only and doesn't affect processing. Check this if you want to document that the field value is system-generated.

25.What is a Subrecord?
A SubRecord by definition allows you to add a group of fields that are commonly used in multiple record definitions. A SubRecord must be defined before it can be entered into a record definition. Insert - SubRecord

26.What are Sub panels?
If you have groups of controls, such as address controls, that you use on multiple panel definitions, you can save it as a subpanel. And insert this sub panel wherever you want.

27.What are Secondary panels?
Secondary panels are used to gather or display information related to the objects that appear in a primary panel. A secondary panel can be called from the primary panel and used to enter or display additional data without cluttering your primary panel.

28. How to invoke the secondary panel?
There are two ways :
Insert a push button control type of Secondary Panel. This automatically invokes the secondary panel when the user presses the button.

Insert a secondary panel control. This is invisible at run time. When you use a secondary panel control , you must also insert a command push button on the panel and call the DO MODAL People code function from the push button's FieldChange event in order to invoke the secondary panel.

29. What is a Related Display field and Display Control field?
A related display field is for display purposes only - it always references a row that's not being updated from the current panel. The display control when you select Related Display field, you need to relate it to the appropriate control. A list of all the controls on the panel marked as display control fields in the Related control field box. Select the control field to which this particular related display is related.

30. How many scroll levels are available in peoplesoft? –3.
31.Can we define Child table fields in '0' level? No, Parent tables only can be associated at '0' level.

32. What is a Command Push button?
Command Push buttons are associated with a record.field, so when the user presses the push buttons, the Application Processor executes any field change Peoplecode associated with that panel control.

33.What is a menu item and bar name?
There are four types of menu items:-
Panel group: defined only in standard menus
Transfer menu items: defined only in pop-up menus.
Peoplecode and Separator menu items: Available for both pop-up and standard menus.

34.What is  a panel group?
A panel group represents a complete business transaction. It can be composed of either a single panel or a set of panels that should be processed as if it were one panel. Think of it as paging through several pages of a single display. Panel group control: The grouping of panels and their associated labels on a cascading menu - The search record used to retrieve data into the panel - Associated user actions.

35. What is standard / panel group search record ?
The panel group search record is the record used to populate the panel group's level-zero search key fields; this enables the system to identify a unique row of data for the level-zero primary records in the panel group's panels, build a panel buffer for the panel group, and display the panel.

36. What is add mode search record?
When a different search record (other than standard search record) is specified for Add actions to create special security views that limit the rows operators can add based on specific search criteria or to specify a different search record for add actions.

37. What are the allowed actions in menu?
Add, Update/Display, Update / Display All, Data Entry and Correction.
38. What is the main difference between 'update/display' and 'update/display all'?
Update / Display - Used to update existing rows only. Update / Display All - Used to update current and future rows in an effective dated record. Only used with effective dated records.

39. How exactly allowed actions work with 'Effdt' panels?
Action Type View Change Insert New Rows Update / display Current , Future Future only Eff dt > the current row Update / Display all History, Current Future only , , Future Correction History , Current All existing rows Add new rows with no Future Eff dt restrictions

40. What is a menu group?
Menu groups are groups of standard menus that can be accessed from the PeopleSoft Go menu bar. If the menu group contains two or more standard menus, the standard menu labels appear in a cascade menu to the right of the menu group on the Go menu bar.

41. What is an operator and operator class?
Operator definitions - commonly referred to as operator Ids, or just operators - have associated pass words. Operator definitions are for each user in your system. An operator can be defined with its own set of system permissions and restrictions, or it can inherit this info from one or more class definitions to which it is linked.

Class def have no user passwords associated with them; you can't use a class def to sign on to the system. Instead, u use classes to organize your users into groups with common access rights. Instead of setting up access rights for every operator, you can define just a few classes and link your users to them.

42.What is the purpose of access_id?
When you create an operator ID you must assign it an access profile, which specifies an access ID and password. Access ID connects Peoplesoft application(s) with RDBMS, once their password is validated.

43.What is Operator security and Object security?
Object Security is to control access and update to the people tools objects - record def, menu def, proj def, panel and panel group def, tree structures, trees, import def, translate tables and queries.
Operator Security is to control when each Peoplesoft user can sign on, which People Tools and application menu items they can access, what processes they can run and more.

44.What is SetID?
SetIDs are simply the lables used to identify a TableSet. SetId is an additional primary key in control tables, that enables sharing of control table information across business units. All rows of data in your control tables keyed by the same SetID make up a TableSet.

45.What are the tablesets?
A TableSet is a group of rows across your control tables identified by the same SetID. In other words, all rows of data in your control tables keyed by the same SetID make up a TableSet. Tablesets or group of tables enables sharing of control table information and processing options among business units. For ex., using Tablesets you can define a group of Job Codes that can be shared by different business units.

46.What is Application processor?
The Application Processor does all the behind scenes (panels) work. Application Processsor - the People Tools online processor, manages the flow of data processing as users enter informatiion on panels - builds SQL statements based on the actions performed on panels - issues INSERT, DELETE and UPDATE statements to maintain data on the database and SELECT statements to retrieve data.

47. What is the significance of PER099.SQR program?
Refresh Employee Data - When you run this report, the system will update the table with data valid before or on the 'As of Date' you specify.

48.What are the paragraphs available in SQR? - SELECT - SQL - DOCUMENT

49.How many kinds of trees are available in tree manager?
Many kinds of trees for a variety of purposes can be created, but all trees fall into these major types:
Detail trees - in which database field values appear as detail values.
Summary trees - provides an alternative way to group nodes from an existing detail tree, without duplicating the entire tree structure.
Node - oriented trees - in which database field values appear as tree nodes.
Query access trees - to organize record definitions for PeopleSoft Query security.

50.What are the tree structures, and how to define a new structure in tree manager?
Two kinds of tree structures : Detail tree structures and Summary tree structures.
You use detail tree structures for all trees except summary trees, including node-oriented trees.

Creating a detail tree structure:
Select Structure, New, Detail
Enter a Structure ID and description for the tree structure
Enter the panel and record definition to use for entering and storing info about levels.
Enter the panel, record def and field to use for entering and storing info about tree nodes.
Enter the info the tree manager needs for capturing and storing detail values.
Click the Save button to close the dialog box and create the tree structure.

Creating a summary tree structure:
Select Structure, New, Summary.
Enter a Structure ID and description for the tree structure.
Enter the panel and record definition to use for entering and storing info about levels.
Enter the panel and record definition to use for entering and storing info about tree nodes.
Enter the name of the view that joins the summary tree to a detail tree.
Identify the detail tree whose detail values the summary trees summarizes, and the level from which to start.
Click the save button to close and create the tree structure.

51.What is query tree?
PeopleSoft query uses a special type of tree, query tree, that organizes record definitions into access groups. In the Query Security panel group, you specify which access groups an operator or operator class has access rights to. Users can only create or run queries on record definitions from access groups they have rights to.

52.How many query types available in Query tool?
7 types:
Ad hoc queries: to retrieve data from the database on the spot, when you need it. Queries written for use with cube manager must be Ad hoc queries.
Reporting queries: Retrieve data for reports and pass the data to Excel, Crystal reports pro, or a PS/nVision tabular layout.

PS/nVision matrix queries: Queries as part of a PS/nVision matrix layout.
View queries : to create SQL views in the Application Designer.
Search queries: Queries that can be selected through search dialog boxes in PS applications for the records you want to find.

Database agent queries: Used in PS workflow, to detect conditions that trigger business events, then schedule database agents to run them periodically.
Role queries: Queries that PS workflow uses to determine who to send emails forms or worklist entries to. 

53.What function is used for invoking a secondary panel? – DoModal.

54. What is a message agent?
The Message Agent is an automated user workstation. Rather then taking input from the keyboard, it receives messages from third-party applications. The messages tell the Message Agent to do some of the same things a user would: navigate a panel group, enter data into the panel fields and save panel. For ex. It could accept a form from an electronic forms package, read its contents and transfer the data to a panel. It acts as an electronic clerk to process requests according to rules defined in workflow. Using the Message Agent API, you can write programs that add data to the PeopleSoft database.

55.What is a role and how to define a role?
Roles describes 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. Business rules specify what user role needs to do an activity. For ex., department managers (a role) must approve external course requests.

56.What is Work list?
A work list is a list of the items awaiting an activity. Users select items from the list, and the system automatically displays the panels they need in order to work on the items. Work lists are automatically created as you route items to them. To define a worklist, you just need to create a worklist record definition and define worklist routings.

58. What is Global variable and local variable, how to declare them?
A global variable, once declared in any Peoplecode program, will remain in scope throughout the PeopleSoft session. The Global statement allows you to declare PeopleCode global variables. The variable must be declared with the Global statement in any PeopleCode program in which it is used. A local variable remains in scope for the life of a PeopleCode program. They cannot be declared inside of function declarations; that is, there are no function-level local variables.

59. What is the purpose of CreatObject function in peoplecode?
CreateObject return an instance of an OLE Automation object as a variable of type object. CreateObject (str_class_name) Where str_class_name identifies a class of OLE Automation object, in the form: App_name.object_name Ex., local object &WORKSHEET &WORKSHEET = CreateObject ( "Excel.Sheet");

60.Can we write peoplecode for menu items?
You can add PeopleCode to both standard and popup menus.
To add a peoplecode menu item to a popup menu:
Create a new menu or open an existing menu.
Access the menu properties of the new menu item.
Edit the properties of the new menu.
If the popup menu has never been saved, you must save it before you can access its peoplecode.
To access the PeopleCode editor, right click on the PeopleCode menu item, then choose View PeopleCode.
Write the Peoplecode program in the PeopleCode editor, then save the menu.
If this is a new popup menu, associate it with a panel field or panel background.
To add PeopleCode menu item to a standard menu:
Open the standard menu to which you want to add an item.
Access the menu properties of the new menu item.
Edit the new menu item properties.
To access the PeopleCode editor, right click on the PeopleCode menu item, then choose View PeopleCode.
Assign the new menu to operators in the Security Administrator.

61.What is three-tier architecture?
Prior to PeopleSoft 7, PS applications are executed in a two-tier architecture, where all the online application logic runs on the client using data obtained directly through SQL calls from a separate database server.
PeopleSoft 7and 7.5 supports three-tier transaction processing, where portions of the application logic move from the client to an application server that communicates with the database server. The components that comprise the tiers are :
Clients: Windows and web clients. (PS supports a UNIX Message Agent client for use with the Message Agent only)
PS Application Server: A UNIX or Windows NT machine containing BEA's Tuxedo middleware product and BEA's Jolt. The application server may or may not reside on the same physical machine as the database server.
Database Server: Running any of the supported RDBMS / platform combinations.
Advantages: -
Reduced network traffic
Improved WAN performance
Reduced maintenance of client workstation configuration (especially for the casual user), since database connectivity is not required on the client.
Enabling Web Client connections.
Ability to scale the system, as needed, to meet rising user demands by reconfiguring application servers, by installing application server(s) on more machines, and by using multiple applications servers.

62.What is Tuxedo?
The application server, the centerpiece of PeopleSoft's three-tier architecture, utilizes Tuxedo, BEASystems' transaction monitor, to manage and monitor client transactions. When a client work station requests sends requests to the application server where Tuxedo then schedules a PeopleSoft service, such as Panel Group Build or Save. BEA tuxedo software for thewindows and web client comes bundled with Peopletools - embedded in PeopleSoft's binary directory.

63.What is inbound map and outbound map?
Electronic commerce maps (that help transfer data from PS Business Documents to the staging tables in the PeopleSoft database) specify how the EDI Agent transfers data between PeopleSoft Business Documents and the staging tables in the PeopleSoft database.

There are two types of maps:
Inbound maps, which the EDI Agent uses to transfer data from PeopleSoft Business Documents and the staging tables for processing by a PeopleSoft application.
Outbound maps, which the EDI Agent uses to create PeopleSoft Business Documents from data the application put in the staging tables for delivery to a trading partner.

64.What is SQLExec function ? And what are the limitations of this command?
The SQLExec function executes a SQL command from within a PeopleCode program by passing an SQL command string. The SQL command bypasses the Application Processor and interacts with the database server directly.

Limitation of SQLExec SELECT statement:
Only a single row of data. If you write a SQL statement that retrieves more than one row of data, SQLExec outputs only the first row to its output variables.

If you want to select multiple rows of data, you can use ScrollSelect to read rows into a work scroll. Limitations of SQLExec UPDATE, DELETE, and INSERT statements:
These statements can only be issued in SavePreChange, Workflow and SavePostChange events.

65. Which PeopleTool is used to input peoplecode? - Application Designer.

66. How can you access PeopleCode editor?
In the PeopleCode display of a record definition, double click on the grid space that corresponds to the field and Peoplecode event. When field in a record definition is highlighted, select View, View PeopleCode OR View PeopleCode from the popup menu.

In the project workspace, existing programs are displayed beneath their associated record field with a lightning bolt symbol; double – click one of these. OR select view PeopleCode from the popup menu for a highlighted record, record field, or programs.

In the Application Designer, once the field is highlighted on the panel definition, select View, view PeopleCode. Alternatively, you can right-click and select the view PeopleCode from the popup menu.

67. When is PeopleCode case sensitive?
PeopleCode is only case sensitive within a quoted literal.

68. What are the most commonly used PeopleCode events?
FieldChange, RowInit, SaveEdit, FieldEdit, FieldDefault, and SavePreChange in that order.

69. In which PeopleCode would you code errors and warnings?
SearchSave, FieldEdit, SaveEdit and RowDelete primarily. You may also code errors and warnings in RowSelect.

70. What is the biggest draw back to Fieldformula?
Since FieldFormula is performed every time the panel is displayed on every row of data, its biggest drawback is the performance overhead it adds.

71. What other PeopleCode event might you expect to find with RowInit?
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.

72. How do FieldEdit and FieldChange differ?
The main difference between FieldEdit and FieldChange is how Error and Warning statements are handled.
In FieldEdit, Error and Warning statements will cause the panel to be displayed with a message informing the operator of a possible problem.
In FieldChange, Error and Warnings statements cancel the panel group.

73. How does SaveEdit differ from FieldEdit?
SaveEdit and FieldEdit are both used for validation, but each one is performed at a different time. SaveEdit performed when the operator saves, FieldEdit is performed when the operator changes a field. SaveEdit is also performed on every row of data; FieldEdit is only performed on one row of data. When an error is received in FieldEdit, the field turns red; in SaveEdit field do not turn red.

74. How does SavePostChg differ from all other Peoplecode events?
SavePostChg is different from all other Peoplecode events since it is performed after the updates are made on the database.

75. What built-in function will you probably see in SavePostChg programs?
Since SavePostChg usually updates tables that are not contained in the buffers, the built-in function SQLExec is often used to perform these updates on the database.

76. Can calculated fields be stored on SQLTables? Should they?
Calculated fields usually are not stored on SQLtables. However, they might be if the calculated field is being passed to an interface that does not have access to the fields needed to calculate the field again.

77. Why would a derived/work field be used?
A derived / work field may be used to store and display a calculated value on a panel or to pass a value from one PeopleCode program to another.

78. How is a record definition indicated as a derived / work record?
A record definition is indicated as a derived / work record by selecting the "Derived/Work" radio button under the Type tab in the record properties.

79. What major difference is there between derived/work fields and other fields on panel definitions?
Derived / Work fields can be on any occurs level and do not need to come from the primary record definition for the level.

80. What types of variables can you define in PeopleCode? Local an Global variables.

81. What happens if you don't declare a variable?
If a variable is not declared PeopleCode will assume it is a local variable.

82. How long do local variables last?
Local variables are retained in memory only until the PeopleCode program ends.

83. Why are application specific people-code functions used?
PeopleCode functions are used to perform the same logic in multiple programs while only having to maintain it in one place.

84. How is an external PeopleCode function declared?
An external PeopleCode function is declared at the top of the program where the function will be used with a Declare function statement. The only PeopleCode that can be above a Declare Function statement is Comments.

85. How is a PeopleCode function called?
A PeopleCode function is called by referencing the function name and then passing the function the appropriate number of parameters in parentheses.

86. How must a PeopleCode function be defined so that it can be used as a variable in the calling program?
In order for a PeopleCode function to be used as a variable, it must be defined using a "Returns" in the Function statement. Also, at least one "Return" statement must be used in the function code.

87. Why is the Message Catalog used?
The Message Catalog is used to store the text of error and warning messages that will be used in PeopleSoft applications. This allows the same message to be used in more than one PeopleCode program while only maintaining it in one place. It also prevents the text of messages from being hard-coded into Peoplecode programs.

88. How is a message added to the Message Catalog?
To add a new message to the Message Catalog, the correct message set should first be retrieved. A new message can be added to the set by performing a row insert (F7). The new message number will automatically be assigned.

89. Which message sets does PeopleSoft reserve as its own?
Message sets 1 through 19,999 are reserved for use by PeopleSoft applications. Message sets 20,000 through 29,000 can be used by PS users.

90. How is a message retrieved from the Message Catalog in PeopleCode?
To retrieve a message from the Message catalog in PeopleCode, the MsgGet built in function is used. The required parameters of the function are message set, number and a default message.

91. When should WinMessage be used?
The WinMessage built-in function is used to display an information message to the operator without performing normal error and warning processing. It also can be very helpful when used for debugging.

92. What is the purpose of Gray, UnGray, Hide, and UnHide?
These built-in functions change the display characteristics of fields on a panel. The Gray built-in function will make the field display-only. The Hide will make the field invisible. This is helpful when enforcing field level security.

93.What does SetDefault do?
The SetDefault built -in function will clear out the contents of the field. The record default or FieldDefault PeopleCode can than be applied if appropriate.

94. Why are All and None used?
The All and None built-in functions check for the presence or absence of a value that the operator has entered. This can be helpful since a different value may be stored on the database if a value is not entered into a field based on its type.

95. When would FieldChanged, RecordChanged, RecordDeleted, RecordNew, and PanelGroupChanged be used?
These built-in functions can be used in SaveEdit, SavePreChg, or SavePostChg programs to filter down the processing to occur only when necessary.

96. Why is PriorValue used?
The PriorValue built-in function is used to determine the value of a field before it was changed.

97.What is the CurrentRowNumber?
It is the number of the row of data the application processor is performing PeopleCode on in the buffers on the client workstation.

98.How does AddToDate work?
This function is passed a date field and then the number of years, months and days to add. Leap years are automatically taken into consideration, and negative numbers may be passed as parameters to subtract from the date.

99. Which two cross reference reports are best for PeopleCode? How do they present their data?
XRFFLPC reports for one field all of the PeopleCode programs where it is referenced. XRFPCFL does the opposite. It reports for one PeopleCode program all of the fields it uses.

100. What does Find in PeopleCode do?
The Find in PeopleCode utility will scan through all of the PeopleCode on a database looking for a specific character - string.

101.When is it useful to select the Export to File option in Find in PeopleCode?
An Export report produces an unformatted copy of all of the source code where the character string was found. This can be very helpful in an upgrade.

102. How can you use WinMessage as part of the debugging process?
A WinMessage can be used to set break points and display the current value of fields and variables in the PeopleCode debugging process.

103. How do you turn on the PeopleCode trace?
The PeopleCode trace can be turned on by selecting the Set push button on the PeopleCode Trace Control panel.
It can also be turned on by saving options in the Configuration manager, logging out of Psoft and logging back on.
It can also be turned on within PeopleCode by using the SetTracePC built-in function.

104. What is the name of the file created by the trace? DBGI.TMP which is stored in TEMP directory.

105. How do you turn off the PeopleCode trace?
The PeopleCode trace can be stopped by turning off all of the check boxes on the PeopleCode trace control panel and selecting the set push button.
It can also be turned off within PeopleCode by passing the parameter zero to the SetTracePC built-in function.
Once the PeopleSoft session is closed, the PeopleCode trace will also automatically be turned off.

106. How many rows of data can there be at occurs level 0?
There can only be one row of data for each record definition at occurs level 0. Scroll bars are not allowed at this level.

107. How many rows of data can be there at occurs level 1?
There can be multiple rows of data for each record definition at occurs level 1 since a scroll bar can be used to navigate between them.

108. What must exist at occurs levels 1,2,and 3 but not occurs level 0? - A scroll bar.

109. How does the application processor allocate buffers to hold data?
The application processor starts allocating buffers at occurs level 0 and then works its way down. It uses the panel and record definitions to determine the data it needs. From a panel definition, fields are allocated in TAB order. Generally, if there is one field from record definition on the panel, the entire row will be brought into the buffers. The exceptions are fields that are in the search dialog box, derived work fields and related display fields.

110. What record definitions will perform PeopleCode in a panel group?
Any record definition that is not used as a related display record will perform PeopleCode in a panel group.

111. In what order will PeopleCode be performed on the buffers in a panel group?
PeopleCode starts at the top of the buffers in a panel group and works its way down to the bottom. The PeopleCode programs on a given row will be performed in the same order as the fields on the record definition.

112. What do ActiveRowCount and FetchValue do? Why are they generally used together?
The ActiveRowCount function returns the number of rows at a specific occurs level. The FetchValue built-in function is used to retrieve the value of a field when using a looping statement. The two are usually found together in most For Looping statements.

113. When is UpdateValue necessary?
The UpdateValue built - in function must be used when updating the value of a field within a PeopleCode looping statement.

114. How will the syntax of built - in functions change if they are used in a multiple occurs level applications?
When built- in functions are used in multiple occurs level applications, the record name and row number of the parent always must be specified.

115. Why are command push buttons used ? What are the advantages?
Command push buttons can be used to trigger PeopleCode programs. The advantage of using one is that the operator determines when the program should be performed.

116. What PeopleCode events will a command push button perform?
Any FieldEdit and Fieldchange PeopleCode programs on the field where the push button is attached.

117. What are the two different ways to retrieve a bitmap to display on the command push button? 
Bitmaps can be retrieved from a file using the Browse push button or from the clipboard using the Paste push button.

118. How do you attach a field to a command push button?
A field is attached to a command push button in the panel definition. Select Edit, panel Field properties and modify the field entries under the Record tab.

119.Why should the SortScroll function be used?
The SortScroll built-in function can be used to dynamically sort the rows of data within a scroll bar.

120.What are the parameters of the SortScroll function?
The occurs level and primary record definition to be sorted, followed by the field to use for the sort with "A" for ascending or "D" for descending. Multiple sort fields can be referenced.

121. Why is the ScrollSelect function used?
To control the process of allocating buffers in a panel group using peoplecode , instead of the application processor.

122. What are the parameters of a ScrollSelect function?
First the occurs level number and primary record definition of the scroll bar the data will be selected into. These are followed by the select record, and the When Clause within quotes. Bind variables are then passed if necessary.

123. When is the ScrollFlush function used?
Is used to remove the rows of data from within a scroll bar without deleting them from the database.

124.What are the parameters of a ScrollFlush function?
Name of the primary record definition for the scroll bar where the rows of data will be removed.

125.How and where can a user invoke a popup menu?
User can invoke a standard popup menu by right-clicking in an edit box or long edit box.
If a developer-defined popup menu is attached to a panel field or to the panel back ground in the panel definition, it can be accessed when the user right - click on the panel field or on the back ground, respectively.

126.What type of actions can a popup menu item perform?
A menu item in a developer-defined pop up menu can perform a Transfer, which invokes the panel specified in similar way to if the user selected the panel via menus. It can also run a PeopleCode program attached to the ItemSelected event.

127. How do u associate a popup menu with a panel field? With the panel background?
To associate a popup menu with a panel field, select the panel field in the panel definition and access the Panel Field properties. Click the use tab and specify a popup menu. To associate a popup menu with the panel back ground, access the Panel Properties using File, object Properties (or the Properties icon). Click the use tab and specify a popup menu.

128.What PeopleCode event is fired before a popup menu is displayed?
PrePopup. It allows you to alter the appearance of the popup menu.

129.What functions may be used to alter the appearance of a menu item?
DisableMenuItem, EnableMenuItem, HideMenuItem, CheckMenuItem and UnCheckMenuItem.

130. What PeopleCode event is fired when the user selects a menu item?
ItemSelected. Remember, this is associated with menu PeopleCode rather than record PeopleCode.

131. What are the major uses for SQLExec?
The SQLExec built-in function is mainly used to perform SQL Select, Insert, Update and delete statements from within PeopleCode.

132.How can SQLExec aid performance?
It can aid performance by only retrieving from the database the data required, instead of an entire row.

133. What PeopleCode event should be used to update other tables with SQLExec?
In order to update other tables that are not contained in the buffers on the client workstation with a SQLExec, SavePostChg PeopleCode should be used. This is because SavePostChg is the only PeopleCode event that is performed after the updates have been made to the database.

134. What parameters are passed to the built-in function SQLExec?
The SQLExec built-in function is passed the SQL statement to perform within quotes, followed by any bind variables or output variables if necessary.

135. What are Inline variables? How are they used?
Inline variables are used to reference the value of fields stored in the buffers in SQL statements. An inline variable consists of a colon followed by the appropriate record and field name to be referenced. 136. How are dates converted within SQLExec statements? Dates are converted within SQLExec built-in function by using the system variables %DateIn and %DateOut.

137. What are the drawbacks of using a SQLExec built in function?
Since the SQL statement is contained within quotes, it is a black box to PeopleSoft. Means the programmer is responsible for the syntax, efficiency and maintenance of the SQL. Also, if a SQLSelect is being performed within the function, only one row of data can be returned.

138. When should the SQLExec function be used instead of the scroll buffer functions?
Dates are converted within SQLExec built-in function by using the system variables %DateIn and %DateOut.

139. Describe the 'modal' aspect of a modal panel group?
You may only interact with the objects in the modal panel group dialog box. You cannot interact with the originating panel group nor the menus on the originating window.

140. Compare standard panel groups and modal panel groups.
Standard Panelgroups
Standard Modal Accessed via selecting a menu bar and item.
You can interact with menus like File and Go
The icon bar allows easy access to commands.
Buffer is allocated after search dialog box.
You typically only interact with data within the Record
Modal PanelGroups
Via a PeopleCode program, typically run from a popup menu item.
No interaction is possible.
There is no icon bar. Instead, there are OK, Cancel and Apply.
Buffer is allocated upon calling the DoModalPanelGroup function.
Data can be passed between the Panel groups, Originating panel and the modal Panel group.

141. Compare secondary panels and modal panel groups.
Secondary Panels Modal Panel Groups Modal Modal Single panel Panel group Usually only accessed from originating panel Via standard menu Buffer is relating to originating panel Independent buffers Keys must be related to originating panel Keys may optionally relate Can read fields on originating panel Reads only shared fields from o.p. Cannot modify fields on originating panel Can modify shared fields on originating panel Secondary panel push button or DoModal() DoModalPanelGroup()

142. How is data synchronized between the originating and modal panel groups?
You must add fields from a derived / work record that are shared between the two. You must also add PeopleCode to pass and return values in the derived fields.

143.What are the differences among the OK, Cancel and Apply buttons in a modal panel group?
OK and Apply both save the data within the modal panel group. OK also dismisses the dialog box, Apply doesn't. Cancel dismisses the dialog box without saving any changes to the modal panel group.

144. What questions should you ask yourself before starting to implement a modal panel group?
Should the originating panel group provide search key values for the modal panel group? If so, what are the search keys?

No comments:

Post a Comment