TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)

         第三章 Step3 – 配置Web ADI

本章描述通过桌面集成管理器菜单配置Web ADI,环境为12.2.4。配置到第三节后,Web ADI的基本功能就已经实现,可以使用了,之后的小节为进阶使用,非必须配置。

本文档详解通过桌面集成管理器职责来进行Web ADI的客户化开发。

对于流传比较广的通过桌面集成职责来配置的方法,在R12环境中和Excel2013以上的开发环境中BUG比较多,而且配置繁琐,这里不做记录。

 

第一节   创建IntegratorRequired

1.     定义集成器(Required

使用桌面集成管理器(Desktop Integration Manager)职责定义WEB ADI集成器。

桌面集成管理器>创建集成器

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第1张图片

集成器名称:CUX_WEBADI_TEST01

内部名称:CUXWBAT01

应用:CUX Customization Application

不勾选仅报告;

不勾选在“创建文档”页中显示;(是否在“桌面集成”职责“创建文档”功能中供选择)

安全性规则空着;(用于选择该集成器对应的功能,可先空着,后面再补)

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第2张图片

2.     定义接口(Required

接口名称:CUXWBAT01

接口类型:API过程

程序包名称:CUX_WBA_TEST01_PKG

过程/函数名称:import_rec

API返回:FND消息代码

注意:选择“FND消息代码”接口程序中通过以下代码返回错误:

fnd_message.set_name('CUX', 'CUX_WEBADI_MESSAGE01');
fnd_message.set_token('MESSAGESTR', 'FND-MSG01:API调用错误.'); --改成要提示的具体消息
fnd_message.raise_error;

其中'AC_WEBADI_MESSAGE'是自行定义的一个消息,为了显示需要提示的具体消息。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第3张图片

然后,点击“应用”。如果再选中这个新创建的接口,会如下展开接口参数:

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第4张图片

 

3.     定义内容(Optional

这是建立一个新的Integrator的第三步,当然,不是必须要设置的一步。Content的作用是在user下载template的时候,可以把本机的准备好的datafile或从系统中读取的数据,传给这个template,这样的话,download下来的template就是一个有数据的template,也就不需要user输入或copy数据了。

这里我们可以不定义,直接下一步。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第5张图片

4.     定义加载程序(Optional

这里我们可以不定义,直接提交。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第6张图片

5.     定义导入程序(Optional

如果你导入的数据不是插入到系统标准的接口表,或者插入到接口表之后要手动提交一个请求,才能将接口表里的数据导入到ERP,则需要设置导入程序。

导入程序是指你一次性导入几十上百条数据之后,再一次性跑请求,将这些数据导入到ERP正式表,千万不要把跑请求的代码写到接口程序里,那样会导致导入非常慢。

这里我们可以不定义,直接提交。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第7张图片

Integrator创建成功。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第8张图片

 

 

第二节   创建LayoutRequired

定义Layout就是定义下载Template的具体布局样式。

在管理集成器页面中搜索创建好的集成器:CUX_WEBADI_TEST01

选中后,点击定义布局:

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第9张图片

然后点击创建:

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第10张图片

输入布局名称:CUX_WEBADI_TEST01_LAYOUT,题头数默认1不用管,直接下一步。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第11张图片

要区分两种Filed:一种是从API Procedure Name的参数列表中自动带出来的,并且自动去掉前面的P_;另一种是View Name的视图字段。

“必须字段”区域的字段是API Procedure Name的参数列表中没有Default值的;其他的都是“可选字段”区域的。

注意:

1.    我们可以安排这些字段显示在Header还是LineHeaderLine仅仅是在Excel中的布局问题,实际都是作为Line一起传给API Procedure,一行一次,不管这里是Header还是Line

2.    视图的字段名和API参数P_XX,参数去掉P_后的部分最好不要和视图里面的字段名相同。

所以在Excel里面显示是分头行的、作为参数传给API Procedure时其实是并列的,至于在API Procedure代码里面,我们又可以人为区分出头字段和行字段,然后插到不同的表中去。

这里我们我们全部改为Line,追加显示DATE

默认值设置可以参考系统预置的Web ADI设置:

SELECT DISTINCT t.default_type, t.default_value
  FROM bne_interface_cols_vl t
 WHERE t.default_type IS NOT NULL;

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第12张图片

保护表、样式表、应用筛选、图像都不用修改。可以修改字段的显示顺序和是否只读、宽度和冻结列的属性。然后点击应用。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第13张图片

 

 

第三节   创建安全性规则-关联功能(Required

1.     定义功能(Required

使用应用开发员职责定义Web ADI对应的功能。

应用产品>功能

功能:CUXWBAT01

用户功能名:CUX:测试导入;

说明:CUX:测试导入;

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第14张图片

类型:SSWA servlet函数;

支持维护模式:无;

上下文相关性:责任;

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第15张图片

参数:bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL%25&bne:reporting=N&bne:integrator=CUX:CUXWBAT01_XINTG

注:这种定义参数的写法是简易写法,红色部分需要在后台表中找出Integrator Code

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第16张图片

HTML调用:BneApplicationService

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第17张图片

2.     分配菜单(Required

将功能分配给相应职责的菜单:

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第18张图片

3.     定义安全性规则(Optional

因为之前配置文件中“BNE Allow No Security Rule”选项,我们设置的是“Y”,所以这里不需要设置安全性规则,用户也可以正常使用ADI

如果在配置文件中启用了使用功能安全性,就需要为Web ADI定义安全性规则,参考如下:

使用桌面集成管理器(Desktop Integration Manager)职责定义安全性规则。

说明:

11i里,我们一般是建立一个subfunction做为securityfunciton,然后与integrator建立关联,再把这个securityfunctionADIfunction一起加入到usermenu中,user即可使用此ADI,当时就觉得挺麻烦。当然,你可以通过设置profile去禁用ADIsecurity.

R12中,可以很方便的在定义integrator时定义securityfunction了,而且一个integrator可以定义多个securityfunction。但我查了一下诸多的标准integrator,它们用的securityfunction大多是系统标准的form.functionwebfunciton,而不是subfunction.这也就意味着,只要usermenu包含在某个职责下,这个职责下有这个form.function的话,即可使用这个ADI,这样的话,我们就不需要再建一个subfunction了,更方便了。

因此我们客制化的integrator也可以选择某一个系统标准的form.function做为securityfunction。比如我建了一个assetmassloadADI,我希望只要能进行asset常规操作的user都能使用这个ADI。我选择了一个系统标准的form.function:FAXASSET。做为我的ADIsecurityfunciton。但布署时要注意:你的ADIfunction必须要和FAXASSET这个function在同一个menu里,即在同一个职责下。此项功能大大方便了ADI的布署,非常有用。

参考:

桌面集成管理器 >管理集成器

搜索之前定义好的集成器,选中后点击更新,在安全性规则下添加功能。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第19张图片

在弹出的页面中添加系统标准的功能:创建文档、桌面集成 -创建文档;

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第20张图片

点击下一步,然后提交。

再将包含“创建文档”或“桌面集成 -创建文档”功能的菜单分配给包含ADIfunction的菜单。

如果设定安全性规则的时候添加的标准功能本身就在应用葫芦的菜单中,这里就不用再分配了,

这样做的目的是方便大批量的Web ADI统一配置比较方便,都只要挂一个子菜单就OK了。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第21张图片

 

 

第四节   进阶– Template中实现List功能

1.     修改接口属性

桌面集成管理器 >管理集成器

搜索之前定义好的集成器,选中后点击更新,选择接口,展开接口属性,然后更新需要添加List功能的属性。这里在P_ATTR03上添加认证状态的List

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第22张图片

验证类型:表;

标识列:MEANING(实际数据列)

含义列:MEANING(显示列)

验证实体:FND_LOOKUP_VALUES(就是表名)

Where子句:LOOKUP_TYPE = 'CUX_CERTIFICATION_STATUS' AND LANGUAGE = 'ZHS' AND LOOKUP_CODE IN ('0','1','2','3')

值列表类型:弹出式列表;

上方提示:认证状态

用户提示文本:CUX_CERTIFICATION_STATUS

组名和组件名留空,List验证方式不需要设置组件

注:这里是支持多表的,类似表值集的定义。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第23张图片

 2.     查看实现效果

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第24张图片

 

第五节   进阶– Template中实现Lov功能

LOV功能需要先定义组件,然后再修改对应的接口属性来实现。

1.     创建组件

桌面集成管理器>管理组件,点击创建组件。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第25张图片

显示名:CUX_USER

内部名称:CUX_USER

应用:CUX Customization Application

组件类型:表值列表

组件实体:BneOAValueSet(默认)

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第26张图片

点击应用后,设置组件参数。

参数名

参数值

设置说明

table-column-alias

P_USER_ID,P_USER_NAME,

P_USER_DESC

返回到的接口字段名。如果提取到Lov里的表字段名与接口字段名不一样,需要在这里定义别名,与接口字段名保持一致

table-column-sort

ASCENDING

排序,使用默认值

table-columns

USER_ID,USER_NAME,

DESCRIPTION

按次序列出需要显示的表字段名,以西文逗号隔开

table-headers

用户ID,用户名,用户姓名

按次序列出需要显示的表字段名对应的名称,以西文逗号隔开

table-select-column

P_USER_ID,P_USER_NAME,

P_USER_DESC

返回到的接口字段名

window-caption

请选择用户

弹出窗口的标题

window-height

500

调整弹出窗口的高度

window-width

400

调整弹出窗口的宽度

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第27张图片

2.     修改接口属性

桌面集成管理器 >管理集成器

搜索之前定义好的集成器,选中后点击更新,选择接口,展开接口属性,然后更新需要添加Lov功能的属性。这里在P_USER_ID上添加用户选择的Lov


验证类型:表;

标识列:USER_ID(实际数据列)

含义列:USER_NAME(显示列)

说明列:DESCRIPTION

验证实体:FND_USER(就是表名)

Where子句:留空(根据实际填写,参考List设置)

组件名:CUX_USER

上方提示:用户ID

组名和值列表类型留空。

注:这里是支持多表的,类似表值集的定义。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第28张图片

3.     查看实现效果

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第29张图片

选择用户后,用户ID,用户名和用户姓名都自动带了出来:


 

第六节   进阶– Template中实现日期Lov功能

1.     使用标准API创建

后台客制化或标准Interface中含有Date类型的字段。

通过如下的标准API来创建:

BEGIN
 bne_integrator_utils.create_calendar_lov(p_application_id    =>20003,--Your custom application
                                          p_interface_code    =>'CUXWBAT01_XINTG_INTF1',--Your custom interface code
                                          p_interface_col_name=>'P_DATE',--Your date_item ininterface
                                          p_window_caption    =>'选择日期',--Window Prompt
                                          p_window_width      =>NULL,--Use default
                                          p_window_height     =>NULL,--Use default
                                          p_table_columns     =>'ADI_DATE',--Your table date_fields
                                          p_user_id           =>0);
END;

2.     查看实现效果

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第30张图片

 

第七节   进阶– Template中实现预加载数据功能

1.     定义内容

内容的作用是用户在下载Web ADI模板的时候可以把本机或系统中的数据传给模板,这样用户下载下来的模板就是一个带有数据的模板。

桌面集成管理器 >管理集成器

搜索之前定义好的集成器,选中后点击更新,下一步到内容定义页面,创建内容。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第31张图片

内容名称:CUX_WEBADI_TEST01_CONTENT

内容类型:SQL查询; (主要是文本文件和SQL查询,文本文件是要用户提供一个本地的文件。而SQL查询可以直接从系统中抽取数据。)

查询:

SELECT DISTINCT fu.user_name,
       frt.responsibility_name
  FROM wf_local_user_roles      wlur,
       fnd_user               fu,
       fnd_responsibility_tl   frt
 WHERE wlur.user_name = fu.user_name
   AND wlur.role_orig_system_id = frt.responsibility_id
   AND frt.language ='ZHS'
   AND fu.USER_ID = FND_PROFILE.value('USER_ID')

仅报告,不要勾选。此项仅用于下载数据。

填写完成后,可以点击测试查询检查SQL的正确性。然后点击应用。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第32张图片

2.     定义映射

映射就是把内容中抽取的字段和需要显示在模板上的字段做一个映射。

桌面集成管理器 >管理集成器

搜索之前定义好的集成器,选中后点击定义映射。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第33张图片

如果有多个内容,这里要选择内容然后定义对应的映射。

映射名称:CUX_WEBADI_TEST01_MP

映射关键字:CUX_WAT01_KEY;(唯一)

列数:2;(与内容提取列数相等)



左边选内容抽取列,右边选对应的接口列。注意,一定要选,手工输会有问题,点击应用。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第34张图片

3.     查看实现效果

这里要注意在win10+Excel2016环境下Template加载会报错,。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第35张图片

原因是excel宏加载时引用了MSXML3.0造成的,手动修改引用MSXML6.0就可以正常加载了。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第36张图片

win7+Excel2010环境下是正常加载的。

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第37张图片

 

第八节   进阶创建集成器快捷方式

1.     修改功能参数

快捷方式的作用就是在功能参数中指定好Web ADI使用的集成器、布局、内容和映射,这样在菜单中点击Web ADI后,就不需要在页面中一步一步的再重新设定了,会直接跳出模板下载。

查找Web ADI对应的功能,然后修改参数为:

bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL%25&bne:reporting=N&bne:integrator=CUX:CUXWBAT01_XINTG&bne:layout=CUX:CUX_WEBADI_TEST01_LAYOUT &bne:content=CUX:CUXWBAT01_CNT1 &bne:map=CUX:CUXWBA01_MP3 &bne:noreview=anything

注:

Integrator:通过以下方式获取:

SELECT t.integrator_code FROM bne.bne_integrators_tl tWHERE t.user_name='CUX_WEBADI_TEST01';

Layout:通过以下方式获取:

SELECT a.layout_code FROM bne_layouts_b aWHERE a.integrator_code='CUXWBAT01_XINTG';

Content:通过以下方式获取:

SELECT t.content_code FROM bne_contents_b tWHERE t.integrator_code='CUXWBAT01_XINTG';

Map:通过以下方式获取:

SELECT t.mapping_code FROM bne_mappings_b tWHERE t.integrator_code='CUXWBAT01_XINTG';

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)_第38张图片

你可能感兴趣的:(Oracle,EBS开发技术系列,Oracle,EBS,WebADI开发,EBS二次开发,技术)