OAF中多语言转换开发实现步骤

Oracle EBS 12.0.0

 

Oracle EBS 12.0.0 开始,OA Framework的 多语言转换的实现基本上已经和一般的实现没有什么区别,大大简化了开发的复杂性。

下面是基本的开发步骤:

 

1,按照下面的规则为 _TL表创建一个实体对象

 

命名实体为<Entity>TLEO,如LOOKUP_CODES_TL表被命名为LookupCodeTLEO实体名称

  1. 包括表中所有的列,并且保证LANGUAGE列被命名为Language属性,SOURCE_LANG列被命名为SourceLang属性
  2. 然后设置LANGUAGE列作为主键的一部分
  3. 并且保证实体和其它实体一样继承了OAEntityImpl
  4. 其它的实体相关的验证逻辑,多语言转换的无需添加任何验证

 

默认情况下,只要满足如下条件的所有字段都会被认为是需要进行多语言转换的:

  1. 不是主键列,而且
  2. 不是一个entity accessor,而且
  3. 是数据类型之一:VARCHAR, CHAR, FIXED_CHAR, LONGVARCHAR, CLOB

 

如果说需要覆盖默认的规则,可以在各属性级别的客户化属性中设置OA_TRANSLATABLE属性,

属性值为true,说明此列需要进行多语言转换

属性值为false,说明此列不需要进行多语言转换

 

2,按照下面的规则为 _VL视图创建一个多语言实体对象

 

  1. 按照创建一般实体对象的规则来创建实体对象,如LOOKUP_CODES_VL视图,对应的实体名称为LookupCodesEO
  2. 不要包括伪列RowId,包括视图中其它所有的列
  3. 检查主键正确设置
  4. 设置一个实体级别的自定义属性OA_BASE_TABLE,它的值为多语言视图_VL所对应的基表,如LOOKUP_CODES_B或者LOOKUP_CODES

 

OA Framework自动覆盖了实体对象中的doDML方法来确保当对多语言视图进行插入、更新和删除操作的时候实际上是对基表进行相应的操作。所有的读取操作则依赖于_VL视图

 

3,根据以下规则在_VL(Source)和_TL(destination)间创建一个实体关联

 

  1. 按照常规的关联规则创建
  2. 关系必须是 1:*,取消Cascade Delete选项的选择,_VL实体选择为Source,_TL实体为Destination
  3. 更改destination entityAccessor Name名称为OA_TL_ENTITIES

 

4,使用多语言视图创建视图对象

 

当创建一个视图对象来访问多语言转换实体的时候,总是使用基于_VL视图创建的实体对象。基于EBS的设计,访问多语言都是基于VL,TL被自动处理为“不可见”状态

 

上面的开发步骤除了需要进行几个必要属性的设置之外,和非多语言转换的开发步骤基本上没有什么区别,而在EBS R12之前,如果需要进行多语言转换的开发,

需要使用OAPlsqlEntityImpl来实现,同时需要编写数据库程序包 ON_INSERT、ON_UPDATE、ON_DELETE 和 ON_LOCK 方法。而从EBS R12版本之后,已经进行了简化。

 

后面我们就来看看Oracle究竟是怎么样来解决这个问题,使开发人员无须更多关注多语言转换开发实现的技术细节。

来源:http://oracleseeker.com/tag/oa-framework/page/3/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值