You are on page 1of 106

Best Implementation Practices with Oracle Business Intelligence Publisher

Mohan Dutt VeriSign Inc.

Brent Lowe STR Software

About The Presenter: Brent Lowe


Business Intelligence Publisher (BIP) Expert Manager, Product Development at STR Software Author of popular BIP Blog The Lowe Down Blog URL: http://www.thelowedownblog.com Brents Other Presentations:
Tuesday, Sep 21, 12:30p Moscone West L2, Room 2011 Many Faces of Oracle Business Intelligence Publisher in Oracle E-Business Suite (S319051) Wednesday, Sep 22, 11:30a Moscone West L3, Room 3006 Data Exchange Between Oracle E-Business Suite and Other Systems: The Easy Way (S319050)

About The Presenter: Mohan Dutt


Business Intelligence Publisher (BIP) User Manager, Business Systems at VeriSign Inc Author of popular Oracle Certification Blog Blog URL: http://ebizocp.blogspot.com Mohans Other Presentations:
Monday, Sep 20, 12:30p Westin Market Street Hotel, Metropolitan II Top 10 Recipes from Oracle E-Business Suite Release 12 Financials Cookbook (S316415) Thursday, Sep 23, 12:00p Moscone West L2, Room 2016 Ten Steps to Success: Your Oracle Certification Advisor (S313368)

Agenda
Business Intelligence Publisher Overview Tips and Best Practices Implementation Case Study
Oracle E-Business Suite Credit-to-Cash modules Oracle E-Business Suite Record-to-Report modules Oracle E-Business Suite Procure-to-Pay modules

Business Intelligence Publisher Benefits Q&A

Typical Scenario: Multiple Reporting Environments


Multiple Reporting Solutions High TCO Dependent of IT resources for modification or maintenance

Invoices Invoice Server Check Print Server

Checks

Label Manager Labels Delivery Server Destinations

Report Formatter Reports

Payment Server

EFT/EDI

Business Intelligence Publisher Single Solution Use BI Publisher For: Authoring Managing Delivering Meet Business Requirements Remove Complexity Reduce TCO
Destinations XML / EFT / EDI Labels

Checks Invoices

Reports

Business Intelligence Publisher


Separation of the presentation of the report from its data structure Collection of the data is still handled by your concurrent request At runtime BI Publisher merges designed template files with the report data Creates published output documents

Business Intelligence Publisher Overview

PDF

Oracle 10g, Oracle BI EE, Oracle BI Apps SQL Server

HTML XSL
Excel Power Point Flash

Email

Layout Templates
E-Business Suite, PeopleSoft, Siebel, JDE

Printer

BI Publisher Excel Word Acrobat Flex Others JDev

RTF

Fax

CSV XML

Repository

OLAP

EDI EFT

e-Commerce

Web Services

Data Sources

Layout Tools
8

Output Formats

Destinations

Best Implementation Practice

Get to the Latest Version of BIP for EBS

Get to the Latest Version of BIP for EBS

10

Get to the Latest Version of BIP for EBS

BI Publisher == XML Publisher

For EBS: 5.6.3

Running 11i -> MOS 422508.1 About Oracle XMLP Release 5.6.3 Running R12 -> Congrats, you already have 5.6.3!

11

Get to the Latest Version of BIP for EBS Patch 5.6.3!

MOS 1138602.1 Overview of Available Patches for Oracle XML Publisher (embedded in Oracle E-Business Suite)

Some Individual Patches are available Patch Sets are rolled into ATG Family Packs.

12

BI Publisher Releases
Release 11.5.10

XML Publisher 5.0 XML Publisher 5.5


Performance, Translation, Template Builder, Common Regions

Post Release 11.5.10

XML Publisher 5.6


Administration UI, Data Engine, Book Binder

Release 12

BI Publisher 5.6.3
Runtime Optimization, Enhancements

In 11i --500 templates R12.1 --ALL reports are BI Publisher: 2724 templates and 2092 data sources or data templates across 95 products Oracle Reports to Publisher Conversion Assistant

13

Best Implementation Practice

Know Oracles Published Best Practices

14

Know Oracles Published Best Practices

http://www.oracle.com/technetwork/middleware/bi-publisher/overview/index.html
15

Know Oracles Published Best Practices

Covers: Large data set strategies XML structures Lots of great template tips for performance, consistency, formatting.

16

Best Implementation Practice

Utilize the Correct Tools for your version of BIP

17

Utilize the Correct Tools


BI Publisher Desktop
Latest version is 10.1.3.4.1 Use the version built with the same libraries as 5.6.3 -> 10.1.3.2 Patch 5887917

BI Publisher Toolbox http://bipublisher.blogspot.com/ Bursting Designer Delivery Designer Report Conversion

18

Best Implementation Practice

Know what BIP is Capable of Within Different Applications

19

Know what BIP is Capable of Within Different Applications

All applications do not follow ATGs lead.

Advanced Collections Payables Purchasing

Session: Many Faces of BI Publisher in EBS (S319051) Tuesday 12:30 1:30 Moscone West 2011

20

Best Implementation Practice

Understand Your Delivery Options

21

Understand Your Delivery Options


Delivery Manager exposed via 4 methods:
Bursting Control Files 12.1 RUP3 Individual applications doing their own thing Java APIs

22

Delivery Options Bursting Control Files

Email

Fax

Printer

23

Delivery Options 12.1 RUP3

24

Delivery Options 12.1 RUP3

25

Delivery Options Individual Apps


Example: Advanced Collections

26

Delivery Options Java APIs


Java based APIs available to deliver via: Fax Email Print FTP WebDAV HTTP Requirements:

Java Developer Document to deliver Recipient information

27

Delivery Options - Functionality


Email
Utilizes standard SMTP protocol Set To, CC, BCC, Subject, Attachment Name, Email Message Body, From information. 1 Attachment (the BIP data file)

Fax

Utilizes IPP to communicate with 3rd party software/hardware to transmit data. Set Fax Number only

Print

Utilizes IPP/CUPS to communicate with Printers Ensure that printers can handle output data or filter first.

28

Delivery Options - Status


What happened to my document? Email Rely on bouncebacks Fax After handoff, its anyones guess Print On the printer!

29

Best Implementation Practice

Understand How To Troubleshoot

30

Understand How to Troubleshoot


1. 2. Output Post Processor Log Files xdodebug.cfg -> $AF_JRE_TOP/lib
LogLevel=STATEMENT LogDir=<Directory> xdo.log (main log file) xdo_...xml (Especially helpful when bursting) xdo_...out (output file) xdo_...xsl (XSL-FO version of RTF) xdo_...fo (temp file created when converting RTF to XSL-FO)

31

Best Implementation Practice

Know When To Ask For Help and How and Where To Ask For It

32

Know When/How/Where to Ask For Help!

33

Help! - Documentation
Documentation!

34

Help! - Debugging
Turn on debugging Review the logs

35

Help! Oracle Forums


http://forums.oracle.com/forums/forum.jspa?forumID=245

How to Get Help on Forums: a. b. c. d. e. Search First, Ask Second Be someone (not user8840234) Be Specific Reward others for their assistance It is better to give than receive

36

Help! Oracle Community

Oracle E-Business Suite -> BI Publisher

Forums Community Contributed Resource Documents examples: Troubleshooting Oracle XML Publisher How To Install a Font Using XMLP Admin

37

Help! My Oracle Support


Open an official SR

38

Best Practices
Get to the Latest Version of BIP for EBS Know Oracles Published Best Practices Utilize the Correct Tools for your version of BIP Know what BIP is Capable of Within Different Applications Understand Your Delivery Options Understand How To Troubleshoot Know When To Ask For Help and How and Where to Ask For it

39

Implementation Case Study


Implemented on Oracle E-Business Suite 11.5.10 Converted Custom Reports to Business Intelligence Publisher Walk through of Conversion Steps Implementation Highlights:
Oracle E-Business Suite Credit-to-Cash modules Oracle E-Business Suite Record-to-Report modules Oracle E-Business Suite Procure-to-Pay modules

40

Prepare Environment
Prepare you environment by reviewing BI Publisher patches required Apply patches as required Provide BI Publisher Administrator Get desktop installation of BI Publisher BI Publisher Toolbar should be available in MS Word after Installation

41

Step 1: Convert the RDF report into XML format


Convert the RDF Report into XML format using rwconverter utility This utility is available with Report 9i or later

XX_TRX_PRINT.RD F

XX_TRX_PRINT.xml

rwconverter batch=yes source=c:\XX_TRX_PRINT.rdf dest=c:\XX_TRX_PRINT.xml dtype=xmlfile overwrite=yes

42

Step 2: Create RTF Template


Option 1 RDF Layout Migration
Use RTFTemplateGenerator utility to generate layout template from

RDF Layout
java.exe oracle.apps.xdo.rdfparser.RTFTemplateGenerator XXXX_TRX_PRINT.xml

RTF generated by RTFTemplateGenerator

Option 2 Create RTF file using Template Builder

43

Create RTF Template Template Builder


New Cross Tab Wizard
Multiple Levels Totals

Enhanced Chart Dialog


Multiple Line Charts 3D Charts with Gradients Color Schemas Real Preview

New Table Wizard Translation Support


Generate XLIFF file Test Translations

Template Validation
44

Create RTF Template


Generate Sample XML Data
Set Output Format to

XML for current RDF Concurrent Program.


Execute the concurrent

program and save XML Data Output File

Sample XML Output

45

Create RTF Template

Insert XML field in the template Insert Menu -> Field option All the headers and summary level details can be inserted using this feature

46

Create RTF Template


Insert Table
Insert Menu -> Table

/ Form -> Select Wizard option.


All the line level

details can be inserted using this feature

47

Create RTF Template


Loop
<?for-each:G_LINE?>

loop through all lines

Conditional Formatting
display lines with

LINE_TYPE=LINE RDF Format Trigger logic can be implemented like this

Last Page Only Tag


<?start@last-page:body?><?end body?>

Anything after the last page

only tag is displayed at the end of the document

48

Create RTF Template


Preview output

RTF Template

Preview PDF

49

Step 3: Create Data Template


Use DataTemplateGenerator Utility to generate Data Template
java.exe oracle.apps.xdo.rdfparser.DataTemplateGenerator XX_TRX_PRINT.xml

DataTemplateGenerator creates:
Data Template (XX_TRX_PRINT_template.xml) PLS files for Report PLSQL code: PL/SQL package specification (XX_TRX_PRINTS.pls) PL/SQL package body (XX_TRX_PRINTB.pls)

Data Template

Package Specification

Package Body

50

Create Data Template


Data Extraction Engine
Fast, scalable extraction engine Integrated into concurrent manager Offers all that Oracle Reports offers plus 30-40% faster Multiple queries + joins Event triggers Flexfield support Data Structure

51

Create Data Template


Data Template consists of

<parameters>section in which parameters are declared in child <parameter> elements; <dataQuery> section in which the SQL queries are defined in child <sqlStatement> elements; <dataTrigger> section in which PLSQL function are defined which are fired when the event occurs <dataStructure> section in which the output XML structure is defined

52

Step 4: Execute PLSQL code generated


Execute the .pls files in the database Review the code before executing the .pls files
One may need to change the code RDF Format triggers are not supported by the utility. Format trigger logic

must be implemented separately.

53

Step 5: Register new Concurrent Program


Set the concurrent program output format to XML. Attach executable XDODTEXE to the concurrent program

54

Step 6: Register Data Definition

55

Register Data Definition


Upload Data Template generated in Step 3 to Data Definition

56

Step 7: Register Layout Template

57

Step 8: Create Bursting Control File


This is required to e-mail files or delivering reports directly to the printer Bursting Engine Features
Burst individual
EDI

documents from a batch Dynamic generation based on data Deliver in desired layout and output format Deliver down desired delivery channel Integrated into concurrent processing

Batch Data

Control File

HTML

PDF XML Publisher PDF XML

Templates

58

Create Bursting Control File


Accepts a data stream and splits it based on multiple criteria Generates output based on a template Delivers the individual documents through the delivery channel of choice (Email, Fax, Printer, File system, FTP)

Bursting Control File

59

Step 9: Upload Bursting Control File to Data Definition

60

Step 10: Program Call to Bursting Engine


Add code in After Report trigger to call Bursting Engine for delivery of reports

This submits XML Publisher Report Bursting Program program which splits current programs XML output, generates documents and delivers them to destination mentioned in Bursting Control File
61

BI Publisher Setup Summary


IT/MIS-DEV SETUPS Create Data and Layout Template Files Choose concurrent program via SRS forms Submit Request USER PROCESS

Load files and Metadata to Template Manager

Define concurrent Program using the data engine executable

Select parameter values

Output document Generated

Add concurrent Program to Request Group

Select layout template Language and output format

Output document Printed or Viewed

Automated process

62

BI Publisher Setup Summary


Create Data Template Create Layout Template

Register data and template definition metadata and load data template and layout template

Define concurrent program

Add concurrent program to request group

63

BI Publisher User Steps


User selects the report from a list User enters parameter values User can select a template, language and output format and submit the report User can view the final output via the Monitor Requests form

64

BI Publisher User Steps


User selects the report

65

BI Publisher User Steps


User Selects Template

User can select a different template from the LOV Then a different language if available Then an output format

66

BI Publisher User Steps


User can view the final output

67

CTC Implementation

Invoice Print Programs

Invoice Print Programs converted from Optio to BI Publisher Reports Notifications converted are:
Standard Invoice Prints Dunning Letters Credit Card Notifications (Charge/ Decline/ Refund)

69

Invoice Print Program Changes OPTIO implementation had different RDFs created to support different layouts

XXVS_OPTIO_R_RAXINV.rdf XXVS_OPTIO_R_RAXINV_GEO.rdf XXVS_OPTIO_R_RAXINV_VIP_RETAIL.rdf PLSQL Code for VIP Invoices to send emails without attachment

In XML Publisher Impleementation only one RDF XXVS_RAXINV.rdf


All RDFs merged into One. Easy maintanance. No separate PLSQL Code for sending emails without

attachment This is handled through a Setup Data Generation is handled by single RDF, different layouts are handled through RTF templates.

70

Setup Changes
Two new segments at Trx Type DFF level:
XML Template value of the XML Publisher Template used for

generating Invoice PDF file Attachment (Yes/No)


Yes = Send Invoice PDF file / No = Only send email

71

Setup Changes
XML Template / Attachment DFF at Trx Type
For existing Trx Types, XML Template and Attachment DFF fields updated through a Datafix Any new Trx Type created after Go-Live, BSA must enter appropriate values for these fields

Print Program name at Trx Type DFF


New XML Print program name updated through a Datafix

Dunning Program name in XXVS_AR_DUNNING_PRINT_PROG


New XML Print program name updated through a Datafix

72

VeriSign Bursting Engine


Common Program used across different modules (AR/ OM/ AP) to deliver emails / print documents
Program was first created for AR documents. Design flexibility allows program to be used by any module uses the XML output from Print Program and based on the XML Template prints/emails the Invoice PDFs. Creates a zip file which stores all the PDF files generated Creates a record in Collections Workbench Correspondence tab for Credit Card and Dunning related notifications Completes in warning if there is any failure while delivering any invoice Generates report showing the success/fail status for each invoice delivery
Status Report

In case of failure, can deliver notification to email address setup in XXVS_BURSTING_CONTROL_FILES valueset

Error Notification

73

Printer Issues
PDF files generated from BI Publisher do not print on some printers

raw PDF files generated by BI Publisher are not supported by some printers Metalink Note - 338990.1 explains how third party software can be used to convert PDF files into PS format before sending them to printers. Create Filter for PDFTOPS utitlity in xdodelivery.cfg file and place it under $XDO_TOP/resource directory PDF Documents would be automatically converted to PS format before sending them to printers

74

Printer Issues
CUPS Issues
Connection Timeout: Log file shows oracle.apps.xdo.delivery.DeliveryException: Connection timed out while waiting response from server. Change CUPS configuration - /etc/cups/cupsd.conf - Increase the value of MaxClients (controls the maximum number of simultaneous clients that will be handled ) and TimeOut (timeout before requests time out) Connection Reset: Log file shows java.net.SocketException: Connection reset at java.net.SocketOutputStream.socketWrite CUPS log file shows message E [25/May/2009:03:18:01 -0700] ReadClient() 8 IPP Read Error! Verify CUPS setup Upgrade it to latest CUPS version

75

Printer Issues
Large Batches take long time to Print
Bursting Engine sends one document to printer at a time. Printer will

take time to initialize for each document, buffer it and then finally print it.
Is there a way to send ONE big print-job to the printer? Answer is Yes, but involves customization - Step 1 : Use DocumentProcessor API, generate individual PDF files on filesystem.
- Step 2 : Use PDFDocMerger API to merge PDF files in single PDF file. - Step 3 : If the printer supports PDF format, send merged PDF file to Printer. Else convert the PDF file into PS/ PCL format before sending to printer.

76

RTR Implementation

11i Environment Setup Patches Applied


Patch #: 5713082 The FSG patch has been applied to make the SRS program "Program - Publish FSG Report" compatible with XML Publisher versions 4.5, 5.0, 5.5, 5.6.0, 5.6.1, 5.6.3 Patch#: 6332655 - This patch delivers Full Scale FSG functionality for Release 11i customers. Following are the few fixes delivered in the patch.

correct report ordering for Multiple Report Sets correct processing for Spreadsheet/TabDelimited with Display Set correct print styles for reprint

Report output in Excel


Inserted a new mime type for the file format XLS for both US

and JA to open the report in Excel if the Format Type is chosen as Excel.

78

RTR Development/Migration Procedure


Financial Statement Generator (FSG) Report to XML Publisher
Oracle General Ledgers FSG is a powerful report-building tool that

allows you to build your own custom reports without programming. Integrating FSG with XML Publisher allows you to use the convenient formatting features of a word processing application to design template layouts for FSG reports. Among the different report formatting options, you can change font characteristics, add graphical images, insert headers or footers, work with an unlimited number of columns, and reorder columns.

79

RTR Development/Migration Procedure (Continued) Generate XML Data Log into Apps with VS US GL POWERUSER Responsibility

Navigate to > Reports > Request > Financial and submit any one of the FSG report by selecting XML as Output Option. Continued
80

RTR Development/Migration Procedure (Continued) Query for the Request ID in the Requests Screen and save the XML Output to a location on your local machine.

Continued

81

RTR Development/Migration Procedure (Continued) Using the MS Word Template Builder Plug in, load the XML Data File by clicking on the Data button and selecting Load XML Data and selecting the xml file that you saved earlier. RTF Template Creation

Continued

82

RTR Development/Migration Procedure (Continued) To insert a table in the report you can use the Table Wizard or Table/Form.

83

RTR Development/Migration Procedure (Continued) To insert a field in the report use the menu: Insert > Field Now you can select a field and double-click it or drag it to the place in the report. Before you can preview the report you have to save the file as a RTFfile.

84

RTR Development/Migration Procedure (Continued) Test the RTF template by using the Preview functionality in the Template Builder plug-in. For a good preview on how to create XMLP Templates please refer the attached document.

XMLPTemplatesByE xample.doc

85

Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite

Debug files are generated depending on how the XML Publisher Core engine is invoked
One step publishing method: The Concurrent Request ends with Phase 'Completed' and Status 'Warning' which indicates that the Output Post Processor (OPP) failed to generate an output file.

In such cases the request log file shows a generic error message indicating the the post-processing action has failed:

Continued

86

Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite (Continued)
The actual error returned by the XML Publisher Core engine is captured in the OPP log file. Following are the steps to open the OPP log file: - Login to the application - Responsibility: System Administrator - Function: Concurrent --> Manager --> Administer - Select the Output Post Processor - Click on the Processes button - Select the Concurrent Process which was active during the time that the request ran - Click on the Manager Log button to open the Output Post Processor log file

Continued

87

Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite (Continued)

Continued

88

Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite (Continued) Search for the Request ID in the OPP Log for the actual error message. The error message shows that the XML file generated had some special characters due to which the program has failed.

89

Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite (Continued)
In case of the following error message in the Concurrent Program Log file follow the steps below to fix the issue.

Under System Administrator responsibility. Navigate to: Concurrent/Manager/Administer Select 'Output Post Processor' Click Refresh, the "Actual" and "Target" against the Output Post Processor should show "1 as shown in the screen shot below if not Click on Restart button to restart the process. Continued

Note: If the issue is not fixed even after restarting the process then the Concurent Manager needs to be bounced.

90

Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite (Continued)

91

PTP Implementation

PTP XML Conversions Scope


Purchasing Objects Payables Objects Reporting Objects

Timeline
Initiative Began in Summer of 2009 Purchasing Objects Converted before 2009 Year End Payables Objects Converted in 2010 ACH Remittance Check Printing Reporting Objects Converted on an Ad Hoc Basis

93

Purchasing Objects Conversion


Scope

PO PDF Document PO Email Capability Automated Attachments Inclusion


PO Header Level Attachments Automatically Included in PO Email Attachments from Most Recently Updated PO Line Automatically Included in PO Email

Benefits

Email Body Configuration


PO Email Body Fully Configurable via FND Message

Automated PO Attachment of PO PDF


Seeded View Document Function Now Utilized to See PO PDF

Font Color Now Allowed Optio Technology No Longer Needed Multiple Patches Required to be Applied Attachments Inclusion Initially Picked Up Non-Related Attachments
Attachment ID Match Across Attachments Type

Development Issues

94

Payables Objects Conversion ACH Remittances

Scope
ACH Remittance PDF

Benefits
Error Reporting ACH Remittance Program Now Produces PDF Output File with Failed Records and Detail - Prior Process Required AP Review Rejected Emails to Shared Public Folder Single Reprocess Capability AP Now Has the Ability to Send Individual ACH Remittances Based on Error Report and Reprocess Needs Optio Technology No Longer Needed

Development Issues
Initial ACH Remittance Error Report Had Insufficient Detail

95

Payables Objects Conversion Checks


Scope

AP Physical Checks Ability to Save PDF File of All Checks Printed Check Font Stored on the Server
No Longer Required to Ask MIS OPS to Resend Check Font to Local Printers Upon Printer Reboot

Benefits

Ability to Print Anywhere


PDF File is Saved Locally and Printed

Optio Technology No Longer Needed DEV Team Does Not Have Access to Physical Printers
Output Differs Across Printers

Development Issues

DEV Team Does Not Have Actual Check Paper Wrapping Lines in the Check Caused Check Layout to Shift Font Issues Number of Invoices Continuing on Multiple Pages
Only One Actual Check Can Output

96

Reporting Objects Conversion


Scope
Existing Oracle Reports Converted as Requested No Overall Initiative Yet Begun to Review the Set of Reports Completed Suppliers Report In Process Posted Invoice Register

Benefits
Increased Configuration Capabilities via XML Publisher Administrator Report File Type Output Options to the Requestor

Development Issues
Layout Challenge from Existing Presentation Not Always a Straight Forward Mirror Conversion Option Oracle Patch Still Required for Proper XML Report Request Default

File Type Output Option

97

Check Printing: Additional XML Setups


Create Font File Create Font Mappings Site Level Configurations Setup MICR Font on Application Server

98

R12 BI Publisher Features


Data Extraction Engine Bursting Engine Consolidated Document Publishing Template Enhancements

RTF Templates Template Builder

Delivery Manager Template Manager


Translation Manager Configuration Manager Font Manager OA Framework Report Viewer Single Step Reporting Reduced processing time, memory footprint and temporary file space

Integration

Performance

99

BI Publisher Benefits

Reduce development and maintenance costs Consolidate reporting solutions Consolidate data sources Functional users build and customize layouts In-house printing and delivery now achievable Increase developer productivity
100

BI Publisher Benefits

Reduce reporting tool training requirements Faster report creation Improve performance Faster data extraction Fewer database hits Layout level formatting
101

Business Intelligence Publisher Blogs


Tim Dexter/BIP Official Blog: http://blogs.oracle.com/xmlpublisher A BI Publisher developers diary: http://blogs.oracle.com/BIDeveloper/ Oracle BI Publisher Consulting: http://bipconsulting.blogspot.com/ BI Publisher Blog - Ike Wiggins: http://bipublisher.blogspot.com/ In Depth Apps - eBusiness Suite - Gareth Roberts: http://garethroberts.blogspot.com/ The Lowe Down http://www.thelowedownblog.com

102

Contact Information: Brent Lowe STR Software brent.lowe@strsoftware.com www.thelowedownblog.com www.strsoftware.com

103

Contact Information: Mohan Dutt VeriSign Inc mohan.dutt@gmail.com www.ebizocp.blogspot.com

104

Thanks to Oracle Mix Voters

Many thanks to voters on Oracle Mix for voting for this presentation on Suggest A Session contest

Session Survey: S319049

105

Q&A

You might also like