WebADI_配置设定02_设定接口WebADI Interface(案例)

简介: 20150829 Created By BaoXinjian 一、摘要 这是建立一个新的Integrator的第二步,也是最关键的一步!   二、锁定统计信息 1. 创建Interface (1). Interface Name 随便写,反正oracle 会生成一个interface code, 而这个才是我们需要的,而我们需要的,oracle 偏偏不让我们看到,而且还加东西。

 20150829 Created By BaoXinjian

一、摘要


这是建立一个新的Integrator的第二步,也是最关键的一步!

 

二、锁定统计信息


1. 创建Interface

(1). Interface Name

随便写,反正oracle 会生成一个interface code, 而这个才是我们需要的,而我们需要的,oracle 偏偏不让我们看到,而且还加东西。。。生成的code 应该是integrator code + INTF1之类的

(2). Interface Type

主要是Table 和 API Procedure. 那么什么时候用Table,

i.  如果validation 特别简单(都是单行单字段的校验), 且template上的数据要进到某一张表里的话,用table.

ii.  如果validation 比较复杂(可能包含了多行组合校验,比如订单行金额是否等于头金额;

多字段组合校验,比如某个vendor,某个vendor site下不能有这种currency的invoice之类的;

duplicate校验,比如某个asset ,在base table 或 interface里已经有了,不能再用tempate导一遍之类的,

因为这些校验要写java class, 我不知怎么写(可恶的oracle 也没文档). 所以只能用Procedure 去做.

iii.  如果template的数据仅仅用来传给标准API ,用来做某种处理,不用进到某张表的话,当然不要用table, 而是用Procedure.

(3). Table Name:

表名,此表需要注册在database里,否则无法识别.

(4). Package Name

不用说了,你写的upload package的名字

(5). Procedure Name

Upload Procedure的名字

(6). API returns 

Procedure/Function 传出的参数, 一般选fnd message code, 用来接收procedure中raise 出来的error.

 

2. 设定Interface栏位

(1). Attribute Name:

其实就是table 的字段或Procedure的传入参数名.

(2). Prompt Left:

这个要改一下, 一般格式是"Invoice Number" 这样的, 你可以只为要放到 layout header上的字段改,因为行上的字段只有Prompt above, 没有left.

(3). Data Type: 

从table 或 procedure 继承下来的

(4). Enabled:

此项如果不选的话,该字段即使在template 可以显示,并且可以填东西,但数据不会参与upload. 即此字段完全无用了(适合一些无需填值的字段).

(5). Displayed:

此项如果不选的话,在定义layout时,将无法看到此项. 也就无法在template中看到。当然,就算你这选了,但layout中没选此项,也是无法看到的.

(6). Default Type/Default Value:

用来设定字段的默认值,在11i里我一般是在layout里定义的,但R12 好象主要在这里定义了,layout中的default 反而不用了,而且我在layout中定义好象也老出问题,不知是bug,还是其它原因.

(7). Sequence:

此项需后台修改表,default type 为SEQUENCE_EACH_ROW, default value 为sequence的名字,如果不在apps下的话,需要在apps下建同义词

(8). Attribute Type: 

Real 表明此字段为真实的表字段或过程参数,而Custom的是我们另外建的字段,一般用来做占位列(比如一个LOV显示的是DESC,存的是ID,这个DESC一般就放在这种列里)或只读显示项,比如显示当前的database信息.

通过点后面的update, 可以修改字段的一些属性.

(9). Data Type:  

不需改,从table 或 procedure 中继承下来的

(10). Length:

大家发现这项没有,因为这是基于procedure的interface, 而对于procedure来说,所有的传入参数都是没有length的,而如果基于table的话,则会有length.  而没有length的结果就是excel 无法做字段宽度的校验,你就需要在procedure中写这样的语句:

if  length(p_vendor_name) > 50 then

raise_application_error(-20001,' Length exceeds max  chars');

end if;

这样明显增加了开发的量,所以对于procedure的interface, 我们可以通过直接修改后台表来设定字段的length.

(11).Attribute Type:  

无需修改

(12).Required:

此项很重要,设定字段为必填字段, 如果你在template 上没输的话,excel校验会报错,这样的话,你就不用在procedure 中写这样的语句了:

if  p_vendor_name is null  then

raise_application_error(-20001,' You have to enter a Vendor name');

end if;

(13).Enabled for Mapping:  

设定该字段是否可建mapping, 当你的Integrator中含有Content时,这项有用,一般来说,要在layout中显示的字段这项要选,其它可选可不选。

(14).Available for summary:

这项不知道,字面看是是否允许汇总。没测过

Not Null: 这项似乎和required功能一样啊

Read Only:  设定某字段为只读字段,一般适用于Custom类型的显示字段. 或不需用户修改的有默认值的字段.

(15).Validation

这里可建table LOV,  date LOV, KFF/DFF LOV, 及java类型的 LOV. 

最后一部分是设Prompt above, 对于line 上的字段,此项要写一下。

User Hint最好也写一下,必填字段的一般为*Text, *Date, *Number这样的,非必填的把* 去了。有LOV的一般为* List - Text  或 List - Text 之类的.

 

3. 默认值的设定方式

(1). Environment Parameters

OAUSER.ID / SYSDATE / DATABASE 常用的,

另外一些sob 的, 例如sob.chartofaccountsid, sob.periodsetname, sob.setofbooksid之类的,也不知还能不能用, 还没测

(2). Constant

这个最简单,直接写个东西进去就行了。

(3). SQL

这 个也简单,写个SQL 完事,结果多行的话,取第一行。

sql 里可包含$env$.userid, $env$.appid, $env$.respid 之类的环境变量, 还有$PROFILES$.default_org_id之类的取profile options的东东。

(4). Profile Option

从字面上理解,是用来取配置文件中某个option的值,但我测了,不成功,不知是bug还是别的原因.

(5). Lookups

不知干什么的,前两天无意看到有个标准的Integrator具然包含多个Interface, 而Interface 间的联接似乎就用这个。。。

因为此项在后台叫TABLELOOKUP... 多Interface的Integrator还不知怎么做,待研究.

(6). Excel Formula

这项不需要选default type,直接在default value 中输入公式,

格式如下: =R[ ]C[ ]* R[ ]C[ ] 之类的,比如 =RC[-1]*RC[-2] , 即表示此字段的值为左边两列的乘积.

 

三、创建Interface和相关设定


1. 创建客制化接口,类型为Procedure,调用bxj_webadi_employee_pkg.bxj_webadi_emp_main()

2. 系统将procedure中的相关接口自动带出

 3. 设定栏位的默认值Default Value

4. 设定栏位的验证Validation

 

Thanks and Regards

参考: 豆瓣文库 - http://www.docin.com/p-922235111.html

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
.NET
艾伟:Tip:自定义UpdatePanelTrigger
  大家在使用UpdatePanel的时候有没有遇到过这种情况呢?   页面上放置着3到4的UpdatePanel,它们互相独立,并且UpdateMode都是Condition,这意味着没有哪个UpdatePanel每次都会更新。
908 0
PLSQL_基础系列05_视图控制WITH CHECK OPTION(案例)
2014-12-09 Created By BaoXinjian 一、摘要 通过有with check option选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论: 首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。
824 0
|
安全 关系型数据库 测试技术
SYS_数据访问权限Operation Unit和Ledger的访问设定(案例)
2014-06-01 Created By BaoXinjian 一、摘要 R12通过MOAC设定限制职责的Operation Unit的访问权限 在总账中,需要通过设定数据访问权限设定限定职责的Ledger的访问权限 (一).
755 0
|
监控 关系型数据库 Java
WebADI_WebADI工作日志设定(案例)
20150707 Created By BaoXinjian 一、摘要 设置WebADI的工作日志,EBS R12.1.3 以sysadmin登入, 然后通过 %BNE%LOG% 对应的三项,然后正确设置了路径,然后 Log Level 设置为 Trace ,logfile name 改为一个特定的文件名 ,然后重新启动了整个应用 。
1469 0
|
机器学习/深度学习 API
WebADI_WebADI常用代码ad_dd.register_table / column(案例)
20150901 Created By BaoXinjian 一、摘要 用户开发的表通常不需要注册到EBS中,依然可以正常使用,如何需要使用预警、审计或值集功能 则需要将客制化的表注册到EBS里,在应用开发员 -> 用户产品 -> 数据库 -> 表中可以查看到已经注册到EBS中的表 但...
1108 0
WebADI_案例实施05_设定参数设置Create Document Parameters
  20150606 Created By BaoXinjian 一、摘要 1 二、锁定统计信息   在WEBADI中,我们可以定义一些参数用来在整个WEBADI的导入过程中使用,一般来说,可分3个部分:1. 在生成template时所使用的参数,一般用来为layout中的字段设置默认值或初始化一些变量供LOV使用2. 在定义Uploader时所使用的参数,一般用来在Upload数据前提供给User一些option,可改变Upload的模式,例如要不要做validaiton,要不要import,要不要import 一些非正常记录(如借贷不平的记录)。
1513 0
|
关系型数据库
WebADI_案例实施03_利用FND_LOAD安装和迁移WEBADI以及设定(案例)
20150904 Created By BaoXinjian 一、摘要 Oracle 也提供了针对WebADI移植的配置文件,不过配置文件路径放在$BNE_TOP/admin/import。
972 0
|
关系型数据库
WebADI_数据验证4_建立基于Description Flexfields的LOV验证
1   ERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By Oracle ERP - 鲍新建
749 0
|
测试技术 数据库
WebADI_配置设定08_设定参数WebADI Parameters List(案例)
20150806 Created By BaoXinjian 一、摘要 Parameters List和Paramter定义了提供给WebADI和用户交互数据的方式 用户可以通过定义Parameter的值将选择数据传递给WebADI,WebADI根据该Parameter做出正确的处理 1.
1652 0
|
关系型数据库
WebADI_配置设定09_设定组件WebADI Components(案例)
20150506 Created By BaoXinjian 一、摘要 WebADI Component组件是做Interface Attribute做数据验证的最底层控件 其实就是说明该组件哪种类型 Date、Flex、LOV-Java、LOV-Table 在Component中并没...
1658 0