现在的位置: 首页 > 综合 > 正文

EBS Form开发 弹性域定义中的参数<三>

2014年04月04日 ⁄ 综合 ⁄ 共 3359字 ⁄ 字号 评论关闭

EBS Form开发 弹性域定义中的参数<三>

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)

来源:Oracle Applications Developers Guide

DATA_SET

仅用于关键性弹性域或者范围弹性域.使用:block.field为弹性域指定包含值集标识符。DATA_SET指定了使用哪些编码组合的集合可用于这个弹性域。对于每个弹性域结构,你可以在组合表中把编码组合分成几个集合(比如高价,中价和低价的部分)。

仅当如果实现了结构定义列时(那就是说你必须指定NUM),可以使用DATA_SET。默认的DATA_SET是结构号码(就像在NUM指定的)。如果你使用了DATA_SET,你的应用必须维护一个单独的包含集合与关键性弹性域结构对应的表。比如,你的对应表可能维护如下的值:

结构

集合

集合描述

101

1

Low Priced truck parts

101

2

Medium priced truck parts

101

3

High priced truck parts

102

4

Low priced car parts

102

5

High priced car parts

103

6

Low priced motorcycle parts

103

7

High priced motorcycle parts

如果你使用DATA_SET,那么弹性域会在结构定义列存储集合编号而不是结构编号。注意在对应表中不能有重复的集合编号,即使对于一个给定的结构编号你可以有多于一个的集合编号。你必须从不同的:block.fields(或者profile选项,或者”硬编码”编号)上提取DATA_SET和NUM,因为它们是不同的编号。

ALLOWNULLS

决定是否在任意分段中允许NULL值。如果你为VALIDATE参数指定PARTIAL或者NONE, ALLOWNULLS仅重载每个分段上的定义(必填值是YES)。

QUERY_SECURITY

仅用于关键性弹性域。决定弹性域的应用到插入和更新的值安全规则是否也应用到查询。如果你指定为Y,用户不能查询已存的编码组合如果其中包含限制的值。如果指定为N,用户可以查询和查看包含限制值的编码组合,但是不可以更新限制值。默认值是N。这个选项在用户为弹性域值集来启用和定义弹性域值安全规则时才有用。

QBE_IN

仅用于关键性弹性域。控制弹性域在query-by-example模式下用于选择需要的行的子查询的类型。

默认值是N。

如果你指定为N,弹性域会生成一个有相互关系的子查询。这个查询在由主查询(由form的剩余部分生成)每一行返回时会被有效处理,并且它使用编码组合ID作为唯一索引。如果你期望你的主查询返回很少的行数或者你期望你的弹性域的query-by-example模式返回很多行时,选择N。如果你指定为Y,你的弹性域会生成一个没有相互关系且使用”IN”的SQL子句的子查询。你的查询只会被处理异常,但是组合表中匹配弹性域query-by-example条件的很多行会被返回。当你期望你的猪查询返回很多行或者期望你的弹性域的query-by-example模式返回很少行(少于100)时,选择Y。这种情况经常经常是在组合表中有相应很少的行并且在应用表中有很多的行。比如,假设你有一个零件弹性域,这里你的公司仅处理有限数量的零件(比如,75),但是你有好几千个零件的订单(一个相应的庞大的订单表)。对于这种情况,选择Y可以极大的提高你的弹性域在queries-by-example模式的应用性能。

LONGLIST

仅用于关键性弹性域。指定为Y或者N来允许或者禁止弹性域使用长列表。长列表允许用户在使用组合快速选择来查询弹性域组合时指定部分值。

NO_COMBMSG

仅用于关键性弹性域或者范围弹性域.当用户输入一个无效的组合时,如果你想显示自定的信息,可以在这里指定信息名称。否则弹性域会使用标准的Oracle Applications信息。

如果你使用了WHERE_CLAUSE参数,会使用WHERE_CLAUSE_MSG参数而不是NO_COMBMSG参数来指定适合的消息来显示给用户当组合违反你的WHERE子句时。

READ_ONLY

指定Y来禁止更新弹性域分段的值,不论是通过速记别名,拷贝还是其它方法。

AUTO_COMBPICK

仅用于关键性弹性域。决定当用户输入一个不存在的组合时,对于不允许动态插入的弹性域直接输入时组合值列表的行为。如果你指定为Y,如果用户在弹性域的一个单独分段上输入了不正确的值,或者由非常量值(%)或者在多分段中有null分段时,组合值列会出现。如果你指定为N,组合值列表不会出现,并且会生成错误消息”This combination does not exist…”。

默认值是Y。

LOCK_FLAG

通常,当用户在弹性域分段上输入了一个字符,这个动作会锁定form的基础表。尽管如此,在有些情况下,你可以想避免锁上这个表;比如,你可能有几个查询都使用相同的基础表,并且你不想其它用户等待到表的锁被解锁。默认值是Y。指定为N来关闭加锁行为,或者指定为D时仅当弹性域的相关字段是数据库字段时才锁定表。

HELP

使用HELP参数来指定这个弹性域示例在online帮助上的目标的名称。指定拥有帮助文件的应用的应用缩写名(不是必须的,如果form和弹性域的应用是相同的)。你也可以指定帮助所存在的帮助文件的目标名称。如果相应的帮助目标没有找到,用户可能会收到一个错误消息。如果HELP参数没有指定,在线帮助会显示通用的弹性域帮助。比如,要为Accounting弹性域显示来自于总账帮助文件的特定标准,你可以像如下指定:

HELP=>’APPL=SQLGL;TARGET=FLEX.GL#’

CONTEXT_LIKE

仅用于描述性弹性域。指定一个WHERE子句片段来限制哪些上下文编码显示在上下文字第的值列表窗口中。这个参数也禁止用户输入不符合WHERE子句的上下文。上下文字段LOV的WHERE子句的结果就像下面这样:

WHERE ...

AND DESCRIPTIVE_FLEX_CONTEXT_CODE LIKE

<CONTEXT_LIKE>...

默认值是’%’.如果这个参数是用于限制上下文的值,那么必须在描述性弹性域定义中启用Override Allowed(Display Context)。

弹性域不在POST_QUERY事件中使用这个限制。因此,与用户可以查询出对于WHERE子句中CONTEXT_LIKE下无效的已存在数据。尽管如此,就像用户查询出目前-无效的弹性域数据的所有弹性域时,如果用户按下OK(有或者没有改变弹性域的值),弹性域被标记为已修改并且无效的值必须被更改。如果用户按下了Cancel按钮,数据不会有运行并且不需要被更改(即使用户修改了记录中非弹性域部分)。

注意,像通常意义,对于一个新记录,描述性弹性域的任何引用字段仅当在描述性弹性域打开(或者在提交之前如果用户没有打开弹性域时的提交之前的验证)第一次的时候被评估。如果用户打开了弹性域,上下文字段会被填充引用字段的值。如果用户按下OK来退出弹性域窗口,那么返回到引用字段并且修改它的值,上下文字段的值不会反应出引用字段上的新值。进一步,已存在的上下文字段的值不会根据CONTEXT_LIKE参数在这个时候进行重新估算。要避免创建明显不一致的行为时,你应该避免在form启动时弹性域定义中初始化完这个CONTEXT_LIKE参数之后再修改这个参数(比如,不要让它的值基于一个用户可以修改的字段的值)。

比如,这个参数可以用于在给定的国家中限制指定的国家上下文。

SELECT_COMB_FROM_VIEW

仅用于关键性弹性域。弹性域使用编组表的名称来创建select语句来进行验证和生成值列表。如果关键性弹性域编码组合表是基可翻译实体的础表(_B表),并且如果你想通过使用COLUMN标记从多语言表获取额外的列(_TL表),那么使用SELECT_COMB_FROM_VIEW标记来指定多语言视图的名称(_VL视图)。

如果在SELECT_COMB_FROM_VIEW视图中指定的值和关键性弹性域编码组合表的名称不一致的话,那么将会自动禁用动态插入。

抱歉!评论已关闭.