APP DESIGNER :
What are the Development Steps?
8 steps in Developments steps: Design the Application, Create Field Definition, Create Record
Build the Record, Design the Page, Create Component, Register the Component, and Test the Application
Translate Table? A translate table is a prompt table that serves as data dictionary to store values for fields that don’t need individual prompt tables of their own.
Limitations of Translate table? 3. Field values should be small (static).
1. Field type should be character 2. Minimum Field length should be 1 to 4 characters.
What is a prompt table? Prompt tables are the most common methods for validating data entry in ps applications. This is like application data table the only difference is that it stores values that other tables can validate against. Prompt table is a control table. (Country table and Company table)
How many Table Edits are there in Record field properties?
1. Prompt Table With Edit 2. Prompt Table No Edit 3. Translate Table 4. Yes/No Table Edit
Prompt Table No Edit: Provides List of Suggested values, which users cannot edit.
Prompt Table With Edit: Users can edit the contents of the field against the values that are maintained in the specified prompt Table.
Translate Table Edit: Which is nothing but a translate table created by developer.
Yes/No Table : I need some situations we want the user to enter only Boolean values like yes or no, true or false in this situation we will use yes no table.
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.
What are the 3 build options available when building a table from a record?
Build script file: which generates a sql script that can be run against the desired database to build the table.
Execute SQL: which builds the table in the database. Execute and build script: which both Build the table and generates a SQL script.
How many types of tables are there? Define them?
SQL Table: A physical SQL Table present in the database, this is the default.
SQL View: Not a physical SQL Table but corresponds to a view written in SQL referring one or more fields from different tables. This gives a filtered view of information stored in tables. Stored in the database as a view. (Query view is system generated and SQL views are created by developer) whenever you modify a record you need to take care: check if any views are dependent on this record.
Dynamic view: A record definition that can be used like a view in pages and People Code but is not stored as a SQL view in the database. Dynamic views provide superior performance.
Query View: using the PeopleSoft Query we don’t need to write a query it will automatically generate by dragging and dropping. This is a two tier tool and runs through application designer and produces SQL dependent upon the host RDBMS.
Derived/Work: We can use it to calculations. It is not an object, and also we can use it as a funclib. A temporary workspace to use during online page processing. A derived or work record is not stored in the database, so no need to build it.
A derived / work field may be used to store and display a calculated value on a panel or to pass a value from one People Code program to another.
Sub Record: Group of fields used in multiple records like companies having address data of employees. If you have to use the same fields in different record definitions, then we will store all those fields in a subrecord and add this subrecord as a field to the record definitions. Stored in the database.
Temporary Table: we will do all the manipulations on the data present in the temporary table. Increases the performance, as it is not stored in the database. Used mainly for the AE batch processes.
Dynamic view? Where we can use dynamic View? It can be used like a view in pages and people code but not stored in database as a sql view, instead the system uses the view text as a base for the sql select that is performed at runtime. Dynamic views shows superior performance in some situations such as search records and people code selects.
Difference between Query Views & Dynamic Views?
1. Query Views are designed using Query Manager Tool where as we write SQL in Dynamic Views.
2. Query View is Built and Exists in the Database where as Dynamic View can’t be build so it doesn’t exists in Database.
Diff: SQL View and Dynamic View?
SQL views are written against the RDBMS catalog tables. Dynamic view is declared only to p.tools and not to the system catalog.
SQL views r not recommended for performance tuning as they run against the database. Dynamic views improve performance. SQL views reside in the Db, dynamic views are not.
Difference b/n primary record and the search record?
All fields in a scroll area or grid must be associated with one (and only one) record, which is the primary record for that level. The search record builds the search page for a component and populates all fields at level 0.
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
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.
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.
Difference b/n standard, secondary and subpage?
Standard page: It is the graphical interface between users and database. The important data is displayed in the standard page. We can place secondary as well as a subpage in standard page. Take any page , PRESS Ctl+J on portal
Secondary Page: Page that will open on users request but remains as a secondary to the primary page display. We can open it through standard page only.
The data within secondary page is at the same level or below the level of the page control that launches the secondary page.
Subpage: subpage controls are used to provide standard look for the commonly used fields. A sub page is referenced as a page control on multiple standard pages.
How to invoke the secondary panel? There are 2 ways:
1.Insert a PB control type of Secondary Panel. This automatically invokes the secondary panel when the user presses the PB.
2.Insert a secondary panel control. This is invisible at run time. When you use a secondary panel control, u must also insert a command PB on the panel and call the DO MODAL Pcode function from the PB's FieldChange event in order to invoke the secondary panel.
Difference between subpage and sub record
All the fields in a subpage must be associated with fields of a sub record in the specified record definition. Subrecord contains all related fields, whereas subpage contains fields from sub record.
What is occur level and occur count?
Occurs Level: Occurs level determines the level of the object that we inserted. By using this we can set levels for example after inserting a level based control in level 2 if you want to change the level based control to level 1,U can change the occurs level.
Occur Count: Occur Count determines how many rows should be displayed. For ex if you want the scroll to display only 5 rows then we will give occurs count to 5.
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.
Scroll Area? SA Is a Page Control which contains Child Records’-Fields which is used to maintain the Parent-Child Relationship between Tables. We can place any number of scroll areas on a page.
What are Level Based Controls and their Difference? Level Based controls are Scroll Area, Grid and Scroll Bar.
Scroll areas have their page fields arranged by the developer. Page fields in a gird always appear in a single row. In grid we can view no of rows by giving occurrences. Scroll areas provide a row separator when you select multiple occurrences of data. We can view multiple rows in a grid while in a scroll area you can retrieve only one row at a time. One can have nested scroll areas but not grids. You can insert grid in a scroll area but not scroll in a grid.
What is Parent Child Relationship? To maintain parent child relationship if the parent table contains one key field the child table should contain the same key field and one additional key.
Conditions are: 3) we can not go for more than three levels of parent/child relationships.
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.
Advantages are: 1) To have referential integrity. 2) No need to enter information again and again
What is the difference between scroll area and Grid? I used in Employee and Employee dependent details
Scroll areas single row of data will be displayed whereas in grid multiple rows of data will be available.
Yes I used scrollAreas, 4 Levels of scroll areas are in Peoplesoft, and they are level0, level 1, level 2, level 3, level 4
How many levels can we have on a page?
Page allows Nested levels up to 3 levels.
Deffered and Interactive Processing
In Interactive mode for every cursor action there will be a trip to the server. In deferred processing mode, trips to the server are reduced. In Interactive whenever a user exits a field there will be a trip to the server.
In Differed processing until a user performs an action, which requires a trip to the server there wont be any trips to the application server.
In how many places we can set Differed processing?
Field,Record,Page,Component
What are the 3- Actions that can be attached to Menu? -
Component -Separator -PeopleCode
What is registering a Component?
We will add the component to a Menu and give permissions and security.
Component Buffer?
Area in memory, which stores data for the currently active component. Whenever you open a component the entire data for that component is retrieved upfront and stored in the application server. Component buffer is a temporary buffer allocation.
Component processor?
It is a peopletool runtime engine that controls the processing of the application.
Data buffer?
Data buffer contains multiple components of data.
Difference between component buffer and data buffer?
Component buffer contains active component data i.e. level 0 data. Data buffer contains multiple components of data.
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. Used this Rowset object to retrieve the data from component buffer.
What data comes into Component Buffer?
Primary record data, related display fields, translate values and derived work records. If you keep key and alternate search key on 0 level then only 2 values will appear in Component Buffer the other field values will not available. In Component Buffer if you want to see the other field values then place a non-key field on 0 level and make it invisible. Every level will have its own primary record. A level 0 primary record and a search record can be different but the key field values should match.
Business Unit? What are the major functions?
It performs 2major functions : 1),2)..
A business unit is a way of tracking specific business information for reporting and other roll-up data collection.
1) It allows you to maintain a tree structure to facilitate customer-specific roll-up reporting.
2) It allows you to distribute and administer certain control tables like the department table. This is extremely important for large or multinational companies.
What is Setid?
Keys to linking business units to record control groups. It is the key on all control tables in TableSet sharing every row in a control table includes a setid as its key.
SetIDs partition the data into groups or sets of data that are appropriate for each Business Unit.
What is Table Sharing?
It is a method of filtering prompt data so that only appropriate values are available for data entry. With TableSet sharing, a single table can offer different values based on underlying business rules. Table set Sharing is organized around these basic elements:Business Units and transaction tables, SetIDs and control tables, Business rules.
Record group
consists of records with similar functionality. To setup a record in record group we should enter a set control field value in record properties
Difference b/n a Business Unit and a Set Id?
It’s a way of organizing your data in the system.
A BU is a way of tracking and reporting specific business information for reporting and other roll up data collection. It does not have to be a legal entity for HR. It’s a way of organizing your organization.
A SetID is a link to Table Set Sharing. Table set sharing simply consists of assigning specific SetIDs to specific record groups for individual Business Units to restrict the view of rows of data within Control Tables.
Joins:
Inner join: Matches key fields & gets the common part in the case of Inner join.
LOJ (Left-outer join): Matches key fields, and gets common data as well as additional data in left table.
ROJ: Matches key fields, and gets common data as well as additional data in rightt table.(we cant perform this in ps)
Self join(SJ): Joining same table is called self join.
SUB Query: the output of one SELECT statement acts as an InPut for another SELECT statements.
About Views:
A view is a database object that is a logical representation of a table. It is derived from a table but has no storage of its own and often may be used in the same manner as a table. Creating a view:
Create view INVASION AS Select WEATHER .City, Condition, Temperature, Latitude, NorthSouth, longitude, EastWest
From Weather, location, Where WEATHER.City = LOCATION.City; Search views are used for three main reasons.
1. Adding criteria to the search dialogue page 2. Providing row level security. 3. Implementing search page processing.
Advantages of Using Search Views instead of Search Table:
As the search view is created with selected fields there will not be much stress on app server and there by improves the performance. Search View also gives additional search criteria.
In PIA (?) … End users do not have any peoplesoft specific software installed on their machines, they use Internet browser to connect web server, which interacts with application server.
The Effective Date:
- Allows us to maintain history, current and future information.
- Represents the date that the specific data change goes into effect.
- Enables us to maintain a complete chronological history of all records.
- Works as a cross-reference, as the system constantly compares the effective dates to information stored in other tables. This ensures that data you select from PeopleSoft is valid as of the desired effective date.
- Allows us to maintain history, current and future information.
- Represents the date that the specific data change goes into effect.
- Enables us to maintain a complete chronological history of all records.
- Works as a cross-reference, as the system constantly compares the effective dates to information stored in other tables. This ensures that data you select from PeopleSoft is valid as of the desired effective date.
Effective date?
Date on which a table row becomes effective, the date that an action begins.
Ex: if you want to close out a ledger on June 30, the EFFDT for the ledger closing would be July 1. This date also determines when you can view and change the information. Pages or panels and batch processes that use the information use the current row. Effective date enables us to keep historical, current, and future information in tables. There are 3 types of effective dates: Current, History and Future.
Past date - Within 30 days of current date is called past date. History date - Above 30 days of current date is called History Date.
Effective status?
EFF_STATUS usually accompanies EFFDT.
Ex: in Department table suppose we inactivated one dept from so and so future effdt, from that future date onwards this dept is going to be inactivated, after that whenever we click the link prompt button of dept id field we can see only active departments.
Effective sequence?
Whenever we want to enter more than one transaction on the same day for an Employee like promotion and salary hike we will use effective sequence. Effseq number starts with 0
Use of EffSequence.
same day different action will be performed so Effetivedate , date will be same so to differentiate from other we need a sequence of order so it shows the order of occurrence. Which is used to maintain different row for the same key value & same Effective Date. The search record is determined at the component level.
SELECT A.EMPLID FROM PS_JOB A WHERE A.EMPLID = '12345'
AND A.EFFDT = (SELECT MAX(A_ED.EFFDT) FROM PS_JOB A_ED WHERE A.EMPLID = A_ED.EMPLID AND A.EMPL_RCD = A_ED.EMPL_RCD AND A_ED.EFFDT <= GETDATE())
AND A.EFFSEQ = (SELECT MAX(A_ES.EFFSEQ) FROM PS_JOB A_ES WHERE A.EMPLID = A_ES.EMPLID AND A.EMPL_RCD = A_ES.EMPL_RCD AND A.EFFDT = A_ES.EFFDT)
Component Interface
CI is used to access Cmpt from external clients (Third Party Applications) including all business rules and data without going through the ps client. To expose cmpt (methods and properties) to the external software (ex: vb, c, c++, java, com, dcom etc). Fundamental elements in the CI architecture: components, CI’s, CI API.
How do you provide security for the component interface?
1.Open the Permission list 2.On the Component Interface tab 3.Add row and select the newly created CI
4.Edit the permissions to give permission for the standard methods 5.Get, Create, Save, cancel, find.
ATTRIBUTES of the Component Interface? and different keys in CI?
1. CI name.
2.Keys (get keys, create keys, and find keys). 3. Properties and collections (fields and records),4. Methods (Save, Cancel...).
KEYS Get keys are nothing but search key of the component search record, We cannot change the get keys.
Find keys are based on search key and alternate search keys of the search record. We can remove find keys if we don’t want to use
Create keys are based on the add search record keys (add mode) and generated automatically for the CI.
We cannot change the create keys. Create key are generated only when the CMPT is in Add action only.
Properties: Properties are individual fields in component for CI. (Standard properties exists for every CI)
***Properties are 2 types’ Standard properties, User defined properties
Createkeyinfocollection Developer Can Further Control The Exposed
Getkeyinfocollection field properties. Findkeyinfocollection Property Info collection
GetHistoryItems (Update/Display mode or Correction mode) EditHistory Items InteractiveMode.
Collections are referred as scrolls (level based controls will be having a primary rec) in the component for CI.
CreateKeyInfoCollection: Returns a set of items that describes the create keys.
GetKeyInfoCollection: Returns a set of items that describes the get keys
FindKeyInfoCollection: Returns a set of items that describes the find keys
PropertyInfoCollection: Returns a set of items that describes properties.
How do you login in Correction Mode in the CI?
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.
Methods? How many Methods are there?
A method is an object that performs a very specific function on a component interface at run-time. There r 2 types of methods are there: Standard methods and user-defined methods.
The event of a CI is methods (like On Execute for AE.)
Standard methods: - Automatically generated upon the creation of a new CI in Application.
Apart from the Standard methods there are Standard methods available for the use with any collection.
User-Defined methods: - User-defined methods are those that you can create to meet the requirements of an individual CI.
Can we map more than one component at a time from the CI?
NO
Can we create the get keys and find keys manually?
No, created based on the search record definition for the underlying component.
Types of properties can include the CI?
Standard properties User-Defined Properties
What are the standard properties?
Interactive Mode GetHistoryItems EditHistoryItems.
Can we create the user-defined methods?
Yes. We can create user-defined methods after creating a CI.
What the steps that you need to do in people code to invoke Component Interface?
1.Establish a user session 2.Get the Component Interface 3.pulate the Create Keys 4.Create an Instance of the CI 5.pulate the required fields 6. Save the CI
&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;
A component exposes your pages to peoplesoft only. Moreover it helps us to define common properties for a set of related pages.
A CI is a set of application programming interfaces (APIs) that U can use to access and modify PS DB information programmatically.
A CI is a set of application programming interfaces (APIs) that U can use to access and modify PS DB information programmatically.
PS CI expose a PeopleSoft component (a set of pages grouped for a business purpose) for synchronous access from another application (PeopleCode, Java, C/C++, or Component Object Model [COM]).
How do you TEST Component Interface?
1.Using the CI tester 2.Give values in the tester for options 3.Get Existing, Create new, and Find and perform the operation from the CI Tester
Catching Error Message in the CI? Or Use of PSMessages in the CI?
This function needs to be called when ever methods like Find, Save, Create methods return false.
Error text and Error type can be printed in the log message for any other action in to the Log Message.
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;
Traversing … the Collections in the CI?
COLL_JOB – Collection Coll_JOBItm – Row in the collection.
&COLL_JOBCol = &CI_JOB_DATA.COLL_JOB;
For &i = 1 to &COLL_JOBCol.Count
&COLL_JOBItm = &COLL_JOBCol.Item (&i); &COLL_JOB_JRCol = &COLL_JOBItm.COLL_JOB_JR;
For &J = 1 to &COLL_JOB_JRCol.Count
&COLL_JOB_JRItm = &COLL_JOB_JRCol.Item (&j); &COLL_JOB_JRItm.KEYPROP_EFFDT =;
How can a component have more than one search record? Give a situation.
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 when the component is opened from a menu item without creating separate copies of the component. The component override is temporary, and occurs only when the component is opened from the menu item in which the override is set. It does not change the component definition.
Why should we write in save post change only, why not in other event?
Because CI object data will not be in component buffer and student information component data will not be in component buffer so we are updating/inserting the data in the data base not in the component buffer tables. Whenever we create a CI, we will give a name to CI to access.