Sie sind auf Seite 1von 261

Data Organization

Presenter
PeopleSoft Technical Guru

Relational Databases
A relational database is a collection of data
items organized as a set of formally-described
tables from which data can be accessed or
reassembled in many different ways without
having to reorganize the database tables.
It stores all its data inside tables, and nothing
more. All operations on data are done on the
tables themselves or produces another tables
as the result.

Relational Databases
Table Structure
A table is a set of rows and columns.
It has a set of tables containing data fitted into predefined
categories.
Each table (which is sometimes called a relation) contains
one or more data categories in columns. Each row
contains a unique instance of data for the categories
defined by the columns.

Relational Databases
Normalization
Normalization is the process of efficiently
organizing data in a database.
Advantages of the normalization process
Eliminating redundant data (for example, storing the
same data in more than one table)
Ensuring data dependencies make sense (only storing
related data in a table).

Relational Databases
Key Fields
Key fields uniquely identify each row of data on a
relational database table.
If there can be only one ID per student, then the key
would be STUDENT_ID on the
PSU_STUDENT_TBL.
If a student can have more than one recorded skill and
more than one degree, then we would need two
additional tables, each with STUDENT_ID as a key
plus at least one more key field to uniquely identify
rows of data.

Relational Databases
Parent Child Tables
During normalization, the breakdown of data based on a
single field that occurs multiple times indicates a
parent/child relationship .
The table holding basic Student information and the tables
constructed to hold data about a Students Experience
and a Students Educational background represent
parent/child relationships.
A child table must have all the key fields of the
parent table in the same order plus at least one
additional key field.

Relational Databases
Parent Child Tables

Data Model
It is a diagram of the underlying database tables and their
relationships.
It is often helpful to have a map illustrating the
various tables and their interrelationships

Relational Database, Metadata


and PeopleSoft

SYSOBJECTS
SYSCOLUMNS

PSRECDEFN
PSPNLDEFN

PS_PSU_STUDENT_TBL
PS_PSU_INSTR_TBL

Relational Database, Metadata


and PeopleSoft
System Catalog
System catalog tables are analogous to a table of
contents for a book, or to File
Allocation Tables on a hard drive. The structure and table
names vary depending on
which RDBMS is being used, but the function is the same.
The system catalog tables
keep track of all of the objects that reside in the database
instance, including non - PeopleSoft systems
e.g. SYSOBJECTS, SYSCOLUMNS

Relational Database, Metadata


and PeopleSoft
PeopleTools Tables

PeopleTools tables hold metadata about the PeopleSoft application that is installed on
the
database.
The PeopleTools tables contain the structure that the applications use to define the user
interface. The structure of the tables is the same for all applications. Each application
enters data into the PeopleTools tables when it is installed.

PSDBFIELD - fields in application data tables


PSRECDEFN - application data table s, indexes, views
PSPNLDEFN - Values used to generate the HTML pages received by
the browser
PSPRSDEFN - Contents of the portal registry, which builds the user
navigation
PSXLATITEM - Values used to validate data for specific fields

Relational Database, Metadata


and PeopleSoft
Application Data Tables

The Application Data tables contain data entered for use


by your
organization. The specific tables and their structure are
determined by the application
installed or by the definitions you create as a part of your
development
The naming convention used for Application Data tables is
PS_*.
e.g.
PS_PSU_STUDENT_TBL
PS_PSU_INSTR_TBL

Query Analyzer
SQL SELECT Syntax
SELECT [COLUMNS] FROM [TABLE_NAME]
SELECT [COLUMNS] FROM [TABLE_NAME] WHERE [COLUMN1] =
[CONDITION]
SELECT [COLUMNS] FROM [TABLE_NAME] WHERE [COLUMN1] =
[CONDITION] ORDER BY [COLUMNS] [DESC/ASC]

SELECT [COLUMNS],GROUP FUNCTIONS FROM

[TABLE_NAME] WHERE [COLUMN1] = [CONDITION] GROUP BY


[COLUMNS]

Group Functions Max/Min/Count/Sum

Query Analyzer
SQL INSERT/UPDATE/DELETE Syntax
INSERT INTO [TABLE_NAME] [COLUMNS]
VALUES[VALUE1,VALUE2]
UPDATE [TABLE_NAME] SET [COLUMN] = [VALUE]
WHERE [COLUMN1] = [CONDITION]
DELETE FROM [TABLE_NAME] WHERE [COLUMN1] =
[CONDITION]

Query Analyzer
Online Page Action
Command

Resulting SQL

Retrieve data from the search page in an Update mode.

SELECT

Use the Add action to add a new search key to a control table

INSERT

Use Alt + 7 (Row Insert) to add a row with an existing search key to a INSERT
transaction tab le in an Update mode.

Save a page.

COMMIT

Use Alt + 8 (Row Delete) in an Update mode.

DELETE

Undo changes if errors occur during PeopleCode processing at Save


time

ROLLBACK

Modify data on existing rows in an Update mode

UPDATE

PIA Peoplesoft Internet Architecture

PeopleSoft Internet Architecture

(2 TIER Connectivity)
Database Server
Client
ODBC CONNECTIVITY

PeopleSoft Internet Architecture


(2 TIER Connectivity)

Advantages
Simpler architecture requiring only client
workstation and database server components to
be installed.
System administrators are not required to invest
time learning application server administration.
No need to consider purchasing either an
additional machine or upgrading an existing
machine to use as an application server.

PeopleSoft Internet Architecture:


Definition
PIA stands for PeopleSoft Internet Architecture.
It is the runtime architecture used to deploy and
execute
the pure Internet applications of PeopleSoft 8. Its
called pure since it follows the thin client model
Executes the applications built with PeopleTools
development environment.

Features of PIA

Pure Internet
Server-centric
Component-centric
Four-tier Architecture

Advantages of PIA Over


Client/Server
Thin Client:
No executables on the client side Low Cost
No Processing at client side

Network Protocol The protocol used is HTTP

Security - SSL security can be implemented in


PIA

PeopleSoft Internet Architecture

(3 TIER Connectivity)

PeopleSoft Internet Architecture


(3 TIER Connectivity)
Advantages
Reduced network traffic.
Improved WAN performance.
Reduced maintenance of client workstation configuration,
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 powerful machines, and by
using multiple application servers

Web Browser
Uses HTTP protocol
Receives only:
HTML / XML
Java script

Cookie

Browse
r

HTTP/HTTPS

Web
server

Jolt/Tuxedo

Application
server

DB
SQL

server

Web Server
Web services HTTP, XML, SOAP, WSDL, and
UDDI
Servlet Engine
Java Servlets:

Page Servlets: Content Retrieval and Page Assembly


Portal Servlets: Content Retrieval and Page Assembly
Integration Gateway Servlets: Listener Connectors
Report Repository Servlets
Browser
HTTP/HTTPS

Web
Server

Jolt/Tuxedo

Application
Server

SQL

DB

Server

Web Server (Contd.)

This figure depicts the PIA architecture.


Client request are made through the web browser.

These requests move to the Web Server


From the Webserver the request is passed to the
Application server which communicates with the
database.
The response to request follows the reverse path

Application Server
It is the Heart of PIA - contains all application logic /
HTML / XML generation
Supports Lightweight Directory Access Protocol (LDAP)
integration
LDAP

Browser
HTTP/HTTPS

Web Server

Jolt/Tuxedo

Applicatio
n Server

SQL

DB Server

Application Server Domain


Collection of server processes, supporting
processes, and resource managers
A domain advertises a set of services (such as
build a page and save a page)
Process scheduler also built around domains
You can have more than one domain per
machine (server)
Each domain only connects to one database.
Multiple domains can connect to the same
database.

Application Server Domain (Contd.)

Example: One domain on one application server machine.

APPLICATION
SERVER

BROWSER

WEB
SERVER

HR
Domain

HR
Database

Application Server Domain (Contd.)

APPLICATION
SERVER

FS
Domain

BROWSER

FS
Database

WEB
SERVER
HR
Domain

HR
Database

Application Server Domain (Contd.)


Domain: Collection of server processes, supporting
processes, and resource managers
Server Processes Manages different types of requests that
reach the application server
Tuxedo/JOLT Jolt provides the connection between the
Web Server and App server. Tuxedo is BEA software that
gears the PS App Server

Application Server Domain (Contd.)

Database Server
Consists of application data and metadata
Contains three types of PeopleSoft tables:
System Catalog Tables
PeopleTools Tables
Application Data Tables

Browser
HTTP/HTTPS

Web
Server

Jolt/Tuxedo

Application
server

SQL

DB Server

Batch Server (Process Scheduler)


Batch Server
RDBMS
Browser

Web Server

App Server SQL

Components of Process Scheduler:


Process Scheduler Server Agent
Distributed Agent
The Process Scheduler is used to schedule the
processes in PeopleSoft. It can be consider as a
part of the Application Server and communicates
with the DB directly.

Logging in PIA
Sign In
User Id
Password

Navigate to a Component
Page Layout
Header
Menu Pagelet
Target Area

Searching Through PIA

PIA URL

Web
Server

PS Portal
Servlet

Portal

Menu
Node

App Server
Domain

Ref
Type

Component

Hot Keys

Access Keys

Question???

XML Publisher
and Reporting to Excel
Duncan Davies, Jay Jorgensen and Adam Clark
Allinity

Who are we?


Duncan Davies - Technical Consultant (Allinity)
Email: Duncan@Allinity.com
Adam Clark - Technical Consultant (Allinity)
Email: Adam@Allinity.com
Jay Jorgensen - External Consultant
Email: Jay@GlobalWalkabout.com

What are we covering today?


1. XML Publisher - Duncan
2. Reporting to Excel Overview - Adam
3. Reporting to Excel Deep-Dive - Jay
4. Questions

What is XML
Publisher?
Publisher is the only
Reporting Platform
for Fusion Apps

How does it work?


Technical Task
XML
Data Source

Business Task
Template
Layout

XML
Publisher
Engine

Report
Output

Step 1
Create an App Engine
to supply:

1. XML Sample Data


File
2. XSD Schema File

Step 1 Code Populate Rowset

Step 1 Code Output Files

Step 2
Create an RTF
template in Word
using the XML
Sample data file.

Step 3
Within PeopleSoft,
create:
1. Data Source Defn
2. Report Defn
3. Process Defn

Step 3 Data Source Definition

Step 3 Report Definition

Step 4
Update your App
Engine to output full
data, then run it.

Step 4 Code Code Changes

Advanced Use
Bursting
Content Library

Translations

Whats good?
Single Toolset

Business users dont


need a techie to
layout a report
Highly Flexible
Easier upgrade to
Fusion
Quick and easy

Whats not good?


XML/XSL knowledge
needed for complex
reports
Excel output very
basic

No update until 2008


(Tools 8.50)
Need to use
Report Mgr

What other tips


can we give?
Make sure all rowset
levels are filled in
sample data.
RTFs not shown in
Process Monitor, so set
up Report Manager.
Limit the size of the
rowset for sample data.
Sort data in Code

AEXLS
Overview

Why?
Client required a
reporting solution
Output to Microsoft
Excel
Must be a PeopleTools
solution

Output onto Multiple


Sheets
Complete control of
individual cells
Formatting of individual
rows/columns/cells
Formulas

Client specific
Branding/Formatting

Options
XMLP
SQRXLS

nVision
XSLT for XMLP

The Solution
Application Package
Kept within
PeopleSoft
Standard PeopleSoft
APIs
Classes and
Methods

Benefits
Rapid development
Standard
PeopleCode
Object oriented API
Simply pass a
RowSet to the
constructor

Example

Summary
Client
Requirements
Flexibility
Rapid Development

AEXLS
The Internals

What Have We Done


Formatting text,
cell and sheet
Print and Page
Settings
Formulas and
Functions
Multiple sheets
Named Ranges

What Can be Done


Short answer everything but Macros
and Passwords
For Example
Pivot Tables
Charts
Hyperlinks (drill-down like nVision)
Data Functions filters, sorting etc
Smart Tags and Comments

Components
Excel/XML

XMLDOC Object

Application

Packages

Excel/XML
Need to learn XML
Simple Cascade Worksheet/Column/
Row/Cell
Styles used like CSS
Namespaces and
Schemas
MS Schemas of
some use

XMLDoc
PeopleSofts XML Parser
Provides random access
to the xml document
Like a Database

Based on W3C standards Examples


Uses XPath

XPath is like a directory


structure

Get a Sheet
Findnode(Workbook\Worksheet
[@Name=Sheet1] )
Get a Cell
Findnode(Workbook\Worksheet
[@Name=Sheet1]\Row\Cell
[@Index=4]\Data\Text()

App Packages
Object Oriented
Approach Classes
Makes things more
complex but so much
faster/easier to
maintain.
Model your classes
on the excel objects
sheets, cells etc
Quicker debugging

Problems
Namespaces and XMLDoc
Other XMLDoc Issues
Performance

Tips
Plan your object model first

Remove namespaces and add them in by


string manipulation after XMLDoc is
finished
Consider generating large chunks of data
by other methods (e.g. SQL)
Leverage PeopleSoft Metadata (e.g. Field
labels, translate and prompts)

Apply a template (like the report class)

Finish
Time estimates
2 man months for the Excel generator
1 man month for the template overlay
Much of this is learning curve

Time is easily recouped in developing


reports etc that use it.

Thanks for listening.

Does anyone have a


Question?

Introduction

Mbtechnosolutions- App Designer Fundamental - I


By. Md. Sayeed

Copyright 2013, mbtechnosolutions. All rights reserved.

Lesson Objectives

After completing this lesson, you should be able to do


the following:
List the features of Application Designer
Discuss the theoretical and physical aspects of a
relational database and App Designer Definitions
Describe the integrated Platform for various
PeopleSoft tasks
Understand the goals of the course

I-2

Copyright 2013, mbtechnosolutions. All rights reserved.

Goals of the Course

After completing this course, you should be able to do


the following:
Identify the major structural components of
App Designer
Understand field, Record, Page, Component and
Menu
Registration wizard and its features
Creating Hello World Project by using 8 steps
Accessibility Pages in PIA

I-3

Copyright 2013, mbtechnosolutions. All rights reserved.

App Designers(Integrated Tool) Important


definitions/technologies

People code

Component

Application
Package

App Engine

I-5

Component
Interface

File Layout

Copyright 2013, mbtechnosolutions. All rights reserved.

App Designer Definitions (ALL)

1.
2.
3.
4.

Activity
Analytic Model
Analytic Type
App Engine
Program
5. Application
Package
6. Approval Rule
Set

I-6

7. Business
Interlink
8. Business
Process
9. Component
10. Component
Interface
11. Field
12. File Layout
13. File Reference
14. HTML

15. Image
16. Menu
17. Message
18. Mobile Page
19. Page
20. Project
21. Record
22. SQL
23. Style sheet

Copyright 2013, mbtechnosolutions. All rights reserved.

Field

I-7

Copyright 2013, mbtechnosolutions. All rights reserved.

Field
Fields are the lowest level units in PeopleSoft. Fields are Individual objects defined in PeopleSoft . One or more
Fields grouped to form a record definition. A field can be shared across all record definitions

Types of Field
Field Type
Field Length
Field Labels
Field Formats

Field Properties
General
Translate values

I-8

Copyright 2013, mbtechnosolutions. All rights reserved.

I-9

Copyright 2013, mbtechnosolutions. All rights reserved.

Field Type
Character (Char): Used for codes in PeopleSoft
Long Character (Long): Used to store comments in PeopleSoft
Number(Nbr) :to hold positive integers and decimal numbers
Signed Number (Sign): holds negative integers and decimals
Date (Date) :hold dates in (MM/DD/YYYY) format
Time(Time) : holds time in (HH:MI:SS.99999) format
Datetime (DtTm) :holds both date and time
Image (Img): to store pictures in PeopleSoft (Jpeg, Bitmap format)
Image Reference(Iref): to change an image dynamically at runtime
using PeopleCode.
Attachment:Maps to a BLOB database type to hold the contents of a
file attachment.

I-10

Copyright 2013, mbtechnosolutions. All rights reserved.

Field Properties

I-11

Copyright 2013, mbtechnosolutions. All rights reserved.

Field Properties
General Properties
Field Definition: We can specify purpose of this field
Owner ID: Application Module like HR, Base Benefit
Last Update by: Auto insertion (cannot be changed)
Date/Time: System takes current date and time
By User: System take Logged-in username as updated by user

Translate Values

The Translate Values tab is available only for character fields.

The Translate table is a prompt table, which is similar to an all-purpose data


dictionary, to store values for fields that dont need individual prompt tables of their
own. A Universal table(PSXLATITEM) can be used across all PeopleSoft
Environment to populate Pre-defined drop down values

I-12

Copyright 2013, mbtechnosolutions. All rights reserved.

Translate Value window

I-13

Copyright 2013, mbtechnosolutions. All rights reserved.

Translate Value Fields


Field Value: Use to enter the translate value for the field. The system automatically
sorts values in ascending order as you enter them.
Effective date: Enter the date on which you want this value to take effect.
The default value is todays date.

Long Name: Enter up to 30 characters

Short Name : Enter up to 10 characters, and if this field left blank, Peoplesoft will
take first 10 Character from Long Name (Automatically)

I-14

Copyright 2013, mbtechnosolutions. All rights reserved.

Querying PSXLATITEM TABLE

I-15

Copyright 2013, mbtechnosolutions. All rights reserved.

Record
A Record is a collection of Fields. A Record definition can be an SQL table,
an SQL View, a Sub record..
Record Types
SQL
SQL View
Dynamic View
Derived/Work
Sub Record
Query View
Temporary Table

Record Properties
General
Use

Record Field Properties


Use
Edit

I-16

Copyright 2013, mbtechnosolutions. All rights reserved.

Purpose of record Type


1

An SQL:

(Structured Query Language table)

A physical SQL table in the database.

An View:

(Structured Query Language view)

Select to define a record definition that corresponds to a SQL view, which


is not a physical SQL table in the database

Dynamic View:
Select to define a record definition that can be used like a view in
pages and PeopleCode, but is not actually stored as a SQL view.
Dynamic views can provide superior performance in some situations,
such as search records

I-17

Copyright 2013, mbtechnosolutions. All rights reserved.

Purpose of record Type2


4

Derived/Work:
Select to define the record definition as a temporary workspace to
use during online page processing.

Sub Record:
subrecorda group of fieldsthat are commonly used in multiple record
definitions. We can change a group of fields in one place, as opposed to
changing each record definition in every record

Query View:
To define the record definition as a view that is constructed using
the PeopleSoft Query tool. Before we create the view, PeopleSoft
Application Designer prompts you to save the definition.

I-18

Copyright 2013, mbtechnosolutions. All rights reserved.

Purpose of record Type3


7

Temporary Table:
To define the record definition as a temporary table. Temporary
tables are used for running PeopleSoft Application Engine batch
processes.

Non Standard SQL:


To override the standard convention of prefixing PS_ to the record name.

I-19

Copyright 2013, mbtechnosolutions. All rights reserved.

PeopleTools table to store Record


definition Attributes

PSRECDEFN: Record definitions are stored in a this table. This table stores all
attributes of a Record definition. Like Record type, Audit Record name, Parent
record name, index count, field count. SQL table and SQL View are data based
objects and stored with PS_ prefix in database

PSREFIELD: This table stores the fields that the record definition contains. Each
field with its own edit properties. It may translate value edit, prompt table edit. Or
Yes or no edit
PSPROGCOUNT: contains the Number of PeopleCode events for the record field.

I-20

Copyright 2013, mbtechnosolutions. All rights reserved.

Record3
PSINDEXDEFN: This table contains a row for each index for the record definition.
And populated only if the record definition is an SQL table or an SQL view

PSKEYDEFN:This table contains all record field that compose


the index are stored with key sequence

I-21

Copyright 2013, mbtechnosolutions. All rights reserved.

Naming Convention for Records


_TBL: Identifies an edit or prompt table that contains data that is
used for validation,
_VW: Identifies a record definition that is physically implemented
by defining a SQL view.
_DVW: Identifies a dynamic view.
_WRK: Identifies derived work records.
_SBR: Identifies subrecords.
_QVW Identifies a query view.

I-22

Copyright 2013, mbtechnosolutions. All rights reserved.

Naming Convention for Records

_WL: Identifies the record as a worklist record definition


_R: Identifies work record definitions for Structured Query
Report reports.
AUDIT_: Identifies record definitions that store audit
information for other record definitions in the database
WEBLIB_: Identifies record definitions that store internet
scripts. Internet scripts are generally located in FieldFormula
PeopleCode events.
FUNCLIB_: Identifies record definitions that contain
written PeopleCode functions, as opposed to built-in
functions.
I-23

Copyright 2013, mbtechnosolutions. All rights reserved.

Naming Convention for Record

DERIVED_ Identifies shared record definitions (across an


application module or group)that have fields for PeopleCode
events.

I-24

Copyright 2013, mbtechnosolutions. All rights reserved.

Page

I-25

Page serves as user interface to the Application


Page is collection of record fields with certain
purpose
Page vary from simple page, pages with scroll bar,
subpages and secondary pages

Copyright 2013, mbtechnosolutions. All rights reserved.

Component
A component compromises either a single page or a set
of pages that are meant to be served
purpose of functionality and processed as one.
We can manage through Component Definition
Grouping of pages
Search Record (to retrieve data)
Tab Navigations
Links at the bottom of a page
Toolbar at the bottom of a page

I-26

Copyright 2013, mbtechnosolutions. All rights reserved.

Search(components feature)

I-27

Copyright 2013, mbtechnosolutions. All rights reserved.

Toolbar

I-28

Copyright 2013, mbtechnosolutions. All rights reserved.

Catalog table for component

I-29

Copyright 2013, mbtechnosolutions. All rights reserved.

PSPNLGROUP

I-30

Copyright 2013, mbtechnosolutions. All rights reserved.

Menu
Menus work as gateway to the application. Menus store Components
(collection of pages)
Menu items are hold a component and provide access to an application panel.
End user has to be given access to a menu item to access it.
Standard

Pop-Ups

Used to create Application Panel

Used to create context-menu


to page fields(user can access
by right click)

Pre-Define Menu item

Useful to bring help when the

File , Edit, View, Go, Language and Help user needs it.
We can specify menu group, sequence
of that Menu
I-31

Copyright 2013, mbtechnosolutions. All rights reserved.

PSMENUDEFN
This catelog table stores the menu attributes. It contains

I-32

Copyright 2013, mbtechnosolutions. All rights reserved.

PSMENUITEM
This catalog table stores the individual items in standard or
pop-ups menu. It contains

I-33

Copyright 2013, mbtechnosolutions. All rights reserved.

Registration Process

I-34

Copyright 2013, mbtechnosolutions. All rights reserved.

PS Security

By Deviprasad

Agenda
Components of PS Security
Security Model
User Profiles
Roles
Permission List.
Dynamic Roles
Static Roles
Building Roles/Rules Using PS Query
Assigning Roles LDAP
Assigning Roles to PeopleCode
View The Dynamic Members
Conclusion
Implementing security in ps

Security is the degree of protection


against danger, damage, loss, and crime.
In people soft we can implement security
in 6 ways Sign on and Time-out ,Page and
dialog ,Batch environment ,Definition,
Application data, PIA

Components of PS Security
Three major building blocks used when
defining your PeopleSoft security
Permission Lists
Roles
User Profiles

Permission List
Lowest level of PeopleSoft security
It is a list of authorizations we assign to
roles
Grants access to pages, People Tools, and
sign-on times ,like application designer
Multiple Permission Lists can be assigned
to a single role

Roles
Roles are assigned to User Profiles
Intermediate objects that link User Profiles
to Permission Lists
Multiple roles can be assigned to a single
User Profile
Roles can be assigned to User Profiles
manually or dynamically

User Profiles
Defines the individual users of your
PeopleSoft system
Information about the user such as e-mail
address, language code, and password
User Profiles are linked to Roles to grant
access to specific areas within the
PeopleSoft application

Creating User Profiles:


-->Open the PS Sign On page.
-->Click on People Tools.
-->Click On security.
-->Click on User Profiles.
-->Click on user profiles.
-->Click on Roles Tab.
-->Click On +
-->Select the Role Name and select it.
-->Click on Save

Creating Roles (Role is a collection of user


profiles)
-->Open the PS SignOn page.
-->Click on People Tools.
-->Click On security.
-->Now Click on Roles
-->Click on Add New Role.
-->Select the Permission List (Ex:Devi)
-->Click On save

Dynamic role rules


The assignment of roles to User Profiles
based on your business rules
Business rule data can reside in a number of
places:
PeopleSoft data
3rd party systems
LDAP
The dynamic role rule process removes and
grants access to User Profiles

Methods - Assigning dynamic


role rules
There are three technologies you can use
to execute your business rules:
PS/Query
LDAP Plug-in
PeopleCode

Static role assignments


Roles are assigned to User Profiles
manually
All security changes require manual
intervention
High administration costs
High margin for human error

Building Role Rules PS/Query


PeopleSoft recommends using PS/Query
to build role rules if the membership data
resides in your PeopleSoft database
Access is removed or granted based on
the User Profile IDs retrieved by the query
Business rules can be built into the View
and/or Query

Assigning Roles - LDAP


LDAP is an Internet protocol used to access
a directory listing. Organizations typically
store user profiles in a central repository,
or directory server, that serves user
information for all of the programs that
require it.
Userid : It is an id we enter at PS sign on
dialog box. It is stored with in an LDAP
directory server

A directory server enables the


maintenance of centralized user profile
that can be used across all of the
PeopleSoft and non-PeopleSoft
applications. This approach reduces
redundant maintenance of user
information stored separately throughout
the enterprise, and reduces the possibility
of user information getting out of
synchronization. Also, enabling the user
profiles to be easily created and
maintained and authenticated.

Assigning Roles - PeopleCode


Membership data not contained within the
PS database
Data might exist on other 3rd party
systems
Extremely flexible
SQL Exec functions
Business Interlinks
Component Interfaces
IB- Integration Broker

BI- Business Interlinks (call from PS to


other application). Using this technology,
we can use/call other application business
logic from PS.
CI- Component Interface (Call from other
application to PS) using this technology,
other application can use/call PS business
logic in the form of DLL.

IB- Integration Broker - Peoplesoft's Hub.


Heart of PIA. It's a middleware which is
used to establish this connection between
PS applications and 3rd party trade
partners.In Architecture level,IB contains
two major parts
1. Integration Gateway(in web server)
2. Integration Engine(in App server)

View the Dynamic Members


Dynamic members attached to the role can
be viewed when looking at the role
definition
Navigate to PeopleTools Maintain Security
Use Roles
Click on the Dynamic Members tab

View the user profile

Summary
Define your business rules
Develop your dynamic roles based on the
business rules defined by your organization
Three technologies used to develop dynamic
roles
PS/Query
PeopleCode
LDAP

Implementing security in PS

Determine
Component

Start Here

Component Processor Flow Chart

Reset State

2 Search Actions
SearchInit

Search
Page

Add ?

Error/ Warning:
Cancel

SearchSave

SQL
Select

Key

Yes

Add Mode
Processing

7 component build and


page display events

No

More
Rows

PreBuild *

Yes

Record
Defaults

Select
Row

FieldDefault
FieldFormula
1st time
displayed

Stop
Fetching

Add Row
to Buffer

**Activate executes
whenever the page
is in focus

Discard
Row

Accept

No
* PreBuild and
Build Execute once
during Component
Build

PostBuild *
Add Row
to Buffer

Activate **
Display Page
and wait for
User action

Adrian Mansard

Yes

RowInit

RowSelect

Waiting for User Action


Save

Cancel

Content
reference

Field Changed
by User

SaveEdit

Error
Warning:
Cancel

Accept
Warning:
OK

SavePreChange

User selects
new Content
reference

Workflow

Standard
System edits

Error

Add Row

Provisionally
Delete Row

RowInsert

Row Delete

Reject
Delete

Error

SavePostChange

SQL Commit

Row Delete

Error
Warning:
Cancel

FieldEdit

Provisionally Update
Tables (SQL Insert,
Delete,Update)

Accept

Row Insert

4 save action events

FieldChange

2 field

Display Page
and wait for
User action

events
Display Page
and wait for
User action

Accept Field
Change

2 row action events

Accept
Warning:
OK

Accept
Delete

Application Engine
D. Sree lakshmi
EnvyTee InfoSoutions

Introduction to Application Engine.


Structure & Flow of an Application Engine Program.
Executing Application Engine Programs
Difference b/n AE and SQR

Application Engine is used for BATCH or ONLINE processing


where you have a large (or small) amount of data that needs to be
processed without user intervention.

Technical Definition:

An AE program is a set of SQL statements, People Code, and Program


Control Actions defined in Application Designer that performs a
business process.

Application Engine programs reside completely within your database.

No Compilation required.

Database Flexibility.

Does not generate SQL or PeopleCode.

Built in Re-Start Logic.

Mostly used for SET based processing.

PeopleCode can be written.

AE program can be called from People Code.

Program
Sections
Steps
o

Actions

Section Name (e.g. MAIN, etc) and Description

Market

Platform

Effective Date and Status

Auto Commit and Access Type

Section Name (e.g. MAIN, etc) and Description

Market

Platform

Effective Date

Effective Status : Active & Inactive

Auto Commit

Access Type

A Step represents the smallest unit of work that can be committed in a program.

When you first create a program, you have a default MAIN Section and Step,
initially named Step01.

All programs require at least one Section, all Sections should contain at least one
Step, and all Steps should contain at least one Action.

Commit After
Default
Later
After Step
On Error
Abort
Ignore
Suppress
Frequency

Contains all the code of Application Engine Program.

There are eight types of Actions that you can include within a Step, and a Step
can contain multiple Actions.

You can only include one of each Action type within a single Step.

The only mutually exclusive Actions within a single Step are Call Section and
SQL Statement.

Program Flow Actions


Program Flow Actions are used to control the execution of your program. With
these Action types you can control the execution of subsequent Sections, Action(s),
or SQL statements depending on the results of a "Do" SQL statement in the form of
a SELECT.
Below are the four types of Program Flow Actions
Do When
Do While
Do Select
Do Until

The DO When Action is a SELECT statement that allows subsequent actions


to be executed if any rows of data are returned.

This Action is similar to a COBOL "IF" statement.

A DO When statement runs before any other actions in the Step.

If the DO When statement returns any rows, the next Action will be executed.
If the Do When conditions are not met, the remaining Actions within that Step
are not executed.

Your program executes a DO When Action only once when the owning Step
executes.

www.itwisesolutions.com

The DO Select Action is a SELECT statement that executes subsequent Actions


once for every row of data that the Do Select returns.

DO Select can execute a SQL statement for each row returned from the
SELECT statement. The subsequent Actions within the Step are executed in a
loop based on the results of the SELECT statement.

2.Do Select Type :


Select/Fetch Performs a Fetch for each iteration of the loop to get each row from
the SELECT.

Re-Select It opens a cursor and fetches the first row.

Restartable It performs a Fetch on each iteration of the loop to get each row
from the SELECT. It can be Restarted.

Use a Do Until if you want the "processing actions" to execute at least once, and to
execute over and over until a certain condition is true, such as until a SELECT
returns some rows.

PeopleCode Actions allow you to take advantage of IF-THEN logic, messaging, File
Layouts, Component Interface and various other features all from within your Application
Engine programs.
Configurable Properties
On Return :
If your PeopleCode program provides a false result, you can have Application Engine
respond by doing one of the following:
Abort The program issues an error and exits immediately.

Break The program exits the current Step and Section, and control returns to the
calling Step.

Skip Step The program exits the current Step, and continues processing at the next
Step in the Section.

Use this Action if you want to perform the following SQL commands on multiple rows:
UPDATE
INSERT
DELETE
SELECT

Configurable Properties
2.No Rows
In the event that the SQL (INSERT, UPDATE, and DELETE) associated with the SQL
Action does not return any rows, you need to specify what your Application Engine
program should do.

Abort The program terminates.

Section Break Application Engine exits the current Section immediately, and control
returns to the calling Step.

Continue The program continues processing.

Skip Step Application Engine exits the current Step immediately and moves on to the
next Step.

Use the Call Section Action to Call Another Section defined in an Application
Engine program.

You can call a (local) Section defined within your current program, otherwise
Section MAIN would be the only Section executed.

Also you can make external calls to a Section defined in another Application
Engine program.

The external Section you intend to call must have its Access property set to Public.

If a Section's Access property is set to Private, that Section can only be called from
within the same program.

Call Section is the only supported way to call Application Engine programs or
Sections from other Application Engine programs or Sections.

Use this type of Action to write a message to the Message Log.


The Message Log refers to the PeopleTools table PS_MESSAGE_LOG where
execution messages reside.

Configurable Properties

Message Set Identifies a message set within the Message Catalog.

Number Identifies a particular message within a Message Set.

Parameters A list of comma-delimited values to substitute for %1, %2, and so


on markers in the message text.

The Application Engine State Record is the method by which you allocate variables
for your Application Engine program.

It is also the method by which Section, Steps, and Actions pass values to
subsequent program steps.

You can think of State Records in Application Engine as global variables without
scope limiting rules.

Only one record can be the default State Record

Record Types as SQL and Derived/Work Records

Process Instance is the only key Field and is used for maintaining session

Notice the _AET naming convention

PeopleSoft batch applications employ the technique of SET processing, and set
processing (in most cases) involves extensive use of temporary tables.

Temp Tables are used to store transient or intermediate results

Improve performance
Any Program

Making batch temp tables


parallel processing aware
o Instance count is the
number of concurrent
instances
o Batch Temp tables = Sum
of the instance count for
each program a table is
used
o Naming convention
PS_NAME_TMPnn

Set processing is a SQL technique used to process groups, or sets, of rows at


one time rather than processing each row individually

Application Engine has the built-in ability to save a program state and restart
where it stopped processing in the case of an abend.

To invoke or run an Application Engine program:

Process Scheduler

People Code

Command Line

CallAppEngine

To call a particular Application Engine program synchronously


from a page using PeopleCode, you need to use the CallAppEngine()
function in your SavePreChange or SavePostChange PeopleCode.

The basic syntax for CallAppEngine() is as follows:


CallAppEngine(applid [, statereclist ]);

AE Run

Application
Engine
Process
Process Scheduler

PSAE.exe
Execute
AE Constructs
Peoplecode
Program Files

Push Button
Process
Command
Peoplecode Call
Logon
Retrieve
AE Program
Definitions
Issue AE program

SQL

PS
Database

Restart Facility
Inbuilt Tool
Graphical User Interface

COMPONENT INTERFACE
By,
Mr. Srinivas.

What is Component Interface?


A means to access the PeopleSoft application without using the

PeopleSoft pages.
It exposes a PeopleSoft component for synchronous access from

external application(peoplecode,c/cpp, java).


External applications need not be concerned with the details of page

structures and component definitions in order to access the underlying


data and business logic through component interfaces.

Architecture of Component Interface

Architecture(Contd..)
Fundamental elements to the component interface architecture.

Components
Component Interface

Component Interface API

Elements of ComponentInterface
Every component interface has the following four main attributes
1)Name
2)Keys
GetKeys
Findkeys
CreateKeys
Generated in CI when the Use tab on the Component Properties dialog allows
the Add action

Elements of ComponentInterface(contd)
3) Properties and collections (fields and records)
Provide access to both component data and component interface settings.
Two types of properties: Standard and User-defined.
Standard properties can be set to true or false.
Examples : InteractiveMode, GetHistoryItems, EditHistoryItems.

Userdefined methods

User-defined properties map to record fields on the PeopleSoft component and


are displayed in the PeopleSoft Application Designer.

A component interface collection is a special type of property that corresponds to a


scroll.

4)Methods
A method is a function that performs a specific task on a component interface at runtime.

Two main types of methods: standard and user-defined.

Standard methods

Standard methods are those that are available for all component interfaces.
1.Cancel: Cancels any changes made since the last save.
2.Create: Creates new instance of CI
3.Find :Performs partial key search on the particular instance of the CI
using search key at level zero.
4.Get :Retrieves a particular instance of CI.
5.Save : Saves an instance of the CI.
6.GetPropertyByName:Returns the value of the property specified by name.
7.SetPropertyName: Sets the value to the property specified by name.

Userdefined Methods
Those that you can create to meet the requirements of an individual component
interface.
A method is simply a PeopleCode function that you wish to make accessible through
the component interface
Each method maps to a single People Code function
The Component Interface object, instantiated from a session object, is created at
runtime as a way to access the data specified by the Component Interface.

&oSession = %Session;
&oSIdn1Ci = &oSession.GetCompIntfc(CompIntfc.S_IDN1_CI);

When you populate a Component Interface with data, the first thing you fill out
are its keys, as you would in a component. These can be keys for getting an
existing instance of the data or for creating a new instance of the data.

Component Interface properties provide access to the data in a component


buffer.

Component Interface methods are functions that can be called to perform


operations on a Component Interface.

Component Interface can map to only one component.

A component can have any number of CIs.

Component Interface Definition

Developing & Implementing CI


Design
Define Fields
Record Definition
Build Record
Defines Pages
Define Components
Define the Component Interface
Link the Component to the Menu
Authorize User Access (Security)
Test your Component Interface

A component interface is a PeopleTools object that you create in Application


Designer.
Add individual objects, or groups of objects, to the component interface by
dragging objects from the component view into the component interface view.

Creating & Working with a CI


To create a new component interface

Select File, New from the Application Designer menu.

Select the Component Interface object type from the New dialog.
Select the component on which this component interface will be based.
Save the component interface.
Add properties, collections, or methods to the component interface.
Set the security.
Test the component interface.

Working with Component Interface


Declaring a Component Interface Object
Component Interfaces are declared as type ApiObject. For
example: Local ApiObject &TESTCI;
Scope of a Component Interface Object
A Component Interface can be instantiated from PeopleCode, from a Visual
Basic program, from COM and C/C++.
Variables defined at Component and Global are only for Component Interface

Example

In this example, you are getting an existing instance of data for the EMPL_CHECK_CI
Component Interface, which is based on the EMPL_CHECKLIST component, for the
Update/Display mode.

Local ApiObject &TESTSESSION;


Local ApiObject &TESTCI;
&TESTSESSION = GetSession();
&TESTSESSION.Connect(1, "EXISTING", "", "", 0);
&TESTCI = &TESTSESSION.GetCompIntfc(COMPINTFC.EMPL_CHECK_CI);
&TESTCI.EMPLID= "8001";
&TESTCI.Get();
/* Get checklist Code */
&CHECKLIST_CD = &TESTCI.CHECKLIST_CD;
/* Set Effective date */
&TESTCI.EFFDT = "01-01-1990";

Component Interface
Working with a CI Setting Security

Two ways to Secure Component Interfaces


1) Can be used to restrict access to individual methods or entire Component Interface

Setting Security(contd..)
2)Application Designer
To make individual property =Read Only

Using the CI Tester

Using the CI Tester(contd..)

Specify whether to run in Interactive mode.


In noninteractive mode, if you set a property, the property is not validated
until you perform the save. However, in interactive mode the property is
validated immediately.

Specify whether to get or edit history items.


Selecting Get History Items retrieves history data
Selecting Edit History Items enables editing and saving of history data.
These options apply to effective-dated fields only

Runtime considerations
WinMessage Unavailable
You cannot use WinMessage in a component that will be used to build a
component interface. Use MsgGet() instead.
Email from a Component Interface
To use a component interface to send email, use TriggerBusinessEvent
People Code event, not SendMail.
Related Display
Related display fields are not available for use in a component interface
as they are not held in the buffer context that the component interface uses.
Row Inserts
If RowInserts have been disabled for a page, you must take care when
calling inserts against the corresponding component interface.

Any PeopleCode associated with push buttons used on the page to add
rows will not be invoked by the component interface when an insert is
done.

Benefits of CI
Access to all business logic
Delivered PeopleSoft logic
Your customizations Insulated from complexities of application
Data relationships

Data Integrity

Upgradeable PeopleTools object


Result: Saves Time & Money

Thank you

PRESENTED BY,
P.S.S.SWAMY.

What is an application package.


What is an application class.
Object oriented concepts.
Understanding application packages &classes.
Process for creating packages and classes in Application designer.
Application class structure.
How to use this packages and classes in people code.(import declaration).
Access controls.
Definition of methods.
Abstract methods and properties.
Interfaces.
Constructors.
Get/set methods &read only read write.
Exception Handling.

Application package is a container for application subpackages and


application classes, which will provide a hierarchical structure to your
People Code programs and help you extend the common functionality of
existing People Code classes (Rowset, Array, and so on) from one
application to another.

App Class is a People Code Program at base level


Application classes are mainly used for reusability.
Application classes people code supports object oriented programming.
i .e it supports:
Classes and Objects.
Encapsulation.
Abstraction.
Polymorphism.
Inheritance.

Class :
Class is a blueprint of the object .It consists of variable and methods.
class doesnt occupy any memory.
ex: Class is a map for building the house.
Object :
Object is a real entity any thing physically exists in the world is called an object.
But in programming languages object is instance of a class .It occupies some
memory.
ex: Object is house.
Encapsulation :
Its came from the word capsule . It is a property to bind the variable and
methods and also it hides the internal structure. It prevents clients from
seeing the inside view. We can achieve abstraction through encapsulation.
ex : car driver doesnt know what is the functionality when gear is changed
one level to another level . But he change the gear against to the speed.

Abstraction :
Abstraction is process it allows to show the essential object information to the user i.e
hide the non essential object information. We can achieve this through encapsulation.
Inheritance:
It is one of the most important feature of Object Oriented Programming. It is the
concept that is used for reusability purpose. Inheritance is the mechanism through which
we can derived classes from other classes. The derived class is called as child class or
subclass. The class from which the subclass is derived is called a superclass (also
a base class or a parent class).
Polymorphism :
A method having different forms is called polymorphism i.e method having the same
name but we can perform different tasks by using this polymorphism.
We have to concepts here
1.method overloading.
2.method overriding.

Application classes have a fully qualified name that is formed


hierarchically by the name of the top-level package. It means we can give
the same name of different classes but the fully qualified name of the class
must be unique.

ex :1.pack1A.class
2.pack1pack2A.class
Here ex1 fully qualified name A. class is different from ex2

Import MY_TEST : MyFormulaCruncher;


Local MY_TEST : MyFormulaCruncher & My_Nbr = create MY_TEST :
MyFormulaCruncher();
Local number &Result;
&Result = &My _ Nbr.AddNumbers(2, 1);

Before calling any method in a class you must import the package.

You can create Application Packages in Application Designer.


These packages contain application classes (and may contain other
packages also). An application class, at its base level, is just a People Code
program. However, using the Application Packages, you can create your
own classes, and extend the functionality of the existing People Code
classes.
Easier to debug because all the pieces are separate
Easier to maintain because functionality is gathered into a single place
Extensible by subclass.

Import class
Class name
Class extensions
Declaration of public external interface
Declaration variables and methods
Definition of methods

class MyFormulaCruncher
method MyFormulaCruncher();
method AddNumbers(&a As number, &b As number) Returns number;
method AddNumbers2();
property number FirstNumber;
property number SecondNumber;
property number MySum readonly;
protected
property number MySumProtected;
end-class;
method MyFormulaCruncher
end-method;
method AddNumbers
Local number &c;
&c = &a + &b;
MessageBox(0, "", 0, 0, "My AddNumbers result is: " | &c);
Return &c;
end-method;
method AddNumbers2
&MySum = &FirstNumber + &SecondNumber;
&MySumProtected = &FirstNumber + &SecondNumber;
MessageBox(0, "", 0, 0, "My AddNumbers2 result is: " | &MySumProtected);
end-method;
t

Conventional data types include number, date, string. Use them for basic
computing. Object data types instantiate objects from PeopleTools class.
Conventional

data types.
Object data types.

It is nothing but inheritance. We can extend the properties


methods of one class into another class using extends key word

and

Example:
class Fruit
method DoFruit();
property number FruitNum instance;
end-class;
class Banana extends Fruit
method DoBanana();
property number BananaNum instance;
end-class;

A subclass inherits all of the public methods and properties of the class it
extends. These members can be overridden by declarations of methods and
properties in the subclass.
Note. Application classes have no multiple inheritance

We can control the access by public , private, protected access specifiers.

Public

Protected

Private
ex: class A
property number a1;
method number a1;
protected:
property number a2;
method number a2;
private:
property number a3;
method number a3;

The system never skips to the next top-level statement.


Pass parameters by value.
Parameter passing with object data types is by reference.
Application programs use the out specifier to pass a parameter by
reference.
Note : Application class properties are always passed by value .

Passing Parameters with Object Data Types value and reference:

Parameters with object data types are always passed by reference


Example:
method myMethod(&arg as MyObjectClass);
/*method myMethod(&arg as MyObjectClass out);
Local MyObjectClass &o1 = create MyObjectClass("A");
Local MyOtherObjectClass &o2 = create MyOtherObjectClass();
&o2.myMethod(&o1);
Method myMethod
&arg = create MyObjectClass("B");
end-method;

note : Since the method argument is reassigned within the body of


myMethod, &o1 does not point at the new instance of MyObjectClass

Passing variable by value and reference


/* argument passed by reference */
method increment(&value as number out);
/* argument passed by value */:
method increment(&value as number);
class AddStuff
method DoAdd(&P1 as number, &P2 as number out);
end-class;
method DoAdd
&X = &P1 + &P2;
&P1 = 1;
&P2 = 2;
end-method;
local AddStuff &Aref = Create AddStuff();
local number &I = 10;
local number &J = 20;
&Aref.DoAdd(&I, &J); /* changes &J but not &I */
&Aref.DoAdd(10, 20); /* error - second argument not variable */

Sample code:
class MyInterface
method MyMethod1() abstract;
method MyMethod2() Returns string abstract;
method MyMethod3();
property string myproperty1 abstract readonly;
property number myproperty2 abstract;
property number myproperty3 abstract;
end-class;
method MyMethod3
/*body
end-method;

Considerations using abstract methods:


You cannot have private abstract methods.
You will receive an error if you try to provide a method body for an
abstract method.
The method signatures must be identical between the abstract method
definition and the method implementation in the derived.

Defining an application class which is totally composed of abstract


methods and properties is called interface it avoids the problem in multiple
inheritance.
Interface MyInterface
method MyMethod1();
method MyMethod2() Returns string;
property string myproperty1 readonly;
property number myproperty2;
property number myproperty3;
end-class;

When you provide an implementation for an Interface you can also


use the keyword Implements instead of Extends

The constructor for a class is the public method with the same name as the
(short name of the) class. The statements contained in this method (if any)
provide the initialization of the class.
This constructor is always executed when an object of the class is
instantiated

class a
method a();
end-class;

This section describes the naming standards for:


Packages.
Classes.
Methods.
Properties.
Packages :cc_xxx_[yyy]
classes:do not name classes to be Getxxx

Import Fruit:*;
Import Fruit:Banana;
Import Fruit:Drinks:*;

Here any import classes having same short name we must use full
name of the class for creating or initiating object to that class.

A method can refer to the current object using the %This system variable.
%This is an object of either the method's class or a subclass of the method's
class.
%THIS :

Ex:1
class FactorialClass
method factorial(&I as number) returns number;
end-class;
method factorial
if &I <= 1 then
return 1;
end-if;
return &I * factorial(&I - 1); /* error - factorial undefined */
return &I * %This.factorial(&I - 1); /* okay */
end-method;

A method can refer to a member of its superclass by using the


%Super system variable. This construction is needed only to access
superclass members that are hidden by overriding members in the current
class.

class BuildingAsset
method DisasterPrep();
end-class;
method DisasterPrep
/* some body*/
end-method;
class VancouverBuilding extends BuildingAsset
method DisasterPrep();
end-class;
method DisasterPrep
%Super.DisasterPrep(); /* call superclass method */
end-method;
local BuildingAsset &Building = Create VancouverBuilding();
&Building. DisasterPrep();

class xxx
property string StringProp get set;
end-class;
get StringProp
return "string"; /* Get the value from somewhere. */
end-get;
set StringProp
/* Do something with &NewValue. */
end-set;

A property of a superclass can be overridden by a subclass


class A
property number Anum;
property string Astring get;
property string Astring2 get;
end-class;

Get Astring

return String(%This.Anum);
end-get;
Get Astring2
return String(&Anum);
end-get;
class B extends A
property number Anum;
end-class;
local B &B = Create B();
&B.Anum = 2;
&MyValue = &B.Astring;
/* &MyValue is "2" */
&MyValue = &B.Astring2;
/* &MyValue is now "0" */

PeopleCode read-only properties are functionally similar to static


variables, as long as the class that defines the properties initializes them
and does not change them. The difference is that you need an instance of
the class to access them.
syntax:
property number a1 read only;
&a=10;

Application classes can contain collections. Collections of objects


generally have at least the following methods and properties.
First()
Item(Index)
Next()
Count (as a property)

Instance variables.
Global variables.
Overriding variables and properties.

Use the Exception class to do exception handling in your PeopleCode .


This class provides a try, catch, and throw mechanism so you don't need to
check after each operation for errors.
1.Exception class.
2.try.
3.catch block.
Exception class: This class contained

try /* Code to manipulate &MyArray here */


&MyArray = GetArrayData(&Param1, &Param2, &Param3);
catch ExceptionNull &Ex1
If &Ex1.MessageSetNumber = 2 and &Ex1.MessageNumber = 236 Then
End-if;
End-try;
Example 2:
Local Exception
&ex; Function t1(&i As integer) Returns number
Local number &res = &i / 0;
End-Function; Function t2 throw
CreateException (2, 160, "'%1' doesn't support property or method '%2'", "SomeClass", "SomeMethod");
End-Function;
try t2 ();
Local number &res = t1 (2);
Catch Exception &caugh
t MessageBox (0, "", 0, 0, "Caught exception: " | &caught.ToString());
end-try;

Application classes can be instantiated only from PeopleCode.


These classes can be used anywhere you have PeopleCode, that is, in
message notification PeopleCode , Component Interface PeopleCode,
record field PeopleCode, and so on.

This section discusses some ways you can design application classes.
Base data classes
Abstract base classes
Generic base classes
Utility classes

Internal comments, which start with /* and end with */.


Comments for methods.
Comments for classes.
Method comments:
@param N.
@exception name.
@return Type.
Class Comments:
@version number.
@ author name.

-by
by surya

surya prakash reddy.


1

9/20/2016

Advantages
2

Used to automate the flow of information trough

out your enterprise.


Used to automate time-consuming business

processes and deliver the right information to the


right people at the right time.
Used to merge the activities of multiple users into

flexible business processes to increase efficiency,


cut costs, and keep up with rapidly changing
customer and competitive challenges.
by surya

9/20/2016

Advantages
3

Control and Streamline the flow of Information


Can be easily modified to meet requirement
Can work effectively when,

No User involvement is required


. Involve Non-People soft User
Involve several users working to gather

by surya

9/20/2016

Prerequisites
4

SMTP

server should be configured for the


Application server/Process scheduler used for the
development
E-mail should be enabled and configured for the
instance in which the workflow is developed.
The User Profiles for the Roles are already in Place
with proper Worklist ID s and Permissions.

by surya

9/20/2016

WorkFlow Tools
5
WorkFlow Tools

Worklists : Consists of lists of the work items that a person (or group of
people) has to do.
Application Designer: Used to design Business Processes, WorkFlow rules
and Routing.
PeopleCode : Used to detect when the business rule need to be triggered, who
should act and used to route it to appropriate users.
Workflow Administrator : Used to access, monitor, analyze, and control
workflow.
Work Items
Business Event: This is a condition that tells the system that an activity is
complete.
Routing: Tells the system to forward information to the next step in the
business process. It specifies what information to forward and where to forward
it.
WorkFlow Triggers
Any Event that triggers PeopleCode can trigger a WorkFlow Event like
Users Working on PS Pages.
3rd Party Application sending data to PeopleSoft component Using CI.
Batch programs or queries sending information to a PeopleSoft component
through a component interface.

by surya

9/20/2016

Work Flow Application Development


6

Rules : which govern the business process.

Roles : which person fit into our workflow.

Routing :Routings specify where the information goes and what form it takes

email message or worklist entry.

by surya

9/20/2016

Steps To Develop Work Flow


7

Designing a Workflow Application


Analyzing the business processes that you want to automate.
Identify the goal of each business process, what its component tasks are, and how
the tasks should be divided into smaller activities and steps.
Articulate the conditions that trigger a workflow event and what happens when
those conditions occur.
Understand who your workflow users are and how youll determine who receives
a work item.

Build Supporting Definitions

Create Workflow Maps

Creating graphical maps that represent your business process.


Adding PeopleSoft Workflow-specific elements to the maps when you define events and
routings.

Define Roles and Role Users

by surya

Define users roles when you give them their user IDs. Roles are important in PeopleSoft
Workflow.
Roles are used to ensure that work flows to the correct person .

9/20/2016

Steps To Develop Work Flow (cont.)


8

Create Worklist Records


The worklist record determines which fields of information the system
stores for each work item, including the data needed to access the target
page (the search keys for the page) and any additional information that
you want to display in the worklist itself.

Define the Workflow Objects


Events and routings are both objects on the workflow maps. To define
these workflow objects, add the icons to the map, linked to the step
representing the page where the triggering event occurs.

Define Event Triggers


After you create workflow processes, link them into the PeopleSoft
applications by adding PeopleCode programs to the pages. The
PeopleCode detects when a business rule has been triggered and
determines the appropriate action.

Testing WorkFlow

by surya

Make sure to test under a variety of conditions, both usual and unusual.

9/20/2016

Extended Work Flow Capabilities


9
Route controls.

Identifies the aspects of a situation on which you want to base routing


decisions, and they enable you to associate values with role users.

Route controls simplify the creation of role queries by enabling you to


associate application data with the role user definition.

Another advantage of route controls is that the factors controlling routing are
stored in a database table instead of in query definitions or PeopleCode.

Workflow triggers from external applications.

A component interface enables third-party applications to enter data into


PeopleSoft applications. Such as electronic forms software, interactive voice
response (IVR) systems, or web applications, and from PeopleCode and
Application Engine programs.

If the page has associated workflow PeopleCode, a component interface can


trigger a business event.

by surya

9/20/2016

Extended Work Flow Capabilities (cont.)

10
Enterprise Integration Points (EIPs).
There are three PeopleSoft Workflow-related EIPs that you might use:
The Worklist Entry EIP (component interface WORKLISTENTRY) enables third-party
applications to access existing worklist entries, mark items as selected or worked, or
reassign items to other users.
The Worklist Synchronization EIP consolidates worklist data from multiple PeopleSoft
databases using the application engine program WL_REPLICATE, which publishes
worklist data using WORKLIST_MSG.
The Worklist EIP (component interface WORKLIST) enables third-party applications to
add new entries to PeopleSoft worklists.

Batch workflow processing.


Sometimes, the event that triggers a workflow routing is actually a nonevent like aging,
exceeding amounts etc. For this create an Application Engine program that runs a SQL
query against the PeopleSoft database and passes the results to a component interface.

by surya

9/20/2016

Extended Work Flow Capabilities (cont.)


11
Approval processes.

Here we can define approval rules on an Approval Rule Set map.


Two tools can read and implement the approval rules from the map:

Virtual Approver determines the appropriate approver and sends a workflow


routing as well this verifies whether this requires additional Approvals or not.
GetApprovers PeopleCode determines the entire list of required approvals at once,
so that you can develop custom approval tracking applications.

Activity Guides.

This is used if a single users work across several pages. This do not involve routings
like those found in a regular workflow application. Rather, the activity guide leads a
user through a multistep task.
These are particularly appropriate for guiding untrained users through self-service
transactions.
This uses only activities but not business process.

by surya

9/20/2016

Extended Work Flow Capabilities (cont.)


12

Notification Features.
This can be done using a Mail or a Worklist.
Notification templates enable functional users to configure unique message text for
each component.
The combination of generic templates and PeopleCode application classes can be used
by application developers to extend the delivered notification features for an
application

by surya

9/20/2016

Building WorkFlow Maps


13

WorkFlow Maps
These are visual representations of your organization's
business processes and they can also be used as navigational
aids for users.
Navigator Maps
This is an alternative to the standard portal navigation.

by surya

9/20/2016

14
Map Hierarchies

This uses Business Process, Activities & Steps.


Steps are elements within activities and represent the level at which the user interacts
directly with application pages.
Business processes and activities are both freestanding definitions that you can open
in PeopleSoft Application Designer .
Map Icons
The Business Process icon represents a complete business task, consisting of one or
more activities. This is used functionality only when designing maps for use in
PeopleSoft Navigator.
The Activity icon represents a subprocess of the business task, consisting of one or
more steps.
The Step icon represents a discrete step in the business process, corresponding to a
single transaction performed on an application page or through an external program.
Business Process
A business process is a graphical representation of the relationships between related
activities.
Activities
Activities that are intended only for end users typically include only steps that
correspond either to application pages or to external programs. This will include
events and routing.

by surya

9/20/2016

Defining Maps
15

Understanding Map Definition

These are freestanding definitions in PeopleSoft Application


Designer, use the standard techniques for opening, saving,
deleting, renaming, adding to projects, printing, and so on.

Common Elements Used in This Section

Icon Desc : If you leave this field blank, the map name appears by
default.

Creating a New Map

In PeopleSoft Application Designer, select File, New.


In the New scrolling list, select the map type: Activity or Business
Process.

Add the icons required to represent the activity or business process.

Connect the activities, decision points, and subprocesses in the


appropriate order.
Define the properties of the map and icons on the map.
Save the Map.

by surya

9/20/2016

User List Roles


16

These are used to define the Worklist Users for the

Work Flow.
This is used to automate the worklist users to send
mails and messages. If the work list is too huge than
we can route the request to the Administrator.

by surya

9/20/2016

Query Roles
17

These are used to identify the approver of the work list, to whom the

request to be routed when the trigger is executed, as there will be lot of


users who has the same role.
These queries should be designed in PS query manager , which gets
the input from the page from which the trigger is executed.
At runtime, the system sets the values of the bind variables based on
data from the page that triggers the routing. When you create the
query, make sure that each bind variable matches a field from the
page.
Eg: SELECT C.ROLEUSER FROM PS_JOB A, PS_DEPT_TBL B,
PS_ROLEXLATOPR C
WHERE B.DEPTID = A.DEPTID
AND A.EMPLID = :1
AND C.EMPLID = B.MANAGER_ID

by surya

9/20/2016

Route Control
18

The PeopleSoft Workflow Administrator enables you

to define route controls.


For example, suppose you want to route purchase
requisitions to different buyers, depending on which
vendor supplies the ordered items, which business
unit is requesting the items, and which department
needs the items. You can define a route control for
each factorvendor ID, business unit, and
departmentand specify a range of values for each
buyer.

by surya

9/20/2016

WorkList Records
19

The worklist record determines which fields of information

the system stores for each work item and in what order the
work items appear.
The below are some rules for creation of worklist record

Link each work item with the underlying workflow tracking


information, which is stored in a workflow system record
(PSWORKLIST).
Display relevant information about each work item on the Worklist
page, so that users can select the item on which they want to work.
Determine the order of work items in the worklist.
Retrieve the record that is associated with the work item, so that the
user can work on it.
Every Work List record name must be ended by _WL.

by surya

9/20/2016

20
The below are the list of fields that need to be included in the WorkList record. these fields
to link the items in the worklist with their tracking information, which is stored in the
PeopleSoft-defined table PSWORKLIST.

BUSPROCNAME: The business process that includes the work item.


ACTIVITYNAME: The activity that triggers the worklist routing.
EVENTNAME: The business event that triggers the worklist routing.
WORKLISTNAME: The worklist in which the work item is waiting.
INSTANCEID: The system-assigned ID for the work item.
TRANSACTIONID: The system-assigned transaction ID for the work item. When an
event triggers multiple routings, each work item has the same transaction ID, but a
different instance ID.
Application Fields

WORLKIST_URL: The text that links to the page where the user can work on the item.
Appropriate values might include the key data for the record in which the item will be
worked. For example, for a work item directing a manager to approve an expense report,
the text might be the name of the employee who submitted the report.

WORKLIST_DESCR: A text comment that appears in the users worklist. The presence
of this field automatically suppresses the display of any application fields, although the
key fields are still used to bypass the search page of the target page.

by surya

9/20/2016

Events & Routing


21

Routing
This is used to link activities with workflow and automate
the delivery of information to other activities and other
users.
This delivers the data in two forms : Email and WorkList.
Events
Events are conditions that have associated routings.
Define the condition in PeopleCode, which is attached to
the record definition underlying a step in a step map.

by surya

9/20/2016

Event Triggers
22
Workflow PeopleCode
PeopleCode is written on WorkFlow event of the record to trigger the business event.

The below function is only used for normal workflow but not for Virtual Approval.

TriggerBusinessEvent (BUSPROCESS.BusProcName, BUSACTIVITY.ActivityName,


BUSEVENT.BusEventName)

GetApprovers Function: The GetApprovers PeopleCode function checks an approval


rules set and determines the entire list of required approvals at once, so that you can
develop custom approval tracking applications.

GetWLFieldValue Function: When you open a page from a worklist this function
enables you to get the value from one of the fields in the current items worklist record.

Virtual Approver uses two peoplecode function as specified below:

by surya

Virtual_Approver: This checks the approval rules that you defined in the approval rules sets
and determines whether an item must be routed for approval.
Virtual_Router : This routes items to the next step in the approval process.

9/20/2016

Additional Routing Options


23

Route Control Type: This identifies the factors on

which you want to base routings: Business Unit,


Department, Vendor ID, and so on.
Route Control Profiles: Identifies range of values
for route control type like one route control profile
might list the vendor IDs for all software vendors,
while another might list the IDs for all office
supply vendors.

by surya

9/20/2016

24

END

?
Thanks You.
by surya

9/20/2016

Das könnte Ihnen auch gefallen