首页 > 代码库 > Web ADI示例:供应商站点录入

Web ADI示例:供应商站点录入

Web ADI示例:供应商站点录入

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)

原文:http://www.google.com.hk/url?sa=t&rct=j&q=&esrc=http://www.mamicode.com/s&source=web&cd=1&cad=rja&uact=8&ved=0CBwQFjAA&url=http%3A%2F%2Ferpwebsolutions.weebly.com%2Fuploads%2F1%2F6%2F2%2F2%2F16220968%2Fvendor_site_entry_automation_webadi.pdf&ei=jw_BU8PlKJCAogTE54LYCw&usg=AFQjCNEz3OYFVz7PMbGG0meRNu1Br6qyEg

创建自定义WebADI的步骤

1.创建一个Integrator(职责DesktopIntegration Manager)表或者用API来插入数据到:Integrator, Interface, Content, Uploader, Importer.

2.创建一个Component(可选)(职责DesktopIntegration Manager)值列表用于Integrator.

3.创建一个Layout(职责DesktopIntegration Manager),用于定义Integrator中列的显示特性。

4.创建一个Document(职责DesktopIntegration Manager),这是真正的Web ADI模板,可以把它保存为一个菜单功能。

我们可以使用旧的PL/SQL API方法来定义Integrator

PL/SQL Procedure BNE_INTEGRATOR_UTILS

CREATE_INTEGRATOR

CREATE_INTERFACE_FOR_API

CREATE_DEFAULT_LAYOUT

UPDATE_INTERFACE_COLUMN_TEXT

CREATE_TABLE_LOV

也可以使用R12中新的界面(向导)来创建

Integrator & Interface Responsibility:Desktop Integration Manager

Layout Responsibility: Desktop Integration

这里我们使用UI向导的方式来创建Integrator用的所有东西

Integrator本质上只是一个用来包含所有用于Excel表格集成的元数据的名词而已。

Inteface定义了如何把数据从桌面应用程序上传到OracleE-Business Suite,我们有下面几种类型的interface:

Table

PL/SQL API Procedure

PL/SQL API Function

 

创建Integrator

先导航到Desktop Integration Manager > Create Integrator

Integrator的字段

Integrator Name – 如果是forms的话,你会看到的名字

Internal Name – 这个一般要起的短一点

Application – 创建在你的哪一个自定义应用下面

Enabled – 启用和禁用Integrator

Display in Create Document Page – 要不要显示在创建Document页面上

Integrator Parameters – Integrator的参数,你可以创建一个参数页,在下载document的时候必填一些参数

Security Rule – 可以创建自己的功能并分配安全规则,以及系统的DesktopIntegration – Create Document以便允许用户使用Create Document页面.

输入 Integrator 信息

Integrator Name

XXCC Vendor Site Entry Integrator

Internal Name

XXCCVEND1

Application

C&C Custom Application

Reporting Only

Enabled

Yes

Display in Create Document Page

Y

Integrator Parameters

Upload Server

Parameter

Document Parameter

Session Parameter

Security Rules

Function

Selected Functions

点击Next,


Interface字段-第一步(注意这些表或者PL/SQL包必须在创建Interface前就已经存在,如果刚创建的,需要重启OAF服务器(O4CJ, Weblogic or Apache等))

l   InterfaceName –你会在Form上看到的名称,如果是Forms的话,尽量保持这个名字比较短(6 8 字符) 因为它将会被向导(或者PL/SQLAPI)用来自动创建行定义。

l   InterfaceType – 选择一个interface 类型

ü   Table

Table名称

ü   API-Procedure

Package 名称

Procedure/Function名称

API 返回值

ü   API-Function

Package名称

Procedure/Function名称

API返回值

Enter Integrator Information

Interface Name

XXCC1

Interface Type

API - Procedure

Package Name

XXCC_WEBADI_PKG

Procedure/Function Name

CREATE_VEND_SITE

API Returns

点击Apply

注意:会添加interface package的代码。

当你点击’Select Interface Name’单选按钮的时候下面的屏幕会出现。


注意:你点击单选按钮之后会用一些时间来显示下面的部分。

Interface 字段-第二步

 

Attribute Name –属性名,来PL/SQL中Procedure或者Function的参数, 或者表的列名

? Prompt Left – 在文档中左边的提示

? Data Type – 数据类型,来自于参数或者列定义

? Enabled – 是否启用这个属性

? Displayed –是否显示这个属性

? Default Type – 默认类型,可以是常量,环境变量,参数,Profile 选项,SQL查询,Lookup

? Attribute Type –属性类型,描述了属性源自于哪里。

点击提交,这样就创建好了一个集成器。

 

创建LOV组件

要创建LOV组件,我们需要使用BNE_INTEGRATOR_UTILS包。下面的代码会为列P_VENDOR_NO和P_CONTRY创建LOV。

VENDOR LOV的代码

DECLARE

BEGIN

BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV

(P_APPLICATION_ID => 20003, --your application id

P_INTERFACE_CODE =>‘XXCCVEND1_XINTG_INTF1‘, --your interface name

P_INTERFACE_COL_NAME =>‘P_VENDOR_NO‘, -- your column name from bne_inetrface_cols_b column

P_ID_COL => ‘SEGMENT1‘, --LOOKUP CODE UPLOADED --

P_MEAN_COL => ‘SEGMENT1‘, --Shown in sheet --

P_DESC_COL => ‘VENDOR_NAME‘,

P_TABLE => ‘PO_VENDORS‘,

P_ADDL_W_C => ‘1=1‘,

P_WINDOW_CAPTION =>‘Vendors‘,

P_WINDOW_WIDTH => 450,

P_WINDOW_HEIGHT => 300,

P_TABLE_BLOCK_SIZE => 10,

P_TABLE_SORT_ORDER =>‘SEGMENT1‘, -- sortable by meaning, not description--

P_USER_ID => 1562,

P_POPLIST_FLAG => ‘N‘

);

END;

Country LOV的代码

DECLARE

BEGIN

BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV

(P_APPLICATION_ID => 20003, --your application id

P_INTERFACE_CODE =>‘XXCCVEND1_XINTG_INTF1‘, --your interface name

P_INTERFACE_COL_NAME =>‘P_COUNTRY‘, -- your column name from bne_inetrface_cols_b column

P_ID_COL =>‘TERRITORY_CODE‘, -- LOOKUP CODE UPLOADED --

P_MEAN_COL => ‘TERRITORY_CODE‘, --Shown in sheet –

P_DESC_COL =>‘TERRITORY_SHORT_NAME‘,

P_TABLE =>‘FND_TERRITORIES_VL‘,

P_ADDL_W_C => ‘1=1‘,

P_WINDOW_CAPTION =>‘Countries‘,

P_WINDOW_WIDTH => 450,

P_WINDOW_HEIGHT => 300,

P_TABLE_BLOCK_SIZE => 10,

P_TABLE_SORT_ORDER =>‘TERRITORY_CODE‘, -- sortable by meaning, not description--

P_USER_ID => 1562,

P_POPLIST_FLAG => ‘N‘

);

END;

 

创建布局

 

l   布局定义了集成器在桌面文档中的外观

l   一个集成器可以有多个布局,这允许你创建用户特定的业务流程的Web ADI示例:

ü 一个用于应付SubLedgerAccounting Journal Entries

ü 一个用于应收 SubLedgerAccounting Journal Entries

ü 一个用于外部系统

l   你可以简单的复制一个已存在的布局并根据需要进行修改。

l   非技术人员也可以很容易来实现。

导航:

Desktop Integrator > Create Layout

第一步: 选择你的集成器并点击Go按钮就转到了布局创建页面.

第二步,点击Create来创建一个新的布局

第三步:输入下面这些项并点击继续。

布局名称:XXCC Vendor Site Entry Layout

头的数量:1

在接下来的界面中指明集成器接口中的哪些字段进入文档头或者行上的哪一部分并指定默认值和默认类型。

在这个示例中,所有的属性都处在行级别上。

点击Apply按钮来保存布局定义。

 

创建文档

接下来我们需要为我们的集成器检查上传过程。(因为我们没有设置security rules,因此我们需要设置profile ‘BNE Allow No Security Rule为Yes)

导航:

Desktop Integrator> Create Document

从列表中,选择你的集成器并点击‘Next’.

选择参看程序。(在我们的示例中是Excel 2007)并点击Next.


点击’Create Document’,它会打开一个Excel电子表格




在列中输入数据并上传这些信息。

 

额外安全设置—非常非常重要

为桌面集成器需要的浏览器设置:

启用’允许通过脚本更新状态栏’( Allow status bar updates via script).(MicrosoftIE 7或者8)

1)  打开IE窗口

2)  点击工具菜单

3)  当工具菜单出现时,点击工具菜单底部的’Internet 选项’(‘Internet Options’).

4)  点击安全页签

5)  当安全页出现时,点击’Selecta zone’框中的’Internet’图标,然后点击自定义级别按钮。

6)  当安全设置对话框出现时,下拉到菜单上的脚本。启用’允许通过脚本更新状态栏’,然后选择OK.

7)  你可能会收到一个警告,请选择Yes.

8)  最后,点击OK来关闭Internet选项对话框。

9)  关闭浏览器窗口那么新的设置就可以使用了。


也要做下面这些附件的设置:

1.      从工具菜单,选择Internet选项然后点击安全页签。

2.      选择你在使用的区域,比如信任站点,然后选择自定义级别按钮。

3.      在下载设置里,选择启用文件下载选项。


Excel中宏安全级别

对于微软Excel 2002或者2003:

1.      从工具菜单,选择宏,然后安全,最后选择安全级别。

2.      在安全级别页签,选择中级选项。

3.      在信任来源页签,选择信任对Visual Basic Project的访问选项。

 

对于微软 Excel 2007:

1.      选择微软Office按钮,然后选择Excel选项。在安全中心分类,选择信任中心设置,然后宏设置类别。

2.      选择禁用所有宏并提示选项。

3.      选择信任对VBA 项目对象模型访问的选项.

 

在布局上创建提示

这个部分,我们会在布局上显示一些列提示,这样可以给用户一些在上传过程中相关的指示。

创建自定义属性

导航:Desktop Integration Manager > ManageIntegrator


点击下一步,并选择接口。几秒钟之后,属性会出现。

点击’Add Attribute’,输入下面这些内容:

接口属性定义

Attribute Name

ATTRIBUTE14

Data Type

String

Length

100

Attribute Type

Custom <defaults>

Enabled

Y

Displayed (Available for display in layout)

Y

Required (To be included in all layouts)

Available for summary

Read Only

Y

Enabled for Mapping

Not Null

Default Value

Default Type

Default Value

Validation

Validation Type

Group Name

Component Name

Display Text

Prompt Left / Display Name

Hint

Prompt Above

User Hint Text

Please enter the data and upload

点击保存

点击Submit来保存集成器.

 

在布局中添加自定义属性

导航:

Desktop Integrator> Define Layout

查询出集成器并点击更新布局

点击下一步

自定义属性会出现在’可选字段部分’(Optional Fields),确保这行被选中了,且’放置位置’为’头’,然后点击’Apply’.

现在你打开文档,可以发现提示列正确的出现在文档上的头上。

 

在自定义的AP职责下使集成器可用

在设置完集成器之后,我们需要在在用户使用的职责下启用这个集成器,并确保用户可以直接到查看器选项而不需要从几百个集成器列表中去选择这个集成器。

运行下面的脚本来得到相关的信息:

SELECT INTEGRATOR_APP_ID || ‘:‘ || INTEGRATOR_CODE INTEGRATORS,

APPLICATION_ID || ‘:‘ ||LAYOUT_CODE LAYOUTS

FROM BNE_LAYOUTS_B

WHERE INTEGRATOR_APP_ID = 20003

ORDER BY 1, 2


找到你的集成器

第一步:创建Function

Function: XXCCVENDORSITEADI

User Function Name

Description

Context Dependence

Type

Maintenance Mode

XXCC Create Vendor Site Entry WebADI

Responsibility

SSWA servlet function

None

Parameters

bne:page=BneCreateDoc&bne:integrator=20003:XXCCVEND1_XINTG&bne:layout=20003:XXCCVENDORSITEENTRYLAYOUT

HTML Call

BneApplicationService

               

Function创建之后,把function添加到我们设置好的菜单中。