1、 Oracle 弹性域11 弹性域的设计思想弹性域是ORACLE ERP 平台的一项技术。弹性域是指由子字段或段组成的。字段每个段都有一个名称和一个有效值集。弹性域有两种类型:关键弹性域(Key Flexfield)和描述弹性域( Descriptive Flexfield)关键弹性域和描述弹性域的表现方式Oracle 弹性域22 关键弹性域(Key Flexfield)FND_ID_FLEX_SEGMENTSFND_SEGMENT_ATTRIBUTE_VALUESFND_FLEX_VALUE_SETSFND_FLEX_VALIDATION_QUALIFIERSFND_VALUE_ATTRIB
2、UTE_TYPESFND_SEGMENT_ATTRIBUTE_TYPESFND_ID_FLEXSFND_APPLICATION FND_TABLESFND_FLEX_EXCLUDE_RULE_LINESFND_FLEX_VALIDATION_RULE_LINESFND_FLEX_INCLUDE_RULE_LINESFND_FLEX_VALIDATION_RULESFND_SHORTHAND_FLEX_ALIASESFND_FLEX_VALIDATION_RULE_STATSFND_COMPILED_ID_FLEX_STRUCTSFND_COMPILED_ID_FLEXSFND_ID_FLEX_
3、STRUCTURESFND_FLEX_WORKFLOW_PROCESSESKey Flexfields关键弹性域是用于合并具体业务中有意义的代码段,并确定每段的含义、每段可包含的值以及段值的含义。在使用过程中,在使用过程中可以根据具体应用定义一些规则,以指定哪些段值可以组成有效的完整代码。此外,还可以定义段与段之间的关系,而不必在实施项目时根据企业需要来更改代码或进行二次开发。例如,多数企业使用“代码”来识别总帐帐户、物资编码以及其它业务实体。这些“代码”由有意义的段(智能关键字)组成。代码的每个段都可以表示实体的一个特性。例如,应用企业可能使用物资编码 PAD-NR-YEL-8 1/2“x1
4、4“ 来表示一个大小为 81/2“x14“ 的窄方格黄色记事本,而另一个企业则可能使用部件号 “PD-8x14-Y-NR“ 来识别同样的记事本,这两个物资号均为代码,代码所包含的段说明了物资的特性。虽然这些代码表示相同的物资,但是每个代码都有不同的段结构,这些段结构只对使用这些代码的企业有意义。关键弹性域具有很大的弹性,所以任何企业无需编程就可以使用所需的代码模式。Oracle 弹性域3弹性域还可以通过定义段与段之间的关系,形成不同代码形式来适用于具体的应用。例如,考虑企业用于识别总帐帐户的代码,总帐模块中使用一个称为“会计弹性域”的特殊关键弹性域来表示这些代码。一个企业可能选择自定义会计弹性
5、域,使其包括五个段:公司、分部、部门、帐户及项目。而另一个企业可能以另一种方式来建立总帐帐户段,比如使用十二个段而不是五个段。会计弹性域允许不同的企业根据其特定的业务用途自定义键弹性域,使总帐模块能够满足不同企业的需要。3 描述弹性域(Descriptive Flexfield)FND_DESCR_FLEX_COLUMN_USAGESFND_FLEX_VALUE_SETS FND_DESCR_FLEX_CONTEXTSFND_COMPILED_DESCRIPTIVE_FLEXS FND_DEFAULT_CONTEXT_FIELDSFND_DESCRIPTIVE_FLEXSFND_TABLESF
6、ND_APPLICATIONDescriptive Flexfields描述弹性域为表单提供了可自定义的扩展“空间”。可以使用描述弹性域来跟踪重要并且独特的业务。存储在描述弹性域的信息可以取决于用户其它部分输入的其它值。描述弹性域在用户界面上显示为用括号括起的单字符未命名字段。正如在关键弹性域内一样,在将光标移至自定义的描述弹性域内时,屏幕上会出现一个弹出式窗口。与关键弹性域相似的是,弹出式窗口可以根据企业的需要显示任意多个字段。描述弹性域中的每个字段或段都有一个提示(与普通字段一样),而且可以包含一个有效值集。另外,可以定义段与段之间的相关性,或自定义Oracle 弹性域4描述弹性域来显示上
7、下文相关段。这样,系统就会根据其它字段或段中输入的值来显示不同的段或附加弹出式窗口。以工程物资管理中用来定义资产的增加“表单”为例,此表单所包含的字段可以获取有关资产的“一般”信息,如资产类型和资产编号。但是,表单不包含与指定资产的每个细节,如计算机的内存大小或叉车的提升能力相对应的特定字段。在这种情况下,在表单内创建所有可能需要的字段不仅很困难,而且也是不需要的。这是因为一个企业可能将计算机和叉车作为资产,而另一个企业可能只将计算机和豪华汽车(而非叉车)作为资产。例如,如果表单包含针对叉车每种属性的内置字段,那么没有叉车的企业就会发现这些字段无用且多余,因为用户必须跳过这些字段才能输入有关其
8、它资产类型的信息。事实上,任何企业的用户在尝试输入叉车以外的任何一种资产时,有关叉车信息的字段都会带来不便。增加的表单包含可以自定义的描述弹性域,用于获取只与企业需要有关的资产信息,而不是尝试包含有关资产信息的所有可能字段。弹性域的结构取决于“资产类别”字段的值,并且仅显示那些适用于特定资产类型的字段(段)。例如,如果资产类别为“桌子、木材”,则描述弹性域会提示样式、大小和木材类型;如果资产类别为“计算机、硬件”,则弹性域会提示CPU、芯片和内存大小。甚至可以在以后获得新的资产类别时,将其添加至描述弹性域。4 弹性域的优点弹性域提供了满足以下业务需要的功能:1) 自定义应用产品,以便与会计代码
9、、产品代码及其它代码的当前商业惯例相符。2) 自定义应用产品,以获取应用产品在其它情况下无法跟踪的数据。3) 创建由一个或多个段组成的“智能字段”,其中每个段均包含一个值和一种含义。4) 根据表单中的数据或应用数据来更改智能字段的结构。Oracle 弹性域55) 在无需编程的情况下自定义数据字段,以满足业务需要。6) 查询智能字段以获得特定信息。弹性域是提供多种应用功能的一种机制。关键弹性域为产品应用提供了一种灵活的方式,使其可以表示如会计代码、物资编码、职务说明等对象。例如,会计弹性域就是使用关键弹性域来表示会计代码的一项功能。描述弹性域同样也提供了一种灵活的方式,即在表单内提供可自定义的“
10、扩展空间”;它还提供了另外一种方式,即应用产品仅在需要时才显示上下文相关字段。这两种弹性域都能够在不编程的情况下自定义应用的功能。5 弹性域的组成弹性域的组成Oracle 弹性域65.1 段段是弹性域内的单个子字段。可以在自定义弹性域时定义单个段的外观和含义。段在数据库中以单个表列表示。对于关键弹性域来说,段通常说明了由弹性域标识的实体的特性。对于描述弹性域弹出式窗口中的字段也应视为段,即使它们无需像关键弹性域内的段那样要组成有意义的代码,但是,它们确实说明了在使用的表单的其它部分所标识的实体特性。5.2 值、验证和值集Flexfield ValuesFND_FLEX_VALUE_NORM_H
11、IERARCHYFND_ID_FLEX_SEGMENTSFND_FLEX_VALUE_HIERARCHIESFND_FLEX_HIERARCHIESFND_FLEX_VALUESFND_FLEX_VALIDATION_EVENTSFND_FLEX_VALUE_RULESFND_FLEX_VALUE_RULE_LINESFND_FLEX_VALUE_RULE_USAGESFND_RESPONSIBILITY FND_FLEX_VALIDATION_TABLESFND_FLEX_VALUE_SETSFND_TABLES最终用户可以在使用应用产品时将段值输入段中。一般来说,弹性域都会根据通常预先定义
12、的一组有效值“值集”来验证每个段。“验证段”表示弹性域会将用户在此段中输入的值与值集中该段的值进行比较。可以设置弹性域,使它根据有效值表自动验证最终用户输入的段值。如果最终用户输入的段值无效,系统就会自动显示一个有效值的列表,以使用户可以选择一个有效值。可以将值集视为值的“容器”,选择可放入值集中的值的类型:值的长度、格式等等。Oracle 弹性域7段通常会得到验证,而且指定弹性域中的每个段通常会使用不同的值集。可以将单个值集分配给多个段,甚至可以在不同的弹性域之间共用一个值集。对于大部分值集来说,在弹性域段中输入值时,只能输入分配给段的值集中已存在的值。5.3 结构弹性域结构是段的一种特定配置。如果在弹性域中添加或删除段,或者将其中的段重新排序,就会得到一个不同的结构。