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’]
- );
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’]
- );
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’}
- );