1 / 29

PeopleSoft Application Classes - Easing the Path to Fusion

Me. Simon HugginsPeopleSoft Consultant atnee AllinityNow Compel Business Solutions [ STAND 47-48 ]Part of Compel[ Free Roulette! ]Part of 2e2So I am an instance of employee class called consultant".2e2 is Parent Class, Compel is SubClass, Compel Business Solutions Sub-SubClass. Abstrac

shaylee
Download Presentation

PeopleSoft Application Classes - Easing the Path to Fusion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. 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 Spin of the roulette wheelSpin of the roulette wheel

    3. 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” Talk about classes – e.g. Animals / Primates / HumansTalk about classes – e.g. Animals / Primates / Humans

    12. Prize Question Plato, they say, could stick it away…. … How much every day? Half a crate of whiskyHalf a crate of whisky

    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; String is a standard variable type, but can also be seen as a “class” in its own right – e.g. in string.length() to get the length of a string object. In reality would have a type – e.g. “JobType” which might have subclasses called “Smart Wear”, “Casual Wear” – and “Casual Wear” might have a subtype called “Student Wear” and “Goth Wear”String is a standard variable type, but can also be seen as a “class” in its own right – e.g. in string.length() to get the length of a string object. In reality would have a type – e.g. “JobType” which might have subclasses called “Smart Wear”, “Casual Wear” – and “Casual Wear” might have a subtype called “Student Wear” and “Goth Wear”

    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 Gateways service multiple Nodes Within each Node are Queues Queues run multiple Service Operations Service Operations are comprised of Services, Routings and Messages Message Subscription PeopleCode is now handled with App Packages and is configured online, but the AppPackage is still editted using AppDesigner An App Engine is provided as part of the Tools upgrade from 8.47 to 8.48 to migrate Subscription PeopleCode to App Packages and create the new Service Operations, but its not foolproof, and took several Tools patches to resolve everything. Lots of things that weren't considered are handled by 'deprecated' handlers. As usual, errors in Publishing-Subscribing are still a process of digging thru each layer to the next til an error is identified. Starting/stopping domains, shutting down / restarting PUBSUBs are same as usual. Theres still no easy way to identify stuck queues or messages in error before the queue starts to backup and things fail. Service Operations Monitor helps, but its a reactive not a proactive screen. Gateways service multiple Nodes Within each Node are Queues Queues run multiple Service Operations Service Operations are comprised of Services, Routings and Messages Message Subscription PeopleCode is now handled with App Packages and is configured online, but the AppPackage is still editted using AppDesigner An App Engine is provided as part of the Tools upgrade from 8.47 to 8.48 to migrate Subscription PeopleCode to App Packages and create the new Service Operations, but its not foolproof, and took several Tools patches to resolve everything. Lots of things that weren't considered are handled by 'deprecated' handlers. As usual, errors in Publishing-Subscribing are still a process of digging thru each layer to the next til an error is identified. Starting/stopping domains, shutting down / restarting PUBSUBs are same as usual. Theres still no easy way to identify stuck queues or messages in error before the queue starts to backup and things fail. Service Operations Monitor helps, but its a reactive not a proactive screen.

    23. PeopleSoft Enterprise Talent Acquisition Manager Framework Uses Application Class Type Setup to allow you to create types of classes, classes, map these to records for easy lookup to define engines used for integrating with Open Ingration FrameworkUses Application Class Type Setup to allow you to create types of classes, classes, map these to records for easy lookup to define engines used for integrating with Open Ingration Framework

    24. CDM (CRM) Business Object Relationship Model (BORM) The BORM provides a configurable way to define and capture relationships about customers, suppliers, contacts or any other people or organizations that are meaningful to your business. The fundamental structure of the BORM consists of six tables that define the types of business objects to be managed in the system, the roles these objects can play, and the relationships the objects can participate in when acting in these roles. The BORM provides a configurable way to define and capture relationships about customers, suppliers, contacts or any other people or organizations that are meaningful to your business. The fundamental structure of the BORM consists of six tables that define the types of business objects to be managed in the system, the roles these objects can play, and the relationships the objects can participate in when acting in these roles.

    25. CDM Application Class Hierarchy In computer Science terms, Reflection provides the ability for a class to expose meta-data to other programs that describe the properties and methods available to the consumer of the class. Many CDM applications use this ability, namely Quick Create and Basic Data Summarization. The Reflection class allows its sub classes to expose their properties and methods at run time. In computer Science terms, Reflection provides the ability for a class to expose meta-data to other programs that describe the properties and methods available to the consumer of the class. Many CDM applications use this ability, namely Quick Create and Basic Data Summarization. The Reflection class allows its sub classes to expose their properties and methods at run time.

    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 Not time to investigate / doNot time to investigate / do

    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.

More Related