PeopleCode Events. Page Display. Search Record. Save Processing. Popup Menu. Field Actions. Row Actions ©2001 PeopleSoft, Inc. A l rig hts reserved. Copies may be made only with the prior written consent of PeopleSoft. Each event is a predefined point in the component processor flow. When an event is encountered in th eprogram flow, it fires on a component, which triggers the PeopleCode program associated with the process. You can have PeopleCode attached to various levels within the program flow.
1) PeopleTools Overview Release 8.44
Course Topics:
Technology Overview
Describing PeopleSoft Development Tools
Describing PeopleSoft Enterprise Tools
Describing Information Available in PeopleBooks
Navigating PeopleSoft Applications
Identifying Elements of the User Interface
Navigating PeopleSoft Applications
Entering and Modifying Data
Navigating the Enterprise Portal
Describing a PeopleSoft Enterprise Portal
Describing PeopleSoft Portal Products and Solutions
Describing PeopleSoft Architecture
Describing PeopleSoft Databases
Explaining Data Flow in PeopleSoft Pure Internet Architecture
Validating Data
Identifying Edit Types
Viewing Effective-Dated Information
Validating Data with PeopleCode
Developing an Application
Describing the Four Phases of Application Development
Describing the PeopleSoft Design Methodology
Identifying Features of PeopleSoft Application Designer
Building PeopleSoft Definitions
Automating Business Processes with PeopleSoft Workflow
Describing the Features of PeopleSoft Workflow
Identifying a Business Process
Executing a PeopleSoft Application Engine Program
Describing PeopleSoft Application Engine Features
Describing PeopleSoft Application Engine Benefits
Running an Application Engine Program
Examining a PeopleSoft Application Engine Program Definition
Integrating the Enterprise
Describing the Features of PeopleSoft Integration Broker
Exploring the Features of PeopleSoft Component Interfaces
Exploring the Features of PeopleSoft Messaging
Exploring the Features of File Layout Definitions
Upgrading PeopleSoft Applications
Describing an Upgrade
Examining Upgrade Options
Upgrading a Project
Running Processes Using the Process Scheduler
Examining the Features of PeopleSoft Process Scheduler
Describing the Features of the Process Monitor
Describing the Features of the Report Manager
Monitoring the Performance of the Enterprise
Describing Performance Monitor Features
Describing the Benefits of the Performance Monitor
Securing the Enterprise
Describing the Features of PeopleSoft Security
Examining Application Security
Examining Other Types of Security
2) PeopleTools I Rel 8.48
Peoplecode Events Flow With Examples
Course Topics:
Navigating PeopleSoft Applications
Using Search Pages
Identifying Definitions
Entering and Modifying Data
Finding Information Using PeopleBooks
Explaining PeopleSoft Architecture
Describing PeopleSoft Databases
Explaining Data Transfer in PeopleSoft Pure Internet Architecture
Identifying Requirements for the Development Environment
Organizing Data
Describing Relational Data Models
Normalizing Data
Reading Data Models
Validating Data
Describing Prompt Tables
Using Effective Dating
Comparing Validation Types
Explaining Tableset Sharing
Developing Applications by Using the Eight Steps
Describing the PeopleSoft Application Development Process
Describing the Application Designer Interface
Organizing Definitions in a Project
Designing the Application
Planning the Application
Determining Functional Specifications
Determining Technical Specifications
Describing the Training Application
Defining Fields
Discussing Fields in PeopleSoft Applications
Identifying Field Definition Types and Properties
Creating Field Definitions
Assigning Translate Values
Creating Record Definitions
Discussing Fields in PeopleSoft Applications
Identifying Field Definition Types and Properties
Creating Field Definitions
Assigning Translate Values
Building SQL Tables
Describing the Relationship Between Record Definitions and Application Data Tables
Building Application Data Tables
Viewing Table Indexes
Creating Page Definitions
Identifying Page Design Principles
Identifying Page and Page Control Properties
Adding Page Controls to a Page
Creating Page Definitions
Implementing Scroll Areas and Grids
Defining Components
Defining Component Properties
Building New Components
Registering Components
Examining Menu Definitions
Identifying PeopleSoft Security Basics
Navigating the Portal Registry
Registering a Component
Testing an Application
Creating and Analyzing Test Plans
Troubleshooting Common Issues
Editing the Registry Structure
Discussing Content Organization in PeopleTools 8.4 Navigation
Creating Folders
Moving Folders or Content References to New Parent Folders
Creating Menu Definitions
Describing the Purpose of a Menu
Locating a Component on a Menu
Editing Menu Item Labels
Analyzing the Impact of Design Changes
Determining Relationships Among Definitions
Synchronizing Record Definitions and Database Tables
Incorporating Upgrades in the Development Strategy
Searching Applications by Using the Verity Search Engine
Describing and Performing a Verity Search
Generating a Registry Search Collection
Adding Keywords to a Search Collection
Performing Data Audits
Discussing Advantages and Disadvantages of Implementing Audits
Implementing Field-Level Audits
Implementing Record-Level Audits
Importing and Exporting Projects
Describing How Projects Transport Definitions Between Databases
Exporting Projects
3) PeopleTools II Rel 8.48
Course Topics:
Developing Applications with PeopleTools
Designing an Application
Creating Data Structures
Creating User Interfaces
Testing Applications
Applying Advanced Design Concepts
Explaining the PeopleSoft Design Methodology
Evaluating a Potential Change to an Application
Using Views in PeopleSoft Applications
Stating the Purposes of Views
Writing SQL Statements to Retrieve Data
Creating PeopleSoft SQL Views
Creating PeopleSoft Query Views
Creating Summary Pages Using Views
Explaining the Purpose of Summary Pages
Creating Summary Pages Based on PeopleSoft Views
Determining the Key Structure for a Summary View
Creating and Using Search Records
Explaining the Role of Search Records in Components
Using Views to Provide Additional Search Criteria
Implementing the Add Search Record in a Component
Using Views as Prompt Table Edits
Setting Up a Prompt Table Edit that Uses a View
Explaining the Mechanics of Prompting
Creating Views that Take Advantage of Prompting Mechanics
Explaining TableSet Sharing
Explaining the Functional Aspects of TableSet Sharing
Explaining the Technical Aspects of TableSet Sharing
Implementing TableSet Sharing
Creating Parent-Child Relationships
Explaining Methods That Enforce Referential Integrity
Creating Parent-Child Record Definitions
Enforcing Parent-Child Relationships on Page Definitions
Explaining Buffer Allocation
Discussing Buffer Allocation
Determining the Effect of Buffer Allocation on Performance
Creating Subrecords and Subpages
Stating the Purpose of Subrecords
Creating and Maintaining Subrecords
Stating the Purpose of Subpages
Creating and Maintaining Subpages
Identifying the Caveats for Using Subrecords and Subpages
Using Deferred Processing
Explaining the Purpose of the Application Server
Distinguishing Between Processing Modes
Changing the Processing Mode of a Definition
Introducing PeopleCode in an Application
Explaining the Purpose of PeopleCode
Accessing PeopleCode Programs
Identifying Elements of PeopleCode Syntax
Using PeopleCode to Validate User Input
Managing PeopleCode Programs Using Comments
Creating Error Messages Using the Message Catalog
Using PeopleCode to Manipulate Fields
Using Objects in PeopleCode
Defining Object-Oriented Terms
Creating Custom Objects with Application Classes
Describing Application Classes
Organizing Application Classes Using Application Packages
Editing Application Classes
Calling Application Classes
Using Images in PeopleSoft Applications
Implementing Image Definitions
Implementing Image Field Definitions
Retrieving Images with PeopleCode
Differentiating Between Image Definitions and Image Fields
Designing Pages Using Style Sheets
Viewing Relationships Between Style Sheet Elements
Overriding the System Style Sheet
Using PeopleCode to Modify the Style Property of a Field Object
Designing More Advanced Pages
Using the Message Catalog in Page Design
Creating Pages with Alternate Data Displays
Creating Links to Internal and External Pages
4) PeopleCode Rel 8.44
Course Topics:
Using PeopleCode Development Tools
Reviewing the Eight Steps of PeopleSoft Application Development
Locating PeopleCode Programs
Using the PeopleCode Editor
Using the PeopleCode Debugger
Exploring More Development Tools
Describing the Component Processor
Tracing the Component Processor Flow
Defining PeopleCode Events
Identifying PeopleCode Search Events
Identifying PeopleCode Component Build Events
Identifying Field Action Events
Identifying PeopleCode Row Action Events
Identifying PeopleCode Save Action Events
Describing Add Mode Processing
Writing PeopleCode Programs
Writing PeopleCode Statements
Explaining Conditional Statements
Explaining Looping Statements
Understanding PeopleCode Events
Explaining the Search Events
Explaining the Component Build Events
Explaining the Field Action Events
Explaining the Row Action Events
Explaining the Save Action Events
Using PeopleCode Variables
Creating User-Defined PeopleCode Variables
Using System Variables
Incorporating Derived/Work Fields into PeopleSoft Applications
Explaining Variable Prompt Tables
Explaining Arrays
Using Built-In Functions
Listing the Types of Built-In Functions
Explaining Message Catalog Functions
Describing All, None, and Prior Value
Explaining String Functions
Identifying Other Built-In Functions
Explaining Reserved Words
Writing PeopleCode Functions
Writing External PeopleCode Functions
Declaring a PeopleCode Function
Calling PeopleCode Functions
Writing Functions Using Parameters
Writing Functions Using the Returns Argument
Explaining the Component Buffer
Determining Buffer Allocation
Determining the Order of Execution of PeopleCode Programs
Accessing Data in the Component Buffer
Processing Rows Using Loops
Using Fetch Value and Update Value
Accessing Data with Multiple Occurs Levels
Programming With Object-Oriented PeopleCode
Defining Object-Oriented Terms
Instantiating Objects
Referencing Object Properties by Using Dot Notation
Calling Object Methods by Using Dot Notation
Explaining Passing by Reference
Using Object-Oriented Methods and Properties
Referencing Data in the Component Buffer
Defining the Data Buffer Classes
Instantiating the Buffer Access Classes
Explaining Current Context
Traversing the Data Buffer
Using Shorthand Dot Notation
Traversing the Data Buffer with Multiple Scroll Levels
Creating Custom Objects with Application Classes
Describing Application Classes
Organizing Application Classes Using Application Packages
Using the Application Class Editor
Describing Application Class Structure
Calling Application Classes
Passing Parameters to Application Classes
Using Data Buffer Methods
Using the Sort Method
Using the Select Method
Using Flush
Working With Standalone Rowsets
Using More Buffer Methods
Executing SQL in PeopleCode
Writing SQL Exec Statements
Creating SQL Definitions
Using the SQL Class
Executing SQL Using Record Objects
Incorporating Meta-SQL in PeopleCode and SQL
Searching PeopleCode for Potential SQL Injection
5) Application Engine Rel 8.48
Course Topics:
Introducing Application Engine Designer
Describing Student Workstation Resources
Using Application Engine Designer
Describing Application Engine Program Structure
Building Application Engine Programs
Adding Markets and Filters to Application Engine Program Sections
Setting Application Engine Program Properties
Testing Application Engine Programs
Using State Records
Describing the Function of State Records
Executing an Application Engine Program Using the Developer’s Shortcut
Modifying Application Engine Programs to use State Records
Adding Sections and Steps to Existing Application Engine Programs
Using Meta-SQL in Application Engine Programs
Testing and Debugging
Testing Application Engine Programs
Using the Process Monitor
Using Application Engine Traces
Using the Application Engine Debugger
Testing With Application Engine Restart
Using the Do Select Action
Describing Do Select
Using Select and Fetch
Using Reselect
Using Restartable
Developing an Application Engine Program Using Do Select
Incorporating Conditional Processing
Defining Do Actions
Explaining Conditional Statements in SQL
Explaining Do Action Program Flow
Designing a Program Using Conditional Processing
Using Application Engine Libraries
Using PeopleCode with Application Engine
Identifying How to use PeopleCode in Application Engine Programs
Inserting PeopleCode into an Application Engine Program
Enabling Dynamic Calls
Using Set Processing
Describing Set Processing
Modifying a Program to use Set Processing
Using Temporary Tables
Describing Parallel Processing
Implementing Parallel Processing
Using Meta-SQL with Parallel Processing
Describing Run-Time Allocation
Executing Application Engine Programs
Executing an Application Engine Program Using a Push Button
Executing an Application Program with the Process Scheduler
Executing an Application Engine Program with a Command Script
Creating Process Definitions for Application Engine
Identify the Process Types used with Application Engine
Creating Application Engine Process Definitions
Implementing an Application Engine Program with No User Inputs
Implementing an Application Engine Program With User Inputs
Using PSDAEMON
Describing PSDAEMON
Describing a Daemon-Only Application Engine Program
Defining Daemon Groups
Monitoring a Daemon Process
Measuring Application Engine Performance
Describing Traces
Passing Trace Values to PSAE.EXE
Interpreting Application Engine Trace Data
Interpreting the PeopleTools Trace
Describing Advanced Trace Options
Tuning Application Engine Programs
Describing the Process of Performance Tuning
Identifying Application Level Tuning Opportunities
Explaining the Performance Impact of PeopleCode
Describing How Do Flow Control Affects Program Performance
Explaining Database-Level Tuning Considerations
The Event Mapping Framework is a new functionality introduced in PeopleTools 8.55. The framework provides a way to run custom code on delivered components without having to modify the delivered objects. I am going to demonstrate how the Event Mapping Framework can be used to enforce two-factor authentication (2FA) by mapping application class PeopleCode to component events. I have provided a proof-of-concept project that demonstrates this functionality.
This project will add the ability to do a conditional redirect before a component is loaded. Before the pre-build event of the component is fired, the custom code will check if the user has done 2FA for the session. The code will redirect the user to the 2FA page if they have not done 2FA for the session, otherwise the component will load like normal. The flow will go from this:
To this:
CLICK HERE to download the project. Unzip the file and import the project into app designer.
Login to PeopleSoft and navigate to Main Menu – > PeopleTools -> Portal -> Related Content Service -> Manage Related Content Service. Click on the Event Mapping tab.
Click Map the event of the Application pages link.
For this demonstration, I would like to enforce 2FA on the Change My Password page. So select the Change My Password content reference.
Next, you need to assign the related content definition (the definition was imported from the provided project) to the Pre Build event on the component. Select Pre Process for the processing sequence. This means the custom application class will fire before any code that would be defined in the Pre Build event of the component. Click save.
Now navigate to the Change My Password page.
Peoplecode Events Flow
And you should be prompted for 2FA at this point.
Note: The SMS option in the project is merely a placeholder. I did a post on how to send SMS text messages in PeopleSoft if you are interested in implementing this functionality.
Peoplecode Order Of Execution
After you perform 2FA and click OK, you should be redirected to the Change My Password page.
With the Event Mapping Framework, the code to check if a user needs to perform 2FA can easily be applied to Pre Build events on components across the entire application. The great thing is that the code is being fired in a custom event. This means that we are able to achieve this customization of enforcing 2FA at the component level without actually having to “customize” the delivered components.
Peoplecode Searchinit
I made a post here that demonstrates how Google Authenticator can be implemented with the event mapping framework to enforce two-step verification at the component level in PeopleSoft.