Peoplecode Events Flow



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

Events

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

Peoplecode order of execution

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 events flowers

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.