ORACLE+EBS+基础与提高+-+弹性域+(Zhengang[1].Zhu)_第1页
ORACLE+EBS+基础与提高+-+弹性域+(Zhengang[1].Zhu)_第2页
ORACLE+EBS+基础与提高+-+弹性域+(Zhengang[1].Zhu)_第3页
ORACLE+EBS+基础与提高+-+弹性域+(Zhengang[1].Zhu)_第4页
ORACLE+EBS+基础与提高+-+弹性域+(Zhengang[1].Zhu)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ORACLEE-BUSINESS SUITE基础与提高 弹性域开发创建日期: 2009-03-29修改日期:目录值和值集. 3值和值集概览. 4预定义值集. 5计划值和值集. 6选择值格式. 7值格式. 8格式类型. 8集最大长度. 10最小值和最大值的范围. 12确定用户的需要. 13选择值集的验证类型. 14计划值以使用范围功能. 17值集命名惯例. 18独立值与从属值之间的关系. 19父值、子值和累计组. 21实施验证表值集概览. 22使用验证表. 23定义验证表. 25验证表的 WHERE 子句和约束变量. 26约束变量. 28键弹性域中默认值、快速录入值和复制值的优先顺序. 31值和

2、值集值和值集概览Oracle Application Object Library 使用值、值集和验证表作为键弹性域、说明性弹性域和标准请求提交的重要组成部分。在首次定义弹性域时,您可以选择段的使用数量和显示顺序。您也可以选择验证每个段的方法。选择的结果将影响您如何定义值集和值。不管是在定义弹性域段结构之前或在进行定义时,您应首先定义值集。通常您在完成定义(冻结和编译)弹性域之后才定义单个值。根据使用的值集类型,在使用弹性域之前,您不必预定义单个值。对于在不同弹性域中的段、相同弹性域的不同结构中的段甚至相同弹性域结构内的段,您均可以共享其间的值集。您可以共享键弹性域和说明性弹性域间的值集,也可

3、以对使用“标准请求提交”功能的报表使用报表参数的值集。由于为值集指定的条件确定了可以与之一起使用的值,因此您应该同时计划值和值集。例如,如果要使用值 01,02 而非 1,2,您应该在定义值集时将“右对齐填零”设置为“是”。预定义值集许多 Oracle Applications 报表使用预定义值集,您也可以将这些值集用于弹性域段。如果弹性域段使用与“标准请求提交”报表参数关联的值集,则您对其值集所做的任何更改均会影响使用相同值集的任何报表。此外,您对 Oracle Applications 值集的更改在将来升级时可能会被改写。Oracle Applications 提供两个可以选择用于段的预定

4、义值集,即 FND_STANDARD_DATE 和 FND_STANDARD_DATETIME。这些特殊值集确保在弹性域段中输入格式正确的日期,而不是任意字符集。所有这些值集的验证类型均为“无”,因此这些值集接受格式正确的任何日期值。使用此值集的日期值将显示在用户会话日期显示掩码范围内。如果弹性域段或报表参数使用 FND_STANDARD_DATE 或FND_STANDARD_DATETIME,则日期值的长度必须正确以符合显示格式,从而防止日期被截断。为了向后兼容,Oracle Applications 提供可以选择用于日期段的某些预定义值集,如 FND_DATE 和 FND_DATE4。这些

5、特殊值集确保在弹性域段中输入格式正确的日期,而不是任意字符集。FND_DATE 提供 DD-MON-RR 日期格式,而 FND_DATE4 提供DD-MON-YYYY 日期格式。这两种值集的验证类型均为“无”,因此这些值集接受格式正确的任何日期值。如果弹性域段或报表参数使用 FND_DATE 或 FND_DATE4,则字符长度(分别)必须为 9 或 11 以免日期被截断。但是,我们建议您为新的弹性域段创建自己的日期值集。为了向后兼容,Oracle Applications 提供另一种预定义值集(NUMBER15,您可以将其用于数字段。这个特殊值集确保您在弹性域段中输入正数或负数,而不是任意字符

6、集。此值集的验证类型为“无”,因此可以接受任何长达 15 个字符的正数或负数值(包括负号)。如果使用此值集,则弹性域会去掉所输入值的任何前导零,并确保数字只有一个基数字符(如 US 格式中的 .)。但是,我们建议您为新的弹性域段创建自己的数字值集。计划值和值集要计划值和值集,请执行以下操作:1. 选择值的格式。2. 确定段是否具有值列表。3. 选择段的相应验证类型。4. 考虑使用归为一类的值,以便在使用基于该范围的功能(值安全性、值层次结构等)时会更加容易。5. 计划相应的值和说明。6. 计划相应的值层次结构、交叉验证规则和值安全性规则等。选择值格式由于值集是值的主要“载体”,因此定义值集可以

7、控制值集(预定义或未验证)所允许包含的值类型。您可以指定以下的值格式:1. 字符2. 数字3. 时间4. 标准日期5. 标准日期时间6. 日期7. 日期时间您也可以指定值的最大长度,以及值集可以采用的最小值和最大值。值集的最大长度取决于值集所属的弹性域。值集的长度必须小于或等于弹性域表中基本段列的长度。Oracle Applications 不允许您将弹性域表中不合适的值分配给值集。您需要为适合组织运行方法的值指定最大长度。一般来说,如果您使用包含说明的值,则值较短,而说明更长。例如,值为 02,说明则为“新奥尔良地区”。如果您计划对 Oracle Applications 的值采取右对齐并填

8、零(因此 7 的三个字符值集中的值自动变为 007),则值集的最大长度不能太长,以便用户不需要填充太多零,但是也不能太短,以便于您的组织以后可以在其中添加更多的值。不能更改值,但是可以更改说明。例如,您不能更改部门代码 340,但是其说明可以从“销售”更改为“公司帐户”。您可以禁用值,并且在需要时创建新的值。值格式格式类型在“格式类型”字段中指定的格式类型即为段或参数值的格式。如果使用此值集的验证表,不管您是否指定隐藏标识列,此格式类型对应于在“验证表信息”区域中指定的值列的格式类型。 因为您的更改影响了所有使用相同值集的弹性域和报表参数,所以您不能更改现有值集的格式类型。 所有这些格式选项影

9、响您在“段值”窗口和弹性域段及报表参数中输入的值。字符字符类型使您可以输入任意字符值,包括字母、数字和特殊字符,如 # $?% ( . / , & 和 *。如果您选择此格式类型,但输入的值显示为数字,如 100 或 20,则您应该知道这些值在行为方面仍然作为字符值。例如,值 20 将“大于”值 100。如果要这样的值在行为和分类方面更象数值,则应该选定“仅限于数字”复选框或“右对齐和填零数字”复选框。如果选择此格式类型,但是输入值显示为日期,如 DD-MON-RR 或 DD-MON-YYYY ,则您应该知道这些值在行为方面仍然象字符值。例如,值 01-SEP-2002 将“大于”值 01-DE

10、C-2002。如果要这样的值在行为和分类方面更象日期值,您应该使用“标准日期”格式类型。 数字“数字”类型使您可以确保用户输入数值。数字格式允许您输入基数字符(D 或小数点分隔符)和正号或负号(尽管正号不显示在段中)。所有前导零和正号均被隐藏,并且输入的数据在 Oracle 表单中作为“数字”字段,或者在数据库中作为“数字”列。请注意,此格式与“仅限于数字”格式的行为不同,“仅限于数字”格式实际上是字符格式。 系统在存储实数时会在其内部存储 .,并使用当前基数分隔符来显示实数。弹性域不使用组分隔符。对于字符格式和“仅限于数字”值集,这也是正确的。一旦选择了“数字”格式,您可以在“精确度”字段中

11、输入值。“精确度”表示应在数字值小数点后出现的位数。例如,要显示 18.758,您应选择精确度为 3。同样,要显示 1098.5,您应选择精确度为 1。要显示整数,如 7,您应选择精确度为 0。时间“时间”类型强制使用时间格式,如 HH24:MI,这取决于此值集的最大长度。以下是支持的时间格式和您可以使用的值集最大长度: 最大长度 时间格式5 HH24:MI8 HH24:MI:SS对于其值集使用以上长度之一的段,您可以使用相应的默认值。在定义段或报表参数时,您可以定义这些默认值。您可以将这些值作为时间值进行处理和分类。标准日期“标准日期”类型强制使用用户的首选日期格式。在输入数据、查询数据和使

12、用“值列表”时,用户可以查看在“日期”字段中以首选格式显示的日期。对于弹性域段使用带此格式类型的值集,如果存储值的列为VARCHAR2 类型,则此日期值会以格式 YYYY/MM/DD HH24:MI:SS 存储在应用表中。对于使用这些值集的报表参数,并发管理器将此格式的日期传送到报表。因为“标准日期”类型值集值没有时间分量,所以时间分量是 00:00:00。注:基础列长度至少为 20。在第 11i 版中,值集的格式如果为“标准日期”和“标准日期时间”,则验证类型可能为“无”、“表”、“独立”、“从属”、“特殊”或“成对”。 在定义值集时,您可以为这些采用当前 NLS 日期格式的值集指定上限和下

13、限值。使用“标准日期”或“标准日期时间”格式的验证表值集不能使用标识列。“值”列应为“日期”列或 VARCHAR2 列(列中的日期值应采用规范格式 YYYY/MM/DD HH24:MI:SS)。如果表中现有的值没有采用规范格式,您应该创建一个视图,将其转换为规范格式或日期列,而值集应在此视图中定义。由于您可以将这些值作为日期值进行处理和分类,因此01-DEC-2002“大于”01-SEP-2002。标准日期时间“标准日期时间”类型强制使用用户的日期/时间格式。在输入数据、查询数据和使用“值列表”时,用户可以查看在“日期”字段中以首选格式显示的日期。对于弹性域段使用带此格式类型的值集,如果存储值

14、的列为VARCHAR2 类型,则此日期值会以格式 YYYY/MM/DD HH24:MI:SS 存储在应用表中。对于使用这些值集的报表参数,并发管理器将此格式的日期传送到报表。注:基础列长度至少为 20。在第 11i 版中,值集的格式如果为“标准日期”和“标准日期时间”,则验证类型可能为“无”、“表”、“独立”、“从属”、“特殊”或“成对”。 在定义值集时,您可以为这些采用当前会话日期格式的值集指定上限和下限值。使用“标准日期”或“标准日期时间”格式的验证表值集不能使用标识列。“值”列应为“日期”列或 VARCHAR2 列(列中的日期值应采用规范格式 YYYY/MM/DD HH24:MI:SS)

15、。如果表中现有的值没有采用规集最大长度范格式,您应该创建一个视图,将其转换为规范格式或日期列,而值集应在此视图中定义。 由于您可以将这些值作为日期-时间值来处理和分类,因此 01-DEC-2002 00:00:00“大于”01-SEP-2002 00:00:00。 日期 “日期”类型强制使用日期格式,如 DD-MON-RR 或 DD-MON-YYYY ,取决于此值集允许使用的最大长度。以下是支持的日期格式和您可以使用的值集最大长度: 最大长度 日期格式 9 DD-MON-RR 11 DD-MON-YYYY 对于其值集使用以上长度之一的段,您可以使用相应的默认值。在定义段或报表参数时,您可以定义

16、这些默认值。 由于您可以将这些值作为日期值进行处理和分类,因此 01-DEC-2002“大于”01-SEP-2002。 日期时间 “日期时间”强制使用日期格式,如 DD-MON-RR HH24:MI,这取决于此值集的最大长度。以下是支持的日期-时间格式和您可以用于“日期时间”的值集最大长度: 最大 日期 长度 格式 15 DD-MON-RR HH24:MI 17 DD-MON-YYYY HH24:MI 18 DD-MON-RR HH24:MI:SS 20 DD-MON-YYYY HH24:MI:SS 对于其值集使用以上长度之一的段,您可以使用相应的默认值。在定义段或报表参数时,您可以定义这些默

17、认值。 由于您可以将这些值作为日期时间值来处理和分类,因此 01-DEC-2002 “大于”01-SEP-2002。此长度表示您可以在使用此值集的段中输入的最长值,以及在定义弹性域段或报表参数时可以指定的最长“显示大小”。注:大小是指字节数,而指不是字符数。在多数情况下,对于使用此值集的弹性域,最大长度不能超过基础表中段列的长度。如果设置的最大长度大于该列的长度,则在定义弹性域段或报表参数时,您不能选择此值集。如果使用小于此最大长度的“显示大小”来定义段或报表参数,则弹出式窗口将显示此段中值最左边的字符。用户可以滚动段来查看任何剩余字符。对于报表参数,您可以使用的最大长度是 240。如果“格式

18、类型”是“标准日期”,则最大长度是 11。如果“格式类型”是“标准日期时间”,则最大长度是 20。如果您要定义使用验证表值集,最大长度应该反映指定为值列的列大小。最大长度也必须等于或小于目标段列的宽度。因此,在选择值列大小之后,您可能会获得一则消息,指示您修改值集最大长度以便与值列宽度相匹配。但是,如果您还指定了值集的隐藏标识列,则弹性域会确定隐藏标识值是否更适合于基础列,而不是值列。例如,如果您指定的最大长度为 60(它也是值列的大小),但是还指定了大小为 15 的隐藏标识列,则应仍使用弹性域的值集,而它的基础段列的大小仅为 20。在定义弹性域段或报表参数时,这样的值集一定会出现在您所看到由

19、值组成的值集列表中。精确度对于包含数值的值集(数字格式或字符格式,并且选定了“仅限于数字”),此属性表示基数字符后面的位数。系统存储数值时会在基数字符后面保留此位数,并且根据需要添加零或进行四舍五入。如果将此字段留空(“空精确度”),则只要满足其它大小和数值约束条件,基数字符可以出现在值中的任何位置。仅限于数字 (0-9使用“仅限于数字”选项,您不可以在使用此值集的段中输入字符 A-Z, a-z 或特定字符如 ! , 或者 #。在使用此值集的任意段或参数中,您只能输入值 0-9、负号、正号、基数分隔符 (D 以及组分隔符 (G。此外,另请注意,“字符”格式类型的值集即使没有字母字符仍保留为“字

20、符”,则值的行为和分类将作为字符值处理。右对齐和填零数字表示您在为此值集输入值时,弹性域是否应该自动右对齐并填零数字。此选项影响仅包含字符 0-9 的值,而不管您是否选择“仅限于数字”选项。此选项不影响包含字母字符或特殊字符的值,如句点或连字符。 例如,如果存在 5 个字符的值集,并且定义的值为 7,则弹性域将值作为 00007 来存储和显示。如果您定义弹性域段以使显示长度小于最大长度,并要右对齐和填零数字,则弹性域段通常可能只显示零(弹性域段仅显示由显示长度指定的字符数)。在这些情况下,用户需要滚动弹性域段来查看有含义的值,这样就降低了数据录入或查询速度。通常您可以使用此选项,以便确保显示为

21、数字的字符值如同真正的数字值(例如,用于交叉验证规则、值安全性规则以及报告功能的数字值)一样进行分类并按顺序显示。您也可以使用此选项来确保所有看上去象数字的值具有相同的字符数,以便在报表中排列时美观又整齐。 如果将“右对齐和填零数字”设置为“是”,则应当确保此值集中的数值使用“右对齐”和“填零”。最小值和最大值的范围最小值输入用户可以在使用此值集的段中输入的最小值。最小值不可以违背格式选项,如您为此值集指定的最大值的长度。您可以使用“最小值”和“最大值”字段来定义值集的有效值范围。一旦指定了值的范围,您就无法定义此范围以外的新的有效值。因此,“最小值”和“最大值”字段可以允许您创建验证类型为“

22、无”(非验证,任何值均有效)的值集,用户不能在其中输入指定范围以外的值。例如,您可能创建了格式类型为“数字”的值集,用户只能在其中输入介于 0 与 100 之间的值。或者,您可能创建了格式类型为“标准日期”的值集,用户只能在其中输入特定年份的日期(例如,在01-JAN-2002 至 31-DEC-2002 的范围内)。既然最小和最大值强制使用这些限定,则不需要定义包含各个独立数字或日期的值集。对于已包含值的值集,您可以定义其值的范围。使用有效范围以外的现有组合或现有数据将象包含过期段值一样处理。最小值或最大值可能随格式类型的不同而不同。例如,如果格式类型为“字符”,则 1000 小于 110;

23、但如果格式类型为“数字”,则 110 小于 1000。此外,在您将“字符”格式类型用于多数平台(ASCII 平台)时,数字字符“小于”字母字符(即 9 小于 A ),但是对于某些平台(EBCDIC 平台),数字字符则“大于”字母字符(也就是说,Z 小于 0 )。如果您指定的最小值大于平台的最大值,则此窗口会显示错误消息。最大值输入用户可以在使用此值集的段中输入的最大值。最大值不可以长于为此值集指定的最大长度。如果将此字段留空,则此值集的最大值可能自动成为您的值集的最大值。最小值和最大值实例如果值集使用字符格式,而且仅限于数字,最大长度为 3,则最小值为 -99 最大值为 999。如果值集使用数

24、字格式,最大长度为 5,精确度为 2,则最小值为 -9.99 ,最大值为 99.99(使用 US 基数字符 .)。确定用户的需要首先,您应该确定用户是否需要可供选择的预定义值列表,或确定用户是否可以输入符合此值集格式条件的任意值。如果要提供值列表,则可以从独立、从属、可转换独立、可转换从属或表值集中进行选择。如果不需要列表,请使用非验证(无)值集。一旦选择提供段值列表,则可以选择是使用独立验证、从属验证、可转换独立验证、可转换从属验证,还是使用表验证。如果要段值从属于在前一个独立段(使用独立值集的段)中选择的值,则您只能使用从属集。如果要段值从属于在前一个可转换独立段(该段使用可转换独立值集)

25、中选择的值,则您只能使用可转换从属集。是使用独立值集还是使用表集,这取决于您要从何处获取值。如果现有表中已存在适合的值,则应该选择表集。如果您要使用独立集并已在应用表中维护这些值,则需要对您的值执行双重维护。例如,如果需要禁用无效值,则需要在“段值”窗口(用于值集)和维护现有表的应用表单(由应用产品使用)中将其禁用。如果您尚无适合的表,则可能要使用独立集并使用“段值”窗口来维护值。选择值集的验证类型以下是影响用户输入以及使用段或参数值方式的几种验证类型: 无(根本无需验证)独立从属表特殊(高级)成对(高级)可转换独立可转换从属注意:会计科目弹性域仅支持独立验证、从属验证和表验证(表验证不能具有

26、任何附加 WHERE 子句)。由于您的更改会影响所有使用相同值集的弹性域和报表参数,因此不能更改现有值集的验证类型。 无在允许用户输入任意值时,只要该值符合值集格式规则,您就可以使用“无”类型值集。也就是说,此值不能超过您为值集定义的最大长度,以及它必须符合该值集的任何格式要求。例如,如果值集不允许使用字母字符,则用户无法输入值 ABC,但是可以输入值 456(对于最大长度为 3 的值集而言)。否则,将不验证使用此值集的段值,并且这些段值也不会有说明。由于不验证“无”值集,因此使用此值集的段不为用户提供值列表。使用此值集的段(即,非验证的段)不能使用弹性域值安全性规则来限制用户输入的值。独立“

27、独立”值集提供了预定义的段值列表。这些值可能有关联的说明。例如,值 01 的说明可能为“公司 01”。此值集中值的含义与其它任何段的值无关。独立值存储在 Oracle Application Object Library 表中。您可以通过 Oracle Applications 窗口中的“段值”定义独立值。 表验证表值集提供了类似于独立集的预定义值列表,但是其值存储在应用表中。您可以定义使用哪些表,并定义 WHERE 子句来限制值集要使用的值。一般来说,如果您在应用表中维护了表值(例如,由“定义供应商”表单维护的供应商名称表),则可以使用验证表值集。表验证还提供了某些高级功能,如允许段从属于相

28、同结构中多个前面的段。 从属从属值集类似于独立值集,只是列表中的可用值和给定值的含义从属于在弹性域结构的前面段中选定的独立值。您可以将从属值集视为小值集的组合,每个小值集适用于相应的独立值集中每个独立值。在定义独立值集的从属值集之前,您必须定义独立值集。您可以在“段值”窗口中定义从属值,您的值将存储在 Oracle Application Object Library 表中。 特殊值集和成对值集特殊值集和成对值集提供了一种允许“在弹性域中嵌弹性域”的机制。这些值集主要用于“标准请求提交”参数。对于正常的弹性域段,您通常不使用这些值集。特殊值集和成对值集使用您定义的特殊验证例行程序。例如,您可以

29、定义验证例行程序,以便提供另一个弹性域作为单个段的值集,或提供一个范围弹性域作为段对的值集。可转换独立和可转换从属可转换独立值集类似于提供预定义的段值列表的独立值集。但是,您可以使用转换的值。可转换从属值集类似于某些从属值集,这些从属值集中列表内的可用值和给定值的含义从属于弹性域结构前面的段中选定的独立值。但是,您可以使用转换的值。弹性域值安全性不能与可转换独立值集或可转换从属值集一起使用。对于格式验证,可转换值集必须使用格式类型字符。最大长度不大于 150。“仅限于数字”选项和“右对齐和填零数字”选项不能与可转换值集一起使用。范围弹性域不能使用可转换独立值集或可转换从属值集。您不能创建具有可

30、转换独立值集或可转换从属值集的层次结构或累计组。注:“会计科目弹性域”不支持可转换独立值集和可转换从属值集计划值以使用范围功能通过对相关值进行组合,您可以使用值的弹性范围来简化执行功能,如交叉验证和安全性规则。在记住交叉验证、安全性和报告范围(“范围功能”)时,最好是计划您的实际值(以及如处于给定范围一端的父值或汇总值)。例如,您可以将安全性建立在排除的基础上,比方说,排除从 1000 至 1999 的所有值。请记住,如果您使用值集的“字符”格式,则值和范围将按字符分类。因此,001 099 1 100 1000 12 120 1200,如果这些是真正意义上的数字(使用“数字”格式值集),则与

31、您的期望值有所不同。值集命名惯例如果计划引用验证表值集 WHERE 子句中的值集名称,您应该只使用值集名称中的字母、数字和下划线 (_。值集名称中不应该包括任何空格、引号或其它特殊字符。切勿使用字符串 $FLEX$ 作为值集名称的一部分。请注意,对于验证表 WHERE 子句中的值集名称,验证表会区分名称中的字母大小写。Oracle Applications 包括许多预定义的值集。这些值集主要用于“标准请求提交”的参数。在升级期间,Oracle Applications 将改写与 Oracle Applications 值集具有相同名称的值集。Oracle Applications 在升级前提供

32、了一列保留值集名称,这样您应重命名值集名称以防被改写,同时命名值集时应仔细,从而使升级变得更为简单。Oracle Applications 保留某些命名模式。Oracle Applications 保留两个或三个字符用下划线或连字符连接的命名模式,如 AP_VALUE_SET 或 PER-Value Set 。独立值与从属值之间的关系独立值集与从属值集之间具有特殊关系。对于任意独立值具有相同的从属值时,该从属值的含义(或说明)以及任何段限定词值、启用/激活信息和说明性弹性域数据取决于您在前面独立段中选择的独立值。例如,您可以具有包含以下这些值(从属默认值为 0)的值集: 独立值集(帐户段)从属

33、值集(子帐户段)值 说明01 现金帐户02 设备帐户值 说明 0 1 2 3 0 1 2 3 默认值 加利福尼亚银行 丹佛银行 第一联邦银行 其它设备 计算机 打印机 运输车辆默认值 03 其它资产帐户 0您必须按下列顺序仔细设置独立 - 从属值集: 首先创建独立值集 创建从属值集并指定默认值 定义独立值 定义从属值在您定义每个独立值时,Oracle Applications 将自动随独立值创建默认从属值。例如,上图表显示的默认值为零 (0。如果因某些原因,在独立值集具备值之后创建了从属值集,您必须在从属值集中为每个独立值人工创建一个默认值,因为每个独立值必须具备一个默认从属值。如果需要,请使

34、用“段值”表单(您也可以使用此表单创建除默认值之外的所有从属值)人工创建默认从属值。您至少必须为每个独立值创建一个从属值,否则用户将不能在弹性域中输入段值组合。但是,建议您严格遵循上述创建值集的顺序,这样您就不必人工创建默认从属值,因为人工创建默认从属值既耗时乏味又容易出错。表验证中的“从属”值弹性域使用特殊机制来支持其值从属于前面段值的验证表段(独立值集与从属值集所使用的机制有所不同)。您可以使用具有特殊 WHERE 子句(和 $FLEX$ 变元)的弹性域验证表来创建值集,其中您的段从属于前面几个段。您可以使段从属于一个以上的段(级联从属)。但是,您不能使用具有这些值集的父值/子值功能,也不

35、能使用具有“会计科目弹性域”的该机制。父值、子值和累计组只有 Oracle General Ledger 和 Oracle Public Sector General Ledger 使用这些功能,并且仅限于与会计科目弹性域一同使用。父值集和子值集具有的关系不同于独立值和从属值之间的关系。实施验证表值集概览验证表值集使您可以使用自己的应用表作为弹性域段和报表参数的值集,而不是 Oracle Applications 提供的特殊值表。您不必使用“段值”窗口人工输入每个值。基于验证表的值集类似于“独立”值集,其中“表”类型值集中的值独立于其它所有段中的值。或者,根据您如何定义验证表的 WHERE 子

36、句,这些值从属于弹性域中前面的一个或多个段。 一般来说,如果因其它应用用途想要键弹性域段、说明性弹性域段或报表参数使用验证表已经要求或维护的值,应使用验证表。如果使用验证表,您可以避免维护两份相同的值(一份在应用表中,另一份在 Oracle Application Object Library 表中)。您可以使用许多验证表值集的高级功能。您可以将验证表用于弹性域段或报表参数,其值从属于前面段中的值。也可以使用具有特殊 WHERE 子句(和 $FLEX$ 变元)的弹性域验证表来创建您的段从属于前面段的值集。在创建级联从属时,您可以使段从属于一个以上的段。您也可以使用具有其它特殊变元的验证表,以使

37、段从属于配置文件选项值或字段值。注:具有 WHERE 子句的验证表值集不能与会计科目弹性域一起使用。如果要利用键弹性域功能,如累计组和父 - 子关系,您可以在验证表中存储子值,但是应该使用 Oracle Applications 提供的“段值”窗口来添加或定义父值和累计组。使用验证表您可以使用“验证表信息”窗口来定义用于验证段或报表参数的表特性。要实施验证表,请执行以下操作:1. 创建或选择数据库中的验证表。您可以使用任何现有的应用表、视图或同义词作为验证表2. 向 Oracle Application Object Library 注册表(以表的形式)。但是,您可以对值集使用未注册的表。如果

38、表未注册过,则必须在此区域输入所有验证表信息,而不使用默认值。3. 创建必要的表权限和同义词。4. 定义使用验证表的值集。5. 定义弹性域结构,以便将该值集用于段。通过使用不同的 SQL WHERE 子句来限制用于验证弹性域和报表参数的值,您可以对多个值集使用同一个表。例如,如果要按照同一个表的不同行验证不同段,则需要使用同一个表两次,但通过使用不同的 SQL WHERE 子句为每个值集选择表的不同行。注:对于给定的值或标识,表中的值列和定义标识列必须返回唯一行。警告:对于要用于“会计科目弹性域”的值集,完全不应使用任何 WHERE 子句和(或)ORDER BY 子句。一般来说,对于要用于键弹

39、性域而不是“会计科目弹性域”的验证表,您可以使用 WHERE 子句和(或)ORDER BY 子句。注意:如果需要使用复杂的 SQL 子句来从表中选择值,您应该首先定义表的视图(可以通过该视图选择所需行),然后定义该视图的值集。对值集使用隐藏标识列如果除指定了值列之外还指定了隐藏标识列,则弹性域将保存的是隐藏标识值,而不是基本弹性域表中值列、段列(在 ATTRIBUTEn 列或 SEGMENTn 列中)的值。一般来说,使用具有隐藏标识列的值集仅适用于报表参数。对于大多数键弹性域,您通常不会使用这样的值集。实际上,大多数键弹性域通过不在值列表(用于将值集分配给段)中显示这些值集,来防止您使用具有隐

40、藏标识列的值集。注意:对于用于“会计科目弹性域”或多数其它键弹性域的值集,您不应指定隐藏标识列。如果除值列之外,您还指定了隐藏标识列,则报表参数窗口会将隐藏标识值(而非值列中的值)传送给报表。使用“标准日期”或“标准日期时间”格式的验证表值集不能使用标识列。在单个值集中使用多个表对于使用多个表的值集,您应始终将表别名和所有列名包括在一起。您必须直接输入列名,因为对于不是已注册的单个表的“表名”,值列表不能检索任何列名。例如,您可以输入:对于使用多个表的值集,您可以并应该将“表应用”字段留空,因为在这种情况下该字段实际上被忽略。您可以在“表名”字段中输入所需的表名和表别名。然后,直接输入“值列”

41、和“说明列”列名(加上表别名),因为对于不是已注册的单个表的“表名”,值列表不能检索任何列名。 显示值列表中的附加列您可以将值集用于显示段值或报表参数值值列表中的几个列,这些列可能在不同的表中。如果所有列均存在于同一个表中,您只需在“附加列”字段中列出附加列。如果列存在于不同的表中,您必须在“表名”字段中指定多个表名。对于“附加列”和 WHERE 子句,您应始终使用具有列名的表名或表别名。最后,您可以在“附加列”字段中输入所需的额外列的名称(加上表别名),并可以指定要显示的列宽。在某些情况下,您可能想要使用 SQL 表达式,而非指定单个列名。例如,您可能要使用 DECODE 语句来代替简单列名

42、,如: DECODE(FORM.FORM_NAME, OEDEOR, Enter Orders, Not available或DECODE(FORM.FORM_ID, 1234, 1234, NULL您还可以使用消息名称作为别名; 此功能便于转换列标题。将消息名称用作别名的语法为:E_FLAG APPL=;NAME=(宽度定义验证表您可以创建新的弹性域验证表,也可以使用现有的应用表,其中包括以下列:保存段值的列,类型为 VARCHAR2,DATE 或 NUMBER保存段值说明的列,类型为 VARCHAR2,DATE 或 NUMBER 表还可以包括以下可选列:ENABLED_FLAG,类型为 V

43、ARCHAR2,length 1,NOT NULL START_DATE_ACTIVE 和 END_DATE_ACTIVE,类型为 DATE ,NULL ALLOWED如果使用这些可选列,则必须使用列出的特性对其进行定义。在注册验证表时,Oracle Application Object Library 会检查该表,以查看这些列是否存在。如果存在,Oracle Application Object Library 会将其用作弹性域验证信息的一部分。如果将 ENABLED_FLAG 列添加至现有表,您必须填写所有行的列(使用 Y 或 N )。通常,您应使用 Oracle Application

44、Object Library 提供的值表单“定义段值”,来包含父值、累计组信息以及前面章节所述验证表中包含的子值。如果存在某些特殊列,如注册表中的 SUMMARY_FLAG,START_DATE_ACTIVE,END_DATE_ACTIVE,STRUCTURED_HIERARCHY_LEVEL,COMPILED_VALUE_ATTRIBUTES 或 ENABLED_FLAG,则一旦将表设置为验证表,值集就会自动使用那些列。如果不要值集自动使用那些列,您应在“表名”字段中使用具有表名的别名。注意:如果表需要使用 SQL 函数或非常复杂的 WHERE 子句,则应先在表上方定义一个视图,然后使用该视

45、图。验证表的 WHERE 子句和约束变量您可以使用具有 WHERE 子句的验证表来设置值集,值集中的某个段从属于前面段,而该段自身也从属于它前面的段(“级联从属”)。 在 WHERE/ORDER BY 子句中使用约束变量您可以在 WHERE/ORDER BY 子句中使用特殊约束变量,如 :block.field,:$PROFILES$.Option_name或 :$FLEX$.Value_set_name。但是,即使是指定了一个 SQL 片段,而不是指定了单一列名,您仍不能在“值列”或“隐藏标识列”字段中使用它们(您通常在这些字段中指定列名)。但可以在“说明列”和“附加列”字段中使用约束变量。

46、注意:如果您要使用弹性域服务器端验证,则不能使用表单字段引用 ( :block.field。您必须删除字段参考,或使用配置文件选项“弹性域:在服务器端验证”来关闭弹性域服务器端验证。注意:您不可以在任何列字段或 WHERE/ORDER BY 子句中使用 DISTINCT 子句(您应使用包含 GROUP BY 子句的视图来代替实际的表)。如果对值集使用具有特殊变元(如 :$FLEX$.Value_Set_Name)的验证表,您应在“启用安全保护”字段中指定“否”,因为值集的任何安全性规则均会忽略这些特殊变元的值,并且规则所产生的影响与您期望的不同。约束变量您可以将特殊变元(约束变量)置入 WHE

47、RE 子句中,以便可以使值集用于其它值。这些约束变量包括 :block.field,:$PROFILES$.Option_name或 :$FLEX$.Value_set_name。您不能在“值列”或“隐藏标识列”字段(通常您会在这些字段中指定列名)中使用约束变量。但可以在“说明列”和“附加列”字段中使用约束变量。请注意,在默认情况下,需要为约束变量赋值;也就是说,对于使用约束变量以产生某种含义的语句、表达式或用户出口,其中的约束变量必须有值。通过使用 :NULL suffix 可使约束变量成为可选项。因此,如果约束变量为 NULL,则会禁用使用此变量的段/参数,并且会忽略约束变量的必需属性(如

48、果启用)。有关 :NULL 后缀的详情将在本节的末尾部分讨论。:$FLEX$.Value_ Set_NameValue_Set_Name 是前面段的值集名,或者是同一弹性域或参数窗口中,使基于验证表的值从属于前面段的段名。在定义弹性域结构或报表参数窗口时,您应定义使用值集 Value_Set_Name 的段或参数,使其比使用基于验证表的值集的段具有更低的序号。$FLEX$ 结构使用具有匹配值集名或段名的“最近”前面段(它首先查找值集名,如果无匹配的值集名,则使用段名)。Value_Set_Name 区分大小写,因此您必须确保此处指定的名称与在“定义值集”表单中定义的值集名完全匹配。注意,如果要

49、将值集名用于 :$FLEX$. Value_Set_Name 子句,则在值集名中只能使用字母、数字和下划线 (_。您不能在这些值集名中使用引号、空格或其它特殊字符,因此您应仔细地定义值集名,不要包含空格、引号或其它特殊字符。 您可以在单个 WHERE 子句中指定多个 :$FLEX$.Value_Set_Name,从而创建一个段,其可能值列表从属于前面多个段。在指定 :$FLEX$.Value_Set_Name 时,弹性域段或报表参数会默认为始终使用上一个值集的隐藏标识列来比较 WHERE 子句。但是,最终用户决不会看到隐藏标识值。如果未指定隐藏标识列,则段会默认为使用值列中的值。在指定 :$F

50、LEX$.Value_Set_Name 时,您还可以明确地选择要 :$FLEX$.Value_Set_Name 为哪个列返回值。您可以通过指定 :$FLEX$. Value_Set_Name.OUTPUT 来执行此操作,其中OUTPUT 可以是“标识”、“值”或“含义”(用于返回说明列的值)。 在指定验证表值集时,您也可以在“附加列”字段中使用 INTO 子句(在整个列和别名列表之后)将值置入您用于 :$FLEX$.segment_name.OUTPUT 的变量中,其中 OUTPUT 是选定的名称。然后,您可以使用 :$FLEX$.segment_name.OUTPUT(其中 OUTPUT 为相同名称)从另一个段的值集 WHERE 子句中检索该值。您不能使用 OUTPUT 将值直接置入字段中,但是,一旦关闭弹出式窗口,弹性域段检索到的值就会置入与段对应的隐藏表单字段中。如果没有在“附加列”字段中指定 INTO 子句,则值除了在值列表中显示之外,就不会在其它任何地方显示(值将成为 INTO NULL )。:block.field 是说明性弹性域所在表单上某字段的S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论