Extending Web ADI to Create User Driven Price List Interface Andrea L. Clary Keithley Instruments, Inc.
Extending Web ADI to Create User Driven Price List Interface
Andrea L. ClaryKeithley Instruments, Inc.
Safe Harbor Statement
Im just describing what worked for us.
About Keithley Keithley is US based manufacturer of Test
and Measurement equipment We have offices throughout US, Europe and
Asia In Oracle E-Business Suite, we have 11
operating units in a SOX compliant implementation
Run GL, INV, WIP, BOM, OM, PO, AR, AP, CRM (JTF, CS, AST, CSI, UWQ..)
About me Electrical Engineer After graduate school, work for 9 years as a
flow metrologist for NASA Joined Keithley as a Sr. Applications
Engineer in 1998 Became involved with Oracle in 2003 as a
functional SuperUser for CRM products In 2004, moved into a Sr.
Programmer/Analyst IT role at Keithley
Agenda Our Issues/Why we did this Functional Requirements Open Interface good start toward solution Interface Design How to Build an Integrator Validation dont upload junk Managing the user experience Unsolved mysteries features not yet used
Price List Process Issues at KEI
Product offerings can be complex Custom one-offs require pricing information Each operating unit/region has their own
special requirements/business drivers Pricing is controlled in US
Bottom Line: Price List Maintenance was viewed as too data entry intensive
Requirements presented to IT by functional users: Make it faster - consume fewer hours Reduce typing boring and error prone Notification of data ambiguities/errors Interface with present process
Accurately apply the data to the price lists
Oracle has an Interface for Price Lists Two components to this interface:
tables into which your data is uploaded and a table for rejected/error records
concurrent process that consumes that data, validates it and creates/updates the price lists or puts an entry into the errors table
Oracle has an Interface for Price Lists The interface consists of tables into which your data is uploaded
How do I upload data to the table? In technology terms, SQL*Loader would be a typical approach.
How to get this file available to a SQL*Loader script will be an issue
Web ADI allows you to put this control into the hands of your functional users and to do so in a very controlled way. (More on this to follow)
Oracle has an Interface for Price Lists concurrent process that consumes that data, validates ..
The process is a concurrent request by name of QP Bulk Process.
It has a number of parameters defined.
We rolled this out to our functional users with a KEI defined concurrent request. This allowed control over the parameter values. (more on this to follow)
Typical Interface without Web ADI Create a data file (delimited file on end-users PC) Transfer data file to DB server (Unix shell script; crontab) Load into interface table (SQL*Loader script; crontab) From Oracle EBS session: Run the Interface
Process Method to correct/clear errors
A lot of timing issues for the end-user to deal with
Typical Interface with Web ADI
Data can be rejected by Custom Procedure
Functional User controls when this runs
No need to wait for a cron job or IT intervention
Spreadsheet CustomProcedureIntegratorOracle Open
InterfaceTables
Oracle OpenInterface
CSV data
Data Mapping
CustomstagingTable
How to Build an Integrator
You need to install an object into APPS schema of the database (package or view) If your integrator will upload data you will need to define a
PACKAGE If your integrator will only download, you will need a VIEW
You need to have access to users, responsibilities, menus and functions
Verify BNE profile values
How to Build an Integrator
You need time, patience and creativity The integrator can do anything you permit It can perform custom validation and refuse
records Reason/error messages can be given back The error messages can be on a row by row
basis, e.g. specific to each error type
How to build
User Requirement: interface with present process. Example: If they are already generating a report
that has 10 columns of data, design your front-end to accept 10 columns of datawhether you need them or not.
How to build data validation
Custom Validation/error reporting do this BEFORE it ever gets to Oracles Interface tables
The Web ADI interface will put visual clues in the spreadsheet about upload outcome using green smiley face or red frown face icons
How to build dont upload junk Package Code:
Have an insert_row proc It calls to validate_row If validation fails, you can
put a message on stack and push it back to functional user by raising exception
IMPORTANT: If you push back even
one row of exception messages, then zero rows will be uploaded to the staging table.
How to Build After Create/install package
in APPS Use menu Oracle Web ADI
Menu Use Create Document>HR
Integrator Setup
How to Build
Metadata Type = CREATE or DOWNLOAD
Application Short Name is for your own $CUSTOM_TOP
Form Name = GENERAL for custom integrators
How to Build
Associate Form Function to integrator Assign to your menu else you will see
permissions errors
How to Build Layout: is defined by your
procedure. v_list_header_id becomes
LIST_HEADER_ID in the layout automatically
Optional: Define a Mapping
Data Mapping what the user sees
User Experience: Download Excel Document
Oracle provides a page per parameter to allow user to select values for Viewer If download integrator, then reporting =Y Integrator Name to use Which layout to use Which content mapping to use
User will have to make selections on each of these pages which they will view as tedious, or you can streamline the process
Short Cut to Download Excel document
Add Parameters to your function definition -This will bypass any page for which you provide a value in your function definition
How to get values for your parameters
bne:page=BneCreateDoc&bne:reporting=N&bne:viewer=231:EXCEL2003&bne:integrator=20024:GENERAL_21_INTG&bne:layout=20024:KEI_QP_LAY_KEY&bne:content=20024:GENERAL_21A_CNT
select the codes from bne_integrators_tl bne_contents_tl bne_layouts_tl
How we launched QP Bulk
Controlled Parameter values
How we launched QP Bulk
Added as menu function rather than as request in request group.
This allows fewer clicks to submit the request
Simpler user interface; easier training
CONCURRENT_PROGRAM_NAME="KEI_QP_LAUNCH_BULK_LOAD_PROG" PROGRAM_APPL_SHORT_NAME="XBOL" TITLE="KEI QP Launch Bulk Load" SUBMIT_ONCE="Y"
Required Client Side Configs
Pop-up blocker can block Web ADI Excel can not be open when you are
downloading a spreadsheet. Macro security in Excel must be medium
and Trust Access to VB Projects must be allowed.
Training Concept: Error handling with Web ADI all rows or no rows
Client Side
Microsoft Office 2000, 2002,2003 and 2007 are currently supported
Windows 2000, XP, Vista Any browser supported by your E-Business
Suite environment
Populate the Excel Sheet with Data
Excel Sheet Protection is On by default Once the Excel sheet is downloaded, must
remove Protection in order to insert additional rows or to resize any column, etc.
If routinely doing this, make use of a data mapping to automatically extend the rows and update the rows with data values from a specified csv file.
Our EBS environment
11.5.10.2 ATG RUP6 RDBMS 10.2.0.4.0 11i.BNE.D (3218526 + 5518587)
BNE Profile values
Check all the BNE profiles against the documentation
If documents are not downloading/data not uploading review the bne.log located at location controlled by profiles: BNE Server Log Path BNE Server Log Level
Work with application administrator to have BNE profiles reviewed and appropriately set
One Profile of interest BNE Allow Set Parameters Seeded GL integrators make use of this
additional form displayed at upload looks interesting
Other feature areas to explore:
FNDLOAD for instance porting LOVs and date picker to
constrain/ease user input Header and Row integrator
upload impact to file mapping
Look at integrators for GL Journal upload as examples
References
360105.1 Understanding and Using Web ADI in Oracle HRMS - Includes A Step by Step Guide to Creating HRMS Integrators very helpful
228527.1 - "Web ADI for Oracle HRMS Implementation and Configuration Information
726727.1 Overview of Web ADI Web ADI Implementation Guide - bne115ig.pdf Web ADI User Guide - bne115ug.pdf
Acknowledgements
Many thanks to all those who have made other presentations and blog entries on Web ADI and custom integrator development. Those documentation efforts were extremely beneficial to my own success with Web ADI
And to my functional users for their patient collaboration on the solution
Q&A time
Thank you for attending
Please fill out the evaluations
Extending Web ADI to Create User Driven Price List InterfaceSafe Harbor StatementAbout KeithleyAbout meAgendaPrice List Process Issues at KEIRequirements presented to IT by functional users:Oracle has an Interface for Price ListsOracle has an Interface for Price ListsOracle has an Interface for Price ListsTypical Interface without Web ADITypical Interface with Web ADIHow to Build an IntegratorHow to Build an IntegratorHow to buildHow to build data validationHow to build dont upload junkHow to BuildHow to BuildHow to BuildHow to BuildOptional: Define a MappingData Mapping what the user seesUser Experience: Download Excel DocumentShort Cut to Download Excel documentHow to get values for your parametersHow we launched QP BulkHow we launched QP BulkRequired Client Side ConfigsClient SidePopulate the Excel Sheet with DataOur EBS environmentBNE Profile valuesOne Profile of interestOther feature areas to explore:ReferencesAcknowledgementsQ&A time