Вы находитесь на странице: 1из 41

Market offering: Oracle package

Technologies
Package(s): Oracle
Author: Ajay Kumar Tadakamadala
Date: January 21, 2013
Whitepaper:
Oracle Web ADI

Whitepaper Oracle Web ADI
Contents
Executive summary 1
Introduction 2
Problem definition 3
High-level solution 4
Solution 5
Configuration settings 6
Business benefits 16
Conclusion 17
Appendix A 18
Appendix B 23
Appendix C 24
Appendix D 25
Appendix E 26
Appendix F 27
Appendix G 28
Appendix H 29
Appendix I 35
Contact 38

Executive summary
Whitepaper Oracle Web ADI 1
Executive summary
Oracle E-Business Suite has a powerful desktop integration tool known as Oracle Web Applications
Desktop Integrator, often called as Web ADI. Oracle Web ADI is a framework that provides Oracle
E-Business Suite integration with desktop utilities like Excel, Word, and Project.
Web ADI allows data to be uploaded and downloaded from Oracle E-Business Suite using desktop
applications. Oracle E-Business Suite has about 150+ out-of-box Web ADIs across many modules.
Users can create custom integrators to load data into interface or staging tables using Excel or
Word.
This white paper includes:
1. Explain features available in Oracle Web ADI.
2. How business needs are satisfied with Oracle Web ADI.
3. Different ways to build custom Web ADI.
Introduction
Whitepaper Oracle Web ADI 2
Introduction
Oracle Web ADI is a standard tool provided with Oracle E-Business Suites for integrating Oracle
E-Business Suite applications with desktop applications, such as Microsoft Excel. Integrators
encapsulate the metadata and include information such as interface tables, validations, business
rules needed to integrate a particular Oracle E-Business Suite with desktop applications.
Oracle Web ADI is a design-time framework that you can use to create custom integrators and
customize the existing integrator for Oracle Web ADI in Oracle E-Business Suite.
Oracle E-Business Suite applications has about 150+ seeded integrators to load data into Oracle
Interface tables. You can use the Oracle Web ADI to define custom integrators for data integration.
Some key features of Oracle Web ADI are:
Wizard based User Interface (UI)
Support for embedded UI widgets in Excel
List of Values (LOV)
Date Pickers
Flexfields
Development tool for custom desktop integrations
Secured as E-Business Suite application
Custom Oracle Web ADI can be developed to enable you to load data from a spreadsheet into the
Oracle applications and invoke custom programs as required, e.g., the creation of invoices, upload
HR data.
Problem definition
Whitepaper Oracle Web ADI 3
Problem definition
Business was using a legacy system for Payable invoices and wanted a tool for validating and
importing invoices from business user desktops.
To ease of use and enhance productivity, business users used Oracle Web ADI.
Business requirements that led to use Oracle Web ADI:
1. Business had large amount invoices to import in Oracle E-Business Suite in every batch. They
wanted a tool which can validate and import data from Excel files into Oracle E-Business Suite in
cost-effective way.
2. They are mainly two categories of Accounts Payable (AP) users. First category of AP users
should be able to only validate the excel data using any tool, and another category of AP users
should be able to validate and import AP invoices from Excel to Oracle E-Business Suite from
their desktops.
3. Tool should invoke Payables Open Interface Import concurrent program after entire set of data
is populated into Oracle Interface tables.
4. Accounting Key Flexfield values to be displayed as part of LOV to have the user enter the valid
distribution accounting segment values.
5. Currency code values to be displayed as part of LOV to have the user enter valid currency code.
High-level solution
Whitepaper Oracle Web ADI 4
High-level solution
Oracle Web ADI is a browser-based application, which enables users to log in to the Oracle
E-Business Suite, and upload ADI spreadsheets information into Oracle system.
Interfaces are setup for Web ADI to work as per requirement. These interfaces are macro-driven
spreadsheets, in which specific cells are mapped to database table columns or custom procedure
parameters. Through them, data is fed into the Oracle interface tables and subsequently into Oracle
base tables.
Below figure gives an overview of framework used by Oracle Web ADI.

Solution
Whitepaper Oracle Web ADI 5
Solution
Requirement 1:
To validate and import large amount invoices into Oracle E-Business Suite in each batch, Web ADI
is designed. Using Web ADI, an excel document can be downloaded. Users can easily write
invoices data into the downloaded excel document even off-line. Later, data is uploaded into using
add-ins provided in downloaded excel. Web ADI calls a procedure which will validate the data and
insert data into Oracle interface tables.
Requirement 2:
They are mainly two categories of AP users. First category of AP users should be able to only
validate the excel data using any tool, and another category of AP users should be able to validate
and import AP invoices from excel to Oracle E-Business Suite from their desktops.
A profile option XX_AP_WEBADI_UPLOAD is defined at user responsibility level, which can be
used to control the program from uploading data into Oracle interface tables when a particular
category of users access this custom Web ADI.
Requirement 3:
Tool should also invoke Payables Open Interface Import concurrent program only after whole excel
records are inserted into Oracle interface tables.
Oracle Web ADI has a feature to invoke a concurrent program after all records are processed. While
building custom Web ADI, concurrent program to be invoked and parameters should be defined in
Web ADI setup.
Concurrent program to be invoked cannot be changed at run time. Instead you can call a custom
concurrent program, which can decide the invoking of programs at run time.
Requirement 4:
Accounting Key Flexfield values to be displayed as part of LOV to have the user enter the valid
distribution accounting segment values.
As per this requirement, Accounting Key Flex Field (KFF) LOV is embedded in General Ledger (GL)
code combincation field of downloaded Web ADI excel file.
Requirement 5:
Currency code values to be displayed as part of LOV to have the user enter valid currency code.
As per this requirement, currency code LOV is embedded in currency code field of downloaded Web
ADI excel file.
Configuration settings
Whitepaper Oracle Web ADI 6
Configuration settings
1. Use the Web ADI page to create spreadsheet
a. Specific to data type, which we call as integrator
b. Specific to layout for controlling purpose of the spreadsheet
2. Load data to the excel spreadsheet.
3. In spreadsheet, you need to select the Oracle upload menu option. This menu option is used
from Web ADI added from Excel menu.
4. Web ADI calls the custom procedure based on which interface is created.
5. Custom procedure will validate and upload data into Oracle interface tables. Any error will be
flagged and the error reason will be placed on corresponding row in the spreadsheet.
Web ADI setup
A custom Web ADI consists of following components:
1. Integrator (Mandatory)
2. Interface (Mandatory)
3. Layout (Optional Default layout is present)
4. Content (Optional None)
5. Mappings (Optional)
6. Form function security. (Mandatory)
To build custom Web ADI,
1. Create wrapper procedure.
2. Create custom integrator
3. Define interface
4. Define layout
5. Define form function.
Create wrapper procedure
Before creating custom integrator, we have to create a wrapper procedure, which will be called from
excel spreadsheet and inserts data into Oracle tables. An advantage of using wrapper procedure is
we can write custom business/user logic/validations, which will validate data entered in excel before
inserting into interface tables.
Error output of records failed during validation/insertion will be notified in excel spreadsheet for each
line.
So that, user can correct the errors and upload the same excel spreadsheet.
Configuration settings
Whitepaper Oracle Web ADI 7
Please refer Appendix A.
Create custom integrator
Custom integrator is created using BNE_INTEGRATOR_UTILS API package.
CREATE_INTEGRATOR procedure is used to create custom integrator.
Below are the required parameters:
API Parameter name Value
p_application_id Application ID of AP
p_object_code Unique Object code
P_integrator_user_name Integrator name visible to user in integrator list drop-down
P_language Language settings
P_source_language Language settings
P_user_id User ID of user creating this integrator
p_integrator_code Output of API. By default, it returns the unique code by concatenating _INTG to object
code passed.
Please refer Appendix B for sample code.
Create custom interface
In brief, interface is an interim layer which connects integrator and Database (DB) objects like
wrapper package, API, or table.
Interface consists of DB object details like wrapper package used to upload and columns required to
pass as input to wrapper package.
Parameters for API:
Parameter name Value
p_application_id Application ID of AP module
p_object_code Unique object code it should be same as integrator object code
p_integrator_code Integrator code output of previous API execution
p_api_package_name Wrapper package name
p_api_procedure_name Wrapper procedure
p_interface_user_name Interface name visible to user
p_param_list_name Parameter list name visible to user
p_api_type API type
p_api_return_type API return type
p_upload_type Upload type
p_language Language settings
p_source_lang Language settings
p_user_id User ID of the user creating this integrator
p_param_list_code Output of API: Returns parameter list code
p_interface_code Output of API: By default, returns the value _INTF concatenated at end of object code
passed
Please refer Appendix C for sample code.
Configuration settings
Whitepaper Oracle Web ADI 8
Create default layout for interface
Integrator should have at least one layout associated. We can create a default layout by using
BNE_INTEGRATOR_UTILS package.
Use CREATE_DEFAULT_LAYOUT to create a default layout.
Parameters for API:
Parameter name Value
p_application_id Application ID of AP module
p_object_code Unique object code it should be same as integrator object code
p_integrator_code Integrator code output of integrator API execution
p_interface_code Interface code output of interface API
p_user_id User ID of the user creating this integrator
p_force Default FALSE
p_all_columns To display all columns value is TRUE
p_layout_code Output of API
Please refer Appendix D for sample code.
Define form function and associations
Define a form function, to associate the custom Web ADI, which is just created.
Navigation -> Application Developer -> Application -> Function
Type SSWA servlet function
Application Developer (Responsibility) Application Function
Function XX_AP_INV_WEBADI
User Function Name AP Invoice WEBADI

Associate the custom Web ADI with form function created. Using HR_INTEGRATION_UTILS
package, HR_MAINT_FORM_FUNC_ASSOCIATION link custom integrator with form function.
Please refer Appendix E for sample code.
Your integrator should exist in integrators LOV. If your integrator does not exist then bounce the
apache services.
Configuration settings
Whitepaper Oracle Web ADI 9
Embed Accounting Flexfield KFF
As per Business requirement, we required Accounting Flexfield KFF LOV embedded in Distribution
account field in downloaded Excel document.
Use BNE_INTEGRATOR_UTILS.CREATE_CCID_KFF API to create LOV and assign to distribution
account field.
Parameters for API:
Parameter name Value
p_application_id Application ID of AP module
p_interface_code Interface code output of previous API execution
p_interface_col_name Distribution field name of excel document
p_num_flex_segs No. of segments in Accounting Flexfield
p_group_name Group name
p_flex_application_id General ledger application ID
p_flex_code Accounting Flexfield code
p_flex_num Flex number
p_vrule Rule -> NULL
p_effective_date_col NULL
p_prompt_above Segment list to be prompted
p_prompt_left Segment list
p_user_hint User hints
p_user_id Application user ID
Please refer Appendix F for sample code
Embed currency code LOV
As per business requirement, we required currency code LOV embedded in currency code field in
downloaded excel document.
Use BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV API to create LOV and assign to
distribution account field.
Parameters for API:
Parameter name Value
p_application_id Application ID of AP module
p_interface_code Interface code output of previous API execution
p_interface_col_name Distribution field name of excel document
p_id_col Currency code column
p_mean_col Currency name column
p_desc_col Currency description column
p_table Currency table, i.e., GL_CURRENCIES
p_addl_w_c Where clause
p_window_width Window width
p_window_height Window height
Configuration settings
Whitepaper Oracle Web ADI 10
Parameter name Value
p_table_block_size Table block size
p_table_sort_order Sorting order
p_user_id Application user ID
Please refer Appendix G for sample code.
Setup to invoke concurrent program
After successful upload of data into Oracle interface tables, Payables Open Invoice Import should
be invoked. Follow below setups to invoke program after data is loaded using Web ADI.
We start with creating below required parameter lists.
1. Upload Parameter List
2. Parameter List to set calling Program parameters
3. Import Parameter List
Steps to create parameter lists
1. To create parameter lists, navigate to Desktop Integrator responsibility and click Create
Document link.
2. Modify the URL from BneCreateDoc to BneParameters as shown in below screenshot.

3. A screen to select application appears as below. Select application and click Next.

4. You will be navigated to Define Parameter List screen.
5. Create parameter lists by providing required values.
a. Upload Parameter List : XX_AP_UPLOAD_PARAM

Configuration settings
Whitepaper Oracle Web ADI 11
Field name Value
Application code SQLAP
Parameter list code XX_AP_UPLOAD_PARAM
Name XX AP Upload Parameter List
Prompt above Upload Parameters
Parameters
Source Name
WebADI: Upload bne:rows
WebADI: Upload bne:validation
WebADI: Upload bne:import


b. Concurrent program parameter list : XX_AP_INV_CONC_REQ
Field name Value
Application code SQLAP
Parameter list code XX_AP_INV_CONC_REQ
Name WEBADI: Invoice Import
Prompt above Concurrent Program Parameters
Configuration settings
Whitepaper Oracle Web ADI 12
Parameters: These are variables which we generaly pass to SUBMIT_REQUEST API in PL/SQL
Seq Parameter code Name
1 XX_IMP_INV_CONC_REQ_P0_ATTS Application
2 XX_IMP_INV_CONC_REQ_P1_ATTS Program
3 XX_IMP_INV_CONC_REQ_P2_ATTS Description
4 XX_IMP_INV_CONC_REQ_P3_ATTS Run Date
5 XX_IMP_INV_CONC_REQ_P4_ATTS Sub Request
6 XX_IMP_INV_CONC_REQ_P5_ATTS End of Concurrent Request Parameters
7 XX_IMP_INV_CONC_REQ_P6_ATTS Rest of Parameter Defaults
Attributes are used to set API parameters with specific values.
Parameter code Attribute values
XX_IMP_INV_CONC_REQ_P0_ATTS APPLICATION
VARCHAR2
IN
N
XXBCG
XX_IMP_INV_CONC_REQ_P1_ATTS PROGRAM
VARCHAR2
IN
N
APXIIMPT
XX_IMP_INV_CONC_REQ_P2_ATTS DESCRIPTION
VARCHAR2
IN
N
Payables Open Invoice Import
XX_IMP_INV_CONC_REQ_P3_ATTS RUN_DATE
VARCHAR2
IN
N

XX_IMP_INV_CONC_REQ_P4_ATTS SUB_REQUEST
BOOLEAN
IN
N
FALSE
XX_IMP_INV_CONC_REQ_P5_ATTS END
VARCHAR2
IN
N
CHR(0)
XX_IMP_INV_CONC_REQ_P6_ATTS
91
Configuration settings
Whitepaper Oracle Web ADI 13
c. Import parameter list : XX_AP_INV_IMP_UPLOAD
Field name Value
Application code SQLAP
Parameter list code XX_AP_INV_IMP_UPLOAD
Name WEB ADI: Invoice Import
Comments WEB ADI: Invoice Import Master List
Parameters: In parameters, we provide the above parameter list created in previous step.
Seq Source Name Value
1 CONCURRENT_REQUEST 200:XX_AP_INV_CONC_REQ
2 WEBADI:ImporterSuccess SUCCESS_MESSAGE


Configuration settings
Whitepaper Oracle Web ADI 14

Load data using custom Oracle Web ADI
We have the custom Web ADI ready. We have to download the excel document and insert data into
excel and upload data into Oracle system.
You can assign your integrator to business user responsibilities menu or you can test your integrator
through Desktop Integration responsibility.
Please navigate the below Oracle E-Business Suite path as mentioned in screenshots.
Desktop integration (responsibility) Create document

Your integrator XX: Upload AP Invoices should exist in integrators LOV. Please choose your
integrator.
Click on Go button.
Configuration settings
Whitepaper Oracle Web ADI 15

You have to choose the viewer options (i.e., Excel 2003, Excel 2007) according to your compatibility
with Microsoft office version. Please do not select the Reporting check box.

Please click on Create Document button and wait for few seconds. It would open the new browser.

Allow your pop-up blocker to generate the XLS file. You have to save the file at your local machine.
Now, you have to open the saved .XLS file from your local machine and you will be ready to use the
Oracle Web ADI to upload the data from spread sheet to Oracle. Please fill the XLS columns and
validate the LOV(s) as mentioned in below screenshot.

Please navigate the below mentioned XLS TAB to upload the data from spreadsheet to Oracle.
Add-Ins Oracle Upload
Business benefits
Whitepaper Oracle Web ADI 16
Business benefits
Oracle Web ADI, Web-based model also gave the client the ability to focus more on its core
business and less on administrative issues. Using this desktop integration, life is much easier for
data operators and accounts executives, and it will have the following benefits:
Using this tool, data can be inserted into multiple tables and import program is called. With this,
manual effort is reduced.
Accomplished Clients requirements like
Providing LOVs for Accounting KFF and Currencies
Security amoung AP users
Users can still download the excel document and work off-line.
Users can use Oracle Web ADI, as it does not require any software to be installed. It requires
few prerequites which are mentioned in Appendix I
Conclusion
Whitepaper Oracle Web ADI 17
Conclusion
Oracle Web ADI is a solution to integrate Desktop application such as Microsoft Excel with Oracle
E-Business Suite applications. Oracle Web ADI has about 150+ out-of-box integrators across
modules and facilitates to create custom integrator for fulfilling Business requirements.
Oracle Web ADI hardly requires any training as it provides the templates with great flexibility of
Excel-based applications.
Appendix A
Whitepaper Oracle Web ADI 18
Appendix A
Create package to validate and insert data into table
Package Spec:
CREATE OR REPLACE PACKAGE xx_ap_inv_webadi_pkg
IS
PROCEDURE upload_invoices (
p_invoice_num IN ap_invoices_interface.invoice_num%TYPE,
p_invoice_description IN ap_invoices_interface.description%TYPE,
p_invoice_line_description IN ap_invoice_lines_interface.description%TYPE,
p_invoice_type IN ap_invoices_interface.invoice_type_lookup_code%TYPE,
p_invoice_date IN ap_invoices_interface.invoice_date%TYPE,
p_vendor_numIN ap_invoices_interface.vendor_num%TYPE,
p_vendor_site_codeIN ap_invoices_interface.vendor_site_code%TYPE,
p_invoice_amount IN ap_invoices_interface.invoice_amount%TYPE,
p_invoice_line_numIN ap_invoice_lines_interface.line_number%TYPE,
p_inv_line_type_lookup_code IN ap_invoice_lines_interface.line_type_lookup_code%TYPE,
p_currency_code IN VARCHAR2,
p_invoice_line_amtIN ap_invoice_lines_interface.amount%TYPE,
p_gl_ccid IN ap_invoice_lines_interface.dist_code_concatenated%TYPE,
p_header_attribute2 IN ap_invoices_interface.attribute2%TYPE,
p_header_attribute3 IN ap_invoices_interface.attribute3%TYPE,
p_header_attribute4 IN ap_invoices_interface.attribute4%TYPE,
p_header_attribute5 IN ap_invoices_interface.attribute5%TYPE,
p_line_attribute1 IN ap_invoice_lines_interface.attribute1%TYPE,
p_line_attribute2 IN ap_invoice_lines_interface.attribute2%TYPE,
p_line_attribute3 IN ap_invoice_lines_interface.attribute3%TYPE,
p_line_attribute4 IN ap_invoice_lines_interface.attribute4%TYPE,
p_line_attribute5 IN ap_invoice_lines_interface.attribute5%TYPE
);
END xx_ap_inv_webadi_pkg;
/
Package body:
CREATE OR REPLACE PACKAGE BODY xx_ap_inv_webadi_pkg
IS
PROCEDURE upload_invoices (
p_invoice_num IN ap_invoices_interface.invoice_num%TYPE,
p_invoice_description IN ap_invoices_interface.description%TYPE,
p_invoice_line_description IN ap_invoice_lines_interface.description%TYPE,
p_invoice_type IN ap_invoices_interface.invoice_type_lookup_code%TYPE,
p_invoice_date IN ap_invoices_interface.invoice_date%TYPE,
p_vendor_numIN ap_invoices_interface.vendor_num%TYPE,
p_vendor_site_codeIN ap_invoices_interface.vendor_site_code%TYPE,
p_invoice_amount IN ap_invoices_interface.invoice_amount%TYPE,
p_invoice_line_numIN ap_invoice_lines_interface.line_number%TYPE,
Appendix A
Whitepaper Oracle Web ADI 19
p_inv_line_type_lookup_code IN ap_invoice_lines_interface.line_type_lookup_code%TYPE,
p_currency_code IN VARCHAR2,
p_invoice_line_amtIN ap_invoice_lines_interface.amount%TYPE,
p_gl_ccid IN ap_invoice_lines_interface.dist_code_concatenated%TYPE,
p_header_attribute2 IN ap_invoices_interface.attribute2%TYPE,
p_header_attribute3 IN ap_invoices_interface.attribute3%TYPE,
p_header_attribute4 IN ap_invoices_interface.attribute4%TYPE,
p_header_attribute5 IN ap_invoices_interface.attribute5%TYPE,
p_line_attribute1 IN ap_invoice_lines_interface.attribute1%TYPE,
p_line_attribute2 IN ap_invoice_lines_interface.attribute2%TYPE,
p_line_attribute3 IN ap_invoice_lines_interface.attribute3%TYPE,
p_line_attribute4 IN ap_invoice_lines_interface.attribute4%TYPE,
p_line_attribute5 IN ap_invoice_lines_interface.attribute5%TYPE
)
AS
v_invoice_type ap_invoices_interface.invoice_type_lookup_code%TYPE;
v_line_type_lookup_code ap_invoice_lines_interface.line_type_lookup_code%TYPE;
v_invoice_num_count NUMBER (30) DEFAULT NULL;
v_source VARCHAR (30);
v_upload_flag VARCHAR2(1) := N;

BEGIN
/*
Any custom validations can be written here to validate the user-entered data
Ex: Check invoice amount >10000, Mandatory column checkings, Defaulting of data, etc
*/
v_source := MBCG_IMPORT;

--Header level Validation
--Check in the Vendor number exists
BEGIN
SELECT vendor_id
INTO v_vendor_id
FROM ap_suppliers
WHERE segment1 = p_vendor_num;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
raise_application_error (-20009,
Supplier Number Does Not Exist);
END;

IF p_gl_ccid IS NULL
THEN
raise_application_error (-20009, GL Code Combination is invalid);
END IF;
--Check if the Supplier Site Exists
BEGIN
SELECT vendor_site_id
INTO v_vendor_site_id
FROM ap_supplier_sites_all apss, ap_suppliers aps
WHERE apss.vendor_id = aps.vendor_id
AND apss.org_id = fnd_profile.VALUE (ORG_ID)
Appendix A
Whitepaper Oracle Web ADI 20
AND aps.segment1 = p_vendor_num
AND apss.vendor_site_code = p_vendor_site_code;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
raise_application_error (-20009, Supplier Site Does Not Exist);
END;

--Check if the Invoice Number Exists
/* Used Invoice Currency Code to validate the Invoice Number
With this each Invoice is unique to
1. Vendor
2. Vendor Site.
3. Invoice Currency Code */
BEGIN
SELECT COUNT (*)
INTO v_invoice_num_count
FROM ap_invoices_all apil, ap_suppliers aps
WHERE apil.set_of_books_id = fnd_profile.VALUE (GL_SET_OF_BKS_ID)
AND apil.vendor_id = aps.vendor_id
AND aps.segment1 = p_vendor_num
AND apil.invoice_num = p_invoice_num
AND apil.invoice_currency_code = USD;

IF v_invoice_num_count > 0
THEN
raise_application_error (-20009, Invoice Number already Exists);
END IF;
END;

--Check if the Invoice Line type exists or not
BEGIN
SELECT lookup_code
INTO v_line_type_lookup_code
FROM fnd_lookup_values
WHERE view_application_id = 200
AND lookup_type = INVOICE LINE TYPE
AND end_date_active IS NULL
AND lookup_code = p_inv_line_type_lookup_code;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
raise_application_error (-20009,
Invoice Line Type Does Not Exist);
END;
--Check if the Invoice Type exists or not
BEGIN
SELECT lookup_code
INTO v_invoice_type
FROM fnd_lookup_values
WHERE view_application_id = 200
AND lookup_type = INVOICE TYPE
AND end_date_active IS NULL
Appendix A
Whitepaper Oracle Web ADI 21
AND lookup_code = p_invoice_type;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
raise_application_error (-20009, Invoice Type Does Not Exist);
END;

-- Check if user is allowed to upload records
SELECT fnd_profile.value(XX_AP_WEBADI_UPLOAD)
INTO v_upload_flag
FROM DUAL;
-- Upload only if profile value is set to Y
IF v_upload_flag = Y
THEN
INSERT INTO ap_invoices_interface
(invoice_id,
invoice_num,
invoice_type_lookup_code,
invoice_date,
vendor_num,
vendor_site_code,
invoice_amount,
description,
last_update_date,
last_updated_by,
creation_date,
created_by,
SOURCE,
invoice_currency_code,
attribute2,
attribute3,
attribute4,
attribute5

)
VALUES (ap_invoices_interface_s.NEXTVAL, -- Oracle sequence used while inserting in AP
Invoice interface table
p_invoice_num,
p_invoice_type,
p_invoice_date,
p_vendor_num,
p_vendor_site_code,
p_invoice_amount,
p_invoice_description,
SYSDATE,
-1,
SYSDATE,
-1,
WEBADI,
USD,
p_header_attribute2,
p_header_attribute3,
p_header_attribute4,
Appendix A
Whitepaper Oracle Web ADI 22
p_header_attribute5
);
INSERT INTO ap_invoice_lines_interface
(invoice_id,
invoice_line_id,
line_number,
line_type_lookup_code,
amount,
dist_code_combination_id,
last_updated_by,
last_update_date,
created_by,
creation_date,
description,
attribute1,
attribute2,
attribute3,
attribute4,
attribute5
)
VALUES (ap_invoices_interface_s.CURRVAL,
ap_invoice_lines_interface_s.NEXTVAL,
p_invoice_line_num,
p_inv_line_type_lookup_code,
p_invoice_line_amt,
p_gl_ccid,
-1,
SYSDATE,
-1,
SYSDATE,
p_invoice_line_description,
p_line_attribute1,
p_line_attribute2,
p_line_attribute3,
p_line_attribute4,
p_line_attribute5
);
END IF;

EXCEPTION
WHEN OTHERS
THEN
raise_Application_error(-20011, Exception while uploading/validating data :||SQLERRM);

END upload_invoices;
END xx_ap_inv_webadi_pkg;
/

Appendix B
Whitepaper Oracle Web ADI 23
Appendix B
Below is the sample code to create custom integrator using BNE_INTEGRATOR_UTILS API.
Sample code:
BEGIN
bne_integrator_utils.create_integrator (p_application_id => 200, -- AP Application id
p_object_code => XX_INV_WEBADI, -- Unique code for custom object
p_integrator_user_name => XX: Upload AP Invoices, -- Integrator name visible to
users
p_language => USERENV (LANG), -- language settings
p_source_language => USERENV (LANG), -- language settings
p_user_id => apps.fnd_global.user_id, -- User id present in session
p_integrator_code => v_integtr_code -- Output of API returns unique integrator
code
);
DBMS_OUTPUT.put_line (v_integtr_code = || v_integtr_code);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(Create Integrator Error = || SQLERRM);
END;

Appendix C
Whitepaper Oracle Web ADI 24
Appendix C
Sample code to create custom interface. Assuming custom integrator is created as shown in
Appendix B.
BEGIN
bne_integrator_utils.create_interface_for_api (p_application_id => v_application_id,
p_object_code => v_object_code,
p_integrator_code => v_integtr_code,
p_api_package_name => XX_AP_INV_WEBADI_PKG,
p_api_procedure_name => UPLOAD_INVOICES,
p_interface_user_name => XX:Upload AP Invoices,
p_param_list_name => XX:Upload AP Invoices,
p_api_type => PROCEDURE,
p_api_return_type => NULL,
p_upload_type => 2,
p_language => USERENV (LANG),
p_source_lang => USERENV (LANG),
p_user_id => fnd_global.user_id,
p_param_list_code => v_param_list_code,
p_interface_code => v_interface_code
);
DBMS_OUTPUT.put_line (v_interface_code = || v_interface_code); -- Prints Interface code
DBMS_OUTPUT.put_line (v_param_list_code = || v_param_list_code); -- Prints Parameter
List code
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (Error = || SQLERRM); -- Prints error message if any exception
while interface creation.
END;

Appendix D
Whitepaper Oracle Web ADI 25
Appendix D
Sample code to create default layout. Assuming custom integrator and interface are created as
shown in Appendix B and C.
BEGIN
bne_integrator_utils.create_default_layout (p_application_id => v_application_id,
p_object_code => v_object_code ||_LAY,
p_integrator_code => v_integtr_code,
p_interface_code => v_interface_code,
p_user_id => apps.fnd_global.user_id,
p_force => FALSE,
p_all_columns => TRUE,
p_layout_code => v_layout_code
);
DBMS_OUTPUT.put_line (v_layout_code = || v_layout_code);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line (Create Layout Error = || SQLERRM);
END;

Appendix E
Whitepaper Oracle Web ADI 26
Appendix E
Sample code to create form function association. Assuming custom integrator and interface are
created as shown in Appendix B and C.
Sample Code:
BEGIN
hr_integration_utils.hr_maint_form_func_association (p_intg_application => v_app_code,
p_integrator_user_name => XX: Upload AP Invoices,
p_security_value => XX_AP_INV_WEBADI
);
DBMS_OUTPUT.put_line (Success:Associated);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (Error:- || SQLERRM);
END;
Appendix F
Whitepaper Oracle Web ADI 27
Appendix F
Sample code to embed accounting flexfield in downloaded excel document using API.
Begin
apps.BNE_INTEGRATOR_UTILS.CREATE_CCID_KFF(p_application_id => v_application_id
,p_interface_code => v_interface_code
,p_interface_col_name => P_DIST_CC
,p_num_flex_segs => 10
,p_group_name => ccid_acct2
,p_flex_application_id => 101
,p_flex_code => GL#
,p_flex_num => 50328
,p_vrule => NULL
,p_effective_date_col => date_col02
,p_prompt_above => Company Location Department Account
SubAccount Market Productline Intercompany LineofBusiness FutureUse
,p_prompt_left => Company Location Department Account
SubAccount Market Productline Intercompany LineofBusiness FutureUse
,p_user_hint => Company Location Department Account
SubAccount Market Productline Intercompany LineofBusiness FutureUse
,p_user_id => apps.fnd_global.user_id );
End;
Appendix G
Whitepaper Oracle Web ADI 28
Appendix G
Sample code to embed currency code LOV
Begin
apps.BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV (p_application_id => v_application_id,
p_interface_code => v_interface_code,
p_interface_col_name => p_currency_code,
p_id_col => CURRENCY_CODE,
p_mean_col => NULL,
p_desc_col => DESCRIPTION,
p_table => GL_CURRENCIES,
p_addl_w_c => CURRENCY_FLAG = Y,
p_window_caption => CURRENCY,
p_window_width => 400,
p_window_height => 300,
p_table_block_size => 10,
p_table_sort_order => NULL,
p_user_id => apps.fnd_global.user_id.user_id
);
End;

Appendix H
Whitepaper Oracle Web ADI 29
Appendix H
Create custom integrator using HR Integrator Setup
To define custom integrator, we have to download a document using HR Integrator Setup
integrator in Desktop Integrator responsibility.
Create HR Integrator Setup document
Navigation -> Desktop Integrator -> Create Document

In Create Document form, select HR Integrator Setup in integrators list and click Next button.

Select Excel 2003 option from Viewers drop-down and click Next to go to Layout form.

Select Content as None and click Next button
Finally, after selecting above options, Review page appears as below.
Appendix H
Whitepaper Oracle Web ADI 30

Review the page and click Create Document button. Now, an excel document will be created.
Fill HR integrator setup Excel document
Open the downloaded excel sheet. Wait till below pop-up appears saying Your document has been
created.

Close the pop-up window.

Fill the Excel sheet with below values:
Column name Value
Metadata Type
CREATE
Application Short Name
PER
Integrator User Name
XX:Upload AP Invoices
View Name

Form Name
GENERAL
API Package Name
XX_AP_INV_WEBADI_PKG
API Procedure Name
UPLOAD_INVOICES
Interface User Name
XX:Upload AP Invoices
Appendix H
Whitepaper Oracle Web ADI 31
Column name Value
Interface Parameter List Name
XX:Upload AP Invoices
API Type PROCEDURE
Upload Excel data:
Navigate to Addins -> Oracle -> Upload.
A new pop-up window appears with Upload option. Click Upload.


Above screenshot states that custom integrator is successfully created.
Define layout
Navigation -> Desktop Integrator -> Define Layout.
Select XX:Upload AP Invoices integrator which is created above from integrator list. And click Go
button.

Appendix H
Whitepaper Oracle Web ADI 32
List of existing layouts for the integrator will be tabled, if any. To create a layout, click Create button.

Create Layout page appears. Enter layout name Default. And select number of headers you wish
to display in excel sheet. In our case, it is 1, and click Next button.

The next screen in Create Layout is selection of fields, their placement, and default values.
In our case, all fields are mandatory to pass to our wrapper package. So, all fields are displayed
under Required Fields region.
If we give default value to any of our parameters, they appear as Optional fields.

Appendix H
Whitepaper Oracle Web ADI 33
Types of placements:
Placement types Description
Header Appears the field in Header section.
Line Appears the field in Line section.
Context Depends on context. If context is selected, it should have default value assigned.
Important defaulting types:
Defaulting
types Description
None No Default value.
Constant A constant value is passed as Default value.
SQL Select statement to default a value.
In this screen,
We order fields to display in layout by clicking Move Up and Move Down buttons.
Enable Read Only checkbox to make the field Read Only.
Change the size of fields.

Click Apply button to finish layout creation.
Appendix H
Whitepaper Oracle Web ADI 34
Define form function

Associate created custom integrator to form function created.
Assign Function to User Responsibility:
Go and add the function into the custom responsibility
Navigation-> Application Developer -> Application -> Menu -> Search for your menu where you want
to add this ADI Function.
Add, Prompt and Form function created and save. To check the availability of the function, navigate
to the responsibility where it is been added.
Click next and Create document and your custom integrator is available to user for uploading data.
Appendix I
Whitepaper Oracle Web ADI 35
Appendix I
Prerequsites
1. Excel settings:
As part of prerequisites, in Excel, macros have to be enabled. Follow below steps to do required
settings in excel application.
a. Select Excel option to enable macros.
Click File -> Options

Appendix I
Whitepaper Oracle Web ADI 36

b. Click on Trust Center -> Trust Center Settings button in Excel Options form.

c. Select Macro Settings -> Enable all macros and check the option Trust access to the VBA
Project object model in Trust Center form and save all your setting changes.

2. Browser settings:
Prior to accessing the Web ADI in user machine, below settings should be made.
1. Open Internet Explorer browser window, click on Tools menu.
2. When the Tools menu appears, click Internet Options at the bottom of the Tools menu.
3. Click on the security tab.
4. When the Security page appears, click the Internet icon in the Select a zone box and then
click the Custom Level button.
5. When the Security Settings dialog box appears, scroll down to Scripting on the menu.
6. Enable Allow status bar updates script. Select OK.
Appendix I
Whitepaper Oracle Web ADI 37
7. You may receive a Warning. Please select Yes.
8. Finally, click OK to close the Internet Options dialog box.
9. Close the browser window so that new settings can be used.
3. Profile option setup in application:
Check the value for profile option named BNE: Allow No Security Rule and set the value to Yes and
save the setup.
Contact
Whitepaper Oracle Web ADI 38
Contact
For more information about this paper, please contact:
Ajay Kumar Tadakamadala
DC Consultant
Deloitte U.S. India Offices
Road No. 2, Deloitte Drive,
Hitech City Layout,
Madhapur,
Hyderabad 500081
atadakamadala@deloitte.com




This publication contains general information only and is based on the experiences and research of Deloitte practitioners. Deloitte is not,
by means of this publication, rendering business, financial, investment, or other professional advice or services. This publication is not a
substitute for such professional advice or services, nor should it be used as a basis for any decision or action that may affect your
business. Before making any decision or taking any action that may affect your business, you should consult a qualified professional
advisor. Deloitte, its affiliates, and related entities shall not be responsible for any loss sustained by any person who relies on this
publication.
About Deloitte
Deloitte refers to one or more of Deloitte Touche Tohmatsu Limited, a UK private company limited by guarantee, and its network of
member firms, each of which is a legally separate and independent entity. Please see www.deloitte.com/about for a detailed description
of the legal structure of Deloitte Touche Tohmatsu Limited and its member firms. Please see www.deloitte.com/us/about for a detailed
description of the legal structure of Deloitte LLP and its subsidiaries. Certain services may not be available to attest clients under the
rules and regulations of public accounting.
Copyright 2013 Deloitte Development LLC. All rights reserved.
Member of Deloitte Touche Tohmatsu Limited