Notes
Slide Show
Outline
1
"PeopleSoft Application Classes -
Easing..."
  • PeopleSoft Application Classes -
    Easing the Path to Fusion
2
Me
  • Simon Huggins
  • PeopleSoft Consultant at
    • nee Allinity
    • Now Compel Business Solutions    [ STAND 47-48 ]
      • Part of Compel [ Free Roulette! ]
        • Part of 2e2
  • So I am an instance of employee class called “consultant”.
  • 2e2 is Parent Class, Compel is SubClass, Compel Business Solutions Sub-SubClass
3
"Application Classes have been available..."
  • Application Classes have been available for a while now as an alternative to function libraries in PeopleTools. The object-oriented thinking that embodies this technology can be seen as the road forwards to the final Fusion development architecture.
  • This seminar gives some real-life examples of how to use Application Classes as a framework for your business logic, and goes through some of the pros and cons for Designers, Programmers and Managers.
  • It also shows examples of how this technology is actively employed within PeopleSoft Application and Portal technology.
  • It argues the advantages of reusable and extensible coding, and that it is a mid-path shift in mindset that will ease the eventual change from PeopleCode to Java, and make the transition from PeopleCode to class-based Java far more intuitive, thus minimising the transitional learning curve and business impact of developer retraining.
  • Time to get object oriented.
4
Fusion and App Development
  • Fusion Architecture here now
  • Applications will be Java-based
  • Development using JDeveloper
  • Might be an idea to investigate Oracle Apps…
  • … As JDeveloper now replacing Forms development
  • Java is Object Oriented – Class based
  • Application classes exist in PeopleSoft
5
Fusion Upgrades
  • First Oracle Apps due in the next few years
  • No guarantee of porting of PeopleCode
  • “Apps Unlimited” says we will all be supported for a good long time…
  • … But this is a bit hazy on supported platforms when you look at your contracts - what when these go out of date?
  • May be looking at a rewrite of PeopleSoft business logic in Java


6
Case for “Skilling Up”
  • PeopleSoft traditionally event-based
    • Triggers from limited set of objects – e.g. records, components, messages
  • Java class based. Events are class “Methods”.
  • PeopleSoft Application Classes can model this
  • Classes are based on real-life entities – so can map better to business processes
  • Use classes now, developers have most of the skills required to develop in Java
  • When porting, easier to map classes-to-classes


7
Potential Issues
  • The Object Model for Fusion is not yet available. Difficult to know how to accurately model classes
  • If you don’t skill up now, it’s a steeper learning curve when Fusion arrives
  • Replace existing Function Libraries or Introduce Application Classes / Packages with new implementations?
  • More work associated with creating App Classes than creating a quick one-off function
8
Case for implementing
class-based business model
  • No idea of structure to be used in Fusion
  • If to be class based, create classes for business objects now in PeopleSoft
  • Reuse and extend classes for future projects
  • When need to upgrade, could potentially keep much of existing class hierarchy and map this to Oracle classes using transformational classes
  • Or reimplement the business model at lower class levels in terms of Fusion access model
9
Case against implementing
class-based business model
  • Extra training-up (even if informal)
  • Debugging is more complex / haphazard – e.g. watching variables can be temperamental
  • Complex hierarchies can be difficult to follow / maintain as the business logic can be over-abstracted
  • Function Libraries are known and loved (!?)
  • Code looks more complex
  • More difficult to optimise database access due to abstraction from entity to business model
10
Object Orientation
  • Wikipedia Definition:-
    • Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs. It is based on several techniques, including inheritance, modularity, polymorphism, and encapsulation.



11
Classes & Plato
  • Plato invented these really – believed that every object was stamped from an idealised “form” – e.g. an idealised form a human exists which we all mimic. This form are archetypes of many types & properties.
  • A “Class” (or Plato’s “Type”) represents an idealised, pared-down view of an object in reality – e.g. a “Human”
  • Application Classes are PeopleSoft’s implementation of a “Class”


12
Prize Question



  • Plato, they say, could stick it away….


  • … How much every day?
13
Objects
  • Sometimes “Object” used when mean “Class”. Careful!
  • Object is an example (or “instance”) of a class – e.g. if have a class called “Human”
    • Jim is an object of class human with yellow hair and dodgy clothes and job: DBA
    • Hema is an object of class human with black hair amazing clothes and job: HR Person
  • Objects are created, instantiated (i.e. given an initial state), used/abused, and destroyed (often automatically according to scope)


14
Example Class of Human
  • PeopleSoft


  • Class Human
  •   method Human();
  •   property string hair;
  •   property string clothes;
  •   property string job;
  • End-Class;
15
Properties or Attributes
  • Property (or attribute or message) can be seen in various different ways:-
    • A measurable property of an object – e.g. hair colour
    • A part of an object’s state (i.e. the property is maintained during the life of the object)
    • A way of defining how data goes into and out of an object (i.e. an interfacing method – hence message)
    • A variable with specific scope (not strictly true, but the nearest programmatic analogy)
  • A property has a type – often that type is another Class (e.g. job: class of AllowedJobs)
16
Inheritance
  • Class: “Human”
    • Subclass “Employee”
    • Has properties of Human (i.e. Hair Colour, Job etc.)
      Thus “inherits” properties of “Human” class
    • Has extra properties such as “Pay Reference” and “Department” – so “extends” the “Human” class
  • Application classes allow for base abstract classes (as does Java) – which means at “Human” level we may declare that (e.g. Hair Colour) must be specified in subclasses, but not define how. Implemented in “Employee”


17
Sample of subclassing
PeopleSoft
  • Class Human
  •   method Human();
  •   property string hair;
  •   property string clothes;
  •   property string job;
  • End-Class;


18
Methods
  • Properties define the interface to the “state” of an object.
  • Methods are the functional “engine” of an object – the doing bit that changes the “state” of an object and retrieves info about that state.
  • In Application Classes, can define a property dynamically by defining its input and output using “set” and “get” methods.
19
Example of “Get” and “Set”
  • class Human
  •    method Human();
  •    property string Hair get set;
  • private
  •    instance string &myHair;
  • end-class;


20
Polymorphism
    • Create a “Human” class
    • Create an object of type “Human”
    • Write some code using Human objects
    • Create a subclass of “Human” called “Employee”
    • Add some code to change the object code is working on to “Employee”. Code stays the same, but now working from “Employee” object
    • “Knows” which object to use based on what object
    • Can only use methods/properties from “Human”
    • Use Downcasting for methods etc. from “Employee”


21
… And The Rest
  • There’s a lot more – for example:-
    • Application Packages hold application classes – i.e. a sort of class library
    • Multiple inheritance (e.g. where a class has more than one parent) is not supported
    • Encapsulation – i.e. scope of properties and method within objects
    • Abstraction – i.e. hiding details of lower levels in a class hierarchy by generalising at higher levels
    • You can use Java from within PeopleSoft – it’s a bit clunky, bit can be done
22
PeopleTools 8.48
Web Service Integration
  • Services and Service Operations
  • Services Component: create and manage services.
  • Service Operations Component: create and manage service operations (creating operations, assigning messages, adding handlers, etc.)
  • Integration PeopleCode
  • Extend delivered application classes to create messaging logic.
  • Logic is attached to handlers instead of messages.
  • New object called IntBroker with many of the methods and functions of the Message object
  • Provide/Consume Web Services
23
PeopleSoft Enterprise Talent
Acquisition Manager Framework
24
CDM   (CRM)
 Business Object Relationship Model (BORM)
25
CDM
Application Class Hierarchy
26
CDM Customization
  • Chris Collins – 2004
  • Customization – CRM Site Component
  • E.g. New Site Class extending PS Site class


27
Portal
  • No Portal Examples – Sorry!
  • Portal is class-based
  • Can do some sneaky “customisations” by playing with these classes. Careful! These changes will inevitably be unsupported.
  • Investigate by all means – look in app packages – e.g. PT_NAV / PT_BRANDING (v. interesting to customise!!!)
  • When tracing through code – you’ll inevitably stumble across these classes
28
Excel Reporting Library
  • Create Base Excel reporting Class
  • Worksheet Class
    • Instatantiate using Run Control & Data Record Source
    • Multiple Worksheets can be instantiated from different sources
  • Row class, Column class etc. to define spreadsheet (either automatically from data structure or programatically)
  • Generate Excel report using XML schema in potentially 4 lines



29
Links
  • Basic Java Course:
    • http://simonhuggins.com/courses/javaweb
  • Presentation not posted on UKOUG web site yet – will post shortly.
  • Will also post presentation + sample project as Change Package on http://ww.simonhuggins.com/peoplesoft/UKOUG/2007 ASAP
    • May even give instructions on how to extract the project to avoid using Change Assistant (bleugh!)
  • http://www.compelbs.co.uk – Compel Business Solutions
30
Thanks to…
  • Andrew Terrell (pointer to CRM & CDM Red Paper)
  • Chris Collins (Sample of Inheritance & Casting to prevent customisation)
  • (Dr) Dave Gaff & Manish Patel (overviews of Application Messaging)
  • My Wife
  • My Agent (!?)
  • My Cat etc etc. blub blub.