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

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

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

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

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

来源:Oracle Applications Developers Guide

下面的参数适用于所有类型的弹性域,除非有特殊标记。对于你想指定多于异常的参数,可以用\\0来隔离多个参数的值(像下面说明的).

指定弹性域位置的参数

BLOCK

包含你的弹性域的block的名称。你的值字段,ID字段(如果有),和描述字段(如果有)都必须在同一个block。

FIELD       

你想放置弹性域的字段的值。这是一个显示用的,非DB的form字段,它包含连接的分段值,包含分隔符。

DESCRIPTION

弹性域的描述字段。这是一个显示用的,非DB的,不可输入的字段,它包含了你的分段值的连接的描述。如果你不指定DESCRIPTION参数,你的form不显示连接分段的描述。

ID          

仅用于关键性弹性域。指定这个字段,如果有,它包含了你的关键性弹性域的唯一ID(CCID)。

DATA_FILED

连接的隐藏IDs字段,是一个隐藏的form字段,它包含了连接分段的隐藏IDs.

指定使用哪一个弹性域的参数

APPL_SHORT_NAME

弹性域注册时应用的缩写名

CODE            

仅用于关键性或者范围弹性域。缩写编码标示了弹性域。这就是在关键性弹性域form指定的弹性域编码,比如GL#是Oracle Applications中的Accounting弹性域的编码。

NUM            

仅用于关键性或者范围弹性域。结构编码(或者:block.field引用包含了结构编码)标示了关键性弹性域的结构。

你可以指定不显示的数据库字段 :block.field,其中保存了弹性域结构编码的标识符。你也可以用:$PROFILES$.your_profile_option_name来从一个用户的profile选项中获取值。也可以”硬编码”一个结构的编码,比如101到这个参数,而不是提供一个字段引用,但是这样的数字会使你不能为你的弹性域使用多个结构。如果你使用了多个结构,你就必须使用这个选项。

你可以使用下面的SQL语句来获取你的弹性域结构的标识符号:

                 SELECT ID_FLEX_NUM, ID_FLEX_STRUCTURE_NAME

FROM FND_ID_FLEX_STRUCTURES

WHERE ID_FLEX_CODE = ’flexfield code’;

这里,弹性域编码就是当你注册弹性域的时候指定的编码。

NUM的默认值是101.

DESC_FLEX_NAME

仅用于描述性弹性域。注册时使用的名称,它标示了描述性弹性域。

其它可选的参数

如果你不指定一个特定的可选的参数,弹性域方法为这个参数使用通常的默认值。

VALIDATE      

仅用于关键性弹性域或者范围弹性域。对于关键性弹性域,对于组合form通常使用FOR_INSERT,对于外键form,通常使用FULL。对于范围弹性域,通常使用NONE来允许用户来输入任意值到一个分段,或者PARTIAL来保证用户为单个分段值输入有效值,但是其不能组成一个实际有效的组合。

对于外键form使用验证类型FULL来验证所有分段值并当必要的时候生成一个新的编码组合,并动态插入到组合表中。如果你指定为FULL,弹性域根据编码组合表中已存的编码组合检查你的用户输入的值。如果组合存在,你的弹性域会获取编码组合ID。如果组合不存在,弹性域会创建编码组合ID并把组合插入到组合表中。如果你(或者安装人员)定义了”Dynamic Inserts Allowed”为”No”的弹性域结构,然后当用户输入了一个不存在的组合时,弹性域会抛出一个错误消息。在这种情况下,弹性域不会创建新的编码组合。对于使用外键引用的FORM,FULL是通常的值。

PARTIAL用于你想验证单个分段值,但是不创建新的有效的组合或者在组合表中检查已存在组合的form.当你有应用逻辑需要弹性域分段值但是不需要实际编码组合时,可使用PARTIAL。比如,Oracle Applications Short Alias form需要用户为每个分段输入一个有效的值,但是不需要(或者检查)已存在于组合表的实际编码组合。Shorthand Aliases form也不创建组合。PARTIAL_IF_POSSIBLE是PARTIAL的特殊情况。如果你的弹性域(有独立分段)有依赖分段,如果用户没为关联的独立分段输入值,那么PARTIAL不为依赖分段提供值列表。PARTIAL_IF_POSSIBLE,然而,还是会尝试在依赖分段提供值列表。值列表包含了关联独立分段所有值的所有依赖值。(因此,你可以看到多个000值,如果000是默认的依赖值的话)。

如果不希望做任何验证的话就使用NONE.

对于关键性弹性域,其默认值是FULL.范围弹性域的默认值是NONE.

VDATE

是用于验证启用了Start Date和End Date的验证日期。你使用Segment Values form定义每个分段的输入的Start Date和End Date.

比如,如果你想检查传入的日期的值(比如,会计期间的关闭日期),你可以使用字段引用(VDATE=>‘:block.field’)来指定其日期为VDATE,并比较分段值和这个日期。

默认值是当前日期(SYSDATE).

DINSERT      

仅用于关键性弹性域。使用DINSERT来开启或者关闭form上的动态插入功能。

默认值是Y(form可以使用动态插入)

DISPLAYABLE   

仅用于关键性弹性域或者范围弹性域。DISPLAYABLE参数允许你显示代表指定弹性域qualifiers的分段或者指定的分段编号,这里分段编号是分段在弹性域窗口中分段出现的顺序,不是关键性弹性域分段form上指定的分段编号。比如,如果你指定你仅想显示分段编码1,那么弹性域就会只显示通常出现在弹出式窗口第一个分段(指定结构的NUM).

DISPLAYABLE的默认值是ALL,也意味着弹性域会显示所有分段。作为选择,你可以指定弹性域的qualifier的名字或者分段的编号。

你可以通过指定DISPLABLE多于一个值来使用DISPLABLE作为切换开关,使用\\0隔离符.比如,如果你想弹性域显示所有的分段,但除了第一个分段,你可以指定为:

DISPLAYABLE=>‘ALL\\01’

注意\\0隔离了ALL和1.

如果你不显示所有分段,但是你使用默认值来填充非显示分段,,你也必须在form上隐藏SEGMENT1到SEGMENTn字段。你需要这些隐藏字段,因为弹性域要为所有显示字段写值到连接值字段,但是不写值到不显示的默认字段。因为弹性域通常使用连接值字段的值来更新和插入数据到数据库,非显示字段的默认值不会提交到数据库。然而,如果你有额外的隐藏字段(类似于组合form),弹性域会把弹性域值也会写值到字段,就像连接分段值字段。不显示的值仅写到隐藏字段,但是也会被用于更新或插入数据库。

UPDATEABLE

INSERTABLE         

仅用于关键性弹性域或者范围弹性域。UPDATEABLE/INSERTABLE参数决定户是否可以更新或者插入代表指定的唯一弹性域qualifiers或者分段号的分段,这里分段号是分段在弹性域窗口中出现的顺序,而不是关键性弹性域分段form上指定的分段编号.

默认值是ALL,意味着用户可以更新/插入所有分段。可以选择的,你可以指定弹性域qualifier名或者分段号。你可以输入UPDATEABLE=>’’或者INSERTABLE=>’’(两个单引号)来禁止用户为所有分段更新或者插入值。

你可以使用这些参数通过指定多于一个值作为切换开关,使用\\0标示符隔离多个值。比如,如果你想用户可以更新所有字段但除了第一个分段,你可以这么指定:

UPDATEABLE=>’ALL\\01’

注意\\0隔离了1和ALL.

如果你使用INSERTABLE=>’’来禁止用户为所有分段插入值,那么Shorthand Flexfield Entry在这个form上将会被禁用.

 

TITLE          

指定你想出现在弹出窗口上方的标题.关键性弹性域的默认值是你使用关键性弹性域分段form设置弹性域时结构的名称.对于描述性弹性域,默认值是你使用描述性弹性域分段form设立弹性域时你所指定的标题。

REQUIRED      

仅用于关键性弹性域或者范围弹性域。表明用户在弹性域窗口是否不输入分段值就可以退出弹性域窗口。

默认值是Y。

如果你指定值为Y,那么弹性域将禁止用户从必填分段(一个值集的必填属性设置为Yes的分段)中离开,如果没有为那个分段输入一个有效的值的话。还有,如果用户保存一行数据但是还为进入弹性域弹出窗口,弹性域会尝试为任意必填分段填充默认值,如果有必填字段不能填充默认值,会抛出一个错误消息。

如果你指定REQUIRED属性为Y,VALIDATE属性为FULL,那么当用户查询出一个不关联弹性域(外键弹性域ID列为NULL值)的行时,弹性域会抛出一个错误消息警告用户必填弹性域返回了一个NULL ID。

如果你指定值为N,那么弹性域允许用户保存一行记录,即使没进入过弹性域弹出窗口。如果指定值为N,用户可以在弹性域窗口中导航(不停顿),即使不输入或者更改任何值。但是,如果用户输入了或者更改了弹性域中任一分段的值,用户不能离开弹性域窗口,直到弹性域窗口所有必填字段设置了有效值。如果你指定N并且用户没有打开或者没有在弹性域窗口输入值,用户可以保存行记录,不论是否弹性域包含必填字段。在这种情况下,弹性域不会为必填字段保存默认值为分段值,并且不会抛出错误消息。

如果你指定值为N并VALIDATEABLE属性为FULL,那么当用户查询出一个不关联弹性域(外键弹性域ID列为NULL值)的行时,弹性域会验证查询返回的单个分段的值。如果你想查询非必填弹性域并不弹出错误消息时,就指定其值为N。

注意即使必填属性设置为N,用户开始为这个弹性域输入分段值,那么就必须为弹性域输入完整的值或者放弃为这个弹性域输入值。

AUTOPICK       

决定当用户输入单个分段值时,是否显示值列表窗口。默认值是Y。

COPY           

仅用于关键性弹性域.在弹性域窗口弹出之前,从block.field拷贝非NULL值到由指定的弹性域qulifier或者分段号指定的分段。类似地,如果你指定值为ALL,那么COPY属性将拷贝一系列非空值,一系列分段值的连接(以及分段的隔离符)从block.field到所有的分段。比如,如果你有一个三段的弹性域,block.field值为001.ABC.05,COPY会把001放到第一个分段,ABC到第二个分段,并且05到第三个分段。

你要拷贝的分段的值必须是对于那个分段有效的值。拷贝的值会覆盖掉使用关键性弹性域分段form为分段设置的默认值。尽管如此,速记弹性域分录的值会覆盖COPY属性的值。并且COPY属性不会拷贝NULL值来覆盖已存在(默认)值。但是,如果你拷贝的值对于那个分段来说不是一个有效的值,它就会像使用NULL值覆盖了默认值:无效值覆盖了默认值,但是你的弹性域会擦掉拷贝的值,因为它是无效的。所以你应该确保你要拷贝的字段包含有效的值。

当弹性域窗口关闭时,弹性域会自动拷贝由指定的弹性域qualifier或者分段编号所代表的分段的值到block.field。同样,如果你指定值为ALL,你的弹性域会自动拷贝弹性域所有分段的连接值到block.field.

你可以指定一个或者多个COPY参数值,并由\\0 隔离。稍后拷贝值会覆盖前面的拷贝值。比如,假设你有一个字段,它记录了连接的弹性域的值,叫做Concatenated_field,并且它的值为01-ABC-680.你还有一个字段,Value_field,它保存了一个字符串的值,并且你想拷贝它到你的第二个分段,它的值为XYZ.你可以指定:

COPY=>’block.Concatenated_field\\nALL\\0block.Vale_field\\n2’

注意\\0 分隔了不同的参数值。

当用户打开弹性域窗口时,Oracle Application Object Library会按顺序执行两次拷贝,用户会在窗口中看到下面的值:

01

XYZ

680

弹性域窗口关闭之后,弹性域会分别拷贝值01-XYZ-680和XYZ回到上面两个字段。注意在这种情况下,XYZ会覆盖掉ABC值。

DERIVED        

仅用于关键性弹性域.使用DERIVED参数为用户输入的组合从分段  qualifier提取值.使用block.field来指定希望弹性域要加载提取值到的block和字段.使用分段qualifier来指定你想使用的分段qualifier的名称。注意:不要再\\n 周围放在空格,并且\\n必须是小写的.

弹性域使用下面的规则来从单个分段的qualifier值中获取提取的qualifier值。如果分段qualifer是唯一的,提取值是分段qualifer的值;对于不是唯一的分段qualifiers,如果任何分段的qualifier的值=N,那么提取值为N,否则提取值为Y。这个规则的唯一的例外是内置的SUMMARY_FLAG分段Qualifier;这个的规则是如果任意分段的值起源,那么SUMMARY_FLAG的提取值是Y。弹性域会加载提取值到你定义qualifer时所指定组合表的qualifier列。

你可以指定一个或多组有\\0隔开的DERIVED参数。

 

 

 

抱歉!评论已关闭.