EBS Form开发中弹性域定义的更新及其语法
EBS Form开发中弹性域定义的更新及其语法 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究) 原文来源:Application Developer Guide 更新弹性域定义 通常一旦在form上定义弹性域,一般是在form的启动事件。但是,有时你需要在稍后修改这个定义。比如,你可能想让这个弹性域变成不可更新和不可插入。替代重新定义弹性域并和之前一样设置UPDATEABLE=>’’和INSERTABLE=>’’和其它参数,你可以使用下面的更新方法来更改仅需要修改的参数。 可以使用更新方法来控制任意你在弹性域定义方法中指定的”其它可选参数”。你不能使用这些方法来改变比如弹性域使用哪些字段的参数,因为这些参数可以有效识别弹性域而不是修改它。比如,你可以指定为VALIDATE参数指定新值,但是你不能为DESCRIPTION或者DATA_FIELD参数指定新值。 启用或者禁用弹性域 一旦在form上定义了弹性域,无论在block或者form级别上的各种触发器调用FND_FLEX.EVENT,这些事件都会应用到定义在block或者form上的所有弹性域。但是这样若只想为一些弹性域而不对其它弹性域调用FND_FLEX.EVENT就会变得困难。比如,你可能不想为一个特定的关键性弹性域在PRE-UPDATE调用VALID,但是你想为block上的所有其它的弹性域调用它。使用更新方法你可以启用和禁用弹性域定义,这样FND_FLEX.EVENT调用不会应用到禁用的弹性域定义上。 更新方法除了你可以指定可选的参数,还提供了特殊的参数,ENABLED。你为这个参数指定N来禁用弹性域,指定为Y来启用弹性域。你不能在通常的弹性域定义方法调用中使用ENABLED(因为定义方法会自动启用这个弹性域)。 关键性弹性域更新定义语法 使用UseFND_KEY_FLEX.UPDATE_DEFINITION来为组合form上的或者外键关键性弹性域来更新定义。除了ENABLED是你仅可以用于更新定义的参数,其它参数都和定义弹性域的一样。 FND_KEY_FLEX.UPDATE_DEFINITION( /* Arguments thatspecify flexfield location and thus identify theflexfield */ BLOCK=>’block_name’, FIELD=>’concatenated_segments_field_name’, /* Argument toenable or disable flexfield */ [ENABLED=>’{Y|N}’,] /* Other optionalparameters */ [VALIDATE=>’{FOR_INSERT|FULL|PARTIAL|NONE| PARTIAL_IF_POSSIBLE}’,] [VDATE=>’date’,] [DISPLAYABLE=>’{ALL| flexfield_qualifier | segment_number}[ {ALL| flexfield_qualifier | segment_number}]’,] [INSERTABLE=>’{ALL| flexfield_qualifier | segment_number}[ {ALL| flexfield_qualifier | segment_number}]’,] [UPDATEABLE=>’{ALL| flexfield_qualifier | segment_number}[ {ALL| flexfield_qualifier | segment_number}]’,] [VRULE=>’flexfield qualifiern segmentqualifiern {I[nclude]|E[xclude]}n APPL=application_short_name; NAME=Message Dictionary message namen validation value1n validation value2... [ flexfield qualifiern segment qualifiern {I[nclude]|E[xclude]}n APPL=application_short_name; NAME=Message Dictionary message namen validation value1n validation value2...]’,] [COPY=>’block.fieldn{ALL | flexfield qualifier | segment_number} [ block.fieldn{ALL | flexfield qualifier | segment_number}]’,] [DERIVED=>’block.fieldnSegment qualifier’,] [DINSERT=>’{Y|N}’,] [VALATT=>’block.fieldn flexfield qualifiern segment qualifier’,] [TITLE =>’Title’,] [REQUIRED=>’{Y|N}’,] [AUTOPICK=>’{Y|N}’,] [USEDBFLDS=>’{Y|N}’,] [ALLOWNULLS=>’{Y|N}’,] [DATA_SET=>’set number’,] [COLUMN=>’{column1(n) | column1 alias(n) [,column2(n),...]}’,] [WHERE_CLAUSE=>’where clause’,] [COMBQP_WHERE=>’{Y|N}’,] [WHERE_CLAUSE_MSG=>’APPL=application_short_ name;NAME=message_name’,] [QUERY_SECURITY=>’{Y|N}’,] [QBE_IN=>’{Y|N}’,] [READ_ONLY=>’{Y|N}’,] [LONGLIST=>’{Y|N}’,] [NO_COMBMSG=>’{Y|N}’,] [LOCK_FLAG=>’{Y|N}’,] [AUTOCOMBPICK=>’{Y|N}’,] [DERIVE_ALWAYS=>’{Y|N}’,] [HELP=>’APPL=application_short_name; TARGET=target_name’] ); 范围类型弹性域更新定义语法 对于范围弹性域,使用FND_RANGE_FLEX.UPDATE_DEFINITION方法。对于”type”弹性域也使用这个方法(它也可能包含范围弹性域分段),它包含额外字段,这些字段对应相关关键性弹性域的每个分段。除了ENABLED是你仅可以用于更新定义的参数,其它参数都和定义弹性域的一样。 注意:你不要附加”_LOW”或者”_HIGH”到FIELD,DESCRIPTION,DATA_FIELD或者其它值,因为这个方法会自动添加它们。当你使用多于一个type列时,保证所有TYPE_参数指定的type列保持同样的顺序,这样可以避免参数值应用到错误的类型列。 FND_RANGE_FLEX.UPDATE_DEFINITION( /* Arguments thatspecify flexfield location */ BLOCK=>’block_name’, /* Argument to enableor disable flexfield */ [ENABLED=>’{Y|N}’,] /* Other optionalparameters */ [VALIDATE=>’{PARTIAL|NONE}’,] [DISPLAYABLE=>’{ALL | flexfield_qualifier | segment_number}[ {ALL| flexfield_qualifier | segment_number}]’,] [VRULE=>’flexfield qualifiern segment qualifiern {I[nclude]|E[xclude]}n APPL=application_short_name; NAME=Message Dictionary message namen validation value1n validation value2... [ flexfield qualifiern segment qualifiern {I[nclude]|E[xclude]}n APPL=application_short_name; NAME=Message Dictionary message namen validation value1n validation value2...]’,] /* Parametersspecific to type flexfields */ [TYPE_FIELD=>’block.concatenated_type_values_ fieldntype field suffix’,] [TYPE_VALIDATION=>’Value set namen RequirednDefault value’,] [TYPE_SIZES=>’type_value_display_ sizenDescription_display_size’,] [TYPE_HEADING=>’type column heading’,] [TYPE_DATA_FIELD=>’block.type_data_field’,] [TYPE_DESCRIPTION=>’block.type_ description_field’,] [SCOLUMN=>’single column title’] [HELP=>’APPL=application_short_name; TARGET=target_name’] ); 注意:TYPE_FIELD,TYPE_DATA_FIELD和TYPE_DESCRIPTION需要block.fieldname的结构,不像其它的弹性域参数值只需要指定字段名而不需要block的名字。 描述性弹性域更新定义语法 对于描述性弹性域,使用FND_DESCR_FLEX.DEFINE方法。除了ENABLED是你仅可以用于更新定义的参数,其它参数都和定义弹性域的一样。 FND_DESCR_FLEX.UPDATE_DEFINITION( /* Arguments thatspecify the flexfield location */ BLOCK=>’block_name’, FIELD=>’field_name’,] /* Other optionalparameters */ [VDATE=>’date’,] [LOCK_FLAG=>’{Y|N}’,] [HELP=>’APPL=application_short_name; TARGET=target_name’,] [CONTEXT_LIKE=>’WHERE_clause_fragment’} ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |