You are on page 1of 137

USER GUIDE

Oracle Corporation
Web ADI Integrator Developers
Guide




Author: Alex Drexel
Creation Date: April 18, 2002
Last Updated: May 3rd, 2005
Document Ref: 01
Version: 2.0



Approvals:
John Richardson
Brett Hooker
Copy Number _____



Document Control

Change Record
5
Date Author Version Change Reference

18-Apr-02 Alex Drexel 1 No Previous Document
24-Jun-02 Alex Drexel 1.1 Changes to include more info on Parameter UI and
PL/SQL
23-Aug-02 Alex Drexel 1.2 Added Expanded Cols and general edits.
19-Sept-02 Alex Drexel 1.3 Added Reporting Mode
4-Nov-02 Bernardine Rodgers 1.4 Updated API Definitions for 8.3
8-Nov-02 Alex Drexel 1.5 Removed References to Directory and other tables,
columns, and parameters not present in 8.3.
Updated Calling Web ADI.
10-Mar-04 Alex Drexel 1.6 Instructed Integrator developers to create their own
parameter definitions for upload parameters in
section 7.2.1. Noted the parameters in LOV
parameter lists that are optional in section 5.1.2.
23-Sep-04 Alex Drexel 1.7 Updates per bug 3901271. Added additional
information regarding Java validators and Function
security.
09-Mar-05 Alex Drexel 1.8 Added more detail to section Uploading Code
Combination Identifier For Key Flexfield Values

17-Mar-05 Alex Drexel 1.9 Updated section added in v1.8.
03-May-05 Alex Drexel 2.0 Updated the val obj class to use when defining key
flexfields.

Contributors

Name Position Contribution

Katherine Peet Product Analyst Definitions in Glossary


Document Reference
Author Document Name

David Groves Web ADI Parameters DLD
Component Parameters DLD
Web ADI PA
Download_DLD_CreateDoc
Web ADI Download Metadata DLD
TokenRedirectNoReview
Paul Cross Insert to API and Multi-Table Upload DLD
Metadata Importer DLD
Gordon Hooker Web ADI Download Stored SQL DLD
Mapping Template Page Flow DLD
Kathryn Dobinson Metadata Driven Upload Parameters DLD
Web ADI Download Passed SQL DLD
Alex Drexel Integrator Developers Guide

Company Confidential - For internal use only
ii





Reviewers

Name Position

John Richardson Group Manager


Distribution

Copy No. Name Location

1 Library Master Project Library Files On line
2
3
4



Company Confidential - For internal use only
iii



Contents
Document Control ..................................................................................................................ii
Glossary.................................................................................................................................... 6
1. Overview................................................................................................................... 9
1.1. Functionality ...................................................................................................... 9
1.2. Integrator Development ................................................................................... 9
2. Defining an Integrator ........................................................................................... 11
2.2 Associate Form Function(s) with Integrator ........................................................ 11
To Delete an Association .............................................................................................. 12
To Update an Association ............................................................................................ 12
3. Adding Interfaces ................................................................................................... 14
3.1. Creating a PL/SQL API Interface ................................................................. 14
3.2. Creating a Table Interface .............................................................................. 18
3.3. Uploading to Multiple Interface Tables or APIs......................................... 19
4. Updating Interface Columns/API Parameters .................................................. 20
4.1. Create Interface Columns............................................................................... 20
4.2. Interface Columns Concepts.......................................................................... 22
5. Creating Components ............................................................................................ 32
5.1. Creating Table Validated Components........................................................ 32
5.2. Creating JAVA Validated Components ....................................................... 35
SQL Java Class ............................................................................................................... 37
Validator Java Class ...................................................................................................... 40
Implementing a Group Validator Java Class............................................................. 44
Component Java Class .................................................................................................. 46
Implementing the Component Java Class.................................................................. 47
Metadata for Java Validation.............................................................................................. 51
BNE Parameter Definition Tables ............................................................................... 51
BNE Parameter List Tables........................................................................................... 52
BNE Parameter List Items Table.................................................................................. 53
BNE Component Tables................................................................................................ 53
BNE Interface Column(s) Tables ................................................................................. 54
6. Defining an Importer ............................................................................................. 57
6.1. Indicate Importer Type................................................................................... 57
6.2. Define Master Parameter List ........................................................................ 58
6.3. Enter Metadata for Steps in Master List....................................................... 60

Company Confidential - For internal use only
iv



7. Defining Upload Parameters ................................................................................ 79
7.1. Upload Parameters Screen............................................................................. 79
7.2. Create Upload Parameter List ....................................................................... 80
8. Creating Content .................................................................................................... 82
8.1. Stored SQL........................................................................................................ 82
8.2. Text File............................................................................................................. 84
8.3. Java.................................................................................................................... 86
9. Reporting Only Documents .................................................................................. 88
9.1. Reporting only with Data Entry Interfaces.................................................. 88
9.2. Reporting only Interfaces, Mappings and Layouts .................................... 88
10. Creating Layouts and Mappings.......................................................................... 90
10.1. Creating Layouts ............................................................................................. 90
10.2. Creating Mappings ......................................................................................... 94
11. Calling the Create Doc Page Flow........................................................................ 97
11.1. Available Parameters...................................................................................... 97
11.2. Sending Parameters to BneApplicaitonService........................................... 99
APPENDIX A Parameter UI........................................................................................... 103
Accessing Parameter UI.............................................................................................. 103
Defining Parameter Lists ............................................................................................ 103
Defining Parameter List Items ................................................................................... 103
Defining a Parameter Definition ............................................................................... 104
Associating a Parameter Definition to a Parameter................................................ 104
Testing Your Parameter List ...................................................................................... 104
APPENDIX B Shipping Your Integrator....................................................................... 106
1.2 Appendix C........................................................................................................... 108
Open and Closed Issues for this Deliverable...................................................................... 6
Open Issues....................................................................................................................... 6
Closed Issues .................................................................................................................... 6


Company Confidential - For internal use only
v

Glossary
Asynchronous Call
An asynchronous call occurs where the uploading of data to interface tables is a separate
process from importing interfaced table data to Oracle Applications (i.e. they dont happen at
the same time).
When an upload occurs, an import program is called and the request id is returned to the user.
Oracle Applications proceeds to run the import program in the background and it is up to the
user to manually check whether the import program was successful in its processing. This
means the submission of the upload and the completion of the import program are not
synchronized, hence the usage of the asynchronous terminology.
Client
Some software requiring a function to be performed by another piece of software (the Server).
Clients pass parameters to Servers
Content
This is the information that will be downloaded into the Viewer. Multiple Contents can be
defined for a single Content Class. The Content that is passed to or selected in the Create
Document page flow determines the Content Class that will be used to derive the Content data.
Content Column
A name defined in metadata to represent a column that exists in the Content. Users map the
Content Columns to interface columns/API parameters so that data is downloaded to the
appropriate fields in the document.
Content Class
This is the java code containing the business and processing rules that can be plugged into
the Web ADI Download architecture. This code processes the parameters that are passed to
Web ADI, to retrieve information from the selected Content.
Create Document Page Flow
This page flow consists of a set of Web ADI screens from which an end user can select from
several parameters to create a document on the client machine. The parameters that a user can
select include: Language, Viewer, Integrator, Layout, Content and Mapping. Additional
parameters may be required depending on the Content selected.
Document Creation Shortcut Settings
These settings are the parameters that are supplied to the Create Document page flow. These
parameters are passed to the Create Document page flow either when a user selects a
Document Creation Shortcut from the Documents page in the Create Document page flow or
when the Create Document page flow is called directly from an application or form. (Aside: the
Documents page the first page in the Create Document page flow but will not be displayed
until a Shortcut has been saved.)



Dynamic Parameter
A dynamic parameter is a parameter defined by metadata stored in the Web ADI repository,
but its value must be determined at run-time.
Integrator
An Integrator is a Web ADI term used to encapsulate all of the information required to move
data to/from a desktop application into Oracle Applications. An Integrator definition may
include information about open interface tables, validation, business rules, and data that can be
downloaded.
Integrator Developer
The Integrator Developer is a developer who defines the metadata required within Web ADI.
The metadata includes: the Integrator, table/view definitions, Layouts, Mappings, SQL
statements and parameters. The Integrator Developer will usually be a System Administrator
or a user with a more advanced understanding of Web ADI, and knowledge of the tables and
business rules associated with the product being integrated with.
Interface
Interface is a Web ADI term for the column definitions from a particular API or Interface
table/view to be used for uploading data into the database. Multiple Interfaces can be defined
for a single Integrator.
Language
This is the Language in which a document will be generated, and in which all interaction within
the document will be conducted.
Layout
A Layout tells Web ADI which columns will be displayed in the Desktop Application document
and how those columns will be displayed, including formatting. Web ADI provides a set of
screens that users and Integrator Developers can use to create their own Layouts. Integrator
Developers are able to provide Layouts as seed data.
Mapping
A Mapping is defined to link the columns from the Content to the columns in a table/API
Interface. For example, the columns in a SQL query that are downloaded into an MS Excel
spreadsheet are mapped to the columns in an open interface table into which the downloaded
information will be uploaded.
Parameter
A parameter is a name / value pair used to pass information between a client and a server. The
parameter may be known by a textural (string) name, or a position in a list. The parameter
value must have a data type, which one is known and understood by the client and server.
There is generally a description available for the parameter value that is displayed to the user.
Example: param name = bne:integrator, datatype = string, param value =
231:JOURNALS_11I with description Journals for Applications 11i.

Company Confidential - For internal use only
7



Server
Some software that does a job for a Client. Servers receive parameters from Clients.
Static Parameter
A static parameter is a parameter completely defined by metadata stored in the Web ADI
repository. A static parameter can be read and a value obtained immediately either by a default
value stored against it, or a specific stored value.
Synchronous Call
A synchronous call occurs where the uploading of data to interface tables and import to Oracle
Applications occur in one process. A synchronous call entails submitting the import program,
waiting for the import program to finish running, determining the success or failure of the
import and returning these details to the user. In this scenario, the user will not have to
manually check whether the import program completed successfully.
Viewer
A Viewer is a Web ADI term for the desktop application in which a document will be
generated.



Company Confidential - For internal use only
8



1. Overview
1.1. Functionality
Web ADI allows Oracle Applications developers to rapidly create desktop interfaces to their own Applications.
They can bring Oracle Application data and business rules to a desktop application such as Excel to give users
more flexibility in entering, modifying and modeling data.
By updating metadata, Integrator Developers can have Web ADI:
Create a formatted document on the desktop containing application specific fields for data entry.
Import data from the database or a text file to a document.
Provide List of Values within a document.
Upload data from the desktop document to Oracle Applications.
Validate fields in the document and provide instant feedback (error/confirmation messages) during the
upload process.
All of this is done is done over the Web; no client install is necessary. Users need only IE and a viewer installed
on their PCs. The viewer currently supported is Excel.
1.2. Integrator Development
The above functionality is applied to your application through the development of an Integrator. Creating an
Integrator involves updating Web ADI tables. This metadata is used By Web ADI to capture the business rules of
your product so that they may be enforced on the desktop. Most of the metadata is created through PL/SQL
packages and HTML UI. There may be cases when tables are updated through SQL Plus.
To enable upload, Integrator Developers must identify the tables or APIs a document will point to. They then
describe the columns/parameters of those tables/APIs and how they should be validated. Integrator developers
may also describe the program they use to import data from interface tables to application base tables. Web ADI
will look at this metadata to automatically call the import program after it has successfully uploaded data to the
interface. Parameters shown to users that govern the upload process can also be defined. In addition, users may
want to download information into the document, edit then upload to Oracle Applications. To enable download,
metadata on what will be downloaded is entered. Information on how the downloaded data is mapped to
columns in the document is also created. Some Integrators my only allow users to download information to a
document for analysis, and not provide upload.
Developing an Integrator involves the following steps:
Define an Integrator
Define Interfaces
Define Interface Columns
Create Components
Define Importer

Company Confidential - For internal use only
9



Defining Upload Parameters Defining Upload Parameters
Creating Content(s) Creating Content(s)
Creating Layouts and Mappings Creating Layouts and Mappings
This document describes these steps in detail and provides information on how Web ADI can be invoked. This document describes these steps in detail and provides information on how Web ADI can be invoked.








Note: The Apache HTTP listener must be restarted when a record is
updated through SQL Plus if the change is to be viewed in the
application.


Company Confidential - For internal use only
10



2. Defining an Integrator
A PL/SQL script is available for Integrator Developers to quickly create the core metadata of an Integrator. This
includes a data-source type, and an Integrator Definition.
2.1 Create Integrator
Call the following PL/SQL package to create the core metadata for your Integrator:
BNE_INTEGRATOR_UTILS.CREATE_INTEGRATOR
(P_APPLICATION_ID IN NUMBER,
P_OBJECT_CODE IN VARCHAR2,
P_INTEGRATOR_USER_NAME IN VARCHAR2,
P_LANGUAGE IN VARCHAR2,
P_SOURCE_LANGUAGE IN VARCHAR2,
P_USER_ID IN NUMBER,
P_INTEGRATOR_CODE OUT VARCHAR2);

Parameter Description

P_APPLICATION_ID The identifier for an application. An example would be 101 for General
Ledger
P_OBJECT_CODE A string of 20 chars or less. The only valid characters are: Uppercase
'A'..'Z', '0'..'9' and '_'. This string must be unique within the application
ID. The API will use this code to generate the P_INTEGRATOR_CODE.
P_INTEGRATOR_CODE = P_OBJECT_CODE + _INTG
P_INTEGRATOR_USER_NAME The Integrator name displayed to users on the Integrator page in the
Create Document Page Flow. The standard format for Integrator name is
<Product Name> - <Module/Function Name>. An example would be
General Ledger - Journals.
P_LANGUAGE The language the User Integrator Name will be stored against
P_SOURCE_LANGUAGE The Language that the User Integrator Name will be translated from
P_USER_ID Oracle Applications user ID
P_INTEGRATOR_CODE This is generated by the API. It uniquely identifies your Integrator within
your application and can be used when calling the Web ADI service.

2.2 Associate Form Function(s) with Integrator
You must associate at least one form function with your integrator. Web ADI will check to see if a users current
responsibility has access to any one of the associated form functions before a document is created, an upload is
conducted, or an LOV is rendered. Associated form functions will also be checked before a user can define a layout
or a mapping for an Integrator. Do not use the Create Document form function; it should be a form function your
team ships.

Call the following Package:

BNE_SECURITY_UTILS_PKG.ADD_OBJECT_RULES

( P_APPLICATION_ID in NUMBER,
P_OBJECT_CODE in VARCHAR2,
P_OBJECT_TYPE in VARCHAR2,
P_SECURITY_CODE in VARCHAR2,
P_SECURITY_TYPE in VARCHAR2,
P_SECURITY_VALUE in VARCHAR2,
P_USER_ID in NUMBER);

Parameter Description

Company Confidential - For internal use only
11



Parameter Description
P_APPLICATION_ID Application ID of your
product
P_OBJECT_CODE Enter the code of the
Integrator you want to apply
the security rule to.
P_OBJECT_TYPE Pass INTEGRATOR
P_SECURITY_CODE Security Code uniquely
identifies the security rule.
P_SECURITY_TYPE Enter FUNCTION
P_SECURITY_VALUE A comma separated list of
functions that grant access to
your integrator. These form
functions must exist on your
instance or an error will be
received when calling the
package.
P_USER_ID Updates CREATED_BY and
LAST_UPDATED_BY
Columns. The value for this
parameter should be the seed
user. When extracted to an
LDT file, this value should
translate to the Oracle user.

To Delete an Association
Call the following Package:

BNE_SECURITY_UTILS_PKG.DELETE_OBJECT_RULES

( P_OBJECT_APP_ID in NUMBER,
P_OBJECT_CODE in VARCHAR2,
P_OBJECT_TYPE in VARCHAR2,
P_SECURITY_APP_ID in NUMBER,
P_SECURITY_CODE in VARCHAR2);
Parameter Description
P_OBJECT_APP_ID Application ID of your
product
P_OBJECT_CODE Enter the code of the
Integrator that has the
security rule you you want to
delete.
P_OBJECT_TYPE Pass INTEGRATOR
P_SECURITY_APP_ID Application ID of your
product
P_SECURITY_CODE Pass the security rule you
want to delete.

To Update an Association
Call the following Package:

BNE_SECURITY_UTILS_PKG.UPDATE_OBJECT_RULES

( P_OBJECT_APP_ID in NUMBER,
P_OBJECT_CODE in VARCHAR2,
P_OBJECT_TYPE in VARCHAR2,
P_SECURITY_APP_ID in NUMBER,

Company Confidential - For internal use only
12



P_SECURITY_CODE in VARCHAR2,
P_SECURITY_TYPE in VARCHAR2,
P_SECURITY_VALUE in VARCHAR2,
P_USER_ID in NUMBER);

Parameter Description
P_OBJECT_APP_ID Application ID of your
product
P_OBJECT_CODE Enter the code of the
Integrator you want to apply
the security rule to.
P_OBJECT_TYPE Pass INTEGRATOR
P_SECURITY_APP_ID Application ID of your
product
P_SECURITY_CODE Security Code uniquely
identifies the security rule.
P_SECURITY_TYPE Enter FUNCTION
P_SECURITY_VALUE A comma separated list of
functions that grant access to
your integrator. These forrm
funcitons must exist on your
instance or an error will be
received when calling the
package..
P_USER_ID Updates CREATED_BY and
LAST_UPDATED_BY
Columns. The value for this
parameter should be the seed
user. When extracted to an
LDT file, this value should
translate to the Oracle user.






Company Confidential - For internal use only
13



3. Adding Interfaces
A PL/SQL API is provided to create Interfaces for an Integrator. An Interface identifies a database table or PL/SQL
API that you will be populating with Web ADI. More than one Interface can be defined for an Integrator; the API
must be run each time an Interface is to be added.
It is possible to create an Interface that does not provide upload, but only allows users to download data into the
document for reporting purposes. If this is what is required, skip to section 8 and create a Content for your
Integrator, then run the API described in section 9.2.
3.1. Creating a PL/SQL API Interface
Creating an Interface for an API involves calling an API that will generate a parameter list. This list is then
updated to identify all the parameters in the API and their Attributes. Lastly, the parameters that will be
updates from the desktop will be related to records created in BNE_INTERFACE_COLS_B; this will enable
users to create layouts that include the API parameters defined in the list.
3.1.1. Run the following PL/SQL package to create an Interface for a PL/SQL API:
BNE_INTEGRATOR_UTILS.CREATE_INTERFACE_FOR_API
(P_APPLICATION_ID IN NUMBER,
P_OBJECT_CODE IN VARCHAR2,
P_INTEGRATOR_CODE IN VARCHAR2,
P_API_PACKAGE_NAME IN VARCHAR2,
P_API_PROCEDURE_NAME IN VARCHAR2,
P_INTERFACE_USER_NAME IN VARCHAR2,
P_PARAM_LIST_NAME IN VARCHAR2,
P_API_TYPE IN VARCHAR2,
P_API_RETURN_TYPE IN VARCHAR2 DEFAULT NULL,
P_UPLOAD_TYPE IN NUMBER,
P_LANGUAGE IN VARCHAR2,
P_SOURCE_LANG IN VARCHAR2,
P_USER_ID IN NUMBER,
P_PARAM_LIST_CODE OUT VARCHAR2,
P_INTERFACE_CODE OUT VARCHAR2);

Parameter Description

P_APPLICATION_ID The identifier for an application. An example would be 101 for General
Ledger
P_OBJECT_CODE A string of 20 chars or less. The only valid characters are: Uppercase
'A'..'Z', '0'..'9' and '_'. This string must be unique within the application
ID.
P_API_PACKAGE_NAME The package name that contains your PL/SQL API procedure.
P_LANGUAGE The language the User Integrator Name will be stored against
P_SOURCE_LANGUAGE The Language that the User Integrator Name will be translated from
P_USER_ID Oracle Applications user ID
P_INTEGRATOR_CODE
Set to the Integrator Code that was created in section 2.
Query BNE_INTEGRATORS_TL to look up the code of any
Integrator.


P_API_PROCEDURE_NAME
The procedure name of your PL/SQL API.
P_INTERFACE_USER_NAME
The user name for the Interface, but is not seen in the UI at
this time

Company Confidential - For internal use only
14



Parameter Description

P_PARAM_LIST_NAME
Your Interface to an API will require an associated list of
parameters. Set to be the name of this parameter list. This
value will not be seen by users.
Set P_API_TYPE
PROCEDURE or FUNCTION
P_API_RETURN_TYPE
The Function Return Data Type.
P_UPLOAD_TYPE
Set to 0, 1 or 2. 0 = Custom Upload Type (uses
BNE_INTERFACES_B.UPLOAD_OBJ_NAME to obtain
class name to load). 1= upload to Table. 2 = Upload to
PL/SQL API
P_LANGUAGE
The language your Interface name will be stored against
P_SOURCE_LANGUAGE
The language the Interface name will be translated from
Set P_USER_ID
ID to a valid Oracle Applications user ID


3.1.2. Identify Attributes of the PL/SQL API
3.1.2.1. Look up the PARAM_LIST_CODE created in the previous step in the Parameter UI (See
Appendix A for more information on Parameter UI).
3.1.2.2. Press the Edit button next to the Attributes label in the Define Parameter list screen. Enter the
details about the function name and return type for the PL/SQL function. When you are
finished, press Apply and return to the Define Parameter List screen.
Field Name Field Description
ATTRIBUTE1 Type of API call. (FUNCTION or PROCEDURE.)
ATTRIBUTE2 Name of PL/SQL function or procedure including the
package name.
ATTRIBUTE3 Function Return Data Type. This attribute will be
ignored if the API is a PROCEDURE
ATTRIBUTE4 Whether the return value is used to retrieve the error
messages (Y/N). This attribute will be ignored if the API
is a PROCEDURE.
ATTRIBUTE5 Perform a call to FND_MESSAGES. (Y/N). This attribute
is used for a FUNCTION and PROCEDURE
Example :




Company Confidential - For internal use only
15



3.1.3. Use the Add Another Row button to identify all the parameters that exist in your API to the
parameter list. A parameter must be added to the list for every PL/SQL function/parameter
declaration and PL/SQL parameter for the function call. In addition, the order in which these
parameters are defined in the parameter list must be the exact order in which they are defined in the
PL/SQL API


3.1.3.1. After pressing Add Another Row, you will be presented with the Define Parameter
een. Use this screen to enter the details for each parameter you add the list.

Scr
Field Name Field Description
NAME Name of parameter. This value needs to be
the exact name of the parameter in your API.
This value is not translatable.
Data Type This is the data Type for the default value for
this parameter.
Value Default value for the parameter if known.
Description Description of parameter. E.g. Journals for
Applications 11i. This is in the language of
the user. Note, a description must be entered
if a default value is defined.
Formula An environment variable or similar that the
default value can be derived from. E.g.
$env$.userid 1318 as a number if
DATATYPE=NUMBER


Company Confidential - For internal use only
16



Example:


3.1.3.2. Identify attributes for each parameter you define in the list. User the edit button next to the
Attributes label (see above) to access the attributes for each parameter you define. If you have
default values defined within your API definition for a particular parameter, these default values




must also be set in Attribute 5. For example, if you have NULL being the default value for row_id
in your API definition, you must also enter NULL in Attribute 5 when identifying this parameter
in the parameter list.
Field Name Filed Description
ATTRIBUTE1 PL/SQL parameter name
ATTRIBUTE2 PL/SQL parameter data type.
ATTRIBUTE3 PL/SQL parameter access. (IN / OUT / INOUT)
ATTRIBUTE4 Used for returning error messages. (Y/N)
ATTRIBUTE5 Default value for the PL/SQL parameter. You
must use single quotes around any string that is to
be used as a default value (i.e. FULL)
ATTRIBUTE6 Size of the variable.


Example:


Company Confidential - For internal use only
17






3 in eter you wish to pass
values to from a document on the desktop. Relate a parameter identified in the parameter list with a
record in BNE_INTERFACE_COLS_B by entering the parameters sequence number in
BNE_INTERFACE_COLS_B.UPLOAD_PARAM_LIST_ITEM_NUM. See Updating Interface
3.2. C
You can upload amounts to a table from a desktop document such as Excel. Fields in the document
n the document is uploaded.

3.2
BNE_INTE

P_OBJECT_CODE
P_INTEGRATOR_CODE IN VARCHAR2,
P_INTERFACE_TABLE_NAME IN VARCHAR2,
P_INTERFACE_USER_NAME IN VARCHAR2,
P_LANGUAGE IN VARCHAR2,
P_SOURCE_LANG IN VARCHAR2,
P_USER_ID IN NUMBER,
P_INTERFACE_CODE OUT NOCOPY VARCHAR2);




.1.4. Create records BNE_INTERFACE_COLS_B for every PL/SQL API param
Columns/API Parameters for more information on creating records in this table.
reating a Table Interface
will represent columns in a table that will be updated whe
.1. Run the following PL/SQL API to create a Table Interface:

GRATOR_UTILS. CREATE_INTERFACE_FOR_TABLE
(P_APPLICATION_ID IN NUMBER,
IN VARCHAR2,
Parameter Description

P_APPLICATION_ID The identifier for an application. An example would be 101 for General
Ledger
P_OBJECT_CODE A string of 20 chars or less. The only valid characters are: Uppercase
'A'..'Z', '0'..'9' and '_'. This string must be unique within the application
ID. This string will be used to generate P_INTERFACE_CODE.
P_INTERFACE_CODE = P_OBJECT_CODE + _INTF.
P_INTEGRATOR_CODE Set to the Integrator code the Interface will be defined under
P_LANGUAGE The language the User Integrator Name will be stored against
P_SOURCE_LANGUAGE The Language that the User Integrator Name will be translated from
P_USER_ID Oracle Applications user ID
P_INTERFACE_CODE This is generated by the API. It uniquely identifies your Integrator within
your application and can be used when calling the Web ADI service.

P_INTERFACE_TABLE_NAME the name of the table you will be updating
P_INTERFACE_USER_NAME is the user name for your interface. Currently, this is not seen by users.


Company Confidential - For internal use only
18




every column in your table. Not the
T ore than one Interface table or API, you simply define more than one
ill
erface is updated when users upload their documents. This will be useful when uploading
3.2.2. Create records in BNE_INTERFACE_COLS_B for
INTERFACE_CODE created in 3.2.1. This will be needed to create your interface columns. See
Updating Interface Columns/API Parameters for more information on this step.
3.3. Uploading to Multiple Interface Tables or APIs
o define layouts that upload to m
Interface for an Integrator. The list of fields a user has to choose from when defining their layouts w
contain all of the Interfaces you have defined. After you have defined your Interfaces, update
BNE_INTERFACES.UPLOAD_ORDER with a numeric value for each Interface to indicate the order in
which each Int
to APIs since APIs must often be called in a particular order.

Company Confidential - For internal use only
19



4. Updating Interface Columns/API Parameters
The columns/para data described in this
section te and
list of values.
must be en nterface. This
ion is stored o enter identify
C ace column
metadata.
meters of the Interface tables/APIs must be identified in metadata. The meta
facilita s the core Web ADI services including upload, validation, defining Layouts, defining Mappings,
4.1. Create Interface Columns
Metadata tered for evey API Parameter or table column that exists in your I
in BNE_ITNERFACE_COLS_B (TL). informat
your columns.
Follow the instructions below t
4.1.1. An Interface olumns Integrator is available for you to quickly create/edit interf


4.1.1.1. Y e following script if you do not see a Web ADI Interface Columns
Integrator
4.1.1.2. T Create Document Page flow
and select layout. The APIs you
ou must run th
on the Integrator page of the Create Document Page flow.
update bne_integrators_b
set enabled_flag = 'Y'
where application_id = 231
and integrator_code = 'INTERFACE_COLS';
o quickly create interface columns using Excel, enter the
Web ADI Interface Columns Integrator and the All Columns

Company Confidential - For internal use only
20



called in the previous section may have already created many of these records for you. If you
want to download records already created for your Interface, select Interface Columns for the
ntent an 3. Records will be
downloaded into Excel, where they can be changed/created and uploaded.
a lis s. * = Required
Co d enter the Interface Code you created in the previous section
4.1.2. Below is t of fields that will appear in the spreadsheet and their description
Column (Field) Name Description

APPLICATION_ID The identifier for the application.
INTERFACE_CODE* . Select INTERFACE_CODE, INTERFACE_NAME Object Code of the Interface
from BNE_INTERFACES_B to get this value.
SEQUENCE_NUM Unique ID for every record that is assigned to the same INTERFACE_CODE. So
you could have the same SEQUENCE_NUM for two records in this table, but they
would have to be assigned to different INTERFACE_CODEs.
INTERFACE_COL_TYPE* (Type)
the column is an alias that can exist in the layout but is not an actual
1 indicates that this column/parameter exists in the interface table/API. 2
indicates that
column in the interface table.
INTERFACE_COL_NAME* be updated. Interface
(Name)
Name of the interface table column or API Parameter to
table columns MUST BE ENTERED IN UPPERCASE.
ENABLED* Y/N field indicating if this interface column/API parameter will be updated or
included in a Web ADI Layout.
UPLOAD_PARAM_LIST_ITEM_N
UM
Identifier of parameters for a PL/SQL API upload. Match this value with the
value of SEQ_NUM in BNE_PARAMETER_LIST_ITEMS to identify the parameter
being uploaded to.
REQUIRED_FLAG (Required) Y/N field. A Y value will force this column/parameter to be included in all
layouts for an Integrator. Users will be required to enter a value for this
he
Y.
n when defining new
column/parameter in the document. Columns that cannot be set to NULL in t
database and parameter values that are required should have this field set to
A N value will allow a User to optionally select this colum
layouts for an Integrator. All columns/parameters with the ENABLED field set
to N should have a NULL value in this column.
DISPLAY_FLAG (Display) n/parameter will be displayed in
in
e user. This configuration can be
ve all sheets pass a hidden default
Y/N field determines whether or not the colum
the layout. If NO, the user will not be able to select this column to be included
the layout. If NO and REQUIRED_FLAG = YES, then the column/parameter will
be included in the sheet but wont be seen by th
ha used with the DEFAULT_VALUE column to
value.
FIELD_SIZE (Size) The size of the column in the interface table or character length for a parameter.
Web ADI uses this value to validate data in the document.
DEFAULT_TYPE LUE. Valid values for this field are
uses
ENVIRONMENT Indicates an environmental variable defined in
DEFAULT_VALUE . SQL indicates a SQL statement exists in DEFAULT_VALUE
ermine the value to be used for this field during upload.
efault the value from another column. Default values are
not automatically inserted into the document when it is created, they are derived
at upload time.
Indicates the form of the DEFAULT_VA
SQL, ENVIRONMENT, CONSTANT, and TABLELOOKUP. CONSTANT
the actual value in DEFAULT_VALUE for this field upon upload.
that will be used to det
TABLELOOKUP will d
DEFAUL E ield when it uploaded. This value will not be
automatically inserted into the document when it is created, but will be used for
T_VALU Default value to be used for the f
upload if no value exists for it in the document; i.e., The value in the document
will be uploaded if one exists, and the default value will be ignored.
SEGMENT_NUMBER Indicate the position within the group.
GROUP_ arameter is assigned to NAME Indicates the group the column/p
OA_FLEX_CODE (Flex Code) Flexfield structure identifier.
OA_CON a
spreadsheet.
CAT_FLEX (Concat Flex) Concatenates the value entered for this column/parameter into one cell in
READ_ONLY value and it is placed in the context Y/N. If YES, then the user cant change this
section of the document.
VAL_TYPE (Validat ESCFLEX,
JAVA, KEYFLEX,
KEYFLEXSEG, and TABLE. This column is left null if no validation other than
validating the DATA_TYPE/FIELD_SIZE /NOT_NULL_FLAG is to be done.
ion Type) Indicates the Validation Type. Valid values are D
DESCFLEXCONTEXT, DESCFLEXSEG, GROUP,

Company Confidential - For internal use only
21



Column (Field) Name Description

VAL_ID_COL (Val id ID) Column to query when Web ADI constructs its SQL Query. This will be the
actual value inserted into the Interface Table
VAL_MEAN_COL (Vali
Meaning)
VAL_ID_COL. These
n in the worksheet.
d This is the column that contains the user value for values in
are the values shown in the LOV show
VAL_DESC_COL (Valid c for values in VAL_ID_COL. These values
are shown in the description section of the LOV.
Des ) Column that contains the description
VAL_OBJ_NAME (Valid je e values in the sheet. If VALTYPE =
TABLE, then the name of the table to query is placed in this column (e.g.
TYPE =JAVA, then specify the Java class to call when
.
ors.BneAccountingFlexValidator).
Ob ct) Table or Java class that is called to validat
FND_LOOKUPS). If VAL
validating the column (e.g
oracle.apps.bne.integrator.validat
VAL_ADDL_W_C (Valid h to add to a Table Validated column. W ere) Enter an additional Where Clause
DATA_TYPE Three values can be entered in this column. 1 = value in database/API must be a
API must be varchar; 3 = value in the
DI will use this value to validate data in the
number; 2 = value in the database/
database/API must be a date. Web A
document.
NOT_NU b
ADI uses this value to validate data in the document..
LL_FLAG Indicates that column in the DB or parameter for the API cannot be null. We
VAL_COMPO N
(Valid Component)
NE T_APP_ID

Application ID of component to be called in BNE_COMPONENTS
VAL_COMPONEN retrieve T_CODE Name of Component from BNE_COMPONENTS that will be called to
the LOV for this field. TABLE and JAVA VAL_TYPES require this field to have a
value if an LOV is to be retrieved. See Creating Components for more details.
SUMMARY_FLAG Indicates if value for this column/parameter can be summed up in the document.
MAPPING_EN L AB ED_FLAG* Indicates whether a column/parameter can be included in a Mapping so that it
can be mapped to a content column. (Y/N)
Prompt Left
r in the document and if the
column is to be displayed in the Mapping and Layout UI.
Column header for field if in the Header region of the document. This value
must be entered if the column header is to appea
Prompt A region of the document. This value must
be entered if the column header is to appear in the document and if the column is
to be displayed in the Mapping and Layout UI.
bove Column header for field if in the Lines
U ext Text to appear in the hint section for the column. This is the area between the
ells and the Header.
ser Hint T
data entry c
L hat will be entered in the TL Table anguage Language t
S GE OURCE_LANGUA Language prompts will be translated from
OA lex Num _FLEX_NUM (F ber) Flexfield structure identifier.
OA_FLEX_APPLICATION
(Flex Application)
_ID Flexfield structure identifier.
DISPLAY_ORDER Default order in which the columns/parameters are displayed in the document
E RY lumns. This is the query that will be run to return the number of
periods to be displayed in the worksheet.
XPANDED_SQL_QUE For expanded co
( ID that will be used to populate CREATED_BY and LAST_UPDATED_BY User ID)

4.2. Interface Columns Concepts
4.2.1. Table Validation/ LOV Retrieval
You can have Web ADI run a simple SQL statement to perform validation for a field during upload. Thi
information can also be used to return a list of values within the document. Indicate a field will use Tabl
s
e
VAL_OBJ_NAME: Enter the Table to be queried.
Validation by entering TABLE in VAL_TYPE.
Use the following columns to use a SQL statement for validation during upload:
VAL_ID_COL: Enter the column name for the query.

Company Confidential - For internal use only
22



e
RESPID
$.USERID
o Session ID: $ENV$.SESSIONID
o Application ID: $ENV$. APPID
Use these columns if you want to provide LOVs that use the above SQL statement:
M ID ca w com
VAL_MEAN_COL (optional) alues in th o users in the LOV.
ese me g values will be cum t; ADI will translate th
The following are example values for these columns:
VAL_ADDL_WC: Enter an additional where clause. Tokens can be used when forming the wher
clause for your query:
o Profile Options: $PROFILES$.[Profile Option Name]
o Responsibility ID: $ENV$.
o Oracle User ID: $ENV
o Language: $ENV$.LANG
VAL_COMPONENT_CODE: Code of the component (from BNE_COMPONENTS_B) that will be
used to retrieve the LOV. See Creating Components for more details.
VAL_CO PONENT_APP_ : Appli tion ID that as used to define the ponent.
: If entered, v is column will be displayed t
Th
corresponding ID values during the upload process.
anin entered into the do en em to their
Column Value

VAL_OBJ_NAME FND_CURRENCIES
VAL_ID_COL CURRENCY_CODE
VAL_ADDL_WC ENABLED_FLAG = 'Y' AND CURRENCY_FLAG = 'Y' AND
TRUNC(NVL(START_DATE_ACTIVE, SYSDATE)) <= TRUNC(SYSDATE) AND
TRUNC(NVL(END_DATE_ACTIVE, SYSDATE)) >= TRUNC(SYSDATE) OR
CURRENCY_CODE = 'STAT'

VAL_
CO
COMPONENT_
DE
OA_CURRENCY_CODE
VA
AP
L_COMPONENT_
PID
231

io 4.3. Java Validat n/LOV Retrieval
This type of validation/LOV retrieval is u d ring m re complex queries ag ase.
cant simpl e defined in the as ble Va ation. The Web ADI r
creates these Java classes. Luckily, the Web ADI development team has created classes tha d as
p deve uickly crea n reat g Components for m
Indicate a field will use Java Validation by entering JAVA in VAL_TYPE. Enter the class name to be used for
sed for fiel s requi o ainst the datab
Static SQL y b repository in Ta lid Integrator Develope
t can be use
templates to hel lopers q te their ow . See C in ore information.
validation during the upload process in VAL_OBJ_NAME. If a LOV is to be provided, enter the key to the
Component that will be used to retrieve the LOV in VAL_COMPONENT_CODE.
4.4. Group Validation
Is validation on one field in your document dependent on the value of another? Do you have several fields that
are validated the same way? If so, Group Validation is the answer. It is used to validate values from different

Company Confidential - For internal use only
23



olves values in different columns being dependent on one
al fields is run. If one of the records has a
different he field in addition to the group
vali . Ste
Ident t
Creat p
by inserti
Assign the dependent fields and the parent to the same group.
Ent the parents VAL_OBJECT_NAME column.
A simple example f
Journals Integrator (G r. An
example of one bu in
olves values in different columns being dependent on one
al fields is run. If one of the records has a
different he field in addition to the group
vali . Ste
Ident t
Creat p
by inserti
Assign the dependent fields and the parent to the same group.
Ent the parents VAL_OBJECT_NAME column.
A simple example f
Journals Integrator (G r. An
example of one bu in
columns at once. This is done when validation inv columns at once. This is done when validation inv
another. It is also done to pool segments having the same validation under a parent whose record defines how
validation will be performed for each, rather than entering validation information for all the child records.
However, when Group Validation is complete, validation on individu
another. It is also done to pool segments having the same validation under a parent whose record defines how
validation will be performed for each, rather than entering validation information for all the child records.
However, when Group Validation is complete, validation on individu
VAL_OBJ_NAME, that piece of validation code will be run for t
dation ps to set up Group Validation:
VAL_OBJ_NAME, that piece of validation code will be run for t
dation ps to set up Group Validation:
ify he dependent fields. ify he dependent fields.
e a arent record. It does not appear in the sheet, nor is uploaded. Identify the field as a parent
ng GROUP for VAL_TYPE.
e a arent record. It does not appear in the sheet, nor is uploaded. Identify the field as a parent
ng GROUP for VAL_TYPE.
er the Java class to perform the group validation in er the Java class to perform the group validation in
o an instance to use group validation is the entered debit and credit columns in the GL
L_INTERFACE table). Validation on each field is dependent on the value in the othe
o an instance to use group validation is the entered debit and credit columns in the GL
L_INTERFACE table). Validation on each field is dependent on the value in the othe
s ess rule is that the values in ENTERED_DR and ENTERED_CR must not both be null. s ess rule is that the values in ENTERED_DR and ENTERED_CR must not both be null.
INTERFACE_COL_NAME DISPLAYED_FLAG GROUP VAL_TYPE INTERFACE_COL_TYPE VAL_OBJ_NAME

ENTERED_DR Y ENTERED 1
ENTERED_CR Y ENTERED 1
ENTERED_PARENT oracle.apps.bne.validat
ors.enterDebitCreditval
N ENTERED GROUP 2
idator
A parent field must b ation. ENTERED_PARENT is identified as the
parent of the group by inserting GROUP for VAL_TYPE. It does not exist in the interface table, nor will it
appear in the she o oup
Validation is assigned to it in VAL_OBJECT_NAME. All three fields are assigned to the ENTERED group.


An example where Group tion done for individual members of the
group is Reference7 and Reference 8 (Reverse Journal, Reversal Period) in the GL Journals Integrator. Group
validation is used to verif e7 is Y. In addition to this check,
REFERENCE7 TABLE validated and REFERENCE8 is JAVA validated.
e created to capture values for group valid
et f r editing. It merely acts as a placeholder for validation; the Java class to perform the Gr
Note: Remember, validation in addition to them being validated as part of a
group.
can be run on individual columns
Validation is used in conjunction with valida
y that a period is entered when Referenc
INTERFACE_COL_NAME DISPLAYED_FLAG GROUP VAL_TYPE INTERFACE_COL_TYPE VAL_OBJ_NAME

REFERENCE7 Y REVERSAL TABLE 1 FND_LOOKUPS
REFERENCE8
iodvalidator
Y REVERSAL JAVA 1 apps.bne.validators.per
REVERSAL_PARENT N REVERSAL GROUP 2 apps.bne.validators.rev
tableformattingvalidato
r
Just st example, a parent is created and assigned to a group with the dependent fields. This field will
be displayed to Java class t e group validation is assigned to
V M ditio Gro d N T ted
FND_LOOKUPS (VAL_ID_COL and VAL_ADDL_W
d with ervalida
as in the la
not be uploaded, nor will it
the parent in
against
users. The
n to being
o perform t
up Validate
C not shown). REFERENCE8 is being JAVA
h
, REFERE AL_OBJ_NA E. In ad CE7 is being ABLE valida
validate the p tor class.

Company Confidential - For internal use only
24



4.5. Key Flexfield Validation/LOV Retrieval
Web ADI supports List of Values and the validation of Key Flexfields. Group Validation is used to accomplish
w g is done to y F alid
4.5.1. Enter records for the Key Flexfield Segments.
Indicate Key Flexfield segments by entering KEYFLEXSEG in VAL_TYPE.
ist in the Table/API. They are not
Assign the segments to a group.

his field will be selected in the mapping UI when the user

he
in OA_FLEX_CODE.
oracle.apps.bne.integrator.component.BneOAFlexComponent
Enter OA_FLEX for VAL_COMPONENT_CODE (not shown in example below). This
value is required to enable List of values for the Key Flexfield
Enter your product ID for VAL_COMPONENT_APP_ID.
Example:
this. The follo in enable Ke lexfield v ation/LOV:
These fields are not displayed in the spreadsheet but ex
displayed because Web ADI does not know what KFF segments from the interface table to
display when creating the document.
4.5.2. Create a parent field for the Key Flexfield group.
Set INTERFACE_COL_TYPE = 2 since this field does not exist in the interface table.
Set DISPLAY_FLAG = Y since t
wants the key flexfield to be included in the worksheet.
Add this field to the group containing the segment fields.
Enter KEYFLEX for VAL_TYPE to identify it as the parent.
Enter oracle.apps.bne.integrator.validators.BneKFFValidator in VAL_OBJ_NAME. This is t
class that will validate the Key Flexfield.
Enter the code that is used to retrieve the Key Flexfield structure
Enter N in OA_CONCAT_FLEX. The segments for Key Flexfields are kept in separate
columns in the document.
Insert Record into BNE_COMPONENTS_B:
1. APPLICATION_ID: Your application ID
2. COMPONENT_CODE: OA_FLEX
3. COMPONENT_JAVA_CLASS:
INTERFACE_COL
_NAME
DI LA SP YED_
FLAG
GROUP VAL_TYPE INTERFACE
_COL_TYPE
OA_FLEX
_CODE
OA_CONCAT_
FLEX
VAL_OBJ_NA
ME

SEGMENT1 N ACCOUNT KEYFLEXSEG 1
SEGMENT2 N ACCOUNT KEYFLEXSEG 1
SEGME NT3 N ACCOUNT KEYFLEXSEG 1

Company Confidential - For internal use only
25



INTERFACE_COL
_NAME
DI LA SP YED_
FLAG
GROUP VAL_TYPE INTERFACE OA_FLEX OA_CONCAT_ VAL_OBJ_NA
_COL_TYPE _CODE FLEX ME

ACCOUNT_FLEX_
FIELD
Y oracle.apps.bne.v
alidators.BneKFF

ACCOUNT KEYFLEX 2 GL# N
Validator

4.6. Uploading Code Combination Identifier For Key Flexfield Values
There may be a case where you want to display Key Flexfield values to user within the worksheet, but upload the
code Combination Identifier (CCID) that represents the Key Flexfield values to a single column in the interface
table.
.6.1. e a parent field for the Key Flexfiel
The INTERFACE_COL_NAME should be the column in your interface tab e that youre
uploading t ID o an API, the UPLOAD_PARAM_LIST_ITEM_NUM
value s h n ber in the parameter ist of the parameter that
captures the CCID.
Set DISPLAY_FLAG is ld will be s mapping UI r
wants the key flexfield to be included in the worksheet.
Set INTERFACE_COL_TYPE = 1 since the key flexfield segments displayed in the
worksheet will be uploaded as a single value to this column.
parent field (youll later assign the segments to this
in VAL_OBJ_NAME. This is the

ct
_CLASS:
rator.component.BneOAFlexComponent
ENT_CODE (not shown in example below). This
xfield
4.6.2. Enter records for the Key Flexfield Segments.
4 Creat d.
l
he CC
hould matc
to. If uploading t
the sequence um l
= Y since th fie elected in the when the use
Enter a new GROUP_NAME for the
group).
Enter KEYFLEXID for VAL_TYPE to identify it as the parent.
Enter oracle.apps.bne.integrator.validators.BneKFFValidator
class that will validate the Key Flexfield
Enter the code that is used to retrieve the Key Flexfield structure in OA_FLEX_CODE.
Enter N in OA_CONCAT_FLEX. The segments for Key Flexfields are kept in separate
columns in the document.
Insert Record into BNE_COMPONENTS_B if one does not already exist for your produ
ID:
1. APPLICATION_ID: Your application ID
2. COMPONENT_CODE: OA_FLEX
3. COMPONENT_JAVA
oracle.apps.bne.integ
Enter OA_FLEX for VAL_COMPON
value is required to enable List of values for the Key Fle
Enter your product ID for VAL_COMPONENT_APP_ID.

Company Confidential - For internal use only
26



The INTERFACE_COL_NAME needs to be in the following format: [Interface Col Name
Set DISPLAY_FLAG = N. These fields are not displayed in the mapping UI.
o not exist in the interface table or API.
the parent segment belongs to.
Example:
Indicate Key Flexfield segments by entering KEYFLEXIDSEG in VAL_TYPE.
of Parent field]_SEGMENT1........SEGMENT2..SEGMENTn.
Set INTERFACE_COL_TYPE = 2 since these fields d
Assign the segments to a the same group
INTERFACE_COL
_NAME
DISPLAYED_
FLAG
GROUP VAL_TYPE INTERFACE
_COL_TYPE
OA_FLEX
_CODE
OA_CONCAT_
FLEX
VAL_OBJ_NA
ME

ACCTCCID_SEGM
ENT1
N ACCOUNT KEYFLEXIDS
EG
2
ACCTCCID_SEGM
ENT2
N ACCOUNT KEYFLEXIDS 2
EG
ACCTCCID_SEGM
ENT3
N ACCO
EG
UNT KEYFLEXIDS 2
ACCTCCID Y N oracle.apps.bne.v
alidators.BneKFF
Validator
ACCOUNT KEYFLEXID 1 GL#

4.7. Descriptive Flexfield Validation/LOV Retrieval
Web ADI suppo L
accomplish this. Th escriptive Flexfield validation/LOV:
4.7.1.
FF segment by entering DESCFLEXSEG in VAL_TYPE
b ADI does not know what
d. The Flexfield structure is returned once

1 since the segments exist in the table/API.
4.7.2. Create a p n the document, but does not exist in the
table/API
Set P
Set INT

entify the Key DFF structure.
rts ist of Values and the validation of Descriptive Flexfields. Group Validation is used to
e following is done to enable D
Create records for each DFF segment.
Indicate a field is a D
Set DISPLAY_FLAG to N for all segments. This is because We
DFF segments to display when the sheet is create
the user enters a context value
Add the DFF segments to a group by entering a meaningful name for the group in the
Group Name field.
INTERFACE_COL_TYPE should be set to
arent record for the group. It will be visible i
DIS LAY_FLAG to Y.
ERFACE_COL_TYPE to 2.
Assign the parent to the group its segments belong to.
Set OA_FLEX_CODE to the code that is used uniquely id

Company Confidential - For internal use only
27



Enter Y for OA_CONCAT_FLEX. The values for all the DFF segments will be
concatenated into the context column in the document.
er DESCFLEX for VAL_TYPE. t his of its DFF
group.
Enter a ators.BneDFFValidator for VAL_OBJECT_NAME.
This is t tes D segments
Insert Record into BNE_CONTENTS_B:
1. APPLICATION_ID: Your application ID
COMPONENT_CODE: OA_FLEX
This entry is required to enable List of
Values.
E r your product I MPONENT_A
4.7.3. Create a context field for the Descriptive Flexfield group. This context segment captures a value
that is used to determine the DFF structure is needed. The Context column is visible in the
t and exists in the interface table.
Assign to the group.
Enter N for OA_CONCAT_FLEX.
Enter DESCFLEXCONTEXT for VAL_TYPE. This value indicated that this field is the
Insert Record into BNE_CONTENTS_B:
COMPONENT_JAVA_CLASS:
oracle.apps.bne.integrator.component.BneOAFlexComponent
he context
Ent This indica es that t field is the parent
oracle.apps.bne.integrator.v lid
he Java code that valida FF .

2.
3. COMPONENT_JAVA_CLASS:
oracle.apps.bne.integrator.component.BneOAFlexComponent
Enter OA_FLEX for VAL_COMPONENT_CODE.
nte D for VAL_CO PP_ID.
documen
Enter Y for DISPLAY_FLAG. This field must be available to allow the user to enter a value
to retrieve the DFF structure.
Enter 1 for INTERFACE_COL_TYPE.
Enter the unique code for the DFF structure in OA_FLEX_CODE.
context segment for the group.
1. APPLICATION_ID: Your application ID
2. COMPONENT_CODE: OA_FLEX
3.
Enter OA_FLEX in VAL_COMPONENT_CODE. This will enable the LOV for t
field.
Enter your product ID for VAL_COMPONENT_APP_ID.

Company Confidential - For internal use only
28



Example:
INTERFACE_COL_
NAME
DISPLAYE
_FLAG
GROUP VAL_TYPE INTERFACE OA_FLEX
D _COL_TYPE _CODE
OA_CONCA
T_FLEX
VAL_OBJ_NA
ME

ATRRUBUTE 1 N JNLLINEDFF DESCFLEXSEG 1
ATTRUBUTE 2 N JNLLINEDFF DESCFLEXSEG 1
ATTRIBUTE3 N JNLLINEDFF DESCFLEXSEG 1
JOURNAL_L
FF
EX 2 GL_JE_LI
NES
Y .apps.bne.valid INE_D Y JNLLINEDFF DESCFL
CONEXT NEDFF DESCFLEXCO
NTEXT
1 GL_JE_LI
NES
N Y JNLLI

4.8. Replicating Fields
Web ADI can upload a v meters.
This involves identifying a master field (i.e. the value from this field will be replicated), then referencing that
field reat
BNE_INT follows:
alue entered for a field in a document into multiple interface columns/API para
when c ing records for the replicating columns in BNE_INTERFACE_COLS_B. Enter records in
ERFACE _COLS for the replicated interface columns as
REQUIRED_ DISPLAY_FLAG DEFAULT_TYPE FLAG DEFAULT_VALUE

Y N $table$.InterfaceName.InterfaceColName TABLELOOKUP

4.9. alues Default V
Default in BNE_INTERFACE_COLS_B are generated at upload time. A default value will be uploaded
for a column if a value for it
DEF If
you wish _TYPE and
DEFAULT_VALUE in BNE_LAYOUT_COLS_ALL; See se
Default valu
can all be us
column has four pos
SQL: DEFAULT
ENVIRONMENT: DEFAULT_VALUE is an environmental variable to be inserted into the document. Valid
variables in DEFAULT_VALUE are DATABASE, OAUSER.ID, SOB.Set.Of.Books.Name, LANGUAGE, and
SYSDATE
CONSTANT: DE AUL he document as a default value.
JAVA: DEFAUT _VAL run to generate a default value.
4.10. Expanded Co
values set
does not exist in the document. Enter values in DEFAULT_TYPE and
AULT_VALUE in BNE_INTERFACE_COLS_B to have Web ADI generate default values at upload time.
to automatically place default values in the document when it is created, use DEFAULT
ction 9.1.7 for more information.
es can be stored in metadata. Alternatively, SQL statements, environmental variables, and Java code
ed to generate default values. DEFAULT_TYPE describes the value in DEFAULT_VALUE. This
sible values:
_VALUE is a SQL statement to be run to derive the default value in the document.
F T_VALUE itself will be inserted into t
L UE contains a Java class that will be
lumns
You may ha here
example, a b
(PERIOD1_AMOUN
range of periods the
columns functionalit
retrieve the list of co
ve a case w the number of columns in the document must be determined at run time. For
udget integrator uploading to an interface table containing 60 period columns
T, PERIOD2_AMOUNT,PERIOD60_AMOUNT) would require this functionality. The
user requires in the document could not be determined at design time. The expanded
y allows an integrator developer to specify a SQL statement that will be used at run time to
lumns and column headers. Follow the instructions below to enable expanded columns.

Company Confidential - For internal use only
29



4.10.1. Use the Web ADI Interface Cols Integrator to identify each column in the interface table that
could possibly exist in the document.
4.10.1.1. Assign each column to a GROUP called PERIODAMTS
4.10.1.2. nter EXPANDEDSQLSEG for VAL_TYPE.
4.10.1.3. apping Enabled = Y.
4.10.1.4. Type = 1
4.10.1.5. Display = N
4.10.1.6. Set the SEGMENT_NUMBER sequentially to indicate the order that the columns are to
be displayed in the document. This number is also used to match the column name
returned from BNE_EXPANDED_COLS_SQL with a column in the document.
4.10.2. Create one record in the spreadsheet to be the Parent segment of the interface columns. This is
the row that will be selectable in the LAYOUTS screen.
4.10.2.1. Group Name=PERIODAMTS
4.10.2.2. Val Type = EXPANDEDSQL
4.10.2.3. OA Concat Flex = N
4.10.2.4. Type = 2
4.10.2.5. Display = Y
4.10.2.6. Mapping Enabled = N
4.10.3. Create a Layout that includes the parent segment by selecting Define Layout from the PHP.
Select your integrator and include the parent segment in the lines region of the layout.
4.10.4. Insert into BNE_INTERFACE_COLS_B. EXPANDED_SQL_QUERY for the parent record.
4.10.4.1.1. Define a SQL statement that returns the Group column names and Segment Number
reference. This statement should return a result set of 2 fields. The first will be interpreted
as the Column name visible to the user. The second will be used to link with the segment
number within the Group. This allows Web ADI to link a name with an interface column.
Note that bind variables can be used so the SQL statement can be edited at run-time.
Example:
SELECT PERIOD_NAME, PERIOD_NUM
FROM GL_PERIOD_STATUSES
WHERE PERIOD_YEAR = 2002
AND APPLICATION_ID = 101
AND SET_OF_BOOKS_ID = 1
AND PERIOD_NUM >= $PARAMS$.PERIODFROM
AND PERIOD_NUM <= $PARAMS$.PERIODTO
4.10.4.1.2. When the create doc service is called with the layout that contains the parent
segment. Web ADI will run the SQL statement above to determine what segments in the
group will appear in the spreadsheet. In the example above, the values for the
PERIODFROM PERIODTO parameters would be passed in the http request when the Web
ADI service is called at run-time. See calling the Create Doc Page Flow for more information
on calling the Web ADI service.
E
M

Company Confidential - For internal use only
30









Company Confidential - For internal use only
31



omp omp 5. Creating C 5. Creating C onents onents
A component is an object field in a document. They are the
values specified in VAL_C E in BNE_INTERFACE_COLS_B.

5.1. Creating Ta
You must create a component for every Table Validated field requiring an LOV within the document. A Java
has been provided to offer this functionality, but metadata must be entered for each LOV to handle
h as g steps to create a Table Validated
Component.

5.1.1. Creat
defined in metadata that provides a list of values for a
OMPONENT_APP_ID and VAL_COMPONENT_COD


Attention: You ADI SDK is
functionally se a URL or a value in
the worksheet o restricted values.
must make sure that the code you plug into the Web
cure. Users must be prevented from manipulating
that would give them access t

ble Validated Components
class
properties suc table headers and window captions. Use the followin
e Component
Insert a record int ord registers the component and tells
Web ADI what Jav orming validation.
o BNE_COMPONENTS_B and TL tables. This rec
a class to reference when retrieving the LOV and perf
APPLICATION_ ID The identifier for your application
COMPONENT_C ion ID for the ODE A unique code within your applicat
component.
OBJECT_VERSION_NUMBER Set this to 1
COMPONENT_J neOAValueSet AVA_CLASS Set this to B
PARAM_LIST_APP_ID The identifier for your application
PARAM_LIST_CODE Se t this to the code you create in 5.1.2
LANGUAGE Set this to US
SOURCE_LANG Set this to US
USER_NAME ly not used by the This user value is current
application.

reat

5.1.2. C e a Parameter List for the Component
This list contains a by the LOV component. Lists have a one to one relationship
a omponents.
5.1.2.1. Access the Parameter List UI and enter a name and Code for your parameter list. Make
the name meaningful and relate it to the field. The Code needs to be the Code you entered for the
component in BNE_COMPONENTS_B.PARAM_LIST_CODE. Check the Persistent Box and add
comm
ist by pressing Add Another Row.
ll of the parameters required
with Table Valid ted c
ents if needed. Press Save when finished.

5.1.2.2.

Add the Following Parameters to the Parameter l

Company Confidential - For internal use only
32




Parameter Name table-column-alias
Value If the table-select-column does not exist in table-
columns, then enter the table-select-column here to
create an alias for the table-column you wish to have
inserted into the sheet. This is a comma delimited
list.
Description
Parameter Definition N_ALIAS parameter
efinition under your own application ID and use
Copy the 231:TABLE_COLUM
d
the copy for this parameter.

Parameter Name table-select-column
Value Enter the
BNE_INTERFACE_COLS_B.INTERFACE_COL_NAM
E of the column you wish the selected LOV to update
in the document
Description
Parameter Definition r
and use the
opy for this parameter
Copy the 231:TABLE_SELECT_COLUMN paramete
definition under your own application ID
c

Parameter Name table-columns
Value he query specified in
_COLS_B to be displayed in the
lOV. That is, enter one or all values specified in
VAL_DESC_COL, VAL_ID_COL VAL_MEAN_COL
VAL_MSG_COL. This is a comma delimited list.
Enter the select columns in t
BNE_INTERFACE
Description
Parameter Definition Copy the 231:TABLE_COLUMNS parameter
definition under your own application ID and use
the copy for this parameter.

The following parameters are not required for the LOV parameter list. Only add them if you wish to override default
behavior:


Parameter Name table-block-size
Value etermines the
umber of records that will be displayed in the LOV
(Use default from definition This d
n
at one time)
Description
Parameter Definition Copy the 231:TABLE_BLOCK_SIZE parameter
use definition under your own application ID and
the copy for this parameter.
Default used when this
parameter is
10
not added
to the list

Parameter Name -height window
Value (Use default from definition this indicates the
height of the display window)
Description
Parameter Definition the 231:WINDOW_HEIGHT parameter Copy

Company Confidential - For internal use only
33



definition under your own application ID and use
the copy for this parameter.
Default used when this
parameter is not added
to the list
450

Parameter Name window-width
Value (Use default from definition this indicates the
width of the display window)
Description
Parameter Definition
ation ID and use
py for this parameter.
Copy the 231:WINDOW_WIDTH parameter
definition under your own applic
the co
Default used when this
parameter is not added
to the list
350

Parameter Name window-start-position
Value (Leave blank to use default this is where the LOV
ow will first appear on the screen). wind
Description
Parameter Definition Copy the 231:WINDOW_START_POS parameter
definition under your own application ID and use
the copy for this parameter
Default hen used w this Windows default
parameter is not added
to the list


The parame tions y le
validated co

The following two parameters will require a new definition to be created every time a parameter list is created for a
table validated component. This is because their values are translated and specific to each LOV.
ter defini ou created for the parameters above can be re-used when creating more than one tab
mponent within your application.

Parameter Name table-headers
Value Le
thi mn headers
tha
ave blank to use default in parameter definition
s is Comma-delimited list of table colu
t will appear in the LOV screen.
Description
Parameter Definition Pre te definition ss the Definition Button to crea

Definition:
Name Table-headers {Name of Interface Column}
Source (Integrator Name):Components
Category Data
Des n n headers. This
parameter has an individual parameter definition so
criptio Comma-delimited list of table colum
it can get translated default values.
Data Type String
Default Value (Enter the headers of each column you wish to
appear in the LOV)
Store as Translat Checked able
Ma z 100 x Si e

Company Confidential - For internal use only
34



Display Size 100


Name window-caption
Val ult in parameter definition
on bar)
ue (Leave blank to use defa
this is the title to be placed on window capti
Description Enter meaningful description
Parameter Definition Press the Definition Button to create definition

Definition:
Name aption {Name of Inter face column} Window-c
Source (Integrator Name):Components
Category Data
Description This is what is displayed in the window caption
Data Type String
Default Value Ent he LOV
w
er what you want to be displayed in t
indows caption.
Store as Translatable Checked
Max Size 100
Display Size 100


5.1.3. Assign Component to a field in BNE_INTERFACE_COLS_B
5.1.3.1.
ta.
ate the VAL_COMPONENT_CODE and VAL_COMPONENT_APP_ID (Valid
Component) columns in the spreadsheet create

Identify the Interface Column in BNE_INTERFACE_COLS_B that will use the
component. You can use the Web ADI Interface Cols Integrator to download your
interface column metada
5.1.3.2. Upd
d by the Web ADI Interface Cols Integrator.
Column (Field) Name Description

INTERFACE_CODE Object Code of the Interface. Select INTERFACE_CODE, INTERFACE_NAME
from BNE_INTERFACES_B to get this value.
SEQUENCE_NUM d that is assigned to the same Application ID/
INTERFACE_CODE. So you could have the same SEQUENCE_NUM for two
Unique ID for every recor
records in this table, but they would have to be assigned to different
AppID/Interface Code combinations.
VAL_COMPONENT_CODE
(Valid Component)
Key to Component
VAL_COMPONENT_APP_ID Application ID that was used to create the above component

5.2. Creating JAV
Your field may require an LOV or validation that is more complex than Table Validation. Valid fields could depend
on a number of parameters,
the creation of a Java Validat ted field involves the
following steps:
Create Java Class
A Validated Components
including some entered or existing in the document. Complex business rules will require
ed record in BNE_INTERFACE_COLS_B. Creating a Java valida

Company Confidential - For internal use only
35



Enter a record for th
Create Parameter List for the component
Create parameter de
A uired by the class to the Parameter List
Assign Component nent key in
VAL_COMPONENT_CODE, an application ID in BNE_VAL_COMPONENT_APP_ID and entering the Java
Class in VAL_OBJ_NAME.
Jav a s
for fields in the Web ADI documents and validation of data at upload time. For the
purposes of this document, each shall be referred to as LOVs (List of Values) and Upload
les to be used for the following purposes:
o det o the database.
There are three main Java classes associated with Java Validation:
1.1.1.1 SQL Java Class
e component into BNE_COMPONENTS_B/_TL
finitions for the class
ttach Parameters req
to a column in BNE_INTERFACE_COLS_B. This includes putting the compo
a v lidation includes the following two types of functionality; provide List of Value
Validators respectively.
Java Validation allows business ru
To determine the data to be displayed to a user in an LOV.
T ermine whether a value is valid prior to uploading it t
This class contains all of the SQL queries required for Java Validation: including LOVs
and Upload Validators.
1.1.1.2 Validator Java Class
This class contains all the business logic for Java Validation: including LOVs and Upload
Validators. The LOV code is separate to the Upload Validator code, but the code for both
is maintained in this class.
For more complex solutions where the validation of one int

erface column is conditional

For
uplo , or
can be used at Upload time to ensure that
1.1.1.3 Component Java Class
upon the validation of one or more other interface columns, a Group Validator will need
to be implemented.
example: if any one of three columns is required to contain a value at the time of
ad but none of the columns is defined as a required column, then a Group Validat
one of the three columns contains a value.
This class contains all the business logic and setup information for generating the List of
Values (LOV) page in the Web ADI document. This class is not required for the
tadata corresponding to the LOV and
base schema.
implementation of an Upload Validator.
As part of the Java Validation implementation, me
Upload Validator must be seeded in the BNE data
Sample metadata and sample Java Classes are included in the Appendices of this
document.

Company Confidential - For internal use only
36



hat you already have fundamental Web ADI objects
created, i.e. an Integrator, Interface, Interface Columns, Layout and Mapping.
NOTE: Only experienced Java developers should write the three Java classes required to
Validator.
1.1.1.4 Naming Standard
This documentation assumes t
implement an LOV or Upload
s
The following naming standard is a guideline for naming your Java classes:
lication short name, e.g. Bne, Gl, etc.
omponent depending on the type of class being
written.
Use the same name for all three classes that make up the LOV and/or Upload Validator.
ent for which the Java
Validation is being implemented.
e.g. ApplFieldNameSQL, ApplFieldNameValidator, ApplFieldNameComponent; or
BnePeriodNameSQL, BnePeriodNameValidator,
dNameComponent
ard of InitCaps for your class names, as shown in the example above.
Prefix each class name with your app
Suffix with SQL/Validator/C
This usually includes the name of the field in the Web ADI docum
BnePerio
Use the Java stand

SQL Java Class
o the Interface Column, and all the SQL queries required to perform the
Upl are the same.
The SQL queries required for the Upload Validator include all queries required to verify
business rules pertaining to the data being uploaded into the database. Usually one or
class Appendix A), when validating
the SQL queries:
1. When uploading eed to run a
query to confirm that the Accounting Date falls within the Period.
B s are required to ensu curate and meaningful error message
is displayed to the user.
F idator that incorpo usiness rules, several queries may be used
to generate different Lists of Values dependent on the business rules. The following two
examples help to illustrate how th
Example 1 Generic example:
IF A and B THEN
This class contains all the SQL queries required to generate the List of Values (LOV)
applicable t
oad Validation for the same Interface Column. Usually these queries
more queries are required to validate a single field.
For example (as per the BneOAPeriodNameSQL
Period Name column in a GL Journal, you may need the following
an Accounting Date and a Period Name, you n
2. It is also necessary to check that the Period is valid.
oth querie re that a more ac
or a Java Val rates several b
is can be done:

Company Confidential - For internal use only
37



Generate List of Values C
Generate List of Values D
END IF
Example 2
IF an Accounting Date has been entered in the spreadsheet THEN
G Periods that include the Accounting Date
ELS
Generate a List of all Open or Future Enterable Periods
E
1.1.1.5 Implementing the SQL Java Class
ELSE IF A
ELSE
Generate List of Values E
Period Name example:
enerate a List of all
E
ND IF
Th
Co
Fo wing signature should be used for
publ i c BneAppl Fi el dNameSQL( BneWebAppsCont ext cont ext ,

For a Validator/LOV requiring two or more SQL queries, the following signature should be
neWebAppsCont ext cont ext ,
i nt quer yNumber ,

The parameters for the SQL Java class Constructor are as follows:
is class must be written as a publ i c class that extends BneBaseSQL. The class only requires a
nstructor method.
r a Validator/LOV requiring only one SQL query, the follo
the Constructor:
St r i ng ext r aSQL)
used for this Constructor:
publ i c BneAppl Fi el dNameSQL( B
St r i ng ext r aSQL)
Parameter Value, Description

Context 800, this is the Application ID for Oracle HR.
queryNumber Object version.
extraSQL







Company Confidential - For internal use only
38



context 1.1.1.6
This parameter contains all the JDBC session information required to prepare the SQL query.
1.1.1.7 queryNumber
This parameter is used to identify the query to be prepared when the Constructor is called.
each
def aul t swi t ch
q ry
For e
quer y. append( SELECT) ;
case 2:
quer y. append( SELECT) ;
br eak;
A swi t ch statement is used to hold the different queries using a number to represent
case. It is important to include a case in the statement to handle any invalid
ue numbers.
xample:
swi t ch ( quer yNumber )
{
case 1:
br eak;




def aul t :
t hr ow I l l egal Ar gument Except i on ( wi t h meani ngf ul message) ;
}
extraSQL
This parameter is used to pass the value selected from the LOV by the user in the Web AD
document. This is only used by the Uplo
I
ad validator, and is appended to the appropriate
query to restrict the results using the user-selected value.
Th
St r i ngBuf f er
The SQL queries in this class will be run:
Values to be displayed in the List of Values page; and
eria of the query limiting the
g
e pseudocode for the SQL Java class Constructor is as follows:
- Bui l d up t he quer y i n a St r i ngBuf f er
- Append t he st r i ng i n t he ext r aSQL par amet er t o t he
i f t he ext r aSQL par amet er i s not nul l
- Cal l t he BneBaseSQL. set Quer y met hod t o pr epar e t he SQL quer y
To summarise how this class will be used:
Firstly to generate the List of
Secondly, to validate the user-selected value at upload time.
For Upload Validation extra SQL is appended to the Where crit
query results to values matching the user-selected value. Therefore, the value bein
uploaded is only valid if one or more rows are returned by the query, and invalid when no
rows are returned.

Company Confidential - For internal use only
39




Validator Java Class
The Web ADI platform has been designed to a
comp
datab
Some examples of the complex logic that can be incorporated into the Java Validators:
that will be done depending on the profile
option value.
the database can be used
within your valida mn(s) in the Web
ADI document.
There Java validators: Field Validators and Group Validators.
Fie
llow the use of Java Validators to allow more
lex logic to be used to validate the data in a spreadsheet before it is uploaded into the
ase.
Profile options determine the validation
Other system setup m anything that can be queried fro
tor class to assist in validating the interface colu
are two types of
ld Validators
Individual interface columns can be validated using a field validator. This is the most
common type of validator. Other interface column values for the same record that have been
enter individual interface column.
Group Validators
ed in the spreadsheet can be used to help validate the
An interface column can be pa of the group are
validated as a complete set of columns.
For example, the SEGMENT columns in the GL_INTERFACE table that make up an
Accounting Flexfield account need to be validated as a complete set, not as individual values.
So, by identifying each SEGMENT column as being part of an
ACCOUNTING_FLEXFIELD_GROUP, when group validation is performed, all of the
segment values for the group are collected and validated together as a set.
The metadata and code together determine whether a validator is a field or group validator.
Refer to the section: Metadata for Java Validation.

1.1.1.8 Implementing a Field Validator Java Class
rt of a group. All columns that form part
An individual field validator class should be a public class that extends the
BneUploadValidator class. The BneUploadDomainInterface and BneUploadValidatorInterface
are both implemented in the BneUploadValidator abstract class.
All validators should extend the BneUploadValidator class, which provides default
implementations of a number of methods in the two Interfaces. The default implementations
do not enforce any additional validation.

Company Confidential - For internal use only
40



Metho Upload Validator ds that MUST be implemented for an
startupValidator
This
method to perform setup steps that only need to be performed once. For example, look
up a d therefore
only
The signature for

pu
( BneWebAppsCont ext cont ext ,
Hasht abl e r equest Par amet er s,
Hasht abl e col umnVal ues)
method is called once at the beginning of the Upload Validation process. Use this
profile option value. This value is not different for each row of data, an
needs to be derived once.
this method is as follows:
bl i c BneUpl oader Message[ ] st ar t upVal i dat or
validateColumn
This met
co lue that was validated (in
the same upload), t ure for this method is as
follows:
dat eCol umn
t cont ext ,
BneUpl oadCol umn cur r ent Col umn)
hod is called once for each different value being uploaded for the interface
lumn. If the value being validated is the same as the last va
he validation will not occur again. The signat
publ i c BneUpl oader Message[ ] val i
( BneWebAppsCont ex
Hasht abl e r equest Par amet er s,
Hasht abl e col umnVal ues,

Company Confidential - For internal use only
41



method is as follows:
- Any ot her r equi r ed val ues f r omt he col umnVal ues hasht abl e
- Any ot her r equi r ed val ues ( der i ved wi t hi n t he cl ass)
- El se
- Ret ur n an upl oadEr r or message i n t he BneUpl oader Message ar r ay.
- End i f
or
The logic for this
- Get t he cur r ent Col umn val ue

- Cr eat e a SQL handl e t o t he SQL Quer y by cal l i ng t he SQL cl ass const r uct or
( pass t he addi t i onal WHERE cl ause cr i t er i a i n t he ext r aSQL par amet er )
E. g. COLUMN_NAME = ?

- Run t he SQL ( f r omt he SQL cl ass) passi ng t he f ol l owi ng val ues:
- Cur r ent Col umn val ue ( bi nd var i abl e f or ext r aSQL)

- I f t he SQL Resul t Set cont ai ns 1 or mor e r ecor ds
- Set t he r ecor d as Fi neGr ai nVal i d
shutdownValidat
This method is called once at the end of the Validation process. Ensure that any SQL
r Message[ ] shut downVal i dat or ( )

Method t can be tio
handles are closed in this method. The signature for this method is as follows:
publ i c BneUpl oade
s tha op mplemented nally i
The following metho an be op ual field validator:
finalValidation
d c tionally implemented for an individ
This method is processed after all rows have b
be carried out that for the entire set of rows in the Upload document, if required. The
een validated. This allows for validation to
met er s)

Useful methods provided by the upload interfaces
signature for this method is as follows:
publ i c BneUpl oader Message[ ] f i nal Val i dat i on
( BneWebAppsCont ext cont ext ,
Hasht abl e r equest par a

The following prot hods are available for use within your validator class: ected met
uploadError
This method can be used to simplify the formatting of an Upload Error message. This is
an error message and will prevent
pa ould explain what the
error is and how the is as follows:
pr ot ect ed BneUpl oader Message[ ] upl oadEr r or
( BneUpl oadCol umn cur r ent Col umn,
msgSt r ,
the upload from occurring. A message should be
ssed to this method in the msgSt r parameter. This message sh
error can be fixed. The signature for this method
St r i ng
St r i ng cl assName)

Company Confidential - For internal use only
42



uploadException
This method can age.
This is an error message and will prevent the upload from occurring. Two messages
should be passed to this method. The first message should describe the error that has
occurred or what caused the error. This message should be passed to the method in the t
he error can be fixed. This message
eter. The signature for this method
is as follows:
uploadWarning
be used to simplify the formatting of an Upload Exception mess
parameter. The second message should explain how t
should be passed to this method in the msgSt r param
pr ot ect ed BneUpl oader Message[ ] upl oadExcept i on
( BneUpl oadCol umn cur r ent Col umn,
St r i ng msgSt r ,
St r i ng cl assName,
Thr owabl e t )
This method can be used to simplify the formatting of a Warning message. This is a
ill not prevent the upload occurring. The signature for this

cur r ent Col umn,
St r i ng cl assName)
Methods that MUST be implemented for an LOV
warning message only and w
method is as follows:
pr ot ect ed BneUpl oader Message[ ] upl oadWar ni ng
( BneUpl oadCol umn
St r i ng msgSt r ,


getDomainParameters
This method must create and return a String array of all the interface column names
whose values are required to generate the List of Values.
The signature for this method is as follows:
ge
publ i c St r i ng[ ] get Domai nPar amet er s ( )
tDomainValues
This method must ge he values to be
displayed in the List
e for this method is as follows:
sht abl e col umnVal ues,
T

Cr eat e a SQL handl e t o t he SQL Quer y by cal l i ng t he SQL cl ass const r uct or
( t he ext r aSQL par amet er i s usual l y passed as nul l )

nerate and return an SQL result set containing t
of Values.
The signatur
publ i c BneResul t Set get Domai nVal ues
( BneWebAppsCont ext cont ext ,
Ha
BneComposi t eSQLCr i t er i a cr i t er i a) t hr ows BneExcept i on

he logic for this method is as follows:
Det er mi ne whi ch SQL quer y must be used t o gener at e t he Li st of Val ues

Company Confidential - For internal use only
43



Run t he SQL ( f r omt he SQL cl ass) passi ng any val ues r equi r ed f or bi ndi ng
e. g. Any ot her r equi r ed val ues f r omt he col umnVal ues hasht abl e,
ui r ed val ues ( der i ved wi t hi n t he cl ass)
Ret ur n t he SQL r esul t set
Method ented for an LOV
Any ot her r eq


s that can be optionally implem
shutdo n w Validator
T d is called once at the end of the LOV/Validation process. Ensure that any
SQL handles are closed in this method. The signature for this method is as follows:
publ i c BneUpl oader Message[ ] shut downVal i dat or ( )


Implementing a Group Validator Java Class
his metho
Group validation is performed after all individual field validation is complete. Classes that are
ract class. The
get
written as group validators must extend the BneUploadGroupValidator abst
methods included in this class are as follows:
DomainParameters and getDomainValues
Def
therefore, there is no need to implement them.
startu
ault implementations for these methods exist in the BneUploadGroupValidator class
pValidator
This method is called on ess. Use this method
ow of data, and therefore only needs to be
The signature for this method is as follows:

valid
ce at the beginning of the LOV/Validation proc
to perform setup steps that only need to be performed once. For example, look up a profile
option value. This value is not different for each r
derived once.
publ i c BneUpl oader Message[ ] st ar t upVal i dat or
( BneWebAppsCont ext cont ext ,
Hasht abl e r equest Par amet er s,
Hasht abl e col umnVal ues)
ateGroup
This method validates a s called repeatedly throughout
the upload validation pr ata is available via the
columnValues Hashtable.
The
group of values in a single row. It i
ocess. Access to the entire row of d
signature for this method is as follows:
publ i c BneUpl oader Message[ ] val i dat eGr oup
( BneWebAppsCont ext cont ext ,
Hasht abl e r equest Par amet er s,
Hasht abl e col umnVal ues,
BneI nt er f ace bnei nt er f ace,

Company Confidential - For internal use only
44



The logic for t hod is as follows:
-

- Compar e t he val ues as r equi r ed by t he busi ness r ul es.

- I f t he val i dat i o
- Ret ur n an upl oadEr r or message i n t he BneUpl oader Message ar r ay.
- El se
- Ret ur n an empt y BneUpl oader Message ar r ay
- End i f
BneI nt er f aceCol i nt er f aceCol )
his met
Get t he col umnVal ues f or t he col umns i n t he gr oup
n f ai l s

shutdownValidator
This method is called once at the end of the LOV/Validation process. Ensure that any SQL
handles are closed in this method. The signature for this method is as follows:

Met d alidator
publ i c BneUpl oader Message[ ] shut downVal i dat or ( )
ho s that can be optionally implemented for a Group V
f nalValidation i
This method is processed after all rows have been validated. This allows for validation to
sig
publ i c BneUpl oader Message[ ] f i nal Val i dat i on
Useful methods provided by the upload interfaces
be carried out that for the entire set of rows in the Upload document, if required. The
nature for this method is as follows:
( BneWebAppsCont ext cont ext ,
Hasht abl e r equest par amet er s)
The following protected methods are available for u Validator class: se within your group
uploadError
This method can be used to simplify the formatting of an Upload Error message. This is
from occurring. A message should be
se s method in the meter. This m uld explain what the
error is and how the error can be fixed. The signature for this method is as follows:
pr ot ect ed BneUpl oader Message[ ] upl oadEr r or
( BneUp cur r ent Col u
St r i ng msgSt r ,
St r i n cl assName)
uploadException
an error message and will prevent
pas
the upload
msgSt r para d to thi essage sho
l oadCol umn mn,
g
This method can be used to formatting of
This is an error message and will prevent the upload from occurring. Two messages
shou e passed to this met essage sho
occurred or what caused the error. This message should be passed to the method in the t
parameter. The second message should explain how the error can be fixed. This message
simplify the an Upload Exception message.
ld b hod. The first m uld describe the error that has

Company Confidential - For internal use only
45



should be passed to this method in the msgSt r parameter. The signature for this method
is as follows:
pr ct ed BneUpl oader upl oadExcept
( BneUp r r ent Col u
St r i ng msgSt r ,
St r i ng cl assName,
Thr owabl e t )
ot e Message[ ] i on
mn, l oadCol umn cu


Component Java Class
This class contains all the business ati of Values
(LOV) page for an Interface Column in the Web ADI docum r
the implementation of an Upload Validat
erties ormat d in the LOV
d derived from fou ces. These
Component Parameters. Web ADI uses the following order of precedence when using these
meters to generate the LOV page:
1. Va set at run-time in t ava class.
2. Parameter List items values can be defined against ist.
3. Parameter Defini tion is linked to a Parameter List Item. If the
lue
, Web ADI will use the hard-coded defaults to create the LOV
1.1.1.9
logic and setup inform on for generating the List
ent. This class is not required fo
or.
Prop relating to the inf ion displaye window and how it will be
displaye can be r different pla properties are referred to as
Component Para
lues he Component J
each item in a Parameter L
tions a Parameter Defini
Parameter List Item does not have its own value, the Parameter Definition default va
is used.
4. Hard-coded defaults - when values are not defined in metadata or set within the
Component Java class
page.
Hard-coded Defaults
The following hard-coded defaults are defined in the BneAbstractListOfValues java class.
These values can only be changed by including them in a Parameter List or by setting them in
the Component Java class.
Component Parameter
Name
Default Valid Values Description
Datasource Must be text. ID of the target datasource.
Language ate in. Must be text. Sets the language for the form to oper
table-destinatio , for
myhost/myservlet.
n Must be text. Destination for post table results to
example http://
table-headers Must be text. Comma-delimited list of table column
headers
table-columns a-delimited list of table columns Must be text. Comm
table-column-alias M a-delimited list of column aliases, if
y then the column names will be used.
ust be text. Com
empt
m
table-column-hidden Must be text. Comma-delimited list of columns to be
rendered hidden.
table-column-sort no, yes, ascending,
cending
Comma-delimited list of column to sort
order, values are; { no, yes, ascending,
descending }
des
table-detail lse fa true, false Determines if display in the table detail.

Company Confidential - For internal use only
46



Component Parameter
Name
Default Valid Values Description
table-detail-uix ents to display in the table Must be text. Oracle UIX Elem
detail.
table-block-size 10
display.
Must be a number. Determines the number of records to
table-long-list false true, false Determines if the results are too long to
display and restricts first; values are; { true,
false }
table-select-column Must be text. Select column, comma-seperated list of
columns to be selected. If aliases exist then
use the alias name. Example: NAME,DEPT
table-select , false Display table selection; values are; {true, true true
false}
table-select-type _SINGLE_SELECTION _SINGLE_SELECTION,
_MULTIPLE_SELECTION
Type of table selection; values are; {
SINGLE , MULTIPLE }"
table-filter s; true true, false Display table filter on select column
values are; {true, false}
Enabled es if the form is enabled, values true true, false Determin
are; { true, false }
window-caption Search and Select Must be text. Title to place on window caption bar.
window-start-position default of window, values are;
, centerOwner,
centerScreen}
default, manual,
centerOwner, centerScreen
Display position
{default, manual
window-movab true, false Determines if the form window is movable. le false
window-width Must be a number. Width of display window. 350
window-height 450 Must be a number. Height of display window
window-top 100 Must be a number. Top position of display window.
window-left 100 Must be a number. Left position of display window.
Table 1 Hard-Coded Defaults
Business logic is usually incorporated in the Validator class, however, the same logic can be
used in the Component mple, for a
date field, a Calendar m dates in another case.
Implementing the Component Java Class
class to determine the type of LOV that is displayed. For exa
ay be displ ic ayed in one case, but a list of specif
Lists Of Values are CABO/UIX pages with exposed DOM interaction for use with Viewers.
The Component class determines the look and feel of the CABO/UIX page and the data that
will be displayed on the p
The Component class mu
included in this class are a
init method
age.
st extend the BneAbstractListOfValues abstract class. The methods
s follows:
T thod instantiate
method using the instantiation to create a String array of the interface column names
or this method is as follows:
ont ext cont ext ,
event )

his me s the Val i dat or class and then calls the get Domai nPar amet er s
required by the validator. The signature f
publ i c voi d i ni t
( BneBaj aC
Page page,
PageEvent
Parameter Description
context current request, Interface providing context information about the

Company Confidential - For internal use only
47



Parameter Description
and providing access to generic Baja services.
page page. Identifies the LOV
event triggered on the page. Encapsulates a servlet Interface for events
request.


getListOfValueParameters method
This is an abstract method within the BneAbstractListOfValues class and therefore requires
an implementation wi ates a BneParameterList
object consisting of on er list created by the
getDomainParameters method c
description for the parameter in
GL_INTERFACE.<parameter_name> field.. The signature for this method is as follows:
publ i c voi d get Li st Of Val uePar amet er s ( )
h tOfValues me
thin the Component class. This method cre
e record fo et r each parameter in the param
all. Each record consists of the Parameter name and a
the format Oracle Applications
andleLis thod
T n abstract meth nd therefore requires
a ementation wit the
information for the tabl
setPageTitle, setTableDat setTableHeaders, and setTableSelectColumn.
Return null from this method. The signature for this method is as follows:
publ i c BneBaj aPage handl eLi st Of Val ues
( BneBaj aCont ext cont ext ,
Page page,
PageEvent event ,
BneLOVCont r ol Bean bean) t hr ows BneExcept i on

his is a od within the BneAbstractListOfValues class a
n impl hin the Component class. This class calls public methods to set up
e that will be displayed in the LOV, for example: setTableFilter,
a, setTableColumns,
Parameter Description
context Interface providing context information about the current request,
and providing access to generic Baja services.
page Identifies the LOV page.
event Interface for events triggered on the page. Encapsulates a servlet
request.
bean Holds information about the LOV control.

This method will use the following logic:
Cal l handl ePagePar amet er s

For al l val i dat or par amet er s
Get t he par amet er val ue
Pl ace t he par amet er name and par amet er val ue i n a hasht abl e
End f or

I f a f i l t er val ue has been ent er ed i n t he LOV wi ndow
Add t he f i l t er val ue t o t he sear chCr i t er i a
End i f

Company Confidential - For internal use only
48




Set t he LOV t abl e dat a usi ng publ i c met hods:
Tabl eFi l t er
eTi t l e
l eDat a

Pag
Tab
Tabl eCol umns
Tabl eHeader s
Tabl eSel ect Col umns
handlePageParameters method
This method retrieves the filter field and filter value from the LOV page using an Http
Request. Two String se two values:
m_f i l t er Fi el d and
pr i vat e v
page,
event ) t hr ows BneExcept i on
instance variables need to be defined to hold the
m_f i l t er Val ue.The signature for this method is as follows:
oi d handl ePagePar amet er s
( BneBaj aCont ext cont ext ,
Page
PageEvent

Parameter Description
context Interface providing context information about the current requ
and providing access to generic Baja services.
est,
page Identifies the LOV page.
event Interface for events triggered on the page. Encapsulates a servlet
request.


Company Confidential - For internal use only
49




getTableData method
This method generates the result set for the LOV by calling the Validator class
is method processes each record in the result set returned by
s:
publ i c Di ct i onar yDat a [ ] get Tabl eDat a
( BneWebAppsCont ext bneWebAppsCont ext ,
BneLOVCont r ol Bean bean,
Hasht abl e par amet er Val ues,
BneComposi t eSQLCr i t er i a cr i t er i a)
t hr ows BneExcept i on

get Domai nVal ues method. Th
the get Domai nVal ues method to create a Vector containing all the valid values for the LOV.
A DictionaryData construct is created using the data in the Vector. This Validator class
shut downVal i dat or method is called to close off any open SQL handles. The signature for
this method is as follow
Parameter Description
bneWebAppsConte This is the BneWebAppsContext that
xt session to use when preparing the SQL statement.
provides us with a valid
bean Holds information about the LOV control.
pa meterValues This is a ha
which are r
ra shtable containing the list of all columns and their values
equired for the SQL to derive the list of values.
cri ria This is of type BneCompositeSQLC
for the Component LOV.
te riteria and contains all the details

getLOVProcessorType method
This is an abstract method within the BneAbstractListOfValues class and therefore requir
an implementation within the Co
es
mponent class. This method must return an LOV type. The
LOV types have been defined using the following constants (include java class
oracle.apps.bne.framework.BneConstants to use these contants):

Constant Name Data
Type
Value Description
BNE_LOV_TYPE_TABLE String TABLE Data in the LOV page will be formatted in a
table.
BNE_LOV_TYPE_FORM String FORM Not currently used.
BNE_LOV_TYPE_FLEX String FLEX Used for DFF and KFF LOVs.
BNE_LOV_TYPE_CALENDAR String CALENDAR A date picker will be displayed in the LOV
page.
The LOV Processor Type is set at the time the Document is created. The signature for this
method is as follows:
publ i c St r i ng get LOVPr ocessor Type( )


Company Confidential - For internal use only
50



getComponentName method
This method returns a hard-coded string containing the name of the component, i.e.
OAFieldName. Bne
getComponentVersion method
This method returns a ha in onta nt.
ken $ Revision: $ as your st g. T number for
.
rd-coded str g c ining the revision number of the compone
Use the to rin his will return the current revision
the Component class



Metadata for Java Validation
tadata must be created in wing tables
RAM_DEFNS_B, BNE_PARAM_DEFNS_TL
BNE_PARAM_LISTS_B, BNE_PARAM_LISTS_TL
BNE_PARAM_LIST_ITEMS
NE_COMPONE E_ MPO
BNE_INTERFAC
Integrator Developers should use the Parameter UI supplied with Web ADI to create the
eter List, Parameter nd am
he following URL:
ui
ection describes eac m th
included in Appendix D - Sample Metadata for the
Me the follo and in the order shown below:
BNE_PA
B NTS_B, BN CO NENTS_TL
E_COLS_B
Param List Items a Par eter Definitions. The Parameter UI can be
accessed using t
http://server:port/oa_servlets/oracle.apps.bne.web .BneApplicationService?bne:page=BneParameter
This s h of the colu ns in e tables listed above. Sample metadata is
Period Name Java Validation.
BNE Parameter Definition Tables
Below is a description of the columns within the BNE_PARAM_DEFNS_B and BNE_PARAM_DEFNS_TL
tab
BNE_PARAM_DEFNS_B
les.

Column Name Data Type Size Description
APPLICATION_ID NUMBER 15 Application ID eg. 101 for Oracle General Ledger
PARAM_DEFN_CODE VARCHAR2 30 Unique parameter definition code. Must be all Caps
Underscores are acceptable.
OBJECT_VERSION_NUMBER 15 ion. Set
e a
ecord.
NUMBER This is a version number for the Parameter Definit
y tim to 1 on creation. Increment this number ever
value changes for any of the columns in this r
PARAM_NAME VARCHAR2 240 A meaningful name/description of the Parameter

Company Confidential - For internal use only
51



Column Name Data Type Size Description
Definition.
PARAM_SOURCE R2 source requiring the parameter definition. This
try field.
VARCHA 240 This is the
is a text en
PARAM_CATEGORY R arance, NUMBE 5 Categorys include: Miscellaneous, Position, Appe
Behaviour, Data, Field.
DATATYPE NUMBER 1 clude: String, Number, Date, Boolean. Data Types in
DEFAULT_REQUIRED_FLAG 2 1 eter? Y/N VARCHAR Is a value required for this param
DEFAULT_VISIBLE_FLAG VARCHAR2 1 er? Y/N Is this parameter visible to the us
DEFAULT_USER_MODIFYABLE_FLAG 2 alue? Y/N VARCHAR 1 Is the user able to change this parameter v
DEFAULT_STRING VARCHAR2 2000 Set a default value of type VARCHAR2.
DEFAULT_DATE DATE Set a default value of type DATE.
DEFAULT_NUMBER NUMBER Set a default value of type NUMBER.
DEFAULT_BOOLEAN_FLAG VARCHAR2 1 Set a default value of type boolean.
DEFAULT_FORMULA VARCHAR2 240 Supply a format mask for the default value.
VAL_TYPE VARCHAR2 2 Validation types include: None, Fnd Lookups, Value Set
MAX_SIZE NUMBER 5 The maximum size of the parameter value.
DISPLAY_TYPE NUMBER 1 Display Types include: List Box, CheckBox, Radio
Buttons, Text Field, Password Field.
DISPLAY_STYLE NUMBER 1 Display Styles include: None, Vertical Horizontal
DISPLAY_SI R 5 The size of the value to be displayed to the user. This
should not exceed the MAX_SIZE value.
ZE NUMBE
BNE_PARAM_DEFNS_TL

Column Name Data Type Size Description
APPLICATION_ID NUMBER 15 Application ID eg. 101 for Oracle General Ledger
PARAM_DEFN_CODE eter definition code. Must be all Caps VARCHAR2 30 Unique param
Underscores are acceptable.
LANGUAGE VARCHAR2 4 Standard Apps Language column.
SOURCE_LANG VARCHAR2 4 Standard Apps Language column.
USER_NAME VARCHAR2 240 A meaningful name/description of the Parameter
Definition.
DEFAULT_STRING VARCHAR2 2000 in Set a default value of type VARCHAR2. This is defined
the TL table when the value is to be translated.
DEFAULT_DESC VARCHAR2 240 r the parameter. Set the default description fo
PROMPT_LEFT VARCHAR2 240 This is an internal representation of the Component
parameter and must match an appropriate Component
Defaults. parameter name. See Table Hard-Coded
PROMPT_ABOVE VARCHAR2 240 This is an internal representation of the Component
an appropriate Component
ard-Coded Defaults.
parameter and must match
parameter name. See Table H
USER_TIP VARCHAR2 2000 arameter to the user. Describe the purpose of the p
BNE Parameter List Tables
BNE_PARAM_LISTS_B

Column Name Data Type Size Description
AP NUMBER 15 Application ID eg. 101 for Oracle General Ledger PLICATION_ID
PARAM_LIST_CODE VARCHAR2 30 Unique parameter list code. Must be all Caps Underscores
are acceptable.
OB NUMBER 15 This is a version number for the Parameter List. Set to 1 on
creation. Increment this number every time a value changes
for any of the columns in this record.
JECT_VERSION_NUMBER
PERSISTENT_FLAG VARCHAR2 1 Set to Y to mark this as a permanent parameter list.
CO scribing what the list is used for. MMENTS VARCHAR2 240 Comments de

Company Confidential - For internal use only
52



BNE_PARAM_LISTS_TL

Column Name Data Type Size Description
APPLICATION_ID NUMBER 15 e General Ledger Application ID eg. 101 for Oracl
PARAM_LIST_CODE VARCHAR2 30 s
eptable.
Unique parameter list code. Must be all Caps Underscore
are acc
LA 2 NGUAGE VARCHAR 4 Standard Apps Language column.
SOURCE_LANG VARCHAR2 4 Standard Apps Language column.
USER_NAME VARCHAR2 240 A meaningful name for the Parameter List.


BNE Parameter List Items Table
Parameters that are different from the hard-coded defaults are included in the Parameter List.
ach parameter.
1.1.1.10 BNE_PARAM_LIST_ITEMS
Add one item for e
Link an existing Paramete on to ara
PARAM_DEFN_APP_ID and PARAM_DEFN_

r Definiti a P meter List item by setting the
CODE values.
Co Data Type Size lumn Name Description
AP eneral Ledger PLICATION_ID NUMBER 15 Application ID eg. 101 for Oracle G
PA DE Unique parameter list code. Must be all Caps Underscores
are acceptable. (This is the same value used for the Param
List in section 2.6.4)
RAM_LIST_CO VARCHAR2 30
SEQUENCE_NUM NUMBER 15 Each parameter in a single parameter list must have a
unique number. Numbering must start at 1 and increment
by one for each parameter.
PARAM_DE pplication ID eg. 101 for Oracle FN_APP_ID (FK1) NUMBER 15 The Parameter Definition A
General Ledger
PARAM_DEFN_CODE (FK1) VARCHAR2 30 The unique Parameter Definition code.
STRING_VA 2. LUE VARCHAR2 2000 Set a value of type VARCHAR
DATE_VALUE DATE Set a value of type DATE.
NUMBER_VALUE NUMBER Set a value of type NUMBER.
BOOLEAN_VALUE_FLAG VARCHAR2 1 Set a value of type boolean.
FORMULA_VALUE VARCHAR2 240 Supply a format mask for the value.
DESC_VALUE VARCHAR2 240 Description for the value. This is usually the same as the
parameter value defined in one of the VALUE columns.

BNE Component Tables
BNE_COMPONENTS_B
Link an existing Parameter List to a Component by setting the PARAM_LIST_APP_ID and
PARAM_LIST_CODE values.

Data Type S Column Name ize Description

Company Confidential - For internal use only
53



D Size Description Column Name ata Type
APPLICATION_ID NUMBER 15 our Application, e.g. The This is the APPLICATION_ID for y
APPLICATION_ID for GL is 101.
COMPONENT_CODE VARCHAR2 30
the Component, e.g.
Unique Component code. This should be as meaningful as
possible for
GL_ACCOUNTING_DATE_COMPONENT. Must be all
caps.
OBJECT_VERSION_NUMBER NUMBER 15 et to 1 on
ges
This is a version number for the Component. S
creation. Increment this number every time a value chan
for any of the columns in this record.
COMPONENT_JAVA_CLASS VARCHAR2 240 mponent java class name,
p
This must be the fully qualified Co
e.g.
oracle.apps.bne.integrator.components.BneFieldNameCom
onent
PARAM_LIST_APP_ID (FK1) NUMBER 15 The Parameter List Application ID.
PARAM_LIST_CODE (FK1) VARCHAR2 30 rameter List Code. The Pa

BNE_COMPONENTS_TL

Column Name Data Type Size Description
APPLICATION_ID NUMBER 15 This is the APPLICATION_ID for your Application, e.g. The
APPLICATION_ID for GL is 101.
COMPONENT_CODE VARCHAR2 30 Unique Component code. This should be as meaningful as
possible for the Component, e.g.
GL_ACCOUNTING_DATE_COMPONENT. Must be all

caps.
LANGUAGE VARCHAR2 4 Standard Apps Language column.
SOURCE_LANG VARCHAR2 4 Standard Apps Language column.
USER_NAME VARCHAR2 240 A meaningful name for the Component.

BNE Interface Column(s) Tables
For a Field Validator/LOV
VAL_COMPONENT_APP_ID and VAL_COMPONENT_CODE columns need to be updated
dividual Interface Column that uir
For a Group Validator/LOV, an additional Inte
GROUP_NAME column needs to be updated f the Interface Columns that are
by the Group V OV.
1.1.1.11 Field
, only the VAL_TYPE, VAL_OBJ_NAME,
for the in req es the Validator/LOV.
rface Column needs to be created. The
or each of
validated alidator/L
Validator/LOV
Update the following columns in TE ACE
tha alidator/LOV. Li sting Component to a ng the
NT_APP_ID and P EN
an Int ting the E a VA
_COLS_B
the BNE_IN RF _COLS_B table against the Interface Column
t requires the V nk an exi n Interface Column by setti
VAL_COMPONE
erface Column by set
VAL_COM
VAL_TYP
ON
nd
T_CODE values. Link an Upload Validator to
L_OBJ_NAME values.
BNE_INTERFACE

Column Name Data Type Size Description
APPLICATION_ID NUMBER 15 cation, e.g. The This is the APPLICATION_ID for your Appli

Company Confidential - For internal use only
54



Column Name Data Type Size Description
APPLICATION_ID for GL is 101.
INTERFACE_CODE
he Interface, e.g. GL_INTERFACE_115. Must
VARCHAR2 30 Unique Interface code. This should be as meaningful as
possible for t
be all caps.
OBJECT_VERSION_NUMBER NUMBER 15 rsion number for the Interface Column. Set to 1
e
r any of the columns in this record.
This is a ve
on creation. Increment this number every time a valu
changes fo
SEQUENCE_NUM NUMBER 15
unique number. Numbering must start at 1 and increment
by one for each interface column.
Each interface column for a single Interface must have a
VAL_TYPE VARCHAR2 20 The validation type for Java validators is always JAVA.
VAL_OBJ_NAME VARCHAR2 240 This must be the fully qualified Valid
e.g.
ator java class name,
oracle.apps.bne.integrator.validators.BneFieldNameValidat
or
VAL_COMPONENT_APP_ID (FK1) NUMBER 15 The Component Application ID.
VAL_COMPONENT_CODE (FK1) VARCHAR2 30 The Component Code.
LOV_TYPE VARCHAR2 30 LOV Types include: NONE, STANDARD, POPLIST. For
Java LOV Components, the type will always be
STANDARD.
OFFLINE_LOV_ENABLED_FLAG VARCHAR2 1 This only applies to Oracle Sales Offline. Set this to N.

1.1.1.12 Gro up Validator/LOV
A new record is created in the BNE_INTERFACE_COLS tables for the Validation Group. The exising
n record m to
part of the group.
BNE_INTERFACE_COLS_B - Validation Group
Interface Colum s for the colu ns be included in the group validation are updated to be a
A new Interface Column is defined for the Group Validator. Metadata for this new interface column
should be as follows: (Refer to Appendix E for a Group Validator metadata example)

Column Name Data Type Size Description
APPLICATION_ID NUMBER 15 This is the APPLICATION_ID for your Application, e.g. The
APPLICATION_ID for GL is 101.
INTERFACE_CODE VARCHAR2 30 Unique Interface code. This should be as meaningful as
possible for the Interface, e.g. GL_INTERFACE_115. Must
be all caps.
SEQUENCE_NUM NUMBER 15 Each interface column for a single Interface must have a
unique number. Numbering must start at 1 and increment
by one for each interface column.
INTERFACE_COL_TYPE NUMBER 15 As the parent of a Group, the interface column type must be
set to 2.
INTERFACE_COL_NAME VARCHAR2 50 This is the name of the Group with _PARENT appended to
it.
ENABLED_FLAG VARCHAR2 1 Is the group/parent column enabled? Y/N
REQUIRED_FLAG VARCHAR2 1 The Group Validator will always run when pre-validation is
checked in the Upload Parameters page.
DISPLAY_FLAG VARCHAR2 1 This column is not used. This is set to the default of N.
READ_ONLY_FLAG VARCHAR2 1 This column is not used. This is set to the default of N.
NOT_NULL_FLAG VARCHAR2 1 This column is not used. This is set to the default of N.
SUMMARY_FLAG VARCHAR2 1 This column is not used. This is set to the default of N.
MAPPING_ENABLED_FLAG VARCHAR2 1 This column is not used. This is set to the default of N.
GROUP_NAME VARCHAR2 30 This is the name of the group. The group/parent interface
column and all interface columns to be included in the
group must have the same GROUP_NAME.

Company Confidential - For internal use only
55



Column Name Data Type Size Description
VAL_TYPE VARCH lidation Typ OUP. AR2 20 The Va e must be set to GR
VAL_OBJ_NAME VARCH ust be the fu Validator java class
e.g.
apps.bne.inte neGroupNameGroup
tor
AR2 240 This m
name,
oracle.
Valida
lly qualified Group
grator.validators.B
LOV_TYPE VARCH lumn is not he default of
.
AR2 30 This co
NONE
used. This is set to t
OFFLINE_LOV_ENABLED_FLAG VARCH n is not the default of N. AR2 1 This colum used. This is set to

INTERFACE_COLS_B Interface Valida BNE_ Columns included in the tion Group
For e
colum
ach Interface Column to be validate or/LOV ROUP_NAME
n to contain the GROUP_NAME d face Co (see above).

d by the Group Validat
efined by the new Inter
, update the G
lumn definition
Column Name Data Type Size Description
APPLICATION_ID NUMBER 1 N_ID fo , e.g. The
GL is 101
5 This is the APPLICATIO
APPLICATION_ID for
r your Application
.
INTERFACE_CODE VAR R2 3 This sho ul as possible for the
RFACE_ s.
CHA 0 Unique Interface code.
Interface, e.g. GL_INTE
uld be as meaningf
115. Must be all cap
SEQUENCE_NUM NUMBER 1 g ve a unique number.
1 and i r each interface
5 Each interface column for a sin
Numbering must start at
column.
le Interface must ha
ncrement by one fo
GROUP_NAME VAR R2 3 fined ag rent interface column
column umns to be included
.
CHA 0 The GROUP_NAME de
must be inserted in this
in the Group Validation
ainst the Group/Pa
for all Interface Col


Company Confidential - For internal use only
56

6. De ng a r fini n Importe
If an In
applicat
call the import program is defined in metadata. The following steps to define an Importer:


ne a para r each parameter (step) in the master list
6.1. Indicate
choose what import type your integrator will use, then update Web ADI metadata.
6.1.1. uest
tegrator is uploading to interface tables, it is possible to have Web ADI automatically invoke the program used to move data from the interface tables to
ion base tables. The upload process will call the import program after records have been inserted into the interface tables. The results of the import program
can be retrieved to users. All the information Web ADI needs to
Indicate Importer type
Define master parameter list
Defi meter list fo
Importer Type
You must
Asynchronous Concurrent Req
An asynchronous concurrent request will run in the background after records are inserted into interface tables. The results of the import program are not
returned to the user, so they may not know if the data has been imported successfully. Only the request ID is returned, assuring the user that the import
process was invoked successfully. Pre-validation functionality offered by Web ADI is usually used with this type of import. Pre-validation should mirror the
validation done by the import program. If data is found to be invalid, error messages will be returned to user, records will not be inserted into interface tables,
and the import process will not be invoked. This is done to assure users that the data they have uploaded will reach application base tables by successfully
g val ynchronous concurrent request. Although extra development time may be required to offer pre-validation, Oracle
pplication System administrators are give flexibility in load balancing resources used for importing data. Users may experience faster upload times
com
6.1. Synchr
passin idation done by the as
A
pared to the other two methods since the completion of an upload is not dependent on the import program completing.
2. onous concurrent request
A synchronous con I until its completion. The results of the import program will be returned to users. Pre-
validation is not a necessity in this case, since the validation built into the import program is used to generate messages that will be returned to the desktop.
import. End users will not complete their upload process until the concurrent request has finished. Oracle
current request call will be monitored by Web AD
Performance may be an issue with this type of
Application System administrators must assure that the concurrent requests finish quickly for Web ADI users to avoid long upload wait times. Unlike the
asynchronous call, the import program must be called every time an upload is done. Having many users uploading data may put a substantial load on
resources during peak hours.



6.1.3. PL/SQL API
A PL/SQL API call is simi ynchronous concurrent request call in that Web ADI waits for the import program to finish, and returns messages to the
p. However, the co queuing process is not used. The import program is called directly, insuring that the import is run immediately.
wa queuing process, but server resource issues remain since the import program must be called
an upload is d
Import
lar to the s
deskto ncurrent request
This eliminates upload it time due to the concurrent request
every time one.
6.1.4. Enter type for your Integrator
Update BNE_INTEGRATORS_B.IMPORT_TYPE use. The following values are valid: to indicate the type of import to
Value Description

1 Asynchronous concurrent request
2 Synchronous concurrent request
3 PL/SQL API

6.2.
The import proce
differently to ca thin a master parameter list assigned to the Integrator. With exception to the
SUCCESS_MESSAGE, ea e required metadata to complete its part of the import process.
6.2.1. Crea P
Define Master Parameter List
ss is broken down into individual steps/processes that need to occur to perform an import. These steps are metadata driven and can be arranged
ter to each type of import. The steps are defined wi
ch step/parameter in the master list has its own parameter list to provide th
te arameter List

6.2.1.1. A me for your import parameter list. It should be in the form of: (Integrator Name): Import

6.2.1.2. A AM_LIST_ID created above into
B
6.2.2. Attach
ccess the Parameter list UI and enter a na
Master List. A parameter list ID will be given as soon as you press Save.
ssociate the parameter list with your integrator by inserting the PAR
NE__INTEGRATORS.IMPORT_PARAM_LIST
Parameters to Master List
The parameters within the master list provide an ordered sequence of basic steps that are to be executed to either retrieve data for other steps in the import or
execute another step in the list. An IMPORT hashtable exists to provide cashing for values that
have been ret
to perform the import. Results of previous steps can be used to
rieved from steps that have been executed. There are six different types of import steps that can be used to together in performing an import:
Step Name Description

SQL A SQL Statement

Company Confidential - For internal use only
58



Step Name Description

PLSQL A PL/SQL API call
CONCURRENT_REQ S UE T A call to the concurrent request submission API
SEQUENCE The retrieval of the next value of a sequence
GROUP The setting up a collection of values to be used as a group. The import process will
repeat for each unique key established by the group.
SUCCESS_MESSAGE A message definition to be returned to the user if the import succeeds.
ROW_MAPPING A column mapping between the interface columns and the row ID of the sheet
ERRORED_ROWS A column definition that can identify which interface table rows that have not
successfully imported.
ERROR_LOOKUP A SQL query to lookup the values of rows that have failed to import
CLEANUP_SQL Run a SQL statement if an exception occurs during any of the upload steps.
CLEANUP_PLS PL/SQL API if an exception occurs during any of the upload steps. QL Run a

6.2.2.1.
An y equest ID is returned to the viewer. The
rule e
EQUEST.
of PL/SQL, SQL, and sequence steps before the concurrent request.
here only must be at most one group definition.
n import. If a success message is not defined then a standard Web ADI success


th each of these parameters will define what the metadata is for the individual steps.
Web ADI monitors the concurrent request until it has finished and returns the result of the import to the desktop application. The setup is similar
to the Asynchronous call, but ROW_MAPPING, ERRORED_ROWS and ERROR_LOOKUP steps are required. The row mapping provides a one-
ship between the rows in the spreadsheet and the rows in the interface table. This mapping is important for a synchronous
Importer as it is the mechanism to report back to users the rows in the spreadsheet that have failed the import.
Master List Rules for Each Import Type
Asynchronous Concurrent Request
as nchronous concurrent request call requires a call to FND_REQUEST.SUBMIT_REQUEST and the r
s r lating to an asynchronous request are:
There must be at least 1 step which is of type CONCURRENT_R
There must only be one CONCURRENT_REQUEST.
There can be any number
There can be a GROUP step to define what the grouping of rows will be, but t
There may be multiple success messages.
There may be a row mapping but one is not required for a
message will be returned.
There must not be any ERROR_LOOKUP, ERRORED_ROWS steps.
There may be only one CLEANUP_SQL or CLEANUP_PLSQL step, but not both.

The associated parameter lists wi
Synchronous Concurrent Request
to-one relation

Company Confidential - For internal use only
59



P
There can be any number of PL/SQL, SQL, and sequence steps before the concurrent request.
one group definition.



PL/SQ
The PL/SQL API call is used when a concurrent request is not to be used as the method of import. An API call does not include a
CONCURRENT_REQUEST step.
The rules for a PL/SQL API call are:
Th
A
There may be only one CLEANUP_SQL or CLEANUP_PLSQL step, but not both
6.2.2.2.
6.3. En
Parameter lists tributes will need to be defined for each step in the master list. See the selections below for instructions on setting up the metadata for each
6 QL
The rules for a concurrent request are:
There must be at least 4 steps: a CONCURRENT_REQUEST, ERRORED_ROWS, ERROR_LOOKUP and ROW_MAPPING.
There must only be one ROW_MAPPING, one ERROR_LOOKUP, one ERRORED_ROWS and one CONCURRENT_REQUEST.
The CONCURRENT_REQUEST must be followed by the ERRORED_ROWS step, which in turn be followed by the ERROR_LOOKU
step.
There can be a GROUP step to define what the grouping of rows will be, but there only must be at most
There may be multiple success messages. If a success message is not defined then a standard Web ADI success message will be returned.
There may be only one CLEANUP_SQL or CLEANUP_PLSQL step, but not both.
L API Call
ere must be at least one PL/SQL import step.
There can be any number of PL/SQL, SQL and sequence calls, but the last call must be PL/SQL.
There may be multiple success messages. If a success message is not defined then a standard Web ADI success message will be returned.
A single ROW_MAPPING may be defined for the PL/SQL API.
single ERROR_ ROWS may be performed after the PL/SQL API has been called, only if a ROW_MAPPING and single
ERROR_LOOKUP exist.
The ERRORED_ROWS step must be followed by the ERROR_LOOKUP step.
There can be a GROUP step to define what the grouping of rows will be, but there only must be at most one group definition.
There must not be any CONCURRENT_REQUEST steps.
View the descriptions of each step in 6.3 and add the steps to the master parameter list using the Add Another Row button in the
Parameter UI. Use the Step Names described in 6.2.2 for the Parameter Name.
ter Metadata for Steps in Master List
and At
type of import step.
.3.1. S statement


Company Confidential - For internal use only
60



orm a SQL clause. L is a select statement then the values that have been selected can
ieved back int ng values from queries that have been executed. Bind variables can be used to define the inputs of
the query and Return variables are used to retrieve values from the SQL. Bind variables are used to define Insert and Update statements without knowing the
d n ti ments, and represent e columns in the select declaration. Return values are values from
c ned om atus from gl_interface). To enable a SQL statement step:
6.3.1.1. e the ter list: (Integrator Name): SQL Step.
6.3.1.2. rst parameter in the list is the SQL statement that is to be executed and the rest
eter list. The SQL statement is defined in the first parameter and the bind variables used in the
SQL statement are defined thereafter:

The SQL statement step type defines the metadata required to perf
o the collection that is stored for retrievi
If the SQ
be retr
ata at desig me. The return variables are used in select state th
olumns defi in the select declaration section of the select query (e.g. status fr
Create a new parameter list through the parameter UI. Nam
Enter the parameters for the SQL step parameter list. The fi
of the parameters identify bind/return variables.
select st
parame
Below is an example of a SQL step param

6.3.1.2.1. Press Add Another Row to define the SQL statement to run. Once the Define Parameter window opens, set the Data Type to String,
and enter the SQL statement into the Value field. Use the following format for a SQL statement: SELECT column_names FROM table_names
WHER column = $PARAM$.parameter_name. DO NOT enter a semi-colon at the end of the SQL statement. E

Company Confidential - For internal use only
61



6.3.1.2.2. Press Add Another Row to define the parameters being used in the SQL statement. The name of the parameter is used to map between
the SQL statement and the bind/return variables. In the above definition, the $PARAM$.parameter_name is replaced with the value that is
derived tadata for the parameter in the parameter list with the same name (i.e parameter_name). This method of replacing
$PARA any SQL statement. The parameter in the SQL statement must be the same
case as
For sel t statements, the column_names also needs to be defined as parameters in the list. Make sure to the name of the parameter matches
the co m_name in the SQL statement. The parameter in the SQL statement must be the same case as the parameter name in the list.
1.2.3. ess the edit button next to the Attributes button in the Parameter Definition screen. The attributes screen will let you enter metadata
that de e parameter value is derived.

from the me
M$ tokens with the associated parameter values works for
the parameter name in the list.
ec
lu
6.3. Pr
termines how th
ATTRIBUTE DESCRIPTION VALID
VALUES
ATTRIB TE1 Whether the parameter is defining a bind or a return variable. Web ADI stores
ng values for columns in select statements if ATTRIBUTE1=RETURN.
RETURN
BIND
U
resulti
ATTRIBUTE2 The unique name of the bind/return variable to be used in subsequent steps. The
he IMPORT hashtable uses the value in this column as the key.

value added to t
ATTRIBUTE3 The Source the parameter value will be retrieved from. IMPORT
ENV
REQUEST
ATTRIBUTE4 What value is to be used to get the value from the Source
ATTRIBUTE5 Data type of the bind/return value
ATTRIBUTE6 P
th
osition of the return value in the select statement [optional]. Web ADI looks up
e value for the parameter in the SQL statement result set by using the column
on in the select statement. If no value is supplied for ATTRIBUTE6 or is
, then the value will be looked up using the parameter name. Web ADI will
ter performance if a valid value is entered in this column.; it will take
e value if the parameter name is used.
1..Number
of return
values positi
invalid
have bet
more time to look up th

De E3):

scription of Valid Sources (ATTRIBUT
Value Description

IMPORT Value will come from a previously executed step (SQL query, PL/SQL call, Sequence
ace
column needs to be identified in a Group step. Enter the
interface_table_name.column_name in ATTRIBUTE4.
number retrieval or from the group definition). The hashtable key for the value is entered
in the name column (ATTRI BUTE4). Use this Source if you want to derive the value
from the value of a column that has been uploaded by the user. To do this, the interf
ENV An environment variable. Valid names (ATTRIBUTE4) are userid, language, respid,
appid.

Company Confidential - For internal use only
62



Value Description

REQUEST Use this source type when parameter values are sent from the upload parameters page.
Names (ATTRIBUTE4) need to match the param_name in the parameter list for the
UPLOAD_PARAM_LIST.


t. Open the Define Parameter screen for the SQL
6.3.1.4. Example: To execute the SQL call: select je_source_name from gl_je_sources where user_je_source_name = $PARAM$.je_source_param.
name returned will be stored in the hash tab e for use in a later step. A bind variable will be used to edit the
This value will come from a value the user up he document on the desktop to GL_INTERFACE.
rameter list.

6.3.1.3. Enter the parameter list ID created above in the SQL step parameter in the master lis
parameter; set the Data Type to Number, and enter the parameter list ID in the Value field.


The je_source_
where clause.
le and availabl
loades from t
USER_JE_SOURCE_NAME.

6.3.1.4.1. Create the Following Parameters in the SQL step pa

Field Name Description

Sequence number 1
Name SQL_Statement
Value select je_source_name from gl_je_sources where user_je_source_name =
$PARAM$.je_source_name_param
Data Type String

Sequence number 2
Name Je_source_name

SEQ_NUM 3
PARAM_NAME Je_source_param


ch p e Attibutes label in the Define Parameter screen.


6.3.1.4.2. Define Atributes for ea arameter by pressing the edit button next to th
Field Name Value
For t me he je_source_na parameter:
ATT RET RIBUTE1 URN
ATT je_so RIBUTE2 urce_name
Note ion of this design is that currently a SQL statement is restricted to : A limitat
2000 characters.

Company Confidential - For internal use only
63



ATTRIBUTE3 NULL
ATT E4 NULL RIBUT
ATTRIBUTE5 VARCHAR2
ATT 1 RIBUTE6

For the je_source_param:
ATTRIBUTE1 BIND
ATT User RIBUTE2 _je_source_name
ATT IMP RIBUTE3 ORT
ATT GL_ E_NAME RIBUTE4 INTERFACE. USER_JE_SOURC
ATT VAR RIBUTE5 CHAR2
ATTRIBUTE6 1



6.3.1.5. Enter the parameter list ID created for the SQL step parameter in the master list. Open the Define Parameter screen for the SQL parameter;
set the Da

6.3.2. PL/SQL
ta Type to Number, and enter the parameter list ID in the Value field.
API Call
The PL/SQL API import step allows for a PL/SQL API to be called to either perform the import or perform setup/value retrieval for the import. The PL/SQL
API call will be dynamically generate rned from any output parameters will be placed into the IMPORT hash table using the parameter/API
name as the key. A par l be d to define the API and the API calls parameters. To enable a PL/SQL API step:
6.3.2.1. Cr te a parameter lis or the PLSQL step. Name it (Integrator Name):PLSQL Step
6.3.2.2. Press the Add Another Row in Define Parameter List screen for the PLSQL step. Name the Parameter: (Procedure Name). Press the edit
a ributes button to enter information about the PL/SQL procedure.

d and values retu
ameter list wil create
ea t f
tt
Field DESCRIPTION VALID VALUES
ATTRIBUTE1 Type of API call. (FUNCTION or PROCEDURE)
ATTRIBUTE2 Name of the PL/SQL function or procedure
ATTRIBUTE3 Function Return Data Type. This must be one of the values defined in
r

ule two of the next section.
ATTRIBUTE4
r ides the
Value,
Parameter
Whether the return value is used to retrieve the error messages. The Y / N
eturned error message is obtained from the first that prov
message in the following order: FND_MESSAGES, Return
ATTRIBUTE5 Perf ND_MESSAGES. . Y / N orm a call to F



Company Confidential - For internal use only
64




6.3.2.3. Create additional parameters in the list for every parameter in the API call. A record must be created for all the API parameters.
Att ttributes button in the Define Parameter screen for each parameter
in t

ributes must be defined for every parameter as well. Press the edit a
he list to access the attribute window.
Field DESCRIPTION VALID VALUES
ATTRIBUTE1 PL/
na
SQL parameter name. This
me must be unique

ATTRIBUTE2 PL/

BINARY_INTEGER, BOOLEAN, CHAR, CHARACTER,
DATE, DEC, DECIMAL, DOUBLE PRECISION, FLOAT, INT,
INTEGER, LONG, NATURAL, NCHAR, NUMBER,
NUMERIC, NVARCHAR2, PLS_INTEGER, POSITIVE, REAL,
SQL parameter data type.
SMALLINT, STRING, VARCHAR, VARCHAR2
ATTRIB PL/SQL parameter access. IN / OUT / INOUT UTE3
ATTRIBUTE4 Used for returning error messages. Y / N
ATTRIBU E5 Default value for the PL/SQL
parameter.
For a String default value, the default value must be quoted.
(I.E. String data value of hello should be defined as hello)
T
ATTRIBU E6 Size of the variable. T
ATTRIB IMPORT
ENV
UTE7 The source of the value.
REQUEST
ATTRIBUTE8 Name/ID within ATTRIBUTE7
used to identify the value

ATTRIBUTE9 Parameter List ID for mapping
parameter

between the value provided and
the one to be passed into the API
ATTRIBUTE10 Modification clause around
parameter (E.g. TO_CHAR(?) )

ATTRIBU o store a Parameter List ID to a parameter list where the parameters provide a mapping between string values. For
example, e parameter list would convert true/false into Y/N.
The records in BNE_PARAM_LIST_ITEMS would look like this:

TE9 is used t
a simpl
Column DESCRIPTION
PARAM_NAME True
STRING_ Y VALUE

PARAM_NAME False
STRING_VALUE N

Company Confidential - For internal use only
65





ATTRIBUTE10 is used when the data provided needs to have some formatting applied before it gets passed in as a parameter. This
attribute should only be used in very rare cases. The main case where this attribute would be used is for passing a DATE value from the
import into a PL/SQL API as a VARCHAR2 parameter. In the situation where a the date is required in MM/ DD/YYYY format, the
ATTRIBUTE10 value would be: TO_CHAR(?, MM/DD/YYYY)
The ? character is used to represent the parameter being declared.
Description of valid sources (ATTRIBUTE7):
Va lue Description

IMPO Value w reviously executed step (SQL query, PL/SQL call, Sequence
number a column value in a group definition). The hashtable key for the
value is the name column (ATTRI BUTE8). Use Import if you would like to use
a value t into the desktop document; make sure that column is
included in ter tablename.column from the group definition in
ATTRIBUTE8.
RT ill come from a p
retrieval or from
entered in
he user has entered
a GROUP step. En
EN An environment variable. Valid names (ATTRIBUTE8) are userid, language, respid,
appid.
V
REQU Use this he upload parameters page.
Names ( me for the parameter list used for
UPLOA IST.
EST source type when parameter values are sent from t
ATTRIBUTE8) need to match a parameter na
D_PARAM_L

Enter the pa t ID created above in the PLSQL step parameter in the master list. Open the Define Parameter screen for the PLSQL
parameter; set the Data Type to Number, and enter the parameter list ID in the Value field.


6.3.3. oncurrent Reques
6.3.2.4. rameter lis
C t Submission
The concurrent request submission step type allows for the definition of the parameters required for a concurrent request. A parameter list is needed to store
the definitions the parameters required for calling FND_REQUEST.SUBMIT_REQUEST.
6. Create a pa meter list UI. Give the Parameter list a name in the form of: (Integrator name): Concurrent Request
.3.3.2. Use the Add Another Row button to add the following parameters to the parameters list.
3.3.1. rameter list through the para
Step.
6
Seq 1

Company Confidential - For internal use only
66



N ame Application
Data Type String
Value (Leave Blank)

Seq 2
Name Program
Data Type String
Value (Leave Blank)

Seq 3
Name Description
Data Type String
Value (Leave Blank)

Seq 4
Name Run Date
Data Type String
V alue (Leave Blank)

Seq 5
Name Sub request
Data ng Type Stri
Value (Leave Blank)

Seq 5N (Add as many parameters to
the list as needed by your import
program)
Name (Name of parameter)
Data Type String
Value (Leave Blank)

Seq N + 1
Name End Of Concurrent Request Parameters

Company Confidential - For internal use only
67



Data Type String
Value (Leave Blank)

Seq N + 2
Nam Rest of Parameters Defaults e
Data Type String
Value (Leave Blank)

6.3. he following Attributes to all the parameters in the list except the Last Parameter. 3.2.1. Add t
Field DESCRIPTION VALID VALUES
ATTRIBUTE1 Type of API call. (FUNCTION or PROCEDURE)
ATTRIBUTE2 Name of the PL/SQL function or procedure
ATTRIBUTE3 Function Return Data Type. This must be one of the values defined
in rule two of the next section.
ATTRIBUTE4 Whether the return value is used to retrieve the error messages. The
returned error message is obtained from the first that provides the
message in the following order: FND_MESSAGES, Return Value,
Parameter
Y / N
ATTRIBUTE5 Perform a call to FND_MESSAGES. . Y / N

6.3.3.2.2. Add the following Attributes to the Rest of Parameter Defaults parameter
ATTRIBUTE DESCRIPTION
ATTRIBUTE1 Def n the
FND_
ault value for the remaining parameters i
REQUEST.SUBMIT_REQUEST call.
AT I TR BUTE2 The number of times the default value is required to be repeated.
6.3.3.2.3.
Para meter list ID in the Value
f ld

6.3. Sequen
Enter the parameter list ID created above in the CONCURRENT_REQUEST step parameter in the master list. Open the Define
meter screen for the CONCURRENT-REQUEST parameter; set the Data Type to Number, and enter the para
ie .
4. ce ID Retrieval
The sequence retr hashtable. Only one parameter needs to be
defined in this steps parameter list.
ieval is used to retrieve the next value from a database sequence and place it into the IMPORT

Company Confidential - For internal use only
68



6.3.4.1. Create a parameter list using the parameter UI. Name the list (Integrator Name): Sequence
6.3.4.2. Press the Add Another Row button to add a parameter to the list. The Data Type should be String. The name you enter for the parameter
you will use to reference the sequence value from the hash table. Enter the name of the sequence in the Value field. is the key
6.3.4.3. Example:
Field DESCRIPTION
Name l_run_id
Data Type String
Value GL_JOURNAL_IMPORT_S

t ID in the Value field.

6.3.5. Group Definition
6.3.4.4. Enter the parameter list ID created above in the SEQUENCE step parameter in the master list. Open the Define Parameter screen for the
SEQUENCE step parameter; set the Data Type to number, and enter the parameter lis
The Group Definition creates a collection of columns that identify rows that are imported together as a group. The grouping assures that all steps in an
Importer (excluding GROUP and ROW_MAPPING steps) are repeated for every group of records found in the interface table. Columns are identified in the
parameter list to form the primary key for determining the unique set of interface table records.
A common usage for the group step is to save values uploaded by the user to the hash table, which can then be referenced by later steps. For example, perhaps
your users are entering Person ID into a spreadsheet, which must then be used as a parameter in the call to a PL/SQL import program (PLSQL step). To
accomplish this, the TABLENAME.PERSON.ID would be added to the group definition. During upload, Web ADI will look to see what value was uploaded to
TABLENAME.PERSON.ID and store it in the hash table. This value can then be used when calling an import program (PLSQL step).
6.3.5.1. Create a parameter list in the Parameter UI. Make the Name of this list (Integrator Name): Group Step.
6.3.5.2. Use the Add Another Row button to create a parameter in the list for every column you wish to be part of the group.
Field DESCRIPTION
Name Table name. Column name. E.g.
GL_INTERFACE.SET_OF_BOOKS_ID
All the steps in the master list are executed for every group of records uniquely identified by the group definition. As a consequence, you
are unable to repeatedly perform all of the steps except for one and then run that step separately. For example, you could not run the
SQL to insert into the GL_INTERFACE_CTL table multiple times but only submit a concurrent request once.

Company Confidential - For internal use only
69



aster parameter list contains both a GROUP definition and a CONCURRENT_REQUEST, each group that is imported will have a
new request ID. The viewer will have multiple messages returned to it with the different concurrent request IDs.



6.3.6.
If a m
6.3.5.3. Enter the parameter list ID created above in the group step parameter in the master list. Open the Define Parameter screen for the GROUP
parameter; set the Data Type to Number, and enter the parameter list ID in the Value field.
Success Message
The success message step defines what message is returned to the desktop when the import process has been successfully completed. Replaceable tokens can
be inserted in ng to show he IMPORT hash table. The tokenized values can be defined by appending the
eps as it can be defined without having to have a
sep rameter
def
ng, and enter the success message in the Default value
field. An example would be: Journal Import Request ID $import$.requested.

to the stri the request ID or other values returned from t
<key for IMPORT>. The success message is unique among the import st $import$.requestid or $import$.
arate pa list defined. Since this string will be translated into other languages, a parameter definition must be defined that contains the string as a
ault value.
6.3.6.1. Look up the master parameter list and press the Update button next to the SUCCESS_MESSAGE parameter.
6.3.6.2. Press the Definition button in the Define Parameter screen; set the Data Type to Stri

Company Confidential - For internal use only
70




6.3.7. Row Mapping
The Row M heet. Columns in the interface table
are identified in this step to create the primary key in identifying unique records in both the spreadsheet and interface table. Web ADI will map the interface
table ro spreadsheet ng
is to be able to re r each parameter stores the column names that are to be used in the
mapping.
6.3.7.1. meter list using the Define Parameters UI.
apping step enables Web ADI to match a row in the interface table with its corresponding row in the spreads
ws to rows using this key. In most cases this set of columns will be the primary key of the interface table. The primary use of this mappi
turn error messages for individual rows that failed. The name field fo
Create a para
6.3.7.2. Use the Add Another Row button to add a parameter for every column required to be in the mapping (uniquely identifies records).
Field DESCRIPTION
NAM OOKS_ID E Column name. E.g. GL_INTERFACE.SET_OF_B
Data Type String
6.3.7.3. Enter the parameter list ID created above in the Value field for the ROW_MAPPING step record in the master list. Make sure the Data
set to Number. Type is

Company Confidential - For internal use only
71



If t no colu row in the spreadsheet, then the best that the

6.3.8. Errored
here are mns in the interface that can provide a one-to-one mapping between the interface row and the
error reporting can be is a message in the upload page stating that there was an error with the import.
Row Definitions

he Errored Row D y rows that have failed the import. A SQL query is defined that will be run by Web ADI to
determine the rows

The SQL Query can contain Bind variables which can be used to provide input values into the query. The query provided must contain at least one column in
the select clause but the SELECT statement can be SELECT * and the error rows step will know what columns are in the interface table. It is reccomended that
SEL CT * be used to make sure all of the necessary values are retireved in the SQL statement.


6.3.8.1. ter lis eter list UI.
6.3.8.2. other list. Set the Data Type to String and enter the SQL query into the
value fiel
6.3.8.3. onal param r s to the parameter list for each bind variable in the SQL statement. Define the following attributes for each bind
variable p

T efinitions step enables Web ADI to identif
that did not pass validation done by the import program.
E
Create a parame t with the param
Use the Add An Row button to create the first parameter in the
d.
Add addiit ete
arameter:
ATTRIBUTE DESCRIPTION VALID VALUES
ATTRIBUTE1 Whether the parameter is defining a bind variable. BIND
ATTRIBUTE2 The name of the b
calls)
ind/return variable (can be used in subsequent
ATTRIBUTE3 The source of the value. IMPORT
ENV
REQUEST
ATTRIBUTE4 ame is to be used to get the value from the collection What n
ATTRIBUTE5 Data type of the bind/return value


6.3.8. de
IMPORT QL query, PL/SQL call, Sequence number retrieval or from the group

re
3.1. A scription of the values from ATTRIBUTE3:
Value will come from a previously executed S
definition.
ENV An environment variable
Value will come from the HTTP request REQUEST (Upload Parameters).
6.3.8.4. Enter the parameter list ID created above into the value field in the ERRORED_ROWS parameter in the master parameters list. Make su
the Data Type for the ERRORED_ROWS parameter is Number.

Company Confidential - For internal use only
72




in the GL_INTERFACE have the value EM01 in the STATUS
n.
ill contain the following SQL statement in the Value field.
SELECT * FROM GL_INTERFACE WHERE REQUEST_ID = $PARAM$.request_id AND STATUS = EM01
meter to the list for the request_id bind variable. Set name to request_id. Set Attribute1 = BIND; Attribute2 = requested;
Attrib = IMPORT; Attribure5 = requested; Attribure6=NUMBER
6 Error Message Lookup
6.3.8.5. Example: Define Errored Rows query where the errored all errored records
colum
6.3.8.5.1. Create a parameter list and add the first parameter which w
6.3.8.5.2. Add a para
ute3
.3.9.
The error message lookup step is used to retrieve full textual error messages for the errored rows. This functionality does not apply for an asynchronous call
A SQL statement is entered in metadata to run for every errored row. Error codes in the status
column can be used to look up meaningful messages. These messages then can be returned to the viewer. There can only be one return variable from the SQL
s atement. This variable s a VARCHAR2 error message that will be returned to the user.
Cre meter list using the parameter list UI.
6.3.9.2. Use the Add Another Row button to add the first parameter to the list. This parameter is the SQL statement that is to be executed Use the
foll _names FROM table_names WHERE column = $PARAM$.parameter_name.
6.3.9.3. reate parameters in the list for each bind/return variable that exists in the SQL statement.
The name of each parameter is used as the mapping between the SQL statement and the bind/return variables. Make sure the parameter
name in the SQL statement and in the parameter use the same case.
9.2, the $PARAM$.parameter_name is replaced with the value that is derived from the metadata for the parameter in the parameter
t with the name of parameter_name.

mn_names also needs to be defined as parameters in the list. "column_name should be entered as the name for the parameter in
ist.
since the import process stops after the request has been made.
t i
6.3.9.1. ate a para
owing format for a SQL statement: SELECT column
C


In 6.3.
lis
The colu
the l


Column Name Description

SEQ_NUM 1
STRING_VALUE The SQL statement
PARAM_LIST_ID Parameter List ID created for the ERROR_LOOKUP step


Company Confidential - For internal use only
73



Column Name Description

SEQ_NUM N
PARAM_NAME Name of the bind/return parameters used in the SQL statement
PARAM_LIST_ID Parameter List ID created for the ERROR_LOOKUP step
6.3.9.4. Define attributes for each parameter in the list except the first. The details of the parameters attributes are as follows:

ATTRIBUTE DESCRIPTION VALID VALUES
ATTRIBUTE1 Whether the parameter is defining a return or a bind variable RETURN
BIND
ATTRIBUTE2 The name of the bind/return variable (can be used in subsequent
calls)

ATTRIBUTE3 The source of the value. IMPORT
ENV
REQUEST
INTERFACE_TABLE
ATTRIBUTE4 What name is to be used to get the value from the collection. If
ATTRIBUTE3 =INTERFACE_TABLE then the value of will provide
what the interface & column name for the INTERFACE_TABLE.

ATTRIBUTE5 Data type of the bind/return value
ATTRIBUTE6 Position of the return value in the select statement [optional] 1..Number of return
values


6.3.9.6.
Create a parameter list and add the fololwing parameters.
6.3.9.5. Enter the parameter list ID created above into the value field in the ERROR_LOOKUP step parameter in the master list. Make sure the
Data Type is set to number.
Example: A call to FND_LOOKUPS for errored rows in GL_INTERFACE.
6.3.9.6.1.


Column Name Description

Sequence Nu 1 mber
Value
PSP_SUSP_AC_ERRORS AND LOOKUP_CODE = $PARAM$.error_code
SELECT MEANING FROM FND_LOOKUPS WHERE LOOKUP_TYPE =
Data Type String

Sequence Number 2
Name i Mean ng
Data Type String

Sequence Number 3

Company Confidential - For internal use only
74



Column Name Description

Name rror_ e code
Data Type tring S


6.3.9.6.2. Define attributes for each bind/return parameter.


Column DESCRIPTION
For the Meaning
Parameter:

ATTRIBUTE1 RETURN
AT err TRIBUTE2 or_msg
AT N TRIBUTE3 ULL
AT N TRIBUTE4 ULL
ATTRIBUTE 5 VARCHAR2
ATTRIBUTE6 NULL

For the
error_code
parameter

ATTRIBUTE1 BIND
ATTRIBUTE2 error_status
ATTRIBUTE3 _T INTERFACE ABLE
ATTRIBUTE4 GL_INTERFACE. STATUS
ATTRIBUTE5 VARCHAR2
AT 1 TRIBUTE6



6.3.10. Cle tat anup SQL s ement

The Cleanup SQL statement step defines the metadata req only be run when an exception occurs in one of the other
import steps. If the SQL is a select statement then the valu PORT hash table. Bind variables can be used to define
what is used in the query and Return variables will be use e SQL. Bind variables are used in both SQL and Insert/Update
statements to a em out kn design time. The return variables are only used in select statements, and represent
the columns in cla a om columns defined in the select declaration section of the query (e.g. the status part of select
status from gl_i e f s t e rest of the parameters will provide the details of the
bind/return variables.

uired to run a SQL statement, but will
es that have been selected are saved to the IM
d to retrieve values from th
llow the stat ent to be defined with owing the data at
the select de ration. Return values are v lues fr
nterface). Th irst parameter in the list i he SQL statement that is to be executed and th

Company Confidential - For internal use only
75




6.3.10.1. ng the para
6.3.10.2. Use the Add Another Row button to c the first parameter in the list that contains the SQL statement. Set the Data Type to String.
Enter the SQL statement in the Value filed in the Define Parameter screen. Use the following format for the SQL statement:

SELECT co s F E column = $PARAM$.parameter_name

6.3.10.3. Use the A add parameters to the list for every bind and return variables defined in the SQL statement. The
parameter name w the mapping between the SQL statement and the bind/return variables. In the above definition, the
$PA e h he value that is derived from the metadata for the parameter in the parameter list with the name of
parameter_name. Thi PARAM$ tokens with the associated parameter values works for any SQL statement not just select
statem

For select statements, the column_names will also need to be defined as parameters in the list where the column_name will also be the name of the

e following attributes for each bind/return parameter

Create a parameter list usi meter list UI.
reate
lumn_name ROM table_names WHER
dd Another Row button to
ill be used as
RAM$.param ter_name will replaced wit
s method of replacing $
t
ents.
parameter. The values returned from the columns in the select statement will be retrieved by going through the parameter list and for every
parameter that has ATTRIBUTE1=RETURN
6.3.10.3.1.1. Define th
ATTRIBUTE DESCRIPTION VALID VALUES
ATTRIBUTE1 Whether the parameter is defining a bind or a return variable. RETURN
BIND
ATTRIBUTE2 The name of the bind/return variable (can be used in subsequent
calls)

ATTRIBUTE3 The source of the value. IMPORT
ENV
REQUEST
ATTRIBUTE4 What name is to be used to get the value from the collection
ATTRIBUTE5 Data type of the bind/return value
ATTRIBUTE6 Position of the ret

Company Confidential - For internal use only
76

urn value in the select statement [optional] 1..Number of return
values


6.3.11. Cleanup PL/SQL API Call

The Cleanup PL/SQL API import step allows for a PL/SQL API to be called if an exception occurs in any of the import steps. This step can be used to roll
back work done in steps prior to the error. From the metadata the PL/SQL API call will be dynamically generated and run. The first parameter in the
parameter list will define the API and the API calls parameters.

6.3.11.1. Create a parameter list using the Parameter UI. Set the Name of the parameter list to (Integrator Name):CLEANUP_SQL .


6.3.11.2. Press Add Another Row to create the first parameter in the list. This parameter will describe the API. Assign the following attributes to
the parameter:

ATTRIBUTE DESCRIPTION VALID VALUES
ATTRIBUTE1 Type of API call. (FUNCTION or PROCEDURE)
ATTRIBUTE2 Name of the PL/SQL function or procedure
ATTRIBUTE3 Function Return Data Type
ATTRIBUTE4 Whether the return value is used to retrieve the error messages Y / N
ATTRIBUTE5 Perform a call to FND_MESSAGES. . Y / N

6.3.11.3. Add additional parameters to the list for each of the parameters within the API call. Assign the following attributes to each parameter:

ATTRIBUTE DESCRIPTION VALID VALUES
ATTRIBUTE1 PL/SQL parameter name.
Name must be unique.

ATTRIBUTE2 PL/SQL parameter data type. BINARY_INTEGER, BOOLEAN, CHAR, CHARACTER,
DATE, DEC, DECIMAL, DOUBLE PRECISION, FLOAT,
INT, INTEGER, LONG, NATURAL, NCHAR,
NUMBER, NUMERIC, NVARCHAR2, PLS_INTEGER,
POSITIVE, REAL, SMALLINT, STRING, VARCHAR,
VARCHAR2
ATTRIBUTE3 PL/SQL parameter access. IN / OUT / INOUT
ATTRIBUTE4 Used for returning error messages. Y / N
ATTRIBUTE5 Default value for the PL/SQL If the default value is a string, then the value entered for
parameter. this attribute must be quoted.
ATTRIBUTE6 Size of the variable.
ATTRIBUTE7 The source of the value. IMPORT
ENV
REQUEST
ATTRIBUTE8 Name/ID within ATTRIBUTE3
used to identify the value

ATTRIBUTE9 Parameter List ID for mapping
between the value provided and
the one to be passed into the

API parameter
ATTRIBUTE10 Modification clause around
(?) )

parameter (E.g. TO_CHAR
Rules for PL/SQL parameter data:

ATTRIBUTE9 is used to store a Parameter List ID to a parameter list where the parameters provide a mapping between string values. E.g. A simple
parameter list would convert true/false into Y/N.

Company Confidential - For internal use only
77



Parameter 2 name=false, value= N
ttribute would be used is for passing a DATE value from the import into a PL/SQL API
s a VAR
TO_C
racter is rameter being declared.
An example of this would be:
Mapping List:
Parameter 1 name=true, value=Y

ATTRIBUTE10 is used when the data provided needs to have some formatting applied before it gets passed in as a parameter. This attribute should
only be used in very rare cases. The main case where this a
a CHAR2 parameter. In the situation where a the date is required in MM/ DD/YYYY format, the ATTRIBUTE10 value would be:
HAR(?, MM/DD/YYYY)
Note: The ? cha to be used to represent the pa

Company Confidential - For internal use only
78



7. Defining Upload Parameters

Parameters that govern the lo
validated, and whether or not a
be defaulted in metadata; th
Upload Parameters screen.

7.1. Upload Para t
The Upload Parameters screen is accessed by pressing Parameters after selecting Upload from the Oracle menu. This screen presents users with options that
affe their rameters are arranged vertically in a single column. Below is an example:
up ery Integrator. These parameters can determine what rows are uploaded, how they are pre-
n import process is invoked. They may also contain parameters required by your Integrators import program. Parameter values can
ey can be passed to the create document service by th
ad process must be defined for ev
e calling form function; others can be displayed as options to users at runtime in the
me ers Screen
ct how data is uploaded to Oracle Applications. Pa


Company Confidential - For internal use only
79



7.1.1. Editing the Upload Parameters Screen

The browser window title bar can be edited by updating BNE_INTEGRATORS_TL.TITLE_BAR
The Primary Header can be edited by updating BNE_INTEGRATORS_TL.UPLOAD_HEADER. Its default value is Upload Parameters
The parameters that exist in the upload parameters screen are determined by the upload parameter list you create for your Integrator. The order of the
parameters in the list determines the order in which the parameters are displayed. The following widgets can be used to render parameters in the Upload
Parameters screen:
o Check Box
o Radio Button
o Pull Down list
o Text Field
o Password Field


o Tip text and labels for all the above
rameter List for more details.


or to define all the parameters that will be used for upload. Some parameters will have default values and not be
display will be defaulted but displayed. Parameter values can also be selected by users in the Upload Parameters
an upload parameter list for your Integrator.

7.2.1. Define parameter list

See Create Upload Pa
7.2. Create Upload Parameter List
A parameter list will be created for an Integrat
ed in the Upload Parameters screen; others
screen. The following steps cover the creation of

A parameter list will be created that contains all upload parameters. Three specific parameters must always be defined in an upload list, and others can be
added that relate to the import program being used.

7.2.1.1. Use the parameter list UI to define a parameter list. Use the Add Another Row button to add the following parameters to the list:

Column Name Description
Sequence 1
Definition Copy the 231:ROWS parameter definition under your
own application ID and use the copy for this
parameter.
Name Bne:rows
Value Y
Description True

Sequence 2
Definition Copy the 231
under your own
:VALIDATION parameter definition
application ID and use the copy for
this parameter.
Name Bne:validation
Value Y
Description True

Sequence 3
Definition Copy the 231:IMPORT parameter definition under
D and use the copy for this your own application I
parameter.
Name Bne:import
Value Y

Company Confidential - For internal use only
80



Column Name Description
Description True

Add a arameters to the list if you have any parameters for your import program that need to be chosen by the user at upload
g used). You may also define parameters and their values that need to be
passe ser (not visible, but passed in the background).
P icate more information about each parameter. Tips:

Pa played to users in the upload parameters screen. Use the Default Required,
D to determine how the parameter will be displayed.
P t to display can be linked to a class that will set this value when run.
E
Di ying the parameter to users. Check Box, Radio Button, List Box, Text Box, and
P ypes.
R value sets or from FND_LOOKUPS. Use the Validation Type field to
in lue Set ID or FND_LOOKUP.LOOKUP_TYPE in the validation value
fi
U orizontally.

7.2.2. Assign Upload
7.2.1.2. dditional p
time, or just seen by the user as upload time (view default bein
d to the import program that are not seen or displayed to the u
ress the Definition button in the Define Parameter window to ind
rameters in a list ca
7.2.1.2.1.
n be set so that they do are not dis
efault Visible, and Default user Modifiable checkboxes
arameters that rely on runtime data to determine whether or no
nter the class name in the Java Processor Class field.
splay type indicates the type of widget to use in displa
assword Field are the supported display t
adio buttons and list boxes can retrieve their valid values from
dicate how the parameter will be validated and enter the Va
eld.
se the Display Style field to display radio buttons vertically or h
Parameter List to Integrator

7.2.2.1. Assig updating BNE_INTEGRATORS_B.UPLOAD_PARAM_LIST with the parameter list ID
create


n the parameter list to your Integrator by
d in 7.2.1.1.


Company Confidential - For internal use only
81



8. Creat onten 8. Creat onten ing C t ing C t
Web ADI h y to
to be downloaded, a
Enter a SQL
sers to i
eate a generate source data an de custom UI for parameter entry.
This ch



8.1. S
A SQL st be plugged in etrieve a result set, which is imported into the document using a mapping (maps fields
in SQL st s in docum ind variables in the SQL statement, whose values can be passed at runtime. Each Stored
SQL stat s a Content d SQL Content.
8.1.1. Create Content Definition
as the abilit import data into a document as it is being created on the desktop. Integrator developers create Content definitions to identify the data
nd any required parameters. This data can come from a variety of sources.
statement in metadata
Allow u mport data from a text file
Cr Java class to dynamically d provi
apter section describes the process of enabling each of these types of Content in Web ADI metadata.
Attention: You must make sure that the code you plug into the Web ADI SDK is
functionally secure. Users must be prevented from manipulating a URL or a value in
the worksheet that would give them access to restricted values.
tored SQL
atement can to metadata that is run by Web ADI to r
atement to field ent; see section 9.2). You may specify b
ement require efinition. Follow the steps below to define a stored

Call the following PL/SQL API to create the Content:
CREATE_CONTENT_STORED_SQL

IN VARCHAR2,
P_CONTENT_DESC IN VARCHAR2,
P_COL_LIST IN VARCHAR2,
P_QUERY IN VARCHAR2,
IN VARCHAR2,
UAGE IN VARCHAR2,


BNE_CONTENT_UTILS.
(P_APPLICATION_ID IN NUMBER,
P_OBJECT_CODE IN VARCHAR2,
P_INTEGRATOR_CODE
P_LANGUAGE
P_SOURCE_LANG
P_USER_ID IN NUMBER,
P_CONTENT_CODE OUT NOCOPY VARCHAR2);

Company Confidential - For internal use only
82




A description of each parameter:

Parameter Description

APPLICATION_ID The identifier for the application.
P_OBJECT_CODE A string of 20 chars or less. The only valid characters are: Uppercase 'A'..'Z',
ue within the application ID. This string
TENT_CODE =
'0'..'9' and '_'. This string must be uniq
will be used to generate P_CONTENT_CODE. P_CON
P_OBJECT_CODE + _CNT.
P INTEGRATOR_CODE The Code of the Integrator you wish to crate the content for. Query _
BNE_INTEGRATORS.INTEGRATOR_CODE for this value.
P_CONTENT_DESC The Content page in the Create Document Page flow will display this value.
P delimited list of columns that are in the select clause of the query. In
e given for P_QUERY, PERIOD_NAME, START_DATE,
END_DATE would be passed into this parameter.
_COL_LIST A comma
the exampl
P_QUERY
The SQL statement that will be run to generate the data to be
downloaded to the desktop. This SQL statement can contain
bind RAM$.ParameterName.
Exa
PA te
variables in the form of $PA
mple:
SELECT PERIOD_NAME, START_DATE, END_DATE FROM
GL_PERIOD_STATUSES WHERE START_DATE >=
$ RAM$.startDate AND END_DATE <= $PARAM$.endDa
P_CONTENT_CODE
Out
gene
parameter that uniquely identifies the content. This is
rated based on P_OBJECT_CODE.
P_LANGUAGE Languge the P_CONTENT_DESC will be stored against.
P_SOURCE_LANG Lang ENT_DESC will be translated from. uate P_CONT
P_USER_ID The I pplication will be used to populate the WHO columns D of your A



8 arameter
Note: The param
the parameter lis
eters above (startDate, endDate) must be defined in
t attached to the Content.
.1.2. Define P for the Content
If your SQL statement contains lues for each of the variables. The parameter list should contain
p ariables
e the Pa ormat for a name: (Integrator Name) Content: (Meaningful description).
bind variables, a parameter list must be created to supply va
arameters for all the v you have defined in your SQL statement.
8.1.2.1. Us rameter UI to create a parameter list. Use the following f

Company Confidential - For internal use only
83



8.1.2.2. Add a parameter to the list for every parameter that appears in the SQL. The name of the parameter must exactly match the parameter
name used in the SQL statement (must also be in the same case).
8.1.2.2.1. Press the Definition button for each parameter to add details on how the parameter will behave. Instructions entered into the user tip
t into BNE_CONTENTS_B.PARAM_LIST_CODE and PARAM_LIST_APP_ID. This is the code of the list you created in 8.1.2.1.
lumns
field will be displayed to users who must enter a value for this parameter after choosing the Content. You can indicate what UI widget web
ADI will use to render the parameter value selection to the user. The method in which the parameter value is validated is also indicated in
this parameter definition.
8.1.2.3. Inser
8.1.3. Create Content Co
Th content columns define the col
column you wish to map and downl
e umns in the select statement that can be mapped to fields in the document. A record must be created for every source
oad to a document. The PL/SQL AP you ran to create the content automatically creates these columns based on
n names have been entered into a TL table and will be visible to users when creating mappings to associate columns
the document. You may want to edit the TL table to make the column names more meaningful to users.
Update BNE_CONTENT_COLS_TL
P_COL_LIST parameter. The actual colum
in the select statement to columns in
8.1.3.1.
C Name olumn Description
CONTENT_CODE* Unique Code of Content
SEQUENCE_NUM* Ordinal number specifying the content
LANGUAGE* Language USER_NAME will be defined against.
SOURCE_LANG* Language USER_NAME will be translated from.
USER_NAME* User name of Content source. E.g. User ID. This is what will
or this column in the Mapping UI display f

g steps to implement this type of Content for your Integrator. Only one Text File Content needs

8.2. Text File
It is possible to import a text file into a document. Use the followin
to be created to allow users to import text files.

8.2.1. Create Content Definition
8.2.1.1. Call the BNE_Content_Utils.CREATE_CONTENT_TEXT package and pass it the following parameters:
BNE_CONTENT_UTILS.CREATE_CONTENT_TEXT

Company Confidential - For internal use only
84



(P_APPLICATION_ID IN NUMBER,
P_OBJECT_CODE IN VARCHAR2,
P_INTEGRATOR_CODE IN VARCHAR2,
CONTEN R2,
NO_OF_
P_COL_PR
P_LANGUA RCHAR2,
E
_I
OUT NOCOPY VARCHAR2)

will creat lumns that will be seen in the mapping UI.

Descriptions of each pa
P_ T_DESC IN VARCHA
P_ COLS IN NUMBER,
EFIX IN VARCHAR2,
GE IN VA
P_SOURC
P_USER
_LANGUAGE IN VARCHAR2,
D IN NUMBER,
P_CONTENT_CODE

This package e the content definition, parameter list and all of the content co
rameter:

Parameter Description

P_APPLICATION_ID The identifier for the application.
P_OBJECT_CODE A string of 20 chars or less. The only valid characters are: Uppercase
'A'..'Z', '0'..'9' and '_'. This string must be unique within the application
P_CONTENT_CODE = P_OBJECT_CODE + _CNT.
ID. This string will be used to generate P_CONTENT_CODE.

P_INTEGRATOR_CODE The code of the Integrator you wish to crate the content
for. Query
BNE_INTEGRATORS_B.INTEGRATOR_CODE for this
value.
P_CONTENT_DESC Text File
P_NO S
by this parameter. Then name for each content column
for P_COL_PREFIX is set.
_OF_COL The maximum number of columns in your text files. Then
number of content columns the API creates is determined
will be set numerically (1, 2, 3..P_NO_OF_COLS). A
prefix will be added to the front of each number if a value
P_COL_PREFIX This prefix will be appended to the beginning of each
content column name that appears in the mapping UI.
Passing this parameter is optional.
P_CONTENT_CODE
Unique Key for Content. This is generated from the P_OBJECT_CODE.
P_LANGUAGE Language P_CONTENT_DESC will be defined against.
P_SOURCE_LANG Languate P_CONTENT_DESC will be translated from.
P_USER_ID The ID of your Application will be used to populate the
WHO columns

Company Confidential - For internal use only
85






8.3. Java
It is possible to create your own Content Class for download. This may be done if the simple UI prompting users for parameter values required for download
is inadequate. In addition, passing a SQL statement, or plugging a SQL statement into metadata to generate a result set may not be viable options. Steps to
implement a Java Content:
Create the Java class
Create Content Definition
Create Parameter Definitions
Create Parameter List for the Content
Create Content Columns
8.3.1. Create the Java Class
This section which describes creatingthe Java class is an open issue.

8.3.2. Create Content Definition
Call the BNE_Content_Utils.CREATE_CONTENT_DYNAMIC_SQL package.

P_INTEGRATOR_CODE IN VARCHAR2,
P_CONTENT_DESC IN VARCHAR2,
P_CONTENT_CLASS IN VARCHAR2,
P_COL_LIST IN VARCHAR2,
P_LANGUAGE IN VARCHAR2,
SOURCE 2,
USER_I
P_
PROCEDURE CREATE_CONTENT_DYNAMIC_SQL
(P_APPLICATION_ID IN NUMBER,
P_OBJECT_CODE IN VARCHAR2,
P_
P_
_LANGUAGE IN VARCHAR
D IN NUMBER,
CONTENT_CODE OUT NOCOPY VARCHAR2);
Parameter Description


Company Confidential - For internal use only
86



Param Descr eter iption

APPL The id fier for the application. ICATION_ID enti
P_OB Th he content definition. A string of 20 chars or less. The only valid
chara
within
JECT_CODE e code for t
cters are: Uppercase 'A'..'Z', '0'..'9' and '_'. This string must be unique
the application ID.
P_INTEGRATOR_CO
DE
Th ent for. Query
BNE_INTEGRATORS.INTEGRATOR_CODE for this value.
e Code of the Integrator you wish to crate the cont
P_CONTENT_DESC
Text File
P_CONTENT_CLASS
oracle.apps.bne.webui.control.NameDownloadControl
P_COL_LIST
Tab delimited list of the columns that will exist in the result set generated by
your Java class. These column names must match the names that appear in the
select statement generated by your Java Class. These columns will be mapped
to columns in the document.
P_LANGUAGE
Language P_CONTENT_DESC will be defined against
P_SOURCE_LANG
Language P_CONTENT_DESC will be translated from.
P_USER_ID
The ID of your Application will be used to populate the WHO columns
P_CONTENT_CODE
Unique key for your content. This is generated from the P_OBJECT_CODE.
P_CONTENT_CODE = P_OBJECT_CODE + _CNT
Note: You may want to update BNE_CONTENT_COLS_TL.USER_NAME to provide more meaningful names for users to see in the Mapping UI.
8.3.3. Create Parameter List for Content
8.3.3.1. Use the Parameter UI to create a parameter list for the content. Add a parameter to the list for every parameter required by the content
class.
8.3.3.1.1. Press the definition button in the Define Parameter screen to determine how these parameters will be selected by users in the Web ADI
Create Document Page flow.
8.3.3.2. Insert the parameter list code created in 8.4.3.1 into BNE_CONTENTS_B.PARAM_LIST_CODE and PARAM_LIST_APP_ID for the content
created in 8.4.2.



Company Confidential - For internal use only
87



9. Reporting Only Documents
It is possible to download Con
will not appear. Layout
tent to a document without giving users the ability to upload. When the document is created, the Upload option in the Oracle menu
s and Mappings based on Interfaces designed for upload can be used to generate reporting documents. Alternatively, Reporting only
The ces, ading data can be used to generate Reporting Only documents. This can be done by setting
lled. This parameter is displayed in the Web ADI Pageflow as Reporting Only. If the box is
che en t he upload option.
9.2. Reporting only Interfaces, Mappings and Layouts
Interfaces, Mappings and Layouts can be flagged as reporting only. This means that regardless of the bne:reporting parameter value, when a layout is selected that
is based on a Reporting Interface, the resulting document will always be generated without the upload option. This method of providing reporting documents can
be used when you simply want to download Content to a document that will never be uploaded. To enable users to download a Content for reporting purposes:
9.2.1. Run the Following API to create an Interface and Mapping based on the Content.
BNE_CONTENT_UTILS. ENABLE_CONTENT_FOR_REPORTING
(P_APPLICATION_ID IN NUMBER,
P_OBJECT_CODE IN VARCHAR2,



P_SOURCE_LANGUAGE IN VARCHAR2,
P_USER_ID IN NUMBER,
P_INTERFACE_CODE OUT NOCOPY VARCHAR2,
P_MAPPING_CODE OUT NOCOPY VARCHAR2);
documents can be created with Interfaces and Mappings specifically made for Reporting and do not have the ability to facilitate Upload.
9.1. Reporting only with Data Entry Interfaces
Interfa Layouts and Mappings that have been created for uplo
the bne:reporting parameter to Y when the Web ADI service is ca
cked, th he document you create will not have t

P_INTEGRATOR_CODE IN VARCHAR2,
P_CONTENT_CODE IN VARCHAR2,
P_LANGUAGE IN VARCHAR2,

Parameter Description

A TION_ID The identifier for the application. PPLICA
OBJECT_CODE The code for the Mapping and interface to be created. A string of 20 chars or less.
The only valid characters are: Uppercase 'A'..'Z', '0'..'9' and '_'. This string must be
unique within the application ID.
P_INTEGRATOR_CODE The Code of the Integrator you wish to crate the interface and mapping for. Query
BNE_INTEGRATORS.INTEGRATOR_CODE for this value.
P_CONTENT_CODE The code of the content you wish to create the interface and mapping for.

Company Confidential - For internal use only
88



Parameter Description

P_LANGUAGE US
P_SOURCE_LANG US
P_USER_ID The ID of your Application will be used to populate the WHO columns
P_INTERFACE_CODE The code of the interface that will be created.

The name of the Interface that is created will be {Content Name} Reporting Interface. The name of the Mapping that is created will be {Content Name}
Reporting Mapping.
9.2.2. Once the API has been run, Layouts can be created for a reporting Interface that will allow users to create their documents.

Company Confidential - For internal use only
89



10. Creating Layout and Mappings s
10.1.
A Layo ramete
within t
upload, in add
10.
10.1.2.
Creating Layouts
ut is a pa r given to the Create document service that indicates what columns are to be included in a document. The placement of these columns
he document is also indicated by the Layout. Layouts can be seeded with your application. Layouts can be defined to create documents that do not offer
ition to ones that provide upload capability. UI exists for Layout creation:
Select 1.1. Define Layout on the self service home page
Select an Integrator and press Go.


be
load. Press Define Layout to create a new layout, or update, duplicate or delete existing layouts.
10.1.3. The following screen shows all of the Layouts that have been defined for an Integrator. The Reporting column indicates layouts that can only
used to create document that do not provide up

Company Confidential - For internal use only
90





10.1.4. Enter a Name and Key for your Layout and select a Field List. The Key is a unique code that that is used to reference the Layout when calling the
BneApplicationService. It must be a string of 20 characters or less. The only valid characters are: Uppercase 'A'..'Z', '0'..'9' and '_'.
10.1.5. Select a Field List. The Field list selection determines the group of columns available to you when determining which columns to include in your
Layout. It also determines whether or not your Layout can be used to create a document for upload purposes. The first selection in the drop down box
will allow a Layout to be generated for upload. This Field list contains all of the columns defined for Interfaces created for upload
(BNE_INTERFACES_B.UPLOAD_TYPE = 1). All of the other values in the LOV provide lists of columns that can be used to create Layouts that do not
offer upload.

Company Confidential - For internal use only
91





10.1.6. Enter the location for the required columns (header/Lines).


10.1.7. Select the optional fields to be included in the Layout and their location (header/Lines).


Company Confidential - For internal use only
92





10.1.8. Enter default values you would like to automatically appear for columns when the document is created. There are five types of defaults you may
set:
10.1.8.1. De
8.2. nt - as the default.
10.1.8.3. Environm l variable. Valid environmental variables are: language, oauser.id,
database, so .SetO ob.chartofaccountsid, sob.periodsetname,
sob.accountedperi e, sob.latestencumbranceyear, sob.adbflag, sob.consolidationflag, sob.transactioncalendarid,
sob.mandat sob.
10.1.8.4. Paramete ssed to BneApplicaionService.
. De lue. Web ADI will run this SQL and automatically populate the
document with the he first value returned will be used. You may use the following
tokens in the SQL
$profile$. rofile
$env$.userid
$env$.ap d
$env$.respid
$env$.language





Note: UI does not exist to define the column order in the document when a particular Layout is
used. Update BNE LAYOUT COLS.SEQUENCE NUM to accomplish this.
None fault Type when no Default Value is set.
10.1. Consta Default Type used when the actual value in Default Value is used
ent Default Type when Default Value is an environmenta
b fBooksName, and sysdate., sob.setofbooksname, sob.setofbooksid, s
odtype, sob.currencycod
e, maxdate
r Default type when Default Value is the name of a parameter pa
10.1.8.5 SQL fault Type used when a SQL statement is entered into Default Va
result. If more than one value is returned from the query, t
statement entered in Default Value:
Name p
pi

Company Confidential - For internal use only
93



0.2. Creating Mappings
A Mapping links Content columns to Interface columns. This relationship between the columns in the result set of a download and the destination column is
UI
1
needed for Web ADI to import data into the document.
exists for Mapping Creation (Note that Mappings for reporting Interfaces are not created through the Mapping UI, but are created by the API in section 9.2):
10.2.1. Select Define Mapping on the Self- Service home page.
10.2.2. Select an Integrator and press Go.


10.2.3. Select the Content you wish to map and press GO. This screen will not appear if you only one Content exists for the chosen Integrator.


10.2.4. Press Define Mapping or update, duplicate or delete an existing Mapping.

Company Confidential - For internal use only
94





10.2.5. Enter a Name and Key for your Mapping and the number of columns it will Map. The Key is a unique code that is used to reference the Mapping
when calling the BneApplicationService. It can be a string of 20 chars or less. The only valid characters are: Uppercase 'A'..'Z', '0'..'9' and '_'.


Use the LOVs to match Content columns with Interface columns. Press Apply when finished. 10.2.6.

Company Confidential - For internal use only
95










Company Confidential - For internal use only
96



11. Calling the Create Doc Page Flow
The create document page flow can be called from either a pre defined form-function on the PHP, or from within a Self Service Application. The
oracle.apps.bne.webui.BneApplicationService servlet is called to invoke the create document process. It may be called with the parameters described in this
If a required parameter is not supplied, UI will be displayed to prompt users for a value. Supplied parameters will be validated by the page flow when it is
initialized, and any parameters that are in error will need to be reselected by the user at run time. If all of the parameters are correct, the user will see either the
Review page, or if bne:noreview is supplied, the document will be created immediately.

11.1.
11.1.1. Core Parameters
chapter.
Available Parameters
Core parameters are fundamental the Create Document Page flow, not to any control. They must be supplied for a document to be created. If they are no
passed by the calling form function, then users will be prompted for values in the Create Document Page Flow.
t
Parameter Required Description
Bne:
Set to BneCreateDoc to call the Create Document Page flow.
page
X
bne:language
The language to display in the Viewer. E.g. US. This parameter does not have a
dependency on another parameter.
Bne:
pability.
reporting
Set to Y to create documents that do not offer upload. Set to N to create documents
that offer upload ca
bne:viewer
The Viewer to use. The value of this parameter must be in the form of Application
parameter does not have a ID:Viewer Code.. E.g. bne:viewer=231:WORD2000. This
dependency on another parameter.
bne:integrat
o use. This value is dependent on bne:viewer. The value of this
be in the form of Application ID:Integrator Code.. E.g.
bne:integrator=231:JOURNALS_115.
or
The Integrator t
parameter must
bne:layout
the
Application
The Layout to use when generating the document. This value is dependent on
bne:integrator value. The value of this parameter must be in the form of
ID:Layout Code.. E.g. bne:layout=231: FUNCT_ACT_SINGLE_11I.
bne:content
The data to import into the viewer. This parameter is dependent on the Integrator.
The value of this parameter must be in the form of Application ID:ContentCode.. E.g.
bne:content=231:NONE.



Company Confidential - For internal use only
97


Note that bne:page=BneCreateDoc must be used to invoke the create document process. All
other parameters may not be set in the call, but can be left for users to choose at runtime through
the Create Document UI.



11.1.2. Content Specific Parameters
Content specific parameters are parameters specified in metadata for a particular Content being used. Depending on bne:content, any number of parameters
may be required. These are listed in the parameter list attatched to the Content. Use the value in BNE_CONTENTS_B.PARAM_LIST_CODE for the Content to
Bne a
destinat
find the required list of parameters in the parameter UI.
:m p is also required if a Content other than None is selected. This parameter points to a mapping defined in metadata that relates source and
ion columns.
Parameter Required Description
Content Parameters
content being passed. The list is identified in
Any of the parameters defined in the parameter list associated with the
BNE_CONTENTS_B.PARAM_LIST_CODE. Look up this parameter list
in the Parameter UI to get a list of available parameters.
bne:map
This parameter is dependent on the content. It specifies the mapping to
be used for download. The value of this parameter must be in the form
of Application ID:Mapping Code.. E.g.
bne:map=231:INTERFACE_TABLE_MAP
11.1.3. Pageflow Parameters
Pageflow Parameters determine how the Web ADI Page flow will behave to users.


Parameter Required Description
bne:redirect-portal
A URL to redirect the user to after the Viewer has been created. If this is
not supplied, the user will be redirected to their personal home page.
The value can be any valid URL starting with http:// or https://
Example: bne:redirect-portal=http://www.oracle.com.
bne:noreview
If this parameter is sent with any value the Create Document Review
page will not be displayed. Example: bne:noreview=anything

11.1.4. Upload Parameters

The upload parameters you have defined for your Integrator may be passed to the document creation service. Use the value in
BNE_INTEGRATORS_B.UPLOAD_PARAM_LIST_CODE and UPLOAD_PARAM_LIST_APP_ID for your Integrator to view the required list of parameters in
the parameter UI. To pass an upload parameter you have to provide values that are correct for the parameter. Then you can add the parameter to the URL as
&<paramName>=<paramValue>

Company Confidential - For internal use only
98




http://adi.us.oracle.com/servlets/oracle.apps.bne.webui.BneApplicationService?bne:page=BneCreateDoc&bne:language=US&bne:rows=FLAGGED&bne:val
Example:

idation=NONE&bne:import=false

You can also send the upload parameters in a list:
i.BneApplicationService?bne:page=BneCreateDoc&bne:language=US&bne:param-list=231:LIST_ON http://adi.us.oracle.com/servlets/oracle.apps.bne.webu

As long as the passed parameter is defined in UPLOAD_PARAM_LIST_CODE tied to the Integrator and has a valid value, that value will be used as an
e and uploads at a later time.

11.2. ng Parameters to Bn ice
ters are sent o ferent ways:
Application ID: Code. E.g. bne:integrator=231:JOURNALS_115
rt Name: Code. E.g bne:integrator= BNE:JOURNALS_115
al Ledger - Journals
Example:
http://adcsrv06.au.au.oracle.com:8080/servlet/BneApplicationService?bne:page=BneCreateDoc&bne:language=US&bne:viewer=231:EXCEL2000&bne:integr
upload parameter, and not the default value defined in metadata. The passed parameters are stored in the worksheet. Therefore, the passed parameters will
be used even if user saves the sheet, logs out of Self-Servic
Sendi eApplicaitonServ
Core parame n the HTTP command line in three dif
Application Sho
USER_NAME: USER_NAME in TL table. E.g. bne:integrator=USER_NAME: Gener
Content and Upload parameters are defined by the Integrator developer and are sent in the form of name=value&name=value.
ator=BNE:J OURNALS_115&bne:layout=231:FUNCT_ACT_SINGLE&bne:content=231:ADDRESS&firstname=J im
SQL wild cards are supported
not be prompted to select that
for Codes and USER_NAME values. E.g. bne:layout=BNE:USER%. If a Wild Card returns one parameter value, then users will
value in the Create Document Page Flow. If multiple parameter values are returned, users will be prompted to select a value
from the filtered list. Note: Wildcards cannot be used for Application IDs or Application Short Names.
Profile options and environmental variables can be referenced when sending parameter values to BneApplicationService. The formats to use when referencing
profile options and environmental variables are $Env$.variable_name and $Profiles$.profile_name respectively. For example, Web ADI will reference profile

Company Confidential - For internal use only
99



option XXXX for the current applications user to resolve the Integrator value when bne:integrator=231:$Profiles$.XXXX is passed. You must make sure the
resolved parameter value conforms to one of the three different parameter standards mentioned earlier in this section.
11.2.1. Secured List of Values
You may pass more than one value for a parameter. If this is done, the LOV for the parameter in the Create Document Page flow will be limited to the list of
parameter values passed to the create document service. For example, you may want to limit the list of layouts available to a user. If no parameter is passed
for bne:layout, all of the layouts defined for an Integrator will be selectable on the Layout Page in the Create Document Page Flow. You can limit the list of
ess to by having the form function pass a comma separated list of Application ID/Short Name:layout codes or USER_NAME:
Strings to the bne:layout parameter. E.g. bne:layout=231:TST1,BNE:TST2,USER_NAME:test3,USER_NAME:test4%. When the user navigates to the layout
ayouts to choose from.
available layouts a person has acc
page after clicking the form function, he or she will only have the test1, test2, test3, test4, test41 and test412 l
11.2.2. URL Encoding
When sending parameters in the URL, you must play by URL rules. This means invalid characters must be escaped. Parameters may be sent on the URL as
GET parameters (in the browsers address field on the end of the URL), or as POSTed data from a HTML form.
To convert a String, each character is examined in turn:
The ASCII characters 'a' through 'z', 'A' through 'Z', '0' through '9', and ".", "-", "*", "_" remain the same. The space character ' ' is converted into a plus sign '+'.
tring "%xy", where xy is the two-digit hexadecimal representation of the lower 8-bits of the character.
need attention.
Sending the following parameters
bne:redirect-portal http://www.google.com/search?sourceid=navclient&q=servlet
All other characters are converted into the 3-character s
If you are sending from a HTML form, this is done for you. If it is seeded in a form-function, strings with the % wildcard and URLS (in bne:redirect-portal)
Example:
bne:language Am%
be:layout 231:FUNCT_ACT
redirect http

The following URL is needed.

Company Confidential - For internal use only
100



http://adi.us.oracle.com/servlet/oracle.apps.bne.webui.BneApplicationService?bne:page=BneCreateDoc&bne:language=Am%25&bne:layout=231:FUNCT_ACT
&bne:redirect-portal=http%3A%2F%2Fwww.google.com%2Fsearch%3Fsourceid%3Dnavclient%26q%3Dservlet+redirect+http
The characters that were converted:
% --> %25, : --> %3A, / --> %2F, ? --> %3F, = --> %3D, & --> %26, space --> +


11.2.3. Length Limitations

If data is POSTed to BneApplicationService (ie a HTML for that does a POST), large amounts of data may be sent to us.
If data is GETed to BneApplicationService (A GET is performed when a URL is entered directly into the IE Address line, when an HTML form calls
BneApplicaitonService, and when a Self-Service form function calles BneApplicaitonService), then you are limited to a total address length of about 1800
characters. This is a browser restriction.

11.2.4. Parameter Lists
Rather than passing all the parameters to Web ADI at runtime, you may save the parameters and their values in metadata. This is done by defining a
parameter list and calling that list at runtime.
Create Parameter List in Metadata using the Parameter List UI
Note the Parameter List Code.
Call Create Doc with parameter bne:param-list=Application ID/Short Name::Code.
Any parameters in the list will over-ride parameters sent on the http command line.
Example:
http://adi.us.oracle.com:8080/servlet/oracle.apps.bne.webui.BneApplicationService?bne:page=BneCreateDoc&bne:language=US&bne:param-
list=SQLGL:F_SINGLE_J NL_FR
If the F_SINGLE_JNL_FR Parameter List has a parameter bne:language=FR, then the value used is FR.
Note: Parameter values that have an & or % in their names cannot be
passed. Avoid creating parameters of this kind in metadata.

Company Confidential - For internal use only
101



Company Confidential - For internal use only

102


11.2.5. Document Creation Shortcuts



At the end of the Create Document Page flow, users are presented with the option of saving a document creation shortcut. Shortcuts can be saved in two way

s:
Selections are saved to shortcut that will appear on the first page of the Create Document Page Flow. All users must do is select the shortcut, and all of
you enter for the shortcut will be used to create the Function Name and User Function
e). A system administrator must search for this form function and attach it to a menu so it appears in the PHP.
Only the core and content specific parameters are saved as document creation shortcuts. bne:redirect-portal, bne:review, bne:param-list or passthrough params
to the amount of data that can be saved to a self-service menu item.

their saved parameter values will be used to generate a document.
Selections are saved to a Self-Service Form Function. The name
Name (BNE_Shortcut Nam
are not saved. This is because of a limit


APPENDIX A Parameter UI
P
an
arameter UI was included with Web ADI 8.2. This allows you to quickly create, duplicate, and delete, Parameter Lists, Parameter List Items, Parameter Definitions
d Attributes.
Accessing Parameter UI
1. Click on the Create Doc link from the Web ADI menu.
2. Replace BneCreateDoc with BneParameter
3. The Define Parameter List page should be displayed.
4. This can also be imbedded in the form function on your Self-Service page. Log into Applications as System Administrtor. Navigate to Applicaton=>Function
and create a new form function with the following values:

Field Value
Function
BNE_DEFINE_PARAMS
Type
SSWA SERVLET
Parameters
Bne:page=BneParameter
HTML Call
oracle.apps.bne.webui.BneApplicationService


Defining Parameter Lists
1. Select your application and press GO. All parameter lists are defined under an application.
2. Set the Parameter List Code, Name and Comments to meaningful values.
3. Enter values for any other fields. Ensure you have supplied values for all mandatory fields (those fields with asterisks next to their labels).
4. Once you have entered all values, click on the Save button. The parameter list code cannot be changed once the parameter list has been saved.





Defining Parameter List Items

To add Parameters to the Parameter List, click on the Add Another Row button in the Parameters table at the bottom of the Define Parameter List page.

1. Enter a meaningful Name for the Parameter. If creating a parameter list for a component, see the list of parameters to add to the parameter list in section 5.1.4.
NOTE: the Parameter List Code is displayed at the top of the page once
the Parameter List has been saved.

Company Confidential - For internal use only
103



2. Enter values for all other fields. All three values: Data Type, Value, and Description must be entered, either all three against the Parameter, or all three against
h on. Values entered against the Parameter will take precedence over values entered against the Parameter Definition. Data Type must be
St ning a component for a parameter.
ve button at the bottom of the Define Parameter List page.


Defin

To defi meter page.

1. Ent
2. Ent escription. All three values: Data Type, Default Value, and Default Description must be entered, either all
th e Parameter Definition. Values entered against the Parameter will take precedence over values entered against
the ent Parameters, a Data Type of String MUST be used.
3. Sel eter being defined.
4.


Assoc
By defi rameter. To link a Parameter Definition to a Parameter you need to do the following:

1. Cli label on the Define Parameter page.
2. Aft ick on the Save button.
3. To tton on the bottom of the Define Parameter List page.


Testin
After sa t your Parameter List has been defined correctly by clicking on the Test button at the bottom of the Define Parameter
List pa

Click o Apply button after entering valid values. If you are returned to the Define Parameter List page, your parameter list items has been correctly defined.
Otherw

Press th lues for more testing.

t e Parameter Definiti
ring if you are defi
3. Click on the Save button.
4. To save the Parameter in the List, and to save these changes to the database, click the Sa
ing a Parameter Definition
ne a new Parameter Definition, click on the Definition button at the bottom of the Define Para
er a meaningful Name, Code, and Source.
er a Data Type, Default Value and Default D
ree against the Parameter, or all three against th
Parameter Definition. For all Compon
ect a Category that is relevant to the Param
Once all values have been entered, click the Save button.
iating a Parameter Definition to a Parameter
ning a Parameter Definition, it is not automatically linked to a Pa
ck on the Search Light icon next to the Parameter Definition
selecting the Parameter Definition from the displayed list, cl er
save this change to the database, click on the Save bu
g Your Parameter List
ving your parameter list, you can test tha
ge.
n the
ise, an error message is displayed.
e Reset button to reset the Parameter List items to their default va

Company Confidential - For internal use only
104







Company Confidential - For internal use only
105




Company Confidential - For internal use only

106

APPENDIX B Shipping Your Integrator
Web A f a patch to customers. All objects created in metadata are striped by Application
ID and ust only extract and ship metadata under your products
Applica (e.g. layouts, mappings) from being shipped within the same
Applica
Ldt file DI 8.3 patch. The
followi

The foll y relate to runtime information:
User Settings
ylob.lct Extracts data from the BNE_LAYOUT_LOBS table.
es that have been uploaded to the middle tier.


DI metadata can be extracted out of your seed instance and delivered as part o
are uniquely identified by a combination of Application ID & Code. To prevent conflicts, you m
me object tion ID. It is the responsibility of product owners to prevent duplicate codes for the sa
tion ID.
s containing the metadata are generated using FNDLOAD. The control files that are required to generate the ldts are included in the Web A
ng are the available lcts that can be used to export/import your metadata:
bnecomp.lct Components
bnecont.lct Contents
bneint.lct Integrators
bnelay.lct Layouts
bnemap.lct Mappings
bneparamlist.lct Parameter Lists
bness.lct Stylesheets
bnevw.lct Viewers
owing lcts are available but are generally not used for extraction because the
bneuserset.lct
bnela
bnefile.lct Extracts data describing text fil

Note: The Application Short Name of your product is a required
parameter when running the above lcts.


See t hi s l i nk f or mor e i nf or mat i on on FNDLOAD:
ht t p: / / www- apps. us. or acl e. com/ at g/ pl ans/ r 115/ f ndl oadqr . t xt


Company Confidential - For internal use only
107



1.2 Appendix C
Sample SQL Class - BneOAPeriodNameSQL (GL Journals Period Name LOV/Validator)

/*
* +=======================================================================+
|
|
=+
|
|
|
|
* +=======================================================================+

er edReader ;
eader ;
on;
pt i on. BneExcept i on;
t ;
eSQL

* | Copyr i ght ( c) 2003 Or acl e Cor por at i on, Redwood Shor es, CA, USA
* | Al l r i ght s r eser ved.
* +======================================================================
* | HI STORY
* |
* | 27- J un- 2003 J ohn Smi t h Cr eat ed.
* |
*/
package or acl e. apps. bne. ut i l i t i es. oa;
i mpor t j ava. i o. Buf f
i mpor t j ava. i o. I nput St r eamR

i mpor t j ava. sql . Connect i
i mpor t j ava. sql . Resul t Set ;
i mpor t j ava. sql . SQLExcept i on;

ce i mpor t or acl e. apps. bne. ex

i mpor t or acl e. apps. bne. f r amewor k. BneTr ace;
i mpor t or acl e. apps. bne. f r amewor k. BneWebAppsCont ex

; i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneBaseSQL

i mpor t or acl e. apps. f nd. common. Ver si onI nf o;

/ **
* Cl ass BneOAPer i odNameSQL
* <p>
* Thi s cl ass cont ai ns al l of t he SQL quer i es r equi r ed f or t he Per i od Name
* LOV and Upl oad val i dat i on.
*
* @aut hor J ohn Smi t h
* @ver si on $Revi si on: $ $Dat e: $
*/

publ i c cl ass BneOAPer i odNameSQL ext ends BneBas
{
/ / Fi el d RCS_I D
: $" ; publ i c f i nal st at i c St r i ng RCS_I D = " $Header

/ / Fi el d RCS_I D_RECORDED

Company Confidential - For internal use only
108



= Ver si onI nf o. r ecor dCl assVer si on( RCS_I D, " or acl e. apps. bne. ut i l i t i es. oa" ) ;
* <p>
t hi n t hi s const r uct or .
un cl ose( ) ;
nt user sessi on.
mquer yNumber - The number i dent i f yi ng t he quer y t o be used t o cr eat e t he SQL Handl e.
ent er abl e budget per i ods.
- quer y t o r et r i eve al l open and f ut ur e ent er abl e per i ods cont ai ni ng a speci f i c
per i ods ( Act ual J our nal s onl y)
* 4 - quer y t o r et r i eve al l open and f ut ur e ent er abl e per i ods cont ai ni ng a speci f i c
dat e ( Encumbr ance J our nal s onl y)
quer y t o r et r i eve al l open and f ut ur e ent er abl e per i ods ( Encumbr ance J our nal s onl y)
r i ng t o cont ai n t he addi t i onal SQL cr i t er i a t o l i mi t t he SQL r esul t
* set t o t he val ue sel ect ed by t he user i n t he Web ADI document . When cal l i ng t he
ss nul l t o t hi s par amet er .
* @t hr ows SQLExcept i on on any SQL pr obl em.
ept i on on any i nt er nal WebADI pr obl em.
hr ows SQLExcept i on, BneExcept i on
odNameSQL - par amet er : cont ext , a val i d cont ext must be passed t o t hi s
qr y. append( " SELECT DI STI NCT PS. PERI OD_NAME, PS. PERI OD_YEAR, PS. PERI OD_NUM " +
" FROM GL_PERI OD_STATUSES PS, GL_BUDGET_PERI OD_RANGES BPR, GL_BUDGET_VERSI ONS BV, GL_BUDGETS B " +
" WHERE B. SET_OF_BOOKS_I D = ? " +
ND BV. BUDGET_VERSI ON_I D = ? " +
ND B. BUDGET_NAME = BV. BUDGET_NAME " +


Company Confidential - For internal use only
109

publ i c f i nal st at i c bool ean RCS_I D_RECORDED

/ **
* Met hod: BneOAPer i odNameSQL

* Const r uct t he obj ect .
* You must cal l super ( ) wi
* To pr oper l y dest r uct t hi s obj ect and cl ean up any cur sor s YOU MUST r
*
mcont ext - Thi s i s al l t he sessi on i nf or mat i on f or t he cur r e * @par a
* @par a
* Val i d quer y number s ar e:
- quer y t o r et r i eve al l open and f ut ur e * 1
* 2
* dat e ( Act ual J our nal s onl y)
t o r et r i eve al l open and f ut ur e ent er abl e * 3 - quer y
*
* 5 -
* @par amext r aSQL - The st
* const r uct or f or t he LOV component , pa
*
* @t hr ows BneExc
*/
publ i c BneOAPer i odNameSQL( BneWebAppsCont ext cont ext , i nt quer yNumber , St r i ng ext r aSQL)
t
{
super ( ) ;

m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameSQL: BneOAPer i odNameSQL( ) St ar t " ) ;

i f ( cont ext == nul l )
{
t hr ow new I l l egal Ar gument Except i on( " BneOAPer i
const r uct or . " ) ;
}

Connect i on con = cont ext . get J DBCConnect i on( ) ;
St r i ngBuf f er qr y = new St r i ngBuf f er ( ) ;

swi t ch ( quer yNumber )
{
case 1:

" A
" A
" AND BV. BUDGET_VERSI ON_I D = BPR. BUDGET_VERSI ON_I D " +
" AND BPR. PERI OD_YEAR = PS. PERI OD_YEAR " +


. END_PERI OD_NUM " +
OD_TYPE = ? " +
" +
_NUM, PS. PERI OD_YEAR " +
S. START_DATE) <= TRUNC( ?) " +
" AND TRUNC( PS. END_DATE) >= TRUNC( ?) " ) ;
br eak;
CT PS. PERI OD_NAME, PS. START_DATE, PS. END_DATE, PS. PERI OD_NUM, PS. PERI OD_YEAR " +
NAME, PS. START_DATE, PS. END_DATE, PS. PERI OD_NUM, PS. PERI OD_YEAR " +
STATUSES_ENC_V PS " +
OKS_I D = ? " +
RT_DATE) <= TRUNC( ?) " +
. END_DATE) >= TRUNC( ?) " ) ;
br eak;

case 5:
SELECT PS. PERI OD_NAME, PS. START_DATE, PS. END_DATE, PS. PERI OD_NUM, PS. PERI OD_YEAR " +
FROM GL_PERI OD_STATUSES_ENC_V PS " +
w new I l l egal Ar gument Except i on( " BneOAPer i odNameSQL - par amet er : quer yNumber , must be a number f r om1 t o 5. " ) ;
= nul l &&
t r i m( ) . equal s( " " ) )
}
+

Company Confidential - For internal use only
110

" AND PS. PERI OD_NUM BETWEEN BPR. START_PERI OD_NUM AND BPR
" AND BV. BUDGET_TYPE = B. BUDGET_TYPE " +
= ' STANDARD' " + " AND UPPER( B. BUDGET_TYPE)
" AND PS. SET_OF_BOOKS_I D = ? " +
I CATI ON_I D = 101 " + " AND PS. APPL
" AND PS. PERI
" AND PS. PERI OD_YEAR <= B. LATEST_OPENED_YEAR
" AND PS. ADJ USTMENT_PERI OD_FLAG = ' N' " ) ;
br eak;

case 2:
ERI OD qr y. append( " SELECT PS. PERI OD_NAME, PS. START_DATE, PS. END_DATE, PS. P
" FROM GL_PERI OD_STATUSES_ACTUAL_V PS " +
OF_BOOKS_I D = ? " + " WHERE PS. SET_
" AND TRUNC( P

case 3:
qr y. append( " SELE
" FROM GL_PERI OD_STATUSES_ACTUAL_V PS " +
" WHERE PS. SET_OF_BOOKS_I D = ? " ) ;
br eak;

case 4:
I OD_ qr y. append( " SELECT PS. PER
" FROM GL_PERI OD_
" WHERE PS. SET_OF_BO
. STA " AND TRUNC( PS
" AND TRUNC( PS

qr y. append( "
"
" WHERE PS. SET_OF_BOOKS_I D = ? " ) ;
br eak;

def aul t :
t hr o
}

i f ( ext r aSQL !
r aSQL. ! ext
{
qr y. append( " AND " + ext r aSQL) ;


_YEAR DESC, PS. PERI OD_NUM DESC " ) ; qr y. append( " ORDER BY PS. PERI OD

m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameSQL: BneOAPer i odNameSQL( ) SQL = "
qr y) ;


QL( ) End" ) ;
set Quer y( con, qr y. t oSt r i ng( ) ) ;
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameSQL: BneOAPer i odNameS
}

}

Company Confidential - For internal use only
111




Ap idator (GL Journals Period Name LOV/Validator)

|

|

* +=======================================================================+

mer at i on;
ht abl e;
e;
. bne. i nt egr at or . val i dat or s. BneUpl oadVal i dat or ;
s. bne. ut i l i t i es. BneSt r i ngUt i l s;
i mpor t or acl e. apps. bne. ut i l i t i es. oa. BneOACur r encyCodeSQL;
pendix D Sample Validator Class - BneOAPeriodNameVal
/*
* +=======================================================================+
* | Copyr i ght ( c) 2003 Or acl e Cor por at i on, Redwood Shor es, CA, USA |
* | Al l r i ght s r eser ved.
* +=======================================================================+
* | HI STORY |
* |
* | 27- J un- 2003 J ohn Smi t h Cr eat ed. |
* | |
*/

package or acl e. apps. bne. i nt egr at or . val i dat or s. gl ;


i mpor t j ava. sql . Dat e;
i mpor t j ava. sql . SQLExcept i on;
i mpor t j ava. sql . Ti mest amp;

xt . Si mpl eDat eFor mat ; i mpor t j ava. t e

i l . i mpor t j ava. ut Enu
i mpor t j ava. ut i l . Has

i mpor t or acl e. apps. bne. except i on. BneExcept i on;
i mpor t or acl e. apps. bne. except i on. BneFat al Except i on;
i mpor t or acl e. apps. bne. except i on. BneMi ssi ngPar amet er Except i on;
i mpor t or acl e. apps. bne. except i on. BneSQLExcept i on;

i mpor t or acl e. apps. bne. f r amewor k. BneConst ant s;
r ; i mpor t or acl e. apps. bne. f r amewor k. BneLogge
i mpor t or acl e. apps. bne. f r amewor k. BneTechSt ack;
i mpor t or acl e. apps. bne. f r amewor k. BneTr ace;
i mpor t or acl e. apps. bne. f r amewor k. BneWebAppsCont ext ;

i mpor t or acl e. apps. bne. i nt egr at or . upl oad. BneUpl oadCol umn;
. bne. i nt egr at or . upl oad. BneUpl oader Messag i mpor t or acl e. apps
apps i mpor t or acl e.

i mpor t or acl e. apps. bne. r eposi t or y. BneResour ceSt r i ng;

i mpor t or acl e. app
i mpor t or acl e. apps. bne. ut i l i t i es. oa. BneOAPer i odNameSQL;
i mpor t or acl e. apps. bne. ut i l i t i es. oa. BneSOBDet ai l s;
i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneComposi t eSQLCr i t er i a;
i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneSQLSt at ement ;

Company Confidential - For internal use only
112



oadDomai nI nt er f ace
i od Name i nt er f ace col umn f or t he " Gener al Ledger - J our nal s"
t or .
Name i nt er f ace col umn.
ool ean RCS_I D_RECORDED = Ver si onI nf o. r ecor dCl assVer si on( RCS_I D, " or acl e. apps. bne. i nt egr at or . val i dat or s. gl " ) ;
en t o t he bne. l og f i l e. These messages
or e cached SQL Handl es.
cache f or t he Per i od Name val i dat or .

Company Confidential - For internal use only
113

i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneResul t Set ;

i mpor t or acl e. apps. f nd. common. Ver si onI nf o;

/ **
Per i odNameVal i dat or * Cl ass BneOA
* <p>
i on of BneUpl oadVal i dat or I nt er f ace and BneUpl * I mpl ement at
Per * f or t he
a * I nt egr
* <p>
r f ace val i dat es t he * The i mpl ement at i on of t he BneUpl oadVal i dat or I nt e
* Per i od Name i nt er f ace col umn.
* <p>
l ement at i on of t he BneUpl oadDomai nI nt er f ace gener at es a Li st of Val ues * The i mp
* f or t he Per i od
*
* @aut hor J ohn Smi t h
* @ver si on $Revi si on: $ $Dat e: $
*/

Per i odNameVal i dat or ext ends BneUpl oadVal i dat or publ i c cl ass BneOA
{

/ ** Fi el d RCS_I D */
publ i c f i nal st at i c St r i ng RCS_I D = " $Header : $" ;

/ **
er t i on i nt o <code>Ver si onI nf o</ code> on cl ass l oadi ng. * RCS ver si on i ns
*/
l b publ i c st at i c f i na

/ / The f ol l owi ng const ant s r ef er t o each of t he SQL quer i es t hat exi st i n t he BneOAPer i odNameSQL cl ass.
publ i c st at i c f i nal i nt BUD_J OURNAL_NO_ACCT_DATE = 1;
publ i c st at i c f i nal i nt ACT_J OURNAL_WI TH_ACCT_DATE = 2;
l i nt ACT_J OURNAL_NO_ACCT_DATE = 3; publ i c st at i c f i na
publ i c st at i c f i nal i nt ENC_J OURNAL_WI TH_ACCT_DATE = 4;
publ i c st at i c f i nal i nt ENC_J OURNAL_NO_ACCT_DATE = 5;

/ / Logger t o be used as needed. Al l l og messages wi l l be wr i t t
/ / wi l l NOT be t r ansal at ed, and ar e t o be used f or debuggi ng pur poses onl y.
pr i vat e BneLogger m_Logger = BneLogger . get I nst ance( ) ;

/ / Hasht abl e t o st
pr i vat e Hasht abl e m_St at ement s = nul l ;


/ **
* Met hod: st ar t upVal i dat or
*
* Thi s met hod i ni t i al i zes t he SQL st at ement
*


sage [ ] st ar t upVal i dat or ( BneWebAppsCont ext cont ext ,
neTr ace. TRACE, " BneOAPer i odNameVal i dat or . st ar t upVal i dat or ( ) End" ) ;
s. Thi s i s t he uni on of al l par amet er s t hat wi l l be used f or t he LOV Component .
" ACTUAL_FLAG" ,
OD_NAME" }) ;
e.
wi ng par amet er s ar e used wi t hi n t hi s met hod:
SET_OF_BOOKS_I D
* ACTUAL_FLAG
COUNTI NG_DATE
cor d.
l e f or
spr eadsheet .

Company Confidential - For internal use only
114

* @par amcont ext - Al l t he val i d sessi on i nf or mat i on f or t he cur r ent user sessi on.
* @par amr equest Par amet er s - A hasht abl e cont ai ni ng t he document and upl oad page par amet er s and
* t hei r associ at ed val ues.
ow i n t he spr eadsheet . * @par amcol umnVal ues - A hasht abl e cont ai ni ng al l t he val ues f or t he cur r ent upl oad r
evant upl oad messages. * @r et ur n Any r el
*/
Mes publ i c BneUpl oader
Hasht abl e r equest Par amet er s,
Hasht abl e col umnVal ues)
{
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . st ar t upVal i dat or ( ) St ar t " ) ;
new Hasht abl e( ) ; / / I ni t i al i se t he SQL st at ement cache. m_St at ement s =
m_Logger . l og( B
r et ur n ( new BneUpl oader Message [ 0] ) ;
}


/ **
* Met hod: get Domai nPar amet er s
*
* <p>Get t he domai n par amet er
*/
publ i c St r i ng[ ] get Domai nPar amet er s ( )
{
( new St r i ng[ ] {" SET_OF_BOOKS_I D" , r et ur n

" ACCOUNTI NG_DATE" ,
ET_VERSI ON_I D" , " BUDG
" PERI
}


/ **
hod: get Domai nVal ues * Met
*
* <p>Thi s met hod get s t he val ues t o be di spl ayed i n t he Per i od Name Cabo/ UI X LOV pag
*
* <p>The f ol l o
*
*

* AC
* BUDGET_VERSI ON_I D
PERI OD_NAME *
* Per i od Type - t hi s i s der i ved f r omt he Set of Books Det ai l s r e
*
* <p>
l ab * Per i od Name LOV and Val i dat i on f or Act ual and Encumbr ance J our nal s i s onl y avai
* Or acl e Appl i cat i ons 11i and above.
*
* @par amcont ext - Al l t he val i d sessi on i nf or mat i on f or t he cur r ent user sessi on.
l l t he val ues f or t he cur r ent r ow i n t he * @par amcol umnVal ues - A hasht abl e cont ai ni ng a


BneExcept i on

SQLSt at ement ( ) ;

TUAL_FLAG" ) ) ;
) ) ;

Company Confidential - For internal use only
115

* @par amcr i t er i a - Al l t he det ai l s f or t he Per i od Name LOV component .
*
* @r et ur n SQL r esul t set of Per i ods
*
t hr ows BneExcept i on * @
*
*/
publ i c BneResul t Set get Domai nVal ues ( BneWebAppsCont ext cont ext ,
Hasht abl e col umnVal ues,
BneComposi t eSQLCr i t er i a cr i t er i a) t hr ows
{
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . get Domai nVal ues( ) St ar t " ) ;

new Si mpl eDat eFor mat ( " yyyy- MM- dd" ) ; Si mpl eDat eFor mat t empDat eFor mat =
t empDat eFor mat . set Leni ent ( f al se) ;

St r i ng act ual Fl ag = nul l ;
St r i ng budget St r i ng = nul l ;
St r i ng sobI DSt r i ng = nul l ;
St r i ng t empAccount i ngDat e = nul l ;
; Dat e account i ngDat e = nul l
l ong budget Ver si onI d = - 1;
l ong set Of BooksI d = - 1;

BneOAPer i odNameSQL SQLHandl e = nul l ;
BneResul t Set r s = nul l ;
BneSQLSt at ement ext r aSQL = new Bne

e LOV page, / / I f t he user has ent er ed cr i t er i a i n t he f i l t er f i el ds on t h
/ / add t hi s r est r i ct i on t o t he quer y by pl aci ng i t i n t he ext r aSQL par amet er
/ / whi ch wi l l be passed t o t he BneOAPer i odNameSQL const r uct or .

i f ( cr i t er i a ! = nul l )
{
ext r aSQL = cr i t er i a. eval uat e( ext r aSQL) ;
}

/ / Get t he val ue f or t he ACTUAL_FLAG i nt er f ace col umn.
act ual Fl ag = ( St r i ng) col umnVal ues. get ( " ACTUAL_FLAG" ) ;

i f ( act ual Fl ag == nul l )
{
t hr ow new BneMi ssi ngPar amet er Except i on( BneResour ceSt r i ng. get Ml sSt r i ng( " LOV_NO_AC
}

/ / Get t he Set of Books I D val ue f r omt he spr eadsheet .
T_OF_BOOKS_I D" ) ; sobI DSt r i ng = ( St r i ng) col umnVal ues. get ( " SE

i f ( sobI DSt r i ng == nul l )
{
sSt r i ng( " UPL_ER_NO_SOB" t hr ow new BneMi ssi ngPar amet er Except i on( BneResour ceSt r i ng. get Ml
}


SOBDet ai l s( cont ext ) ;
t ches t he cur r ent user ' s Set of Books.
MATCH" ) ) ;
t r i ng = ( St r i ng) col umnVal ues. get ( " BUDGET_VERSI ON_I D" ) ;
neOAPer i odNameVal i dat or . get Domai nVal ues( ) No Budget Name i n t he Spr eadsheet . " ) ;
St r i ng( " UPL_ER_NO_BUDGET_VERSI ON" ) ) ;
r y coul d
i s si mpl y a case of
ed i n t hi s document .
ACur r encyCodeSQL. get Budget I d( cont ext , budget St r i ng) ) ;
i on e)
ceSt r i ng. get Ml sSt r i ng( " UPL_ER_BUDGET_VERSI ON_I D" ) ;
dat or . get Domai nVal ues( ) Er r or r et r i evi ng budget ver si on I d " +
r ow new BneSQLExcept i on( er r Msg, e) ;
t edPer i odType( ) ;
TE, ext r aSQL. get St at ement ( ) ) ;
l ues( ) SQLHandl e cr eat ed t o Budget Quer y. " ) ;
r si onI d) ,
el se
{
set Of BooksI d = Long. par seLong( sobI DSt r i ng) ;
}

/ / Get al l t he Set of Books i nf or mat i on f or t he cur r ent user .
BneSOBDet ai l s sob = BneSOBDet ai l s. get

/ / Conf i r mt he Set of Books i n t he spr eadsheet ma
i f ( set Of BooksI d ! = sob. get Set Of BooksI D( ) )
{
new BneMi ssi ngPar amet er Except i on( BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_SOB_ t hr ow
}

i f ( " B" . equal s( act ual Fl ag) ) / / Budget J our nal
{
t he Budget Name r ef er enced by BUDGET_VERSI ON_I D i nt er f ace col umn name / / Get
budget S

i f ( budget St r i ng == nul l | | budget St r i ng. t r i m( ) . equal s( " " ) )
{
m_Logger . l og( BneTr ace. TRACE, " B
t hr ow new BneMi ssi ngPar amet er Except i on( BneResour ceSt r i ng. get Ml s
}
el se
{
t r y
{
/ / Get t he Budget Ver si on I D usi ng t he BneOACur r encyCodeSQL cl ass.
/ / NOTE: I nst ead of cal l i ng usi ng t he BneOACur r encyCodeSQL cl ass, t he r el evant que
/ / have al t er nat i vel y been i ncl uded i n t he BneOAPer i odNameSQL cl ass. Thi s
eOACur r encyCodeSQL cl ass i s not i ncl ud / / r eusi ng of exi st i ng code. The Bn

d = Long. par seLong( BneO budget Ver si onI
} cat ch ( SQLExcept
{
St r i ng er r Msg = BneResour
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i
e) ;
t h
}
}

account edPer i odType = sob. get Accoun St r i ng

t r y
{
SQLHandl e = new BneOAPer i odNameSQL( cont ext , BUD_J OURNAL_NO_ACCT_DA
t or . get Domai nVa

Company Confidential - For internal use only
116

m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i da
BneSQLSt at ement sql St mt = new BneSQLSt at ement ( SQLHandl e. get Quer y( ) ,
new Obj ect [ ] { new Long( set Of BooksI d) , new Long ( budget Ve
new Long( set Of BooksI d) , account edPer i odType }) ;


( ) ) ;
t hi s i s an 11i i nst ance - Per i od Name suppor t i s onl y avai l abl e f or Act ual and Encumbr ance
Appl i cat i ons 11i and above.
" E" . equal s( act ual Fl ag) ) )
at e. equal s( " " ) ) / / i f t her e i s no Account i ng Dat e
L( cont ext , ACT_J OURNAL_NO_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;
QL. get St at ement ( ) ) ;
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . get Domai nVal ues( ) SQLHandl e cr eat ed t o +
spr eadsheet . " ) ;
SQL. get Bi ndVal ues( ) ) ;
ul t Set ( sql St mt . get Bi ndVal uesAsAr r ay( ) ) ;
i n t he spr eadsheet by t he user , t hen t he LOV i s l i mi t ed t o
t e.
t empDat eFor mat . par se( t empAccount i ngDat e) ;
. sql . Dat e( ut i l Dat e. get Ti me( ) ) ;

sql St mt . append( " " , ext r aSQL. get Bi ndVal ues( ) ) ;
r s = SQLHandl e. get BneResul t Set ( sql St mt . get Bi ndVal uesAsAr r ay( ) ) ;

} cat ch ( Except i on e)
{
ow new BneFat al Except i on ( e. t oSt r i ng t hr
}
}

/ / Check t hat
s i n / / j our nal

el se i f ( ( BneTechSt ack. get Mi ddl eTi er AppsRel ease( ) > 11) && ( " A" . equal s( act ual Fl ag) | |
{
y t r
{
/ / Get t he Account i ng Dat e val ue f r omt he spr eadsheet .
t empAccount i ngDat e = ( St r i ng) col umnVal ues. get ( " ACCOUNTI NG_DATE" ) ;

i f ( t empAccount i ngDat e == nul l | | t empAccount i ngD
{
i f ( " A" . equal s( act ual Fl ag) )
{
SQLHandl e = new BneOAPer i odNameSQ

m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . get Domai nVal ues( ) SQLHandl e cr eat ed t o +
Act ual Quer y - no Account i ng Dat e i n spr eadsheet . " ) ;
}
el se
{
SQLHandl e = new BneOAPer i odNameSQL( cont ext , ENC_J OURNAL_NO_ACCT_DATE, ext r aS


Encumbr ance Quer y - no Account i ng Dat e i n
}
BneSQLSt at ement sql St mt = new BneSQLSt at ement ( SQLHandl e. get Quer y( ) ,
new Obj ect [ ] { new Long( set Of BooksI d) }) ;

sql St mt . append( " " , ext r a
es r s = SQLHandl e. get BneR

}
el se
/ / I f an Account i ng Dat e has been ent er ed
nt ai n t he Account i ng Da / / Per i ods t hat co
{
j ava. ut i l . Dat e ut i l Dat e =
account i ngDat e = new j ava

Company Confidential - For internal use only
117



i f ( " A" . equal s( act ual Fl ag) )
{


SQLHandl e = new BneOAPer i odNameSQL( cont ext , ACT_J OURNAL_WI TH_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;
ct ual +
- l i mi t by Account i ng Dat e. " ) ;
el
{
SQLHandl e = new BneOAPer i odNameSQL( cont ext , ENC


er i odNameVal i dat or . get Domai nVal ues( ) SQLHandl e cr eat ed t o A m_Logger . l og( BneTr ace. TRACE, " BneOAP
Quer y
}
se
_J OURNAL_WI TH_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;

m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . get Domai nVal ues( ) SQLHandl e cr eat ed t o +
QLSt at ement ( SQLHandl e. get Quer y( ) ,
ct [ ] { new Long( set Of BooksI d) , account i ngDat e, account i ngDat e }) ;
sql St mt . append( " " , ext r aSQL. get Bi ndVal ues( ) ) ;
own except i on: " + e) ;
ow an except i on as
: Per i od Name cannot be +
upl oaded f or Act ual and Encumbr ance J nl s i n R11. 0 " ) ;
E_LOV" ) ) ;
er i odNameVal i dat or . get Domai nVal ues( ) End" ) ;
e Per i od Name on a per - l i ne basi s.
ai ni ng t he document and upl oad page
and t hei r associ at ed val ues.
ai ni ng al l t he val ues f or t he cur r ent upl oad r ow i n t he spr eadsheet .
aded. Thi s i ncl udes t he

Encumbr ance Quer y - l i mi t by Account i ng Dat e. " ) ;
}

BneSQLSt at ement sql St mt = new BneS
new Obj e



al uesAsAr r ay( ) ) ; r s = SQLHandl e. get BneResul t Set ( sql St mt . get Bi ndV
}
} cat ch ( Except i on e)
{
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . get Domai nVal ues( ) Caught unkn
t hr ow new BneFat al Except i on ( e. t oSt r i ng( ) ) ;
}
}
on an 11. 0 i nst ance, t hr / / I f t hi s i s an Act ual or Encumbr ance j our nal
not suppor t ed. / / t hi s i s
el se
{
er . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . get Domai nVal ues( ) Except i on m_Logg

t hr ow new BneFat al Except i on ( BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_PERI OD_NAM
}

m_Logger . l og( BneTr ace. TRACE, " BneOAP

r et ur n r s;
}


/ **
* Met hod: val i dat eCol umn
*
* <p>Thi s met hod val i dat es t h
*
r mat i on f or t he cur r ent user sessi on. * @par amcont ext - Al l t he val i d sessi on i nf o
* @par amr equest Par amet er s - A hasht abl e cont
* par amet er s
mnVal ues - A hasht abl e cont * @par amcol u

Company Confidential - For internal use only
118

* @par amcur r ent Col umn - I nf or mat i on about t he col umn bei ng upl o
col umn name and val ue. *


y BneUpl oader Message ar r ay i s r et ur ned when t he col umn i s val i d, and a
ader Message ar r ay cont ai ni ng r el evant upl oad messages i s r et ur ned when
an be er r or , except i on or war ni ng messages.
Upl oad pr ocess.
Hasht abl e r equest Par amet er s,
Hasht abl e col umnVal ues,
al i dat or . val i dat eCol umn( ) St ar t " ) ;
or mat t empDat eFor mat = new Si mpl eDat eFor mat ( " yyyy- MM- dd" ) ;

BneUpl oadCol umn t empBudget Name = nul l ;
BneUpl oadCol umn t empAct ual Fl ag = nul l ;
BneUpl oadCol umn t empAccount i ngDat e = nul l ;
i . e. GL_I NTERFACE
nt er f aceName( ) ;
I OD_NAME LI KE ?" ) ;
sql Handl eObj ect = nul l ;
r ow = nul l ;
l oad col umn.
s. get ( BneSt r i ngUt i l s. concat Seper at or Unl essEmpt y( t abl eName, " ACTUAL_FLAG" ,
BneConst ant s. BNE_DEFAULT_SEPARATOR) ) ;
ag == nul l )
t hr ow new Except i on( BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_ACTUAL_FLAG" ) ) ;
Books i nf or mat i on f or t he cur r ent user .
per i odName = ( St r i ng) cur r ent Col umn. get Col umnVal ueAsObj ect ( ) ; / / Get t he PERI OD_NAME col umn val ue f r omt he spr eadsheet .
/ / Get t he ACTUAL_FLAG col umn val ue f r omt he ACTUAL_FLAG upl oad col umn i nf or mat i on.
act ual Fl ag = ( St r i ng) t empAct ual Fl ag. get Col umnVal ueAsObj ect ( ) ;
* @r et ur n An empt
Upl o * Bne
* t he col umn i s i nval i d. Messages c
messages wi l l not st op t he * War ni ng
*/
Message [ ] val i dat eCol umn( BneWebAppsCont ext cont ext , publ i c BneUpl oader


BneUpl oadCol umn cur r ent Col umn)
{
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameV

Si mpl eDat eF
t empDat eFor mat . set Leni ent ( f al se) ;
bool ean account i ngDat eFl ag = f al se;
Dat e account i ngDat e = nul l ;
l ong set Of BooksI d = - 1;
l ong budget Ver si onI d = - 1;
St r i ng budget Name = nul l ;
St r i ng per i odName = nul l ;
St r i ng act ual Fl ag = nul l ;
St r i ng key = nul l ;

al of t he col umn val ues - / / Get t he i nt er f ace name t o al l ow f or r et r i ev
t abl eName = cur r ent Col umn. get I St r i ng
BneSQLSt at ement ext r aSQL = new BneSQLSt at ement ( " PS. PER

Obj ect
Obj ect [ ]
BneOAPer i odNameSQL SQLHandl e = nul l ;

t r y
{
/ / Get al l i nf or mat i on f or t he ACTUAL_FLAG up
l umnVal ue t empAct ual Fl ag = ( BneUpl oadCol umn) co

i f ( t empAct ual Fl
{

}

BneSOBDet ai l s sob = BneSOBDet ai l s. get SOBDet ai l s( cont ext ) ; / / Get al l t he Set of
set Of BooksI d = sob. get Set Of BooksI D( ) ;



Company Confidential - For internal use only
119






i f ( " B" . equal s( act ual Fl ag) ) / / Budget J our nal
Budget Name = ( BneUpl oadCol umn) col umnVal ues. get ( BneSt r i ngUt i l s. concat Seper at or Unl essEmpt y( t abl eName,
st ant s. BNE_DEFAULT_SEPARATOR) ) ;
l )
) ;
St r i ng msgSt r = BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_NO_BUDGET_VERSI ON" ) ;

umn val ue f r omt he BUDGET_VERSI ON_I D upl oad col umn i nf or mat i on.
( t empBudget Name. get Col umnVal ue( ) ) ;
et ai l s.
e( ) ;
y of :
of Books I D val ue, account i ngDat eFl ag
epar at or s.
" , " +
set Of BooksI d + " , " +
" BneOAPer i odNameVal i dat or . val i dat eCol umn key = " + key) ;
/ / Next , get t he cached SQL Handl e based on t he key, however i f i t does not exi st ,
/ / i t must be cr eat ed and added t o t he cache.
O_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . val i dat eCol umn( ) " +
budget Name +
pe = " + account edPer i odType +
" , set Of BooksI d = " + set Of BooksI d +
i odName = " + ( St r i ng) cur r ent Col umn. get Col umnVal ueAsObj ect ( ) ) ;
e. get Fi r st Row( new Obj ect [ ] { new Long( set Of BooksI d) , new Long( budget Ver si onI d) ,

{
et al l i nf or mat i on f or t he BUDGET_VERSI ON_I D upl oad col umn. / / G
t emp
" BUDGET_VERSI ON_I D" , BneCon

i f ( t empBudget Name == nul
{
cur r ent Col umn. f l agCol umnAsI nval i d(

r et ur n ( upl oadEr r or ( cur r ent Col umn, msgSt r , " BneOAPer i odNameVal i dat or " ) ) ;
}
el se
{
/ / Get t he BUDGET_VERSI ON_I D col
. par seLong budget Ver si onI d = Long
}

/ / Get Per i od Type f r omt he SOB d
St r i ng account edPer i odType = sob. get Account edPer i odTyp

/ / Cache on composi t e ke
/ / act ual Fl ag val ue, Set
/ / Use commas as s
key = act ual Fl ag +

account i ngDat eFl ag;

m_Logger . l og( BneTr ace. TRACE,


sql Handl eObj ect = m_St at ement s. get ( key) ;
SQLHandl e = nul l ;

i f ( sql Handl eObj ect ! = nul l )
{
SQLHandl e = ( BneOAPer i odNameSQL) sql Handl eObj ect ;
}
el se
{
SQLHandl e = new BneOAPer i odNameSQL( cont ext , BUD_J OURNAL_N
m_St at ement s. put ( key, SQLHandl e) ;
}


" , budget Name = " +
" , account edPer i odTy


Company Confidential - For internal use only
120

" , per

r ow = SQLHandl


new Long( set Of BooksI d) , account edPer i odType, per i odName }) ;
l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . val i dat eCol umn( ) got " + ( ( I nt eger ) r ow [ 0] ) . i nt Val ue( ) ) ;
r ned f r omt he quer y, t hen t he col umn val ue i s Val i d.
) > 0)
l i d( ) ;
St r i ng. get Ml sSt r i ng( " UPL_ER_PERI OD_I NVALI D" ) ;
n, msgSt r , " BneOAPer i odNameVal i dat or " ) ) ;
" . equal s( act ual Fl ag) | | " E" . equal s( act ual Fl ag) ) )
r y i nt er f ace col umn t her ef or e t he col umn i s def i ned as Fi neGr ai nVal i d when i t
. equal s( " " ) )
nVal i d( ) ;
nVal ues. get ( BneSt r i ngUt i l s. concat Seper at or Unl essEmpt y( t abl eName,
" ACCOUNTI NG_DATE" , BneConst ant s. BNE_DEFAULT_SEPARATOR) ) ;
l l )
pt i on ( BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_NO_ACCOUNT_DATE" ) ) ;
g t o f al se t o mar k t hat t he SQL r esul t set i s not
- f i r st we want t o check t hat t he per i od i s i n an open
/ / or f ut ur e- ent er abl e per i od. The account i ng dat e i s not r equi r ed f or t hi s check.
= f al se;
" , " +
set Of BooksI d + " , " +
account i ngDat eFl ag;
ace. TRACE, " BneOAPer i odNameVal i dat or . val i dat eCol umn key = " + key) ;
SQLHandl e = nul l ;
SQLHandl e = ( BneOAPer i odNameSQL) sql Handl eObj ect ;

Company Confidential - For internal use only
121



m_Logger .

/ / I f one or mor e r ows ar e r et u
i f ( ( ( I nt eger ) r ow[ 0] ) . i nt Val ue(
{
Gr ai nVa cur r ent Col umn. f l agCol umnAsFi ne
r et ur n ( new BneUpl oader Message[ 0] ) ;
}
el se
{
St r i ng msgSt r = BneResour ce
r et ur n ( upl oadEr r or ( cur r ent Col um
}
}
el se i f ( ( BneTechSt ack. get Mi ddl eTi er AppsRel ease( ) > 11) && ( " A
{
/ / Per i od Name i s not a mandat o
/ / does not cont ai n a val ue.
i f ( per i odName == nul l | | per i odName
{
cur r ent Col umn. f l agCol umnAsFi neGr ai
r et ur n ( new BneUpl oader Message[ 0] ) ;
}

t empAccount i ngDat e = ( BneUpl oadCol umn) col um


i f ( t empAccount i ngDat e == nu
{
t hr ow new Exce
}

/ / Set t he account i ngDat eFl a
/ / l i mi t ed by account i ngDat e

account i ngDat eFl ag
key = act ual Fl ag +



m_Logger . l og( BneTr

sql Handl eObj ect = m_St at ement s. get ( key) ;


i f ( sql Handl eObj ect ! = nul l )
{

}
el se


/ / f i r st busi ness r ul e t hat i s checked)
A" . equal s( act ual Fl ag) )
ACT_J OURNAL_NO_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;
{
= new BneOAPer i odNameSQL( cont ext , ENC_J OURNAL_NO_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;
SQLHandl e) ;
}
ce. TRACE, " BneOAPer i odNameVal i dat or . val i dat eCol umn( ) " +
Of BooksI d = " + set Of BooksI d +
r ent Col umn. get Col umnVal ueAsObj ect ( ) ) ;
bj ect [ ] { new Long( set Of BooksI d ) , per i odName }) ;
ACE, " BneOAPer i odNameVal i dat or . val i dat eCol umn( ) got " + ( ( I nt eger ) r ow[ 0] ) . i nt Val ue( ) ) ;
t hen r et ur n an Upl oad er r or .
<= 0)
{
St r i ng msgSt r = BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_PERI OD_I NVALI D" ) ;
r et ur n ( upl oadEr r or ( cur r ent Col umn, msgSt r , " BneOAPer i odNameVal i dat or " ) ) ;
E, " BneOAPer i odNameVal i dat or . val i dat eCol umn key = " + key) ;
get ( key) ;
es t hat t he Per i od i ncl udes t he account i ng dat e. ( Thi s i s t he second
hat i s checked)
}

Company Confidential - For internal use only
122

{
/ / The f ol l owi ng quer y ensur es t hat t he Per i od i s an open or f ut ur e- ent er abl e per i od. ( Thi s i s t he


i f ( "
{
SQLHandl e = new BneOAPer i odNameSQL( cont ext ,
}
el se

SQLHandl e
}

m_St at ement s. put ( key,



m_Logger . l og( BneTr a
" , set
" , per i odName = " + ( St r i ng) cur

r ow = SQLHandl e. get Fi r st Row( new O

m_Logger . l og( BneTr ace. TR

/ / i f t he quer y r et ur ns no r ows,
i f ( ( ( I nt eger ) r ow[ 0] ) . i nt Val ue( )



}

/ / Set t he account i ngDat eFl ag t o t r ue t o mar k t hat t he SQL r esul t set i s
i t hi n / / l i mi t ed by account i ngDat e. Thi s t est s t hat t he Account i ng Dat e f al l s w
/ / t he sel ect ed Per i od.
account i ngDat eFl ag = t r ue;
key = act ual Fl ag + " , " +
set Of BooksI d + " , " +
account i ngDat eFl ag;

m_Logger . l og( BneTr ace. TRAC

sql Handl eObj ect = m_St at ement s.
SQLHandl e = nul l ;

/ / The f ol l owi ng quer y ensur
/ / busi ness r ul e t

i f ( sql Handl eObj ect ! = nul l )
{
SQLHandl e = ( BneOAPer i odNameSQL) sql Handl eObj ect ;



el se
{
( act ual Fl ag) )
QL. get St at ement ( ) ) ;
ENC_J OURNAL_WI TH_ACCT_DATE, ext r aSQL. get St at ement ( ) ) ;
e ut i l Dat e = t empDat eFor mat . par se( t empAccount i ngDat e. get Col umnVal ue( ) ) ;
e = new j ava. sql . Dat e( ut i l Dat e. get Ti me( ) ) ;
BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . val i dat eCol umn( ) " +
" , set Of BooksI d = " + set Of BooksI d +
r i ng( ) +
et Col umnVal ueAsObj ect ( ) ) ;
unt i ngDat e, account i ngDat e, per i odName }) ;
n( ) got " + ( ( I nt eger ) r ow[ 0] ) . i nt Val ue( ) ) ;
hen t he col umn val ue i s Val i d.
PER_NO_ACTDT" ) ;
NameVal i dat or " ) ) ;
neGr ai nVal i d( ) ;
( Except i on e)
UPL_ER_OBTAI N_PERI OD" ) ;

Company Confidential - For internal use only
123



i f ( " A" . equal s
{
SQLHandl e = new BneOAPer i odNameSQL( cont ext , ACT_J OURNAL_WI TH_ACCT_DATE, ext r aS
}
el se
{
( cont ext , SQLHandl e = new BneOAPer i odNameSQL
}
SQLHandl e) ; m_St at ement s. put ( key,
}

j ava. ut i l . Dat
account i ngDat

m_Logger . l og(

" , account i ngDat e = " + account i ngDat e. t oSt
mn. g " , per i odName = " + ( St r i ng) cur r ent Col u

r ow = SQLHandl e. get Fi r st Row( new Obj ect [ ] { new Long( set Of BooksI d) , acco

m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . val i dat eCol um

/ / I f one or mor e r ows ar e r et ur ned f r omt he quer y, t
/ / i . e. The Account i ng Dat e f al l s wi t hi n t he sel ect ed Per i od.
i f ( ( ( I nt eger ) r ow[ 0] ) . i nt Val ue( ) > 0)
{
cur r ent Col umn. f l agCol umnAsFi neGr ai nVal i d( ) ;
}
el se
{
St r i ng msgSt r = BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_ER_
r et ur n ( upl oadEr r or ( cur r ent Col umn, msgSt r , " BneOAPer i od
}
}
r r ent Col umn. f l agCol umnAsFi cu
r et ur n ( new BneUpl oader Message[ 0] ) ;
}
t ch ca
{

/ / Ret ur n an upl oad er r or f or any unexpect ed except i ons.
St r i ng msgSt r = BneResour ceSt r i ng. get Ml sSt r i ng( "
r et ur n ( upl oadExcept i on( cur r ent Col umn, msgSt r , " BneOAPer i odNameVal i dat or " , e) ) ;
}
}


/ **
hod: shut downVal i dat or * Met


*
he Per i od Name val i dat or . Any open cur sor s ar e cl osed i n
e i s r et ur ned
.
r ( )
m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . shut downVal i dat or ( ) St ar t " ) ;
El ement ( ) ;
t s. get ( k) ;
m_St at ement s. r emove( k) ;
dNameComponent (GL Journals Period Name LOV)



* | |
* +=======================================================================+


* <p>Thi s met hod cl oses t
* t hi s met hod.
*
ages. An empt y ar r ay of BneUpl oader Messag * @r et ur n Any r el evant upl oad mess
* when t her e ar e no er r or s
*/
publ i c BneUpl oader Message [ ] shut downVal i dat o
{



i f ( m_St at ement s ! = nul l )
{
Enumer at i on st mt s = m_St at ement s. keys( ) ;
whi l e ( st mt s. hasMor eEl ement s( ) )
{
Obj ect k = st mt s. next
Obj ect o = m_St at emen
BneOAPer i odNameSQL SQLHandl e = ( BneOAPer i odNameSQL) o;
SQLHandl e. cl ose( ) ;

}
m_St at ement s = nul l ;
}

or ( ) End" ) ; m_Logger . l og( BneTr ace. TRACE, " BneOAPer i odNameVal i dat or . shut downVal i dat
t ur n ( new BneUpl oader Message[ 0] ) ; r e
}
}

Appendix E Sample Component Class - BneOAPerio
/*
* +=======================================================================+
* | Copyr i ght ( c) 2003 Or acl e Cor por at i on, Redwood Shor es, CA, USA |
* | Al l r i ght s r eser ved. |
* +=======================================================================+
* | HI STORY |
* | |
* | 27- J un- 2003 J ohn Smi t h Cr eat ed. |
*/

package or acl e. apps. bne. i nt egr at or . component . gl ;


mpor t j ava. sql . Resul t Set Met aDat a; i
i mpor t j ava. sql . SQLExcept i on;


Company Confidential - For internal use only
124



j ava. ut i l . Hasht abl e;
j ava. ut i l . Vect or ;
pSer vl et Request ;
or acl e. apps. bne. except i on. BneExcept i on;
at or . component . BneAbst r act Li st Of Val ues;
acl e. apps. bne. i nt egr at or . val i dat or s. gl . BneOAPer i odNameVal i dat or ;
SQLCr i t er i a;
;
mpl eSQLCr i t er i a;
e. apps. bne. webui . cont r ol . BneLOVCont r ol Bean;
f o;
ct i onar yDat a;
ct Li st Of Val ues
i nt o <code>Ver si onI nf o</ code> on cl ass l oadi ng.

Company Confidential - For internal use only
125

i mpor t
mpor t i

i mpor t j avax. ser vl et . ht t p. Ht t

i mpor t
i mpor t or acl e. apps. bne. except i on. BnePar amet er Except i on;
i mpor t or acl e. apps. bne. except i on. BneSQLExcept i on;
i mpor t or acl e. apps. bne. except i on. BneMi ssi ngPar amet er Except i on;

i mpor t or acl e. apps. bne. f r amewor k. BneBaj aCont ext ;
or acl e. apps. bne. f r amewor k. BneBaj aPage; i mpor t
i mpor t or acl e. apps. bne. f r amewor k. BneConst ant s;
or acl e. apps. bne. f r amewor k. BneWebAppsCont ext ; i mpor t

or acl e. apps. bne. i nt egr i mpor t
i mpor t or

i mpor t or acl e. apps. bne. par amet er . BnePar amet er ;
i mpor t or acl e. apps. bne. par amet er . BnePar amet er Li st ;

or acl e. apps. bne. r eposi t or y. BneResour ceSt r i ng; i mpor t

i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneComposi t e
esul t Set i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneR
i mpor t or acl e. apps. bne. ut i l i t i es. sql . BneSi

i mpor t or acl

i mpor t or acl e. apps. f nd. common. Ver si onI n

i mpor t or acl e. cabo. ser vl et . Page;
mpor t or acl e. cabo. ser vl et . event . PageEvent ; i

cabo. ui . dat a. Di i mpor t or acl e.

** /
* Cl ass BneOAPer i odNameComponent
*
*
* @aut hor J ohn Smi t h
* @ver si on $Revi si on: $ $Dat e: $
*/
publ i c cl ass BneOAPer i odNameComponent ext ends BneAbst r a
{

/ ** Fi el d RCS_I D */
publ i c f i nal st at i c St r i ng RCS_I D = " $Header : $" ;

/ **
on * RCS ver si on i nser t i
*/


l ean RCS_I D_RECORDED = Ver si onI nf o. r ecor dCl assVer si on( RCS_I D, " or acl e. apps. bne. i nt egr at or . component . gl " ) ;
ppsCont ext m_bneWebAppsCont ext = nul l ;
eOAPer i odNameVal i dat or m_val i dat or = nul l ;
m_val i dat or Par amet er s = nul l ;
vi ewer pr ocesses t he Per i od Name LOV as a TABLE.
*
* Met hod: i ni t
>
t he BneOAPer i odNameVal i dat or cl ass and cal l s get Domai nPar amet er s
of t he i nt er f ace col umn names r equi r ed by t he Component .
t he cur r ent ht t p r equest , and
pr ovi di ng access t o gener i c Baj a Ser vi ces.
i od Name LOV page.
event s t r i gger ed on t he Per i od Name LOV page. Encapsul at es
quest .
/
publ i c voi d i ni t ( BneBaj aCont ext cont ext ,
Page page,
PageEvent event )
m_val i dat or Par amet er s = m_val i dat or . get Domai nPar amet er s( ) ;

Company Confidential - For internal use only
126

publ i c st at i c f i nal boo

/ **
* Pr i vat e var i abl es
*/
eWebA pr i vat e Bn
e Bn pr i vat
pr i vat e St r i ng[ ]

/ /
i c Fi l t er Sear ch Val ues / / Bas
/ /
e St r i ng m_f i l t er Fi el d = nul l ; pr i vat
pr i vat e St r i ng m_f i l t er Val ue = nul l ;


/ **
* Met hod: get LOVPr ocessor Type
* <p>
* The
*
* @r et ur n t he vi ewer pr ocessor t ype TABLE.
*/
St r i ng get LOVPr ocessor Type( ) publ i c
{
t ur n BneConst ant s. BNE_LOV_TYPE_TABLE; r e
}


/ *

* <p
* Thi s met hod i nst ant i at es
t o cr eat e a St r i ng ar r ay *
*
@par amcont ext The i nt er f ace pr ovi di ng cont ext about *
*
* @par ampage I dent i f i es t he Per
@par amevent The i nt er f ace f or *
* a ser vl et r e
*
*



{
i f ( m_val i dat or == nul l )
{
m_val i dat or = new BneOAPer i odNameVal i dat or ( ) ;

}
}


Met hod: handl eLi st Of Val ues
* <p>
* Thi s met hod r et ur ns a BneBaj aPage cont ai ni ng di spl ay i nf or mat i on f or t he Per i od Name LOV page.
*
* @par amcont ext The i nt er f ace pr ovi di ng cont ext about t he cur r ent ht t p r equest , and
* pr ovi di ng access t o gener i c Baj a Ser vi ces.
* @par ampage I dent i f i es t he Per i od Name LOV page.
* @par amevent The i nt er f ace f or event s t r i gger ed on t he Per i od Name LOV page. Encapsul at es
* a ser vl et r equest .
* @par ambean Hol ds i nf or mat i on about t he Per i od Name LOV.
*
* @r et ur n a BneBaj aPage
*
* @t hr ows BneExcept i on
*
*/
publ i c BneBaj aPage handl eLi st Of Val ues ( BneBaj aCont ext cont ext ,
Page page,
PageEvent event ,
BneLOVCont r ol Bean bean) t hr ows BneExcept i on
{
BneWebAppsCont ext ct x = cont ext . get BneWebAppsCont ext ( ) ;
BneComposi t eSQLCr i t er i a sear chCr i t er i a = nul l ;
Hasht abl e par amet er Val ues = new Hasht abl e( ) ;
St r i ng t abl eHeader St r i ng = BneResour ceSt r i ng. get Ml sSt r i ng( " LOV_PERI OD_NAME" ) ;
St r i ng[ ] t abl eHeader s = {t abl eHeader St r i ng};
St r i ng[ ] t abl eCol umns = {" PERI OD_NAME" };
St r i ng[ ] t abl eSel ect Col umn = {" PERI OD_NAME" };

handl ePagePar amet er s( cont ext , page, event ) ;

f or ( i nt i ndex = 0; i ndex < m_val i dat or Par amet er s. l engt h; i ndex++)
{
St r i ng val i dat or Val ue = get Par amet er Val ue( ct x, m_val i dat or Par amet er s[ i ndex] ) ;
i f ( val i dat or Val ue ! = nul l )
{
par amet er Val ues. put ( m_val i dat or Par amet er s[ i ndex] , val i dat or Val ue) ;
}
}

i f ( ( m_f i l t er Val ue ! = nul l ) && ! m_f i l t er Val ue. t r i m( ) . equal s( " " ) )
{
sear chCr i t er i a = new BneComposi t eSQLCr i t er i a( ) ;
BneSi mpl eSQLCr i t er i a si mpl eCr i t er i a = new BneSi mpl eSQLCr i t er i a( BneSi mpl eSQLCr i t er i a. NONE, " PS. PERI OD_NAME" ,
BneSi mpl eSQLCr i t er i a. TYPE_NONE,
BneSi mpl eSQLCr i t er i a. LI KE, m_f i l t er Val ue,
BneSi mpl eSQLCr i t er i a. TYPE_STRI NG) ;
si mpl eCr i t er i a. set Sear chsCaseI nsensi t i vi t y( t r ue) ;
sear chCr i t er i a. addCr i t er i a( si mpl eCr i t er i a) ;
}

* / *
*

Company Confidential - For internal use only
127




set Tabl eFi l t er ( t r ue) ;
set PageTi t l e( get Par amet er Val ue( cont ext . get BneWebAppsCont ext ( ) , " wi ndow- capt i on" ) ) ;
set Tabl eDat a( get Tabl eDat a( ct x, bean, par amet er Val ues, sear chCr i t er i a) ) ;
set Tabl eCol umns( t abl eCol umns) ;
set Tabl eHeader s( t abl eHeader s) ;
(
/ **
* ePa met er
*
* Thi s met hod cr eat es a BnePar amet er Li st obj ect consi st i ng of one r ecor d f or each par amet er i n t he
* m_val i dat or Par amet er s St r i ng ar r ay ( cr eat ed i n t he i ni t met hod) .
*
* @t hr ows BnePar amet er Except i on
*/
pub voi d get Li st Of Val uePar amet er s t hr ows BnePar amet er Except i on
{

f or ( i nt i ndex = 0; i ndex < m_val i dat or Par amet er s. l engt h; i ndex++)
{
St r i ng desc = " Or acl e Appl i cat i ons GL_I NTERFACE. " + par amet er Name + " f i el d. " ;
addComponent Par amet er ( new BnePar amet er ( par amet er Name, " " , desc) ) ;
}
}


/ **
* <p>
* Thi s met hod does an ht t p get t o r et r i eve t he val ues ent er ed i n t he f i l t er f i el ds i n t he Per i od Name LOV page.
*
* @par amcont ext The i nt er f ace pr ovi di ng cont ext about t he cur r ent ht t p r equest , and
* pr ovi di ng access t o gener i c Baj a Ser vi ces.
* @par ampage I dent i f i es t he Per i od Name LOV page.
* @par amevent The i nt er f ace f or event s t r i gger ed on t he Per i od Name LOV page. Encapsul at es
* a ser vl et r equest .
*
* @t hr ows BneExcept i on
*/
pr i vat e voi d handl ePagePar amet er s ( BneBaj aCont ext cont ext ,
Page page,
PageEvent event ) t hr ows BneExcept i on
{
Ht t pSer vl et Request ht t pRequest = cont ext . get Ser vl et Request ( ) ;

m_f i l t er Fi el d = ht t pRequest . get Par amet er ( " l i st Of Val ues: bne: f i l t er Fi el d" ) ;
m_f i l t er Val ue = ht t pRequest . get Par amet er ( " l i st Of Val ues: bne: f i l t er Val ue" ) ;













}


s
r

Me
<p

l i c
et T
et u
t ho
>
a
r
d:
bl
n
eS
nu
ge
el
l l
t L
ec
;
i s
t C
t O
ol
f V
umn
al u
t abl
r a
eSel ect C
s
ol
( )
umn) ;

St r i ng par amet er Name = m_val i dat or Par amet er s[ i ndex] ;
* Met hod: handl ePagePar amet er s

Company Confidential - For internal use only
128



}

/ **
* Met hod: get Tabl eDat a
*
*
* @par ambneWebAppsCont ext Al l t he val i d sessi on i h i
* @par ambean Hol ds i nf or mat i on about t he Per i od Name LOV cont r ol
* @par ampar amet er Val ues Thi s i s a hasht abl e cont a f e
* val ues t hat ar e r equi r ed w
* @par amcr i t er i a Thi s cont ai ns al l t he det ai l s f o e L
*
* @r et ur n a Di ct i onar yDat a obj ect cont ai ni ng al l t he er i od l hat l e s d o h V g
*
* @t hr ows BneExcept i on
*
*/
publ i c Di ct i onar yDat a [ ] get Tabl eDat a ( BneWebAppsCont ext bneWebAppsCont ext ,
BneLOVCont r ol Bean bean,
Hasht abl e par amet er Val ues,
BneComposi t eSQLCr i t er i a cr i t er i a) t hr ows BneExcept i on
{
Di ct i onar yDat a sql Row = nul l ;
Vect or myRows = new Vect or ( ) ;
BneResul t Set r s = nul l ;
Resul t Set Met aDat a r smd = nul l ;

t r y
{
St r i ng col umnVal ue = nul l ;

r s = m_val i dat or . get Domai nVal ues( bneWebAppsCont ext , par amet er Val ues, cr i t er i a) ;

i f ( r s ! = nul l )
{
r smd = r s. get Resul t Set ( ) . get Met aDat a( ) ;

whi l e ( r s. next ( ) )
{
sql Row = new Di ct i onar yDat a( ) ;

f or ( i nt i = 1; i <= r smd. get Col umnCount ( ) ; i ++)
{
col umnVal ue = r s. get St r i ng( i ) ;

i f ( col umnVal ue == nul l )
{
sql Row. put ( r smd. get Col umnName( i ) , " " ) ;
}
el se
{
sql Row. put ( r smd. get Col umnName( i ) , col umnVal ue) ;
nf
i n
by
r
P
or m
i ng
t h
t he
at i
t h
e S
Pe
on
e
QL
r i
va
f
l i
t
od
or
st
ha
N
ues
t
o
t
am
t
e c
al
i l l
ur
l
d
OV
wi
r e
co
er
Co
nt
l u
i v
mp
l b

m
e
o
use
ns
t h
nen
di
r
a
e
t
s
nd
l
.
pl
ess
t h
i st
aye
on
i r
of
.

v
n t
al ue
e
s.
LO

pa e.

Company Confidential - For internal use only
129



}
}

myRows. addEl ement ( sql Row) ;
}
}
}
cat ch ( SQLExcept i on e)
{
t hr ow new BneSQLExcept i on( BneResour ceSt r i ng. get Ml sSt r i ng( " UPL_PERI OD_NAME_SQL_EXCEPTI ON" ) , e) ;
}
cat ch ( BneMi ssi ngPar amet er Except i on mpe)
{
bean. addEr r or ( mpe. get Message( ) ) ;
}
f i nal l y
{
m_val i dat or . shut downVal i dat or ( ) ;
}

Di ct i onar yDat a[ ] al l Dat a = new Di ct i onar yDat a [ myRows. si ze( ) ] ;

f or ( i nt i ndex = 0; i ndex < myRows. si ze( ) ; i ndex++)
{
al l Dat a[ i ndex] = ( Di ct i onar yDat a) myRows. el ement At ( i ndex) ;
}

r et ur n al l Dat a;
}


/ **
* Met hod: get Component Name
*
* @r et ur n a St r i ng cont ai ni ng t he name of t he Component .
*
*/
publ i c St r i ng get Component Name ( )
{
r et ur n " BneOAPer i odName" ;
}



/ **
* Met hod: get Component Ver si on
*
* @r et ur n a St r i ng cont ai ni ng t he r evi si on i dent i f i er f or t he Component .
*
*/
publ i c St r i ng get Component Ver si on ( )
{

Company Confidential - For internal use only
130




Company Confidential - For internal use only

131

r et ur n " $Revi si on: $" ;
}
}
Appendix F Sample Metadata for the Period Name Java Validation

1.2.1.1.1 BNE Parameter Definition Sample Metadata for the Period Name Validator/LOV
The following three parameter definitions are defined for the Period Name example
included in Appendices A, B and C:
1.2.1.2 BNE_PARAM_DEFNS_B

Column Name Column Value
APPLICATION_ID 231
PARAM_DEFN_CODE OA_PER_NAME_WIN_CAP
OBJECT_VERSION_NUMBER 1
PARAM_NAME Web ADI Components: OA_PERIOD_NAME window-caption
PARAM_SOURCE WEBADI:Components
PARAM_CATEGORY 3
DATATYPE 1
DEFAULT_REQUIRED_FLAG N
DEFAULT_VISIBLE_FLAG Y
DEFAULT_USER_MODIFYABLE_FLAG Y
VAL_TYPE 1
MAX_SIZE 100
DISPLAY_TYPE 4
DISPLAY_STYLE 1
DISPLAY_SIZE 100

APPLICATION_ID 231
PARAM_DEFN_CODE TABLE_BLOCK_SIZE
OBJECT_VERSION_NUMBER 1
PARAM_NAME table-block-size
PARAM_SOURCE WEBADI:Components
PARAM_CATEGORY 5
DATATYPE 2
DEFAULT_REQUIRED_FLAG N
DEFAULT_VISIBLE_FLAG Y
DEFAULT_USER_MODIFYABLE_FLAG Y
DEFAULT_NUMBER 25
VAL_TYPE 1
MAX_SIZE 100
DISPLAY_TYPE 4
DISPLAY_STYLE 1
DISPLAY_SIZE 10

APPLICATION_ID 231
PARAM_DEFN_CODE TABLE_SELECT_COLUMN
OBJECT_VERSION_NUMBER 1
PARAM_NAME table-select-column
PARAM_SOURCE WEBADI:Components
PARAM_CATEGORY 5
DATATYPE 1
DEFAULT_REQUIRED_FLAG N
DEFAULT_VISIBLE_FLAG Y
DEFAULT_USER_MODIFYABLE_FLAG Y
VAL_TYPE 1
MAX_SIZE 100
DISPLAY_TYPE 4
DISPLAY_STYLE 1
DISPLAY_SIZE 20
1


BNE_PARAM_DEFNS_TL

Column Name Column Value
APPLICATION_ID 231
PARAM_DEFN_CODE OA_PER_NAME_WIN_CAP
LANGUAGE US
SOURCE_LANG US
USER_NAME Title to place on window caption bar.
DEFAULT_STRING Search and Select Period Name
DEFAULT_DESC Search and Select Period Name
PROMPT_LEFT window-caption
PROMPT_ABOVE window-caption
USER_TIP Title to place on window caption bar.

APPLICATION_ID 231
PARAM_DEFN_CODE TABLE_BLOCK_SIZE
LANGUAGE US
SOURCE_LANG US
USER_NAME Determines if the number of records to display.
DEFAULT_DESC Number of records to show in an lov
PROMPT_LEFT table-block-size
PROMPT_ABOVE table-block-size
USER_TIP Determines if the number of records to display.

APPLICATION_ID 231
PARAM_DEFN_CODE TABLE_SELECT_COLUMN
LANGUAGE US
SOURCE_LANG US
USER_NAME Select column, comma-seperated list of columns to be selected. If aliases exist
then use the alias name. Example: NAME,DEPT
PROMPT_LEFT table-select-column
PROMPT_ABOVE table-select-column
USER_TIP Select column, comma-seperated list of columns to be selected. If aliases exist
then use the alias name. Example: NAME,DEPT


Company Confidential - For internal use only
2




Company Confidential - For internal use only

3



BNE Parameter List Sample Metadata for the Period Name Validator/LOV
The following parameter list is defined for the Period Name example included in Appendices A, B and
C:
BNE_PARAM_LISTS_B

Column Name Column Value
APPLICATION_ID 231
PARAM_LIST_CODE COMP_PERIOD_NAME
OBJECT_VERSION_NUMBER 1
PERSISTENT_FLAG Y
COMMENTS This list is used for the OA_PERIOD_NAME Component.
BNE_PARAM_LISTS_TL

Column Name Column Value
APPLICATION_ID 231
PARAM_LIST_CODE COMP_PERIOD_NAME
LANGUAGE US
SOURCE_LANG US
USER_NAME Web ADI: OA_PERIOD_NAME Component


BNE Parameter List Items Sample Metadata for the Period Name Validator/LOV
BNE_PARAM_LIST_ITEMS

Column Name Column Value
APPLICATION_ID 231
PARAM_LIST_CODE COMP_PERIOD_NAME
SEQUENCE_NUM 1
PARAM_DEFN_APP_ID 231
PARAM_DEFN_CODE TABLE_SELECT_COLUMN
STRING_VALUE PERIOD_NAME
DESC_VALUE PERIOD_NAME

APPLICATION_ID 231
PARAM_LIST_CODE COMP_PERIOD_NAME
SEQUENCE_NUM 2
PARAM_DEFN_APP_ID 231
PARAM_DEFN_CODE OA_PER_NAME_WIN_CAP
PARAM_NAME window-caption

APPLICATION_ID 231
PARAM_LIST_CODE COMP_PERIOD_NAME
SEQUENCE_NUM 3
PARAM_DEFN_APP_ID 231



Company Confidential - For internal use only

4

Column Name Column Value
PARAM_DEFN_CODE TABLE_BLOCK_SIZE
STRING_VALUE 25
DESC_VALUE 25

BNE Component Sample Metadata for the Period Name Validator/LOV
BNE_COMPONENTS_B

Column Name Description
APPLICATION_ID 231
COMPONENT_CODE OA_PERIOD_NAME
OBJECT_VERSION_NUMBER 1
COMPONENT_JAVA_CLASS oracle.apps.bne.integrator.component.gl.BneOAPeriodNameComponent
PARAM_LIST_APP_ID 231
PARAM_LIST_CODE COMP_PERIOD_NAME
BNE_COMPONENTS_TL Table

Column Name Description
APPLICATION_ID 231
COMPONENT_CODE OA_PERIOD_NAME
LANGUAGE US
SOURCE_LANG US
USER_NAME OA_PERIOD_NAME Component


BNE Interface Column(s) Sample Metadata for the Period Name Validator/LOV
BNE_INTERFACE_COLS_B Table

Column Name Description
APPLICATION_ID 231
INTERFACE_CODE GL_INTERFACE_115
OBJECT_VERSION_NUMBER 1
SEQUENCE_NUM 83
VAL_TYPE JAVA
VAL_OBJ_NAME oracle.apps.bne.integrator.validators.gl.BneOAPeriodNameValidator
VAL_COMPONENT_APP_ID 231
VAL_COMPONENT_CODE OA_PERIOD_NAME
LOV_TYPE STANDARD
OFFLINE_LOV_ENABLED_FLAG N




Company Confidential - For internal use only

5

Appendix G Sample Metadata for a Group Validator

BNE Interface Column(s) Sample Group Validator (Reversal Group Validator)
BNE_INTERFACE_COLS_B - New Group Validator Column
A new Interface Column is defined for the Group Validator. Metadata for this new interface
column should be as follows: (The metadata below is a sample from the Reversal Group Validator
used for the General Ledger Journals Integrator)

Column Name Column Value
APPLICATION_ID 231
INTERFACE_CODE GL_INTERFACE_115
SEQUENCE_NUM 138
INTERFACE_COL_TYPE 2
INTERFACE_COL_NAME REVERSAL_PARENT
ENABLED_FLAG Y
REQUIRED_FLAG N
DISPLAY_FLAG N
READ_ONLY_FLAG N
NOT_NULL_FLAG N
SUMMARY_FLAG N
MAPPING_ENABLED_FLAG N
GROUP_NAME REVERSAL
VAL_TYPE GROUP
VAL_OBJ_NAME oracle.apps.bne.integrator.validators.gl.BneOAReversalGroupValidator
LOV_TYPE NONE
OFFLINE_LOV_ENABLED_FLAG N
BNE_INTERFACE_COLS_B Including Interface Columns in the Validation Group
For each Interface Column to be validated by the Group Validator/LOV, update the
GROUP_NAME column to contain the GROUP_NAME defined by the new Interface Column
definition (see above). Continuing the above example, two interface columns use the
REVERAL group:
Column Name Column Value
APPLICATION_ID 231
INTERFACE_CODE GL_INTERFACE_115
SEQUENCE_NUM 58
INTERFACE_COL_NAME REFERENCE7
GROUP_NAME REVERSAL

APPLICATION_ID 231
INTERFACE_CODE GL_INTERFACE_115
SEQUENCE_NUM 59
INTERFACE_COL_NAME REFERENCE8
GROUP_NAME REVERSAL






Company Confidential - For internal use only

6

Open and Closed Issues for this Deliverable

Open Issues

ID Issue Resolution Responsibility Target Date Impact
Date

1 Update with info on
creating classes for Java
validators and LOVs
Get Info from Tony





Closed Issues

ID Issue Resolution Responsibility Target Date Impact
Date

You might also like