EBS Form開發中彈性域的定義語法

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提供的關鍵性彈性域。

  1. FND_KEY_FLEX.DEFINE( 
  2.  
  3. /* Arguments thatspecify flexfield location */ 
  4.  
  5. BLOCK=>’block_name’, 
  6.  
  7. FIELD=>’concatenated_segments_field_name’, 
  8.  
  9. [DESCRIPTION=>’description_field_name’,] 
  10.  
  11. [ID=>’Unique_ID_field’,] 
  12.  
  13. [DATA_FIELD=>’concatenated_hidden_IDs_field’,] 
  14.  
  15. /* Arguments thatspecify the flexfield */ 
  16.  
  17. APPL_SHORT_NAME=>’application_short_name’, 
  18.  
  19. CODE=>’key_flexfield_code’, 
  20.  
  21. NUM=>’structure_number’, 
  22.  
  23. /* Other optionalparameters */ 
  24.  
  25. [VALIDATE=>’{FOR_INSERT|FULL|PARTIAL|NONE| 
  26.  
  27. PARTIAL_IF_POSSIBLE}’,] 
  28.  
  29. [VDATE=>’date’,] 
  30.  
  31. [DISPLAYABLE=>’{ALL| flexfield_qualifier | 
  32.  
  33. segment_number}[\\0{ALL
  34.  
  35. flexfield_qualifier | segment_number}]’,] 
  36.  
  37. [INSERTABLE=>’{ALL| flexfield_qualifier | 
  38.  
  39. segment_number}[\\0{ALL
  40.  
  41. flexfield_qualifier | segment_number}]’,] 
  42.  
  43. [UPDATEABLE=>’{ALL| flexfield_qualifier | 
  44.  
  45. segment_number}[\\0{ALL
  46.  
  47. flexfield_qualifier | segment_number}]’,] 
  48.  
  49. [VRULE=>’flexfield qualifier\\n 
  50.  
  51. segment qualifier\\n 
  52.  
  53. {I[nclude]|E[xclude]}\\n 
  54.  
  55. APPL=application_short_name; 
  56.  
  57. NAME=Message Dictionary message name\\n 
  58.  
  59. validation value1\\n 
  60.  
  61. validation value2... 
  62.  
  63. [\\0flexfield qualifier\\n 
  64.  
  65. segment qualifier\\n 
  66.  
  67. {I[nclude]|E[xclude]}\\n 
  68.  
  69. APPL=application_short_name; 
  70.  
  71. NAME=Message Dictionary message name\\n 
  72.  
  73. validation value1\\n 
  74.  
  75. validation value2...]’,] 
  76.  
  77. [COPY=>’block.field\\n{ALL | flexfield 
  78.  
  79. qualifier | segment_number} 
  80.  
  81. [\\0block.field\\n{ALL | flexfield 
  82.  
  83. qualifier | segment_number}]’,] 
  84.  
  85. [DERIVED=>’block.field\\nSegment qualifier’,] 
  86.  
  87. [DERIVE_ALWAYS=>’{Y|N}’,] 
  88.  
  89. [DINSERT=>’{Y|N}’,] 
  90.  
  91. [VALATT=>’block.field\\n 
  92.  
  93. flexfield qualifier\\n 
  94.  
  95. segment qualifier’,] 
  96.  
  97. [TITLE =>’Title’,] 
  98.  
  99. [REQUIRED=>’{Y|N}’,] 
  100.  
  101. [AUTOPICK=>’{Y|N}’,] 
  102.  
  103. [USEDBFLDS=>’{Y|N}’,] 
  104.  
  105. [ALLOWNULLS=>’{Y|N}’,] 
  106.  
  107. [DATA_SET=>’set number’,] 
  108.  
  109. [COLUMN=>’{column1(n) | column1 alias(n) 
  110.  
  111. [, column2(n), ...] [INTO block.field]}’,] 
  112.  
  113. [WHERE_CLAUSE=>’where clause’,] 
  114.  
  115. [COMBQP_WHERE=>’{where clause|NONE}’,] 
  116.  
  117. [WHERE_CLAUSE_MSG=>’APPL=application_short_ 
  118.  
  119. name;NAME=message_name’,] 
  120.  
  121. [QUERY_SECURITY=>’{Y|N|}’,] 
  122.  
  123. [QBE_IN=>’{Y|N}’,] 
  124.  
  125. [READ_ONLY=>’{Y|N}’,] 
  126.  
  127. [LONGLIST=>’{Y|N}’,] 
  128.  
  129. [NO_COMBMSG=>’APPL=application_short_ 
  130.  
  131. name;NAME=message_name’,] 
  132.  
  133. [AUTOCOMBPICK=>’{Y|N}’,] 
  134.  
  135. [LOCK_FLAG=>’{Y|N}’,] 
  136.  
  137. [HELP=>’APPL=application_short_name; 
  138.  
  139. TARGET=target_name’] 
  140.  
  141. ); 
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列保持同樣的順序,這樣可以避免參數值應用到錯誤的類型列。

  1. FND_RANGE_FLEX.DEFINE( 
  2.  
  3. /* Arguments thatspecify flexfield location */ 
  4.  
  5. BLOCK=>’block_name’, 
  6.  
  7. FIELD=>’concatenated_segments_field_name’, 
  8.  
  9. [DESCRIPTION=>’description_field_name’,] 
  10.  
  11. [DATA_FIELD=>’concatenated_hidden_IDs_field’,] 
  12.  
  13. /* Arguments thatspecify the flexfield */ 
  14.  
  15. APPL_SHORT_NAME=>’application_short_name’, 
  16.  
  17. CODE=>’key_flexfield_code’, 
  18.  
  19. NUM=>’structure_number’, 
  20.  
  21. /* Other optionalparameters */ 
  22.  
  23. [VALIDATE=>’{PARTIAL|NONE}’,] 
  24.  
  25. [VDATE=>’date’,] 
  26.  
  27. [DISPLAYABLE=>’{ALL| flexfield_qualifier | 
  28.  
  29. segment_number}[\\0{ALL
  30.  
  31. flexfield_qualifier | segment_number}]’,] 
  32.  
  33. [INSERTABLE=>’{ALL| flexfield_qualifier | 
  34.  
  35. segment_number}[\\0{ALL
  36.  
  37. flexfield_qualifier | segment_number}]’,] 
  38.  
  39. [UPDATEABLE=>’{ALL| flexfield_qualifier | 
  40.  
  41. segment_number}[\\0{ALL
  42.  
  43. flexfield_qualifier | segment_number}]’,] 
  44.  
  45. [VRULE=>’flexfield qualifier\\n 
  46.  
  47. segment qualifier\\n 
  48.  
  49. {I[nclude]|E[xclude]}\\n 
  50.  
  51. APPL=application_short_name; 
  52.  
  53. NAME=Message Dictionary message name\\n 
  54.  
  55. validation value1\\n 
  56.  
  57. validation value2... 
  58.  
  59. [\\0flexfield qualifier\\n 
  60.  
  61. segment qualifier\\n 
  62.  
  63. {I[nclude]|E[xclude]}\\n 
  64.  
  65. APPL=application_short_name; 
  66.  
  67. NAME=Message Dictionary message name\\n 
  68.  
  69. validation value1\\n 
  70.  
  71. validation value2...]’,] 
  72.  
  73. [TITLE =>’Title’,] 
  74.  
  75. [REQUIRED=>’{Y|N}’,] 
  76.  
  77. [AUTOPICK=>’{Y|N}’,] 
  78.  
  79. [USEDBFLDS=>’{Y|N}’,] 
  80.  
  81. [ALLOWNULLS=>’{Y|N}’,] 
  82.  
  83. [DATA_SET=>’set number’,] 
  84.  
  85. [READ_ONLY=>’{Y|N}’,] 
  86.  
  87. /* Parametersspecific to type flexfields */ 
  88.  
  89. [TYPE_FIELD=>’block.concatenated_type_values_ 
  90.  
  91. field\\ntype field suffix’,] 
  92.  
  93. [TYPE_VALIDATION=>’Value set name\\n 
  94.  
  95. Required\\nDefaultvalue’,] 
  96.  
  97. [TYPE_SIZES=>’type_value_display_ 
  98.  
  99. size\\nDescription_display_size’,] 
  100.  
  101. [TYPE_HEADING=>’type column heading’,] 
  102.  
  103. [TYPE_DATA_FIELD=>’block.type_data_field’,] 
  104.  
  105. [TYPE_DESCRIPTION=>’block.type_ 
  106.  
  107. description_field’,] 
  108.  
  109. [SCOLUMN=>’single column title’,] 
  110.  
  111. [HELP=>’APPL=application_short_name; 
  112.  
  113. TARGET=target_name’] 
  114.  
  115. ); 
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方法。

  1. FND_DESCR_FLEX.DEFINE( 
  2.  
  3. /* Arguments thatspecify the flexfield location */ 
  4.  
  5. BLOCK=>’block_name’, 
  6.  
  7. FIELD=>’field_name’, 
  8.  
  9. [DESCRIPTION=>’description_field_name’,] 
  10.  
  11. [DATA_FIELD=>’concatenated_hidden_IDs_field’,] 
  12.  
  13. /* Arguments thatspecify the flexfield */ 
  14.  
  15. APPL_SHORT_NAME=>’application_short_name’, 
  16.  
  17. DESC_FLEX_NAME=>’descriptive flexfield_name’ 
  18.  
  19. /* Other optionalparameters */ 
  20.  
  21. [VDATE=>’date’,] 
  22.  
  23. [TITLE =>’Title’,] 
  24.  
  25. [AUTOPICK=>’{Y|N}’,] 
  26.  
  27. [USEDBFLDS=>’{Y|N}’,] 
  28.  
  29. [READ_ONLY=>’{Y|N}’,] 
  30.  
  31. [LOCK_FLAG=>’{Y|N}’,] 
  32.  
  33. [HELP=>’APPL=application_short_name; 
  34.  
  35. TARGET=target_name’,] 
  36.  
  37. [CONTEXT_LIKE=>’WHERE_clause_fragment’} 
  38.  
  39. ); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章