EBS Form开发中弹性域定义的更新及其语法

来源:互联网 发布:美微柠檬免费网络电视 编辑:程序博客网 时间:2024/05/22 00:47

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}[\\0{ALL|

flexfield_qualifier | segment_number}]’,]

[INSERTABLE=>’{ALL| flexfield_qualifier |

segment_number}[\\0{ALL|

flexfield_qualifier | segment_number}]’,]

[UPDATEABLE=>’{ALL| flexfield_qualifier |

segment_number}[\\0{ALL|

flexfield_qualifier | segment_number}]’,]

[VRULE=>’flexfield qualifier\\n

segmentqualifier\\n

{I[nclude]|E[xclude]}\\n

APPL=application_short_name;

NAME=Message Dictionary message name\\n

validation value1\\n

validation value2...

[\\0flexfield qualifier\\n

segment qualifier\\n

{I[nclude]|E[xclude]}\\n

APPL=application_short_name;

NAME=Message Dictionary message name\\n

validation value1\\n

validation value2...]’,]

[COPY=>’block.field\\n{ALL | flexfield

qualifier | segment_number}

[\\0block.field\\n{ALL | flexfield

qualifier | segment_number}]’,]

[DERIVED=>’block.field\\nSegment qualifier’,]

[DINSERT=>’{Y|N}’,]

[VALATT=>’block.field\\n

flexfield qualifier\\n

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’,

FIELD=>’concatenated_segments_field_name’,

/* Argument to enableor disable flexfield */

[ENABLED=>’{Y|N}’,]

/* Other optionalparameters */

[VALIDATE=>’{PARTIAL|NONE}’,]

[VDATE=>’date’,]

[DISPLAYABLE=>’{ALL | flexfield_qualifier |

segment_number}[\\0{ALL|

flexfield_qualifier | segment_number}]’,]

[INSERTABLE=>’{ALL| flexfield_qualifier |

segment_number}[\\0{ALL|

flexfield_qualifier | segment_number}]’,]

[UPDATEABLE=>’{ALL| flexfield_qualifier |

segment_number}[\\0{ALL|

flexfield_qualifier | segment_number}]’,]

[VRULE=>’flexfield qualifier\\n

segment qualifier\\n

{I[nclude]|E[xclude]}\\n

APPL=application_short_name;

NAME=Message Dictionary message name\\n

validation value1\\n

validation value2...

[\\0flexfield qualifier\\n

segment qualifier\\n

{I[nclude]|E[xclude]}\\n

APPL=application_short_name;

NAME=Message Dictionary message name\\n

validation value1\\n

validation value2...]’,]

[TITLE =>’Title’,]

[REQUIRED=>’{Y|N}’,]

[AUTOPICK=>’{Y|N}’,]

[USEDBFLDS=>’{Y|N}’,]

[ALLOWNULLS=>’{Y|N}’,]

[DATA_SET=>’set number’,]

[READ_ONLY=>’{Y|N}’,]

/* Parametersspecific to type flexfields */

[TYPE_FIELD=>’block.concatenated_type_values_

field\\ntype field suffix’,]

[TYPE_VALIDATION=>’Value set name\\n

Required\\nDefault value’,]

[TYPE_SIZES=>’type_value_display_

size\\nDescription_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’,

/* Argument toenable or disable flexfield */

[ENABLED=>’{Y|N}’,]

/* Other optionalparameters */

[VDATE=>’date’,]

[TITLE =>’Title’,]

[AUTOPICK=>’{Y|N}’,]

[USEDBFLDS=>’{Y|N}’,]

[READ_ONLY=>’{Y|N}’,]

[LOCK_FLAG=>’{Y|N}’,]

[HELP=>’APPL=application_short_name;

TARGET=target_name’,]

[CONTEXT_LIKE=>’WHERE_clause_fragment’}

);

0 0
原创粉丝点击