ITPub博客

首页 > Linux操作系统 > Linux操作系统 > R12 WEBADI 设置过程讲解 - Interface setup

R12 WEBADI 设置过程讲解 - Interface setup

原创 Linux操作系统 作者:asiaidea 时间:2012-07-03 15:06:52 1 删除 编辑

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

 

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

Interface Type: 主要是Table 和 API Procedure. 那么什么时候用Table ,什么时候用Procedure呢? 下面是我个人的意见,仅供参考:

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

   2.  如果validation 比较复杂(可能包含了多行组合校验,比如订单行金额是否等于头金额;多字段组合校验,比如某个vendor,某个vendor site下不能有这种currency的invoice之类的;duplicate校验,比如某个asset ,在base table 或 interface里已经有了,不能再用tempate导一遍之类的,因为这些校验要写java class, 我不知怎么写(可恶的oracle 也没文档). 所以只能用Procedure 去做.

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

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

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

Procedure Name: Upload Procedure的名字

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

Apply 一下:

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

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

Data Type:  从table 或 procedure 继承下来的

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

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

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

Environment Parameters:   OAUSER.ID / SYSDATE / DATABASE 常用的,另外一些sob 的, 例如sob.chartofaccountsid, sob.periodsetname, sob.setofbooksid之类的,也不知还能不能用, 还没测

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

SQL:  这个也简单,写个SQL 完事,结果多行的话,取第一行。sql 里可包含$env$.userid, $env$.appid, $env$.respid 之类的环境变量, 还有$PROFILES$.default_org_id之类的取profile options的东东。

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

Lookups:  不知干什么的,前两天无意看到有个标准的Integrator具然包含多个Interface, 而Interface 间的联接似乎就用这个。。。因为此项在后台叫TABLELOOKUP... 多Interface的Integrator还不知怎么做,待研究.

Excel Formula:  这项不需要选default type, 直接在default value 中输入公式,格式如下: =R[ ]C[ ]* R[ ]C[ ] 之类的,比如 =RC[-1]*RC[-2] , 即表示此字段的值为左边两列的乘积.

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

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

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



Data Type:  不需改,从table 或 procedure 中继承下来的
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.
Attribute Type:  无需修改
Required: 此项很重要,设定字段为必填字段, 如果你在template 上没输的话,excel校验会报错,这样的话,你就不用在procedure 中写这样的语句了:
      if  p_vendor_name is null  then
         raise_application_error(-20001,' You have to enter a Vendor name');
     end if;

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

Available for summary:  这项不知道,字面看是是否允许汇总。没测过
Not Null: 这项似乎和required功能一样啊
Read Only:  设定某字段为只读字段,一般适用于Custom类型的显示字段. 或不需用户修改的有默认值的字段.

下面的是建validation的部分,这里可建table LOV,  date LOV, KFF/DFF LOV, 及java类型的 LOV. 


最后一部分是设Prompt above , 对于line 上的字段,此项要写一下。 User Hint最好也写一下,必填字段的一般为*Text, *Date, *Number这样的,非必填的把* 去了。有LOV的一般为* List - Text  或 List - Text 之类的.

 

 

 

 

 

abc.JPG

bcd.JPG

AA.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10359218/viewspace-734471/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-11-04

  • 博文量
    140
  • 访问量
    475634