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

EBS Form开发中弹性域的定义语法

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

EBS Form开发中弹性域的定义语法

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

来源:Oracle Applications Developers Guide

关键性弹性域定义语法

在外键form或者组合form上,使用FND_KEY_FLEX.DEFINE方法定义关键性弹性域。

注意:Oracle提供了组合form语法,这样你就可以把现存的子SQL*Forms2.3到Oracle Forms4.5的非OracleApplications 组合form进行转换。但是,关键性弹性域的API在未来版本的Oracle Applications中还可以能更改,因此,Oracle建议不要创建任何新的非Oracle Applications提供的关键性弹性域。

FND_KEY_FLEX.DEFINE(

/* Arguments thatspecify flexfield location */

BLOCK=>’block_name’,

FIELD=>’concatenated_segments_field_name’,

[DESCRIPTION=>’description_field_name’,]

[ID=>’Unique_ID_field’,]

[DATA_FIELD=>’concatenated_hidden_IDs_field’,]

/* Arguments thatspecify the flexfield */

APPL_SHORT_NAME=>’application_short_name’,

CODE=>’key_flexfield_code’,

NUM=>’structure_number’,

/* 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

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

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

qualifier | segment_number}

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

qualifier | segment_number}]’,]

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

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

[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), ...] [INTO block.field]}’,]

[WHERE_CLAUSE=>’where clause’,]

[COMBQP_WHERE=>’{where clause|NONE}’,]

[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=>’APPL=application_short_

name;NAME=message_name’,]

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

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

[HELP=>’APPL=application_short_name;

TARGET=target_name’]

);

对于参数VALATT,COPY或者DERIVED参数,不要在block.field引用中使用冒号(:)。这些方法的参数会走到OracleApplication Object Library的外层程序,而不是直接为PL/SQL解析。

范围类型弹性域定义语法

对于范围弹性域,使用FND_RANGE_FLEX.DEFINE。对于”type”弹性域也使用这个方法(它也可能包含范围弹性域分段),它包含额外字段,这些字段对应相关关键性弹性域的每个分段。比如,一个Accouting 弹性域的type弹性域可能为每个Accouting弹性域分段包含一个字段,但是你可能在这些字段只能输入Yes或者No值,而不是通常的分段值。Assign Function Parameter form为分段使用字段使用了type弹性域(你可以为任何你想使用的分段输入”YES”).你可能需要构建一个type弹性域,其中包含多于一个“类型列”(一个在弹性域弹出窗口中字段’列’, 其对应于实际分段的字段)。如果你这么做,你可以指定TYPE_参数值多次,使用\\0来隔离多个值。

注意:你不要附加”_LOW”或者”_HIGH”到FIELD,DESCRIPTION,DATA_FIELD或者其它值,因为这个方法会自动添加它们。当你使用多于一个type列时,保证所有TYPE_参数指定的type列保持同样的顺序,这样可以避免参数值应用到错误的类型列。

FND_RANGE_FLEX.DEFINE(

/* Arguments thatspecify flexfield location */

BLOCK=>’block_name’,

FIELD=>’concatenated_segments_field_name’,

[DESCRIPTION=>’description_field_name’,]

[DATA_FIELD=>’concatenated_hidden_IDs_field’,]

/* Arguments thatspecify the flexfield */

APPL_SHORT_NAME=>’application_short_name’,

CODE=>’key_flexfield_code’,

NUM=>’structure_number’,

/* 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\\nDefaultvalue’,]

[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方法。

FND_DESCR_FLEX.DEFINE(

/* Arguments thatspecify the flexfield location */

BLOCK=>’block_name’,

FIELD=>’field_name’,

[DESCRIPTION=>’description_field_name’,]

[DATA_FIELD=>’concatenated_hidden_IDs_field’,]

/* Arguments thatspecify the flexfield */

APPL_SHORT_NAME=>’application_short_name’,

DESC_FLEX_NAME=>’descriptive flexfield_name’

/* 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’}

);

抱歉!评论已关闭.