Flexfield学习研究心得.doc
《Flexfield学习研究心得.doc》由会员分享,可在线阅读,更多相关《Flexfield学习研究心得.doc(17页珍藏版)》请在三一办公上搜索。
1、 这半个月来一直在学习设置EBS的设置,越来越觉得这其中环环相扣,博大精深。但就这其中一个Flexfield概念就值得琢磨半天,结合前一阵子的开发经验,我也来谈谈对Flexfield的认识。1. Flexfield的绑定表结构(皮之不存,毛将焉附) 刚开始接触Oracle Application ,看到某些表包括多达数个,十数个甚至是数十个ArributeN,SegementN的字段,总感到疑惑不解,觉得很多表这些字段很多都是空的,真是浪费空间。而这些特殊的表,实际上叫做Combination Table ,正是这些特殊的字段支持了Oracle ERP的弹性,可以说没有这些特殊的字段,Orac
2、le ERP的通用性将会极大地下降。 对于熟悉数据库和程序开发的人员来说,理解Flexfield可能更直观深刻一些,对于其它人员来说,了解一下Combination Table的结构对理解Flexfield有百利而无一害。Who字段Col1Col2Atr1AtrNSeg1SegNSeg_Atr1Seg_AtrN也是Oracle表的一大特点,记录跟踪信息。表基本字段(正常字段)Attribute 字段,常与descriptive flexfield 配合使用 Segment 字段,常与key flexfield 配合使用具体我说不清楚,感觉就像Col对应Atr字段,Seg也可对应Seg_Atr字
3、段 表 1.1上表是Combination Table的基本结构,这个例子的结构相对完整并且复杂,实际应用中可能某个Combination Table仅包括这些特殊列的一部分或者几部分。即使我们在其他数据库平台下构建一种可扩展,可重用,柔性高的应用系统,这种结构无疑具有很高的借鉴与启迪作用。至于这些字段是如何与FlexFlied相结合的,在后面会具体说明。2. Flexfield的相关概念 Flexfield中有几个相关的概念,我们先来了解下。Structure,Segment,Value Set ,一个Flexfield可以拥有多个Structure,这就好像一种物料,企业A会用三个字段去限
4、定,而企业B却会用到四个字段。每个Structure又会拥有多个Segment,把Segment看作sub-field也好,看成属性也好,反正按照“用到什么就选什么”的原则就好。有Segment就会有Segment Value,一个 Segment可以取什么类型的值,什么范围的值,甚至精确到可以取那些值,这都可以交给Value Set,我觉得Value Set既是Value的容器,又是Value校验器(格式,范围等)。 这些概念的联系为:一个Flexfield可以对应多个Structure,每个Structure由不同排列或不同内容的Segment组成,每个Segment又会与一个Value
5、Set相关联,这个Value Set中存放了这个Segment的可选取值,见下图。 图 2.1需要进一步说明的是,Value Set并不是Segment私有的,一个Value Set可以被任意多个Flexfield 的任意多个Segment共享,当然其容纳的可选Value也被共享。由上面的联系也可以推断出在Flexfield设置的一般步骤:第一步是先设Value Set;第二步设Flexfield的Structure,选择需要的Segment并且关联到上步设置的Value Set;最后一步是设置Value Set容纳的Value,另一种设法是到各个Segment下去设Value,它们会自动关联
6、到Segment对应的Value Set下。我请教过同事,她说有一种情况,当Segment不需要可选值列表时(List of Type: None),可以不关联Value Set,系统会将它关联到默认的Non-Validated Value Set,使用时用手工输入的方式为该Segment赋值,只要输入的值不违反格式要求就行。3. Key Flexfields关于Descriptive和Key Flexfield之间的区别以及使用Flexfield的优点我不做赘述了,我想谈谈Key Flexfield的用法,设置及后台存储结构等。顾名思义,Key Flexfields就是要定义一个Entity
7、的Key,而且这个Entity需要多个键值才能唯一的确定,Key Flexfields中的每一个Segment就对应着其中的一个键。这就很像数据库中联合主键的概念。每一个Key Flexfields都需要一个Combination Table,可参看第一节所示的结构。Oracle文档中根据使用Key Flexfields情况的不同将应用Key Flexfields的Form分为3类:Combination Form ,Foreign key Form,Range Form。个人认为,这种分类依据恰恰反映了不同类别的Form依赖了不同类别的Combination Table。首先来看Combin
8、ation Form,我们先明确几个概念,Combination Table,Form Table(此处是我为了表达需要创建的名字,表示应用Key Flexfield的那个字段所在的数据库基表),下图表明Combination Form的Combination Table和Form Table是同一个Table。假如这个Form用来维护零件信息,我们在此创建了一条记录,那就意味着我们添加了一条唯一的零件信息,使用Key Flexfield填写的各Segment的Value都存入了该表的Segment Column中,另外系统还会产生一个唯一的ID存入Unique ID列中,等于是用单一的主键代
9、替联合主键唯一的标识了一个零件。Structure ID标识该记录对应此前设置的该Key Flexfield的哪个Structure。 图 3.1Foreign key Form就不一样了,Combination Table和Form Table各不相同,其中Form Table中有一个特殊的外键字段引用了Combination Table的主键字段,Unique ID。图 3.2在Form中输入了那么多Segment的值,大部分都存入了Combination Table中。只有Unique ID的值被两个表同时记录。第三类是Range Form,这种Form使用的Combination Ta
10、ble比较特殊,配合了一对FlexFiled使用,Combination Table设置structure id和多个segment N_LOW、segment N_HIGH字段,多用于报表输出,具体设置我还不是很清楚。图 3.3下面就结合一个设置Key FlexField(Foreign key Form)的例子来看看使用要点。Step 1 Register假设已经定义并创建了Key FlexField的Combination Table,那么第一步的工作就是在系统中注册一个Key FlexField图 3.4NameDescriptionApplication没什么好说的CodeCode在
11、Form代码里经常被引用来指定FlexFieldTitle就像一个犯人编号07573,它的名字叫李二黑Table Name指定的Combination Table Unique ID ColumnCombination Table Unique ID列Structure ColumnCombination Table Structure ID列KFV View Name下文说明Dynamic Insert Feasible 下文说明Allow ID Value Setswhether to allow values sets that use a hidden ID in your flexf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flexfield 学习 研究 心得
链接地址:https://www.31ppt.com/p-2353205.html