XML Publisher and Reporting to Excel Duncan Davies, Jay Jorgensen and Adam Clark Allinity
Nov 03, 2014
XML Publisher and Reporting to Excel
Duncan Davies, Jay Jorgensen and Adam ClarkAllinity
Who are we?
Duncan Davies - Technical Consultant (Allinity)Email: [email protected]
Adam Clark - Technical Consultant (Allinity)Email: [email protected]
Jay Jorgensen - External ConsultantEmail: [email protected]
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”
XMLPublisherEngine
How does it work?
XML Data Source
Technical Task
TemplateLayout
Business TaskReportOutput
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
What’s good?• Single Toolset
• Business users don’t need a techie to layout a report
• Highly Flexible
• Easier upgrade to Fusion
• Quick and easy
What’s not good?• XML/XSL knowledge needed for complex reports
• Excel output very basic
• No update until 2008 (Tools 8.50)
• Need to useReport 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
AEXLSOverview
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
AEXLSThe 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 Macro’s 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 Schema’s of some use
XMLDoc• PeopleSoft’s XML Parser
• Provides random access to the xml document – Like a Database
• Based on W3C standards – Uses XPath
• XPath is like a directory structure
Examples• 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?