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

十二月 6, 2008 in Oracle EBS二次开发

 

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究竟是怎么样来解决这个问题,使开发人员无须更多关注多语言转换开发实现的技术细节。

 

本站参考链接

 

关于Oracle EBS下多语言的开发,请查看:

数据多语言转换开发(1)

http://www.oracleseeker.com/index.php/data-translation-in-ebs-forms-breifing

数据多语言转换开发(2)

http://www.oracleseeker.com/index.php/table-relation-of-data-translation-in-ebs-forms

数据多语言转换开发(3)

http://www.oracleseeker.com/index.php/develop-data-translation-form-in-oracle-ebs

 

 

 

相关文章:

  1. 数据多语言转换开发(2)
  2. 数据多语言转换开发(3)

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

Leave a reply

You must be logged in to post a comment.