(Paper) Technovant Solutions Fresher Job Interview Placement Paper: 16-Mar-2011

Technovant Solutions

Job Interview Placement Paper

1)Where does People Code get stored?
A) Application Server.

2) How can I Comment out a piece of the people code?
A) Single line comment : REM Multiple Line Comment: /*………….*/ <*………………*>

3)What is the advantage and disadvantage of sql exec in people code?
A) By using SQL Exec function we can do the manipulation to the database. We can write insert update delete sql commands. But drawback while selecting the data using sql exec it will return only one row 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 SQL Exec Drawback: SQL Exec contacts the database directly. It doesn’t contact web server,  application server in between. Hence this causes network traffic.

4) What is the difference between Component level people code and record level people code?
A) The record level people code will be fire first then component level people code. one record level people code might be associated with several different Components so that It is possible to trigger the same Record People Code from several components while the component level code is associated with a unique component.

5) Where U can write the people code?
A) We can write people code in 7 objects:· Component field level · Record field level · Page · Menu · Application engine · Component interface · Messages

6) What is Component buffer? Explain.
A) Component buffer is the area in memory that stores data for the currently active component. The component buffer consists of rows of buffer fields that hold data for the records associated with page controls,  including primary scroll records,  related display records,  derived/work records,  and Translate table records. People Code can reference buffer fields associated with page controls and other buffer fields from the primary scroll record and related display records.

7) What are various steps that describe the people code logic while implementing a Component interface?
A) The various steps that describe the people code
  • Establish a user session
  • Get the Component Interface
  • Populate the Create Keys
  • Create an Instance of the CI
  • Populate the required fields
  • Save the CI.

8) What data is loaded into the component buffer when the field on the page is
Related Display field – Data related to related display field Key field - Data related to key field Any other field –whole data Work record field – no data

9) What are the People code triggers in a component?
A) Pre Build,  Post build,  Save Pre Change,  Save Post Change.

10) How do you retrieve a value from component buffer? Please write code to retrieve level2 field.
A) To retrieve a value from a component buffer---Get Row set . RS0=Getlevel0(); . RS1=Getlevel1(); . RS2=Getlevel2();. RS1=. RS0(1).Getlevel1(scroll.rec_name);For . i=1 to . RS1.ActiveRowCount
. RS2=. RS1(. i).GetRowset(scroll.level2recname);For . j=1 to . RS2.ActiveRowCount  If . RS2(. j) .record. fieldname= . fieldname  Message(“ “); End-if;  End-for; End-for;

11) What is the APP engine event in the People code?
A) On Execute.

12) Why temp records are needed?
A) Temporary tables are basically used for the parallel processing and for better performance.

13) File formats for File Layout.
A) CSV,  XML,  Fixed.

14) The field property is changed from “prompt with no edit “to prompt with edit” what is the effect?
A) Prompt Table Edit gives no chance to add a new value to the field except to pick one from the prompt list. Prompt Table No Edit can be used to pick a value from the prompt list as well as u can add a new value that not in the list.

15) What are permission lists,  roles and user profiles?
A) User Profiles: A User Profile describes a particular user of the PeopleSoft system.
  • User Profiles define individual PeopleSoft users.
  • You define User Profiles and then link them to one or more Roles.
  • Typically,  a User Profile must be linked to at least one Role in order to be a valid profile. User Profiles maintain the Roles that are assigned to the user.
  • Roles are assigned to User Profiles. Roles are intermediate objects that link User Profiles to Permission Lists.
  • Multiple Roles can be assigned to a User Profile,  and you can assign multiple Permission Lists to a Role.
  • Some examples of Roles might be Employee,  Manager,  Customer,  and so on.
  • Permission Lists are lists,  or groups,  of authorizations that you assign to Roles.
  • Permission Lists store Sign-on times,  Page access,  People Tools access,  and so on.
  • A Permission List may contain one or more types of permissions.
  • The more types of permissions in Permission List the more modular and scalable your implementation.
  • A User Profile inherits most of its permissions through the roles that have been assigned to the User Profile.

16) What is the event that fires after all database updates are over?
A) Save Post Change.

17) PS Application logic resides where?
A) In PeopleSoft all Application (Business Logic) resides on Application Server.

18) PeopleSoft has its own naming convention for system and non-system (application) tables?
A) PeopleSoft categories tables into 3 types with naming convention as System catalog tables start with sys like systables syscolumns sysindexes   Peopletools tables psrecdefn.   Application tables  ps _recname.

19) What effect would making a change to the EMPLID field in the project have?
A) Changes would occur globally; meaning the field is changed everywhere else in the database.

20) Write a SQLEXEC statement to get emplid,  address1,  address2, postal,  city, state from address record?
A) SQLEXEC(“select a.address1, a.address2, a.postal, a.city, a.state from ps_address where a.emplid=:1 and a.address_type=:2 and a.effdt=(select max(b.effdt) from ps_address b where b.emplid=a.emplid and b.address_type=a.address_type and b.effdt<=sysdate)”, emplid, . address_type, . address1, . address2, . city, . state);

21) In which People code event does ALL data validation take place?
A) All data validation is done in Save Edit.

22) What are two program views in AE Program? Maximum number of Actions in a Application Engine step?

  • The Definition view is where we create and modify our programs.
  • The Program Flow view shows a graphical representation of our program execution.
  • Maximum number of Actions in a Application Engine is -7.

23) In Application Engine what are the mutually exclusive actions and why?
A) Call section and sql are mutually exclusive action.

If we use call section and SQL actions simultaneously then database deadlock will occur. It’s because the processer can’t decide which action to do first. Both actions involve the transfer of control from one place to another place.

24) People code attached with push Button can be associated with which of the events?
A) Field Change.

25) What are the destructive statements in SQL?
A) The destructive statements in SQL are:
a) Recreate a Table
b) Recreate a View

26) What is search record? What is the effect of using INSTALLATION table as search record?
A) Search record controls the amount of data that can be requested and downloaded from the database server as well as the structure of the search dialogue box. It is also responsible for populating level 0  of the pages within a component.

INSTALLATION: table doesn’t have any key structure. If there is no key structure defined,  then obviously the user cannot search on anything.

27) Write a query to get current row from JOB?
A) Select a.emplid,  a.empl_rcd,  a.effseq,  a.effdt,  a.deptid,  a.job code from ps_job a

  • Where a.effdt=(select max(a_ed.effdt) from ps_job a_ed
  • Where a_ed.emplid=a.emplid
  • And a_ed.empl_rcd=a.empl_rcd
  • And a_ed.effdt<=sysdate)
  • Where a.effseq=(select max(a_es.effseq) from ps_job a_es
  • Where a_es.emplid=a.emplid
  • And a_es.emplid=a.emplid
  • And a_es.empl_rcd=a.empl_rcd
  • And a_es.effdt=a.effdt)

28) Write query to get the current row and previous row from job and also the name of the employee from the NAMES table?
A) select a.emplid, a.empl_rcd, a.effseq, a.effdt, a.jobcode,

  • b.empl_rcd, b.effseq, b.effdt, b.jobcode,
  • c.name, c.first_name, c.last_name from ps_job a, ps_job b, ps_person_name c
  • where a.emplid=b.emplid and b.emplid=c.emplid and a.empl_rcd=b.empl_rcd
  • and a.effdt=(select max(a_ed.effdt) from ps_job a_ed
  • where a_ed.emplid=a.emplid
  • and a_ed.empl_rcd=a.empl_rcd
  • and a_ed.effdt<=sysdate)
  • and a.effseq=(select max(a_es.effseq) from ps_job a_es
  • where a_es.emplid=a.emplid
  • and a_es.empl_rcd=a.empl_rcd
  • and a_es.effdt=a.effdt)
  • and b.effdt=(select max(b_ed.effdt) from ps_job b_ed
  • where b_ed.emplid=b.emplid
  • and b_ed.empl_rcd=b.empl_rcd
  • and b_ed.effdt
  • and b.effseq=(select max(b_es.effseq) from ps_job b_es
  • where b_es.emplid=b.emplid
  • and b_es.empl_rcd=b.empl_rcd
  • and b_es.effdt=b.effdt);

29) Write a query to get the most active MER row from job?
A) Select a.emplid,  a.empl_rcd,  a.effseq,  a.effdt,  a.deptid,  a.jobcode from ps_job a

  • Where a.effdt=(select max(a_ed.effdt) from ps_job a_ed
  • Where a_ed.emplid=a.emplid
  • And a_ed.empl_rcd=a.empl_rcd
  • and a.action_reason=’mer’
  • And a_ed.effdt<=sysdate )
  • Where a.effseq= (select max(a_es.effseq) from ps_job a_es
  • Where a_es.emplid=a.emplid
  • And a_es.emplid=a.emplid
  • And a_es.empl_rcd=a.empl_rcd
  • And a_es.effdt=a.effdt)

30) Write a sql statement joining PERSONAL_DATA,  JOB,  and ADDRESSES?
A) SELECT A.EMPLID,  A.EMPL_RCD,  A.EFFDT,  A.EFFSEQ,  A.DEPTID,  A.JOBCODE,  A.LOCATION,  B.NAME,

  • B.LAST_NAME,  B.FIRST_NAME,  C.ADDRESS_TYPE,  C.EFFDT,  C.ADDRESS1,  C.ADDRESS2,  C.CITY,
  • C.COUNTY,  C.STATE,  C.POSTAL
  • FROM PS_JOB A,  PS_PERSONAL_DATA B,  PS_ADDRESSES C
  • WHERE A.EMPLID = B.EMPLID
  • AND B.EMPLID = C.EMPLID
  • AND A.EFFDT = (SELECT MAX (A_ED.EFFDT) FROM PS_JOB A_ED
  • WHERE A_ED.EMPLID = A.EMPLID
  • AND A_ED.EMPL_RCD = A.EMPL_RCD
  • AND A_ED.EFFDT <= SYSDATE)
  • AND A.EFFSEQ = (SELECT MAX (A_ES.EFFSEQ) FROM PS_JOB A_ES
  • WHERE A_ES.EMPLID = A.EMPLID
  • AND A_ES.EMPL_RCD = A.EMPL_RCD
  • AND A_ES.EFFDT= A.EFFDT)
  • AND C.EFFDT = (SELECT MAX (C_ED.EFFDT) FROM PS_ADDRESSES C_ED
  • WHERE C_ED.EMPLID = C.EMPLID
  • AND C_ED.ADDRESS_TYPE =C.ADDRESS_TYPE
  • AND C_ED.EFFDT=A.EFFDT)

31) Write a query to get the marital status,  NID from PERS_DATA_EFFDT AND NATIONALID Table?
A) SELECT A.EMPLID,  A.EFFDT,  A.MAR_STATUS,  A.MAR_STATUS_DATE, B.NATIONAL_ID_TYPE, B.COUNTRY

  • FROM PS_PERS_DATA_EFFDT A, PS_PERS_NID B WHERE A.EMPLID=B.EMPLID
  • AND A.EFFDT=(SELECT MAX(A_ED.EFFDT) FROM PS_PERS_DATA_EFFDT A_ED
  • WHERE A_ED.EMPPLID=A.EMPLID
  • AND A_ED.EFFDT<=SYSDATE)

32) What are the sequence of events when

  • A page is loaded----Pre Build,  Field Default,  Field Formula,  Row Init,  Post Build,  Activate
  • New row of data is entered----Row Insert
  • Existing row of data is retrieved----Row Select

33) Write down all events with description?
Activate The Activate event is initiated each time that a page is activated,  including when a page is first displayed by a user,  or if a user presses Tab between different pages in a component. Each page has its own Activate event.

  • Field Change Use Field Change People code to recalculate page field values,  change the appearance of page controls,  or perform other processing that results from a field change other than data validation.
  • Field Default The Field Default People code event enables you to programmatically set fields to default values when they are initially displayed.
  • Field Edit Use Field Edit People code to validate the contents of a field,  supplementing standard system edits. If the data does not pass the validation,  the People code program should display a message using the Error statement,  which redisplays the page,  displaying an error message and turning the field red.
  • Field Formula The Field Formula event is not currently used. Because Field Formula People code initiates in many different contexts and triggers People code on every field on every row in the component buffer,  it can seriously degrade application performance.


This event is used as a function library.

  • Item Selected The Item Selected event is initiated whenever a user selects a menu item from a pop-up menu.
  •  Post Build The Post Build event is initiated after all the other component events have been initiated. This event is often used to hide or unhide pages. It is also used to set component variables.
  • Pre Build The Pre Build event is initiated before the rest of the component build events. This event is often used to hide or unhide pages. It’s also used to set component variables.
  • Pre Pop up The Pre Popup event is initiated just before the display of a popup menu.
  • Row Delete The Row Delete event is initiated whenever a user attempts to delete a row of data from a page scroll area. Use RowDelete People code to prevent the deletion of a row (using an Error or Warning statement).
  • Row Init The Row Init event is initiated the first time that the Component Processor encounters a row of data.
  • Row Insert When a user adds a row of data,  the Component Processor generates a Row Insert event. U should use Row Insert People code for processing specific to the insertion of new rows. Do not put People code in Row Insert that already exists in Row Init,  because a Row Init event always initiates after the Row Insert event,  which will cause ur code to be run twice.
  • Row Select The Row Select event is initiated at the beginning of the component build process in any of the update action modes (Update,  Update/Display All,  Correction). RowSelect People code is used to filter out rows of data as they r being read into the component buffer.
  • Save Edit The Save Edit event is initiated whenever a user attempts to save the component. Used to validate the consistency of data in component fields. Whenever a validation involves more than one field,  u should use Save Edit People Code. If a validation involves only one field ,  use Field Edit  People code.
  • Save Post Change After the component processor updates the database,  it initiates the Save Post Change event. U can use Save Post Change to update tables not in ur component using the SQLExec built-in function.
  • Save Pre Change is initiated after Save Edit completes without errors. This event provides one final opportunity to manipulate data before the system updates the database.
  • Search Init event is generated just before a search,  add ,  or data-entry dialog box is displayed.
  • Search Save People Code is executed for all search key fields on a search,  add,  or data-entry dialog box after a user clicks Search.This event is used to force a user to enter a value in atleast one field,  even if it is a partial value,  to help narrow a search for tables with many rows.
  • Workflow People code executes immediately after the SavePreChange event and before the database update that precedes the Save Post Change event. This event segregates People code related to workflow from the rest of the appln.s People code.

34) What is state record? What is the difference when state record is an sql table or derived record?
A) State records are used in Application Engines as a storage location for data that needs to be passed across actions. An Application Engine can have more than one state records associated with it out of which only one can be marked as a default state record.

35) What is Do Select in app. Engine? What is Do When in app. Engine?
A) Do Select is like FOR Loop in C.
Do When is like a condition operator such as IF statement in C.

36) What is a Action,  step,  section in app. Engine?
A) Actions You can specify multiple types of actions for inclusion within a step. Multiple actions are commonly associated with a single step.

  • Steps Steps are the smallest unit of work that can be committed within a program. Although you can use a step to execute a People code command or log a message,  typically you use a step to execute a SQL statement or to call another section. The SQL or People Code that a step executes are the actions within the step.
  • When a section is called,  its steps execute sequentially. Every program begins by executing the first step of the required section called MAIN and ends after the last step in the last section completes successfully.
  • Sections Sections comprise one or more steps and are equivalent to a COBOL paragraph or an SQR procedure. All Application Engine programs must contain at least one section entitled MAIN.
  • A section is a set of ordered steps that is executed as part of a program. You can call sections (and other programs) from steps within other sections.
  • A program must contain at least one section. The execution of the program always starts with the section defined as MAIN.

37) What is the difference between Get Row set and Create Row set?
A) Get Row set –is used to get row set for a record in the component buffer. It retrieves data from component buffer.

Create Row set—is used to create row set for a record which in database,  and is also called a Standalone row set. Creates a structure of data.

38) What is the use of Search Save event?
A) Search Save People code is executed for all search key fields on a search,  add,  or data-entry dialog box after a user clicks Search. This event is used to force a user to enter a value in at least one field,  even if it is a partial value,  to help narrow a search for tables with many rows.

39) What is the difference between Field Edit and Field Change events?
A) Field Change People code is for recalculating field values based on changes made to other fields.
Field edit event is used for validating field values. If the field doesn't pass the validation,  an error message is shown and the page is redisplayed with that field marked in red.

40) What events are fixed when a components is saved and when is database commit executed?
A) When a component is saved: Post Build
 

Company Name: Technovant Solutions
No of Rounds:
Technical Round-1
Exam/Interview Date: 16-Mar-2011
Location : Hyderabad