(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
原文:http://www.google.com.hk/url?sa=t&rct=j&q=&esrc=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
2 Table名称
ü API-Procedure
2 Package 名称
2 Procedure/Function名称
2 API 返回值
ü API-Function
2 Package名称
2 Procedure/Function名称
2 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添加到我们设置好的菜单中。
Web ADI示例:供应商站点录入