You are on page 1of 37

1.1.

Responsibilities, menu
Applications: Web Application Desktop Integrator (WebApplications Desktop Integrator)
Responsibilities: Desktop Integration (Desktop Integration) <11i version: OracleWebADI>
Responsibilities: Desktop Integration Manager (Desktop Integration Manager)
Desktop Integration menu

Desktop Integration Manager menu

Profile Option:
BNE Allow No Security Rule Yes

ADI: Use Function Security Null (Whether security is enabled features. Yes, you need to include
the appropriate menu function)

Development WebADI to use "HR ADISeeded Integrator FormFunctions (HR ADI implanted Form
Builder function)."
Create database objects and register
Create Table
CREATE TABLE APPS.XXAA_WEBADI_DEMO
(
ADI_ID
NUMBER,
ADI_ORGANIZATION_ID NUMBER,
ADI_CODE
VARCHAR2(30 BYTE),
ADI_DATE
DATE
)
-- Create synonym
CREATE PUBLIC SYNONYM XXAA_WEBADI_DEMO FOR APPS.XXAA_WEBADI_DEMO;
--Create sequence
CREATE SEQUENCE APPS.XXAA_WEBADI_DEMO_S;
CREATE PUBLIC SYNONYM XXAA_WEBADI_DEMO_S FOR APPS.XXAA_WEBADI_DEMO_S;
-- Insert demo data
INSERT INTO XXAA_WEBADI_DEMO VALUES(1,204,'TEST01',SYSDATE); COMMIT;

-- Register table and columns


BEGIN
ad_dd.register_table('cust','XXAA_webadi_demo','t');
ad_dd.register_column('cust','XXAA_webadi_demo','adi_id',1,'number',38,'y','n');
ad_dd.register_column('cust','XXAA_webadi_demo','adi_organization_id',2,'number',
38,'y','n');
ad_dd.register_column('cust','XXAA_webadi_demo','adi_code',3,'varchar2',30,'y','n
');
ad_dd.register_column('cust','XXAA_webadi_demo','adi_date',4,'date',9,'y','n');
COMMIT;
END;
-- Create demo view
CREATE OR REPLACE VIEW XXAA_WEBADI_DEMO_V
AS
SELECT
cwd.adi_id
,cwd.adi_organization_id
,cwd.adi_code ,cwd.adi_date
FROM XXAA_webadi_demo cwd;

Create a Package
CREATE OR REPLACE PACKAGE APPS.XXAA_WEBADI_DEMO_PKG IS
PROCEDURE upload_data(p_id IN NUMBER
,p_organization_id NUMBER
,p_code IN VARCHAR2
,p_date IN DATE);
END XXAA_WEBADI_DEMO_PKG;
/
CREATE OR REPLACE PACKAGE BODY APPS.XXAA_WEBADI_DEMO_PKG IS
PROCEDURE upload_data(p_id IN NUMBER
,p_organization_id NUMBER
,p_code IN VARCHAR2
,p_date IN DATE) IS
BEGIN
--do any thing you want to do here
IF p_id IS NULL THEN
INSERT INTO XXAA_WEBADI_DEMO
(adi_id
,adi_organization_id
,adi_code
,adi_date)
SELECT XXAA_WEBADI_DEMO_S.NEXTVAL
,p_organization_id
,p_code
,p_date
FROM dual;
ELSE
UPDATE XXAA_WEBADI_DEMO CWD
SET cwd.adi_organization_id = p_organization_id
,cwd.adi_code = p_code
,cwd.adi_date = p_date
WHERE cwd.adi_id = p_id;
END IF;
COMMIT;
END;
END XXAA_WEBADI_DEMO_PKG;
/

2.3. Creating IntegratorRequired


N: Desktop Integration -> Create Document
Select Integrator: HR Integrator Setup
Click on Next

Do not choose the report button, so you can edit and upload.
Select Excel 2007 and click on Next

Select None and Click on next

Click on Create Document

The system automatically creates a document and open Excel


Click on close button

Enter the below details:


Item

Value

Metadata Type
Application Short Name

UPDATE
CUST

Integrator User Name

XXAA_WEBADI_DEMO

View Name

XXAA_WEBADI_DEMO_V

Form Name
API Package Name

GENERAL
XXAA_WEBADI_DEMO_PKG

API Procedure Name


Interface User Name

UPLOAD_DATA
WEBADI demo Interface

Interface Parameter List Name

Parameter List

API Type

PROCEDURE

API Return Type

Click on Add ins Oracle Upload

Select the the option and click on upload

If the records are loaded then

SELECT bni.application_id
,bni.integrator_code
,bni.user_name
FROM bne_integrators_vl bni
WHERE bni.user_name = 'XXAA_WEBADI_DEMO';

2.4 Maintenance Association Integrator Form Functions (Required)


N: Desktop Integration -> Create Document
Select Integrator: HR Maintain Integrator FormFunction Associations

N: Application Developer -> Applications -> Function


Function: XXAA_WEBADI_FUNCTION
Functions Username: XXAA_WEBADI_FUNCTION
Type: Functions

Add functionality to the menu


N: Application Developer -> Applications -> Menu
Menu : DESKTOP INTEGRATION MENU
Function : XXAA_WEBADI_FUNCTION

Integrated desktop menu below to add functionality XXAA_WEBADI_FUNCTION, which


prompted not need to fill.
The system automatically creates a document and open Excel

SELECT
bni.application_id
,bni.integrator_code
,bni.user_name
,bsr.security_value
FROM
bne_integrators_vl bni
,bne_security_rules bsr
WHERE bni.user_name LIKE 'XXAA_WEBADI_DEMO'
AND bsr.application_id = bni.application_id
AND bsr.security_code = bni.integrator_code;

2.5 Definition of the layout (Required)


N: Desktop Integrator -> Custom Layout
Select Integrator created above: "XXAA_WEBADI_DEMO", Find, and then click Create

Enter layout name: XXAA_WEBADI_DEMO_LAYOUT, head a few do not control, directly next

Required fields inside the arrangement of all select "OK." Optional field regardless, the next step.
Fields required field area is automatically out of the API Procedure Name list of parameters, and
automatically remove the front
The P_. We can arrange these fields are displayed in the Header or Line. Here we all changed Line,
because I
They are single-table import
Note: 1, these values will be passed API Procedure Name, row once, whether here or Header Line
2, field names and variables P_XX views, some variables after removing P_ best not to view the
inside of the field same name.
So is separately displayed in Excel inside line, passed as a parameter when API Procedure Name is
tied, as In API Procedure Name code inside, we can distinguish himself in his early artificial line
segment and sub-fields, and then insert
Go to a different table.
The field is an optional field area View of the field, you cannot display all.

SELECT
bni.application_id
,bni.integrator_code
,bni.user_name
,blv.layout_code
,blv.user_name
,blc.sequence_num
,bic.*
FROM
bne_integrators_vl
bni
,bne_layouts_vl
blv
,bne_layout_cols blc
,bne_interface_cols_vl bic
WHERE 1=1
AND bni.user_name LIKE 'XXAA_WEBADI_DEMO'
AND blv.integrator_app_id = bni.application_id
AND blv.integrator_code = bni.integrator_code
AND blv.layout_code = blc.layout_code
AND blc.interface_app_id = bic.application_id
AND blc.interface_code = bic.interface_code
AND blc.interface_seq_num = bic.sequence_num;

2.6 Definition Mapping (Optional)


N: Desktop Integration -> Define Mapping
Select Integrator created above "XXAA_WEBADI_DEMO", find:

This will pop up a default defined mapping update:

Map details the next step.


Define the mapping
N: Application

Field defined here corresponds to the database interface shows which field.
We added four lines, the view out of the value of the parameter passed to Procedure.

SELECT bni.application_id ,
bni.integrator_code ,
bni.user_name ,
bmv.mapping_code
FROM bne_integrators_vl bni ,
bne_mappings_vl bmv
WHERE bni.user_name LIKE 'XXAA_WEBADI_DEMO'
AND bmv.integrator_app_id = bni.application_id
AND bmv.integrator_code
= bni.integrator_code;

2.7 Definition of query (Optional)


Used to define the filtering criteria.
N: Desktop Integration -> Creating Documents

Select HR CreateStandaloneQuery

If you later want to modify the query instead HR Maintenance (HR Maintain StandaloneQuery).

We enter the following: (preferably double-click the cell and choose out LOV
Item
Value
where
adi_organization_id=nvl($PARAM$.CUST:P_ORGANIZ
SQL WHERE clause
ATION_ID,adi_ORGANIZATION_ID) order by ADI_ID
1st Parameter Name

CUST:P_ORGANIZATION_ID

1st Parameter Type

Number

1st Parameter Prompt

Inventory Organization ID

Behind the first one ... the first five parameter name parameter name, this is according to the
parameters defined within the SQL WHERE clause to the front.
Parameter prompts when you are creating a document, select the parameter description.
Add to EBS

2.8 Use
N: Desktop Integration -> Creating Documents
You can also 2.9, by defining the function of way to access.

If you do not do that step to define the query conditions, without having to enter a query in this
condition, direct continuation

Document Creation Review


N: Creating Documents

You can see, ID field has a value, the field is automatically generated, indicating just record into the
table.
3. Customized development (Advanced-Excel LOV)
3.1 Features Summary
This example is based on the second chapter customized development (basic) conducted. LOV is to
achieve a function in Excel.
3.2 The relationship between the components of a custom field with LOV
Directly update the base table
In APPS execution:
SELECT
bic.interface_col_name -- field name
, bic.val_type -- fill TABLE
, bic.val_id_col -- the parameters passed to the field program, fill
ORGANIZATION_ID
, bic.val_mean_col -- Ecxel displayed field, fill ORANIZATION_ID
, bic.val_desc_col -- LOV in the Description field, fill ORGANIZATION_CODE,
ORGANIZATION_NAME
, bic.val_obj_name -- where the list shows that fill
ORG_ORGANIZATION_DEFINITIONS
, bic.val_addl_w_c -- where the statement, from time to fill
, bic.val_component_app_id -- component application id, fill 20003
, bic.val_component_code -- component code, not yet created, filling in one,
and then create, fill CUX_ORGANIZATION
, bic.lov_type -- fill POPLIST or STANDARD, you can fill NONE
, bic.offline_lov_enabled_flag -- offline editing EXCEL spreadsheet is
available, fill Y
FROM bne_interface_cols_b bic
WHERE EXISTS
(SELECT NULL
FROM bne_interfaces_vl intf ,bne_integrators_vl intg --Integrator

WHERE bic.interface_code = intf.interface_code


AND intf.integrator_code = intg.integrator_code
AND intg.user_name = 'XXAA_WEBADI_DEMO'
)
AND bic.interface_col_name = 'P_ORGANIZATION_ID'
FOR UPDATE;

Note understand val_id_col, val_mean_col, val_desc_col, these three fields is very important.
val_id_col: program parameters passed to the field. This column need only pass values to
P_ORGANIZATION_ID, it only needs to fill ORGANIZATION_ID. If you define the parameters
P_ORGANIZATION_CODE, you need to fill ORGANIZATION_ID, ORGANIZATION_CODE.
val_mean_col: fields displayed in Excel. This column is to be displayed inventory organization ID, it
only needs to fill in a ORGANIZATION_ID. If you need to display the inventory organization code,
then fill ORGNIZATION_CODE (pass by value or can be passed ORGANIZATION_ID, but at the
interface shows inventory organization code). If both display inventory organization ID, inventory
organization code on excle interface, ORANIZATION_ID, ORGANIZATION_CODE need to enter
both.
val_desc_col: LOV in the description field can be a field, it can be more than one field

If you do not understand what this place, you can take a standard WEBADI direct reference to see
how settings.
The reason for this error is reported: in val_mean_col input is ORANIZATION_ID,
ORGANIZATION_CODE, ORGANIZATION_NAME three fields, but only display inventory
organization ID field on the interface. The input value should be changed to: ORANIZATION_ID
3.3 Creating LOV components
Create components 1,
through the previously defined val_component_code to get value application_id,
val_component_app_id, val_component_code of
SELECT b.application_id ,
b.val_component_app_id ,
b.val_component_code
FROM bne_interface_cols_b b
WHERE b.val_component_code = 'OA_ORGANIZATION';

2, to the assembly base table insert records


INSERT INTO bne_components_b
(application_id
,component_code
,object_version_number
,component_java_class
,param_list_app_id
,param_list_code
,created_by
,creation_date
,last_updated_by
,last_update_login
,last_update_date
)

VALUES
(231 -- corresponding BNE_INTERFACE_COLS_B.VAL_COMPONENT_APP_ID
, 'CUST_ORGANIZATION' -- corresponding BNE_INTERFACE_COLS_B.VAL_COMPONENT_CODE
, 1
, 'oracle.apps.bne.integrator.component.BneOAValueSetComponent' -- Oracle
standard code
, 231 -- Parameter Application ID
, 'CUST_ORGANIZATION' -- the code name for the parameter, this parameter is very
important
, -1
, SYSDATE
, -1
, -1
, SYSDATE
);

3, to insert records in the table assembly language


INSERT INTO bne_components_tl
(application_id
,component_code
,LANGUAGE
,source_lang
,user_name
,created_by
,creation_date
,last_updated_by
,last_update_login
,last_update_date)
VALUES
(231 -- corresponding bne_components_b.application_id
, 'CUST_ORGANIZATION' -- corresponding bne_components_b.component_code
, 'US'
, 'US'
,'Inventory Organization' -- Parameter Description
, -1
, SYSDATE
, -1
, -1
, SYSDATE);

3.4 Definition of Parameters


Copy parameters based on existing parameters
Next: Desktop Integration Manager -> Define Parameters
Applications: Web Application Desktop Integrator
Un Check The Restrict to this application

Click Find Name the back, you can use an existing Oracle system parameters (eg:
COMP_AVG_JNL_FLAG) parameters and attributes to create customized applications.

Click on duplicate

Name: CUST_ORGANIZATION inventory organization


Application: CUSTOM Custom

Code: CUST_ORGANIZATION
Note: Application must be the same as the previous custom applications

Code must be consistent with bne_components_b. Param_list_code. Sql refer to the following
SELECT
bcb.param_list_code
,bcb.component_code
FROM bne_components_b bcb
WHERE bcb.component_code = 'CUST_ORGANIZATION'

Save and exit interface.


Change the parameter properties
Next: Desktop Integration Manager -> Define Parameters

Modify table-columns property

Value: ORGANIZATION_ID, ORGANIZATION_CODE, ORGANIZATION_NAME


Description: inventory organization ID, inventory organization code, inventory organization
Click Save

Description: 1, Value field is a field defined LOV displayed, Description define basically useless,
Show or Value LOV in the values. Only shows the first field can be modified in the table-headers
attribute
Set.
2, enter the VALUE of each column name, use "," to separate. Note that the field names must be
One BNE_INTERFACE_COLS_B.VAL_OBJ_NAME field and appears in
BNE_INTERFACE_COLS_B in VAL_ID_COL, VAL_MEAN_COL or Val_Desc_Col
, Otherwise displays no value.
3, SQL Reference:
SELECT
b.val_obj_name ,
b.val_id_col ,
b.val_mean_col ,
b.val_desc_col

FROM bne_interface_cols_b b
WHERE b.val_component_code LIKE '%CUST_ORGANIZATION'

Modify table-column-alias attribute

Value: P_ORGANIZATION_ID
Description: P_ORANIZATION_ID
Note: This step is very important. In front of the table column must be in the same order (separated
by commas), the name must

Hereinafter the same shall be the same as that PACKAGE parameters. Otherwise, the value is not
returned excel
Reference SQL:
SELECT bic.interface_col_name ,
bic.val_obj_name ,
bic.*
FROM bne_interface_cols_b bic ,
bne_interfaces_vl intf ,
bne_integrators_vl intg
WHERE bic.interface_code = intf.interface_code
AND intf.integrator_code = intg.integrator_code
AND bic.interface_col_type=1
AND intg.user_name
= 'XXAA_WEBADI_DEMO'

ORDER BY bic.creation_date DESC;

Modify table-select-column attributes

Value: P_ORGANIZATION_ID (on behalf of the return of field)


Description: P_ORGANIZATION_ID
The name of the field must remain exactly BNE_INTERFACE_COLS_B.interface_col_name
Cause. And the field must exist in BNE_INTERFACE_COLS_B.VAL_OBJ_NAME column, or
The use of pseudonyms is specified in Table ColumnAlias parameters property. Otherwise, after the
selection of a list of values, not from
EXCEL spreadsheet automatically update the corresponding item.

Modify table-headers attribute


Value: Inventory Organization ID (LOV first header field value of)
Description: Inventory Organization ID

Modify window-width property

Value: 600 (LOV width)

Save

After each attribute modification finished, click Save oh we must remember that, or else you will
regret it!
Use
1, restart the application, because the LOV call is Servlet class, you must reload the parties can enter
into force.
If you modify the property value is no need to restart the application. Only update the base table
When bne_interface_cols_b the values only need to restart the application.
2, the use WEBADI, LOV finally see the effect:
4 custom development. (Advanced - other features to expand)
4.1 modify Excel column header
Parameters Excel column names package of WebADI generated is the same. Allowing users to see
the column headings in English, it is estimated
Some would disagree.
You can directly modify the base table bne_interface_cols_tl to achieve
SELECT
bic.prompt_left -- head table header
, bic.prompt_above -- row table header,bic.language

FROM bne_interface_cols_tl bic


WHERE EXISTS
(SELECT NULL
FROM bne_interfaces_vl intf ,bne_integrators_vl intg
WHERE bic.interface_code = intf.interface_code
AND intf.integrator_code = intg.integrator_code
AND intg.user_name = 'XXAA_WEBADI_DEMO')
FOR UPDATE
;

4.2 Use the drop down box query parameters


Defined set of values
First define a set of values, as a data source drop-down box
Value Set Name: CUX_WEBADI_ORGANIZATION
Authentication Type: Table

SELECT pdf.rowid ,
pdf.param_defn_code ,
pdf.param_name ,
pdf.prompt_left ,
pdf.datatype ,
pdf.val_type ,
pdf.val_value ,
pdf.display_type ,
pdf.display_style ,
intg.user_name
FROM bne_integrators_vl intg ,
bne_contents_vl cont ,
bne_param_list_items pl ,
bne_param_defns_vl pdf
WHERE intg.application_id = cont.integrator_app_id
AND intg.integrator_code
= cont.integrator_code
AND cont.param_list_app_id = pl.application_id
AND cont.param_list_code
= pl.param_list_code
AND pl.param_defn_app_id
= pdf.application_id
AND pl.param_defn_code
= pdf.param_defn_code
AND intg.user_name
='XXAA_WEBADI_DEMO';

VAL_TYPE: Authentication Type, 1: no authentication 2: The value set validation 3: Lookup


verification
VAL_VALUE: value value set under verification to verify the situation, fill value set; under Lookup
validation, in accordance with the

view_application_id: lookup_type format fill values, such as: 450: FII_PLAN_TYPE


DISPLAY_TYPE: Display Type 1: check box 2: radio button 3: list box
4: text area 5: password box
DISPLAY_STYLE: Display Style This value is only displayed when the entry into force of 1,2
Perform modifications
UPDATE bne_param_defns_b bpd
SET bpd.val_type = 2 -- value SET validation ,
, bpd.val_value = 'CUX_WEBADI_ORGANIZATION' -- the value SET name,
, bpd.display_type
= '3 '
WHERE bpd.param_name = 'CUST:P_ORGANIZATION_ID';
COMMIT;

LOV achieve the desired form, the current is impossible. The reason is simple HTML standard
components LOV not realize it had Some difficulty
4.3 Creating an integrated shortcuts
N: Application Developer -> Applications -> Function
Function : XXAA_WEBADI_DEMO_FUN
User Function Name : XXAA_WEBADI_DEMO_FUN
Type : SSWA servlet functions
Html call : BneApplicationService
Parameters : bne: page = BneCreateDoc & bne: language = US & bne: reporting = N &
bne: integrator = 20067: GENERAL_463_INTG & bne: layout = 20067:
XXAA_WEBADI_DEMO_LAYOUT & bne: content = 20067: GENERAL_463_CNT & bne: map =
20067: GENERAL_463_MAP & bne: noreview = anything
20003 : represents the application product ID, to obtain the following ways :
SELECT application_id
FROM fnd_application
WHERE application_short_name = 'CUST';
Integrator: Get in the following ways :
SELECT t.integrator_code
FROM bne.bne_integrators_tl t
WHERE t.user_name = 'XXAA_WEBADI_DEMO'; -- Integrated Used username
layout: get the following ways :
SELECT a.layout_code
FROM bne_layouts_b a
WHERE a.integrator_code = 'GENERAL_463_INTG';
content: get the following ways :
SELECT t.content_code
FROM bne_contents_b t
WHERE t.integrator_code = 'GENERAL_463_INTG';
map: Get in the following ways :
SELECT t.mapping_code
FROM bne_mappings_b t
WHERE t.integrator_code = 'GENERAL_463_INTG';

Custom Menu
N: Application Developer -> Applications -> Menu

Desktop integration features linked to the following (you can hang on to their desired menu below).
Use
Into the corresponding responsibilities Below, you can see the hang of features, then open, they can
be used directly, without Again for the steps in section 2.8.

You might also like