EBS Form開發 彈性域定義中的引數《三》

2021-06-20 17:59:46 字數 3316 閱讀 2035

ebs form開發 彈性域定義中的引數《三》

data_set

僅用於關鍵性彈性域或者範圍彈性域.使用:block.field為彈性域指定包含值集識別符號。data_set指定了使用哪些編碼組合的集合可用於這個彈性域。對於每個彈性域結構,你可以在組合表中把編碼組合分成幾個集合(比如**,中價和低價的部分)。

僅當如果實現了結構定義列時(那就是說你必須指定num),可以使用data_set。預設的data_set是結構號碼(就像在num指定的)。如果你使用了data_set,你的應用必須維護乙個單獨的包含集合與關鍵性彈性域結構對應的表。比如,你的對應表可能維護如下的值:

結構集合

集合描述

low priced truck parts

medium priced truck parts

high priced truck parts

low priced car parts

high priced car parts

low priced motorcycle parts

high priced motorcycle parts

如果你使用data_set,那麼彈性域會在結構定義列儲存集合編號而不是結構編號。注意在對應表中不能有重複的集合編號,即使對於乙個給定的結構編號你可以有多於乙個的集合編號。你必須從不同的:block.fields(或者profile選項,或者」硬編碼」編號)上提取data_set和num,因為它們是不同的編號。

allownulls

決定是否在任意分段中允許null值。如果你為validate引數指定partial或者none, allownulls僅過載每個分段上的定義(必填值是yes)。

query_security

僅用於關鍵性彈性域。決定彈性域的應用到插入和更新的值安全規則是否也應用到查詢。如果你指定為y,使用者不能查詢已存的編碼組合如果其中包含限制的值。如果指定為n,使用者可以查詢和檢視包含限制值的編碼組合,但是不可以更新限制值。預設值是n。這個選項在使用者為彈性域值集來啟用和定義彈性域值安全規則時才有用。

qbe_in

僅用於關鍵性彈性域。控制彈性域在query-by-example模式下用於選擇需要的行的子查詢的型別。

預設值是n。

如果你指定為n,彈性域會生成乙個有相互關係的子查詢。這個查詢在由主查詢(由form的剩餘部分生成)每一行返回時會被有效處理,並且它使用編碼組合id作為唯一索引。如果你期望你的主查詢返回很少的行數或者你期望你的彈性域的query-by-example模式返回很多行時,選擇n。如果你指定為y,你的彈性域會生成乙個沒有相互關係且使用」in」的sql子句的子查詢。你的查詢只會被處理異常,但是組合表中匹配彈性域query-by-example條件的很多行會被返回。當你期望你的豬查詢返回很多行或者期望你的彈性域的query-by-example模式返回很少行(少於100)時,選擇y。這種情況經常經常是在組合表中有相應很少的行並且在應用表中有很多的行。比如,假設你有乙個零件彈性域,這裡你的公司僅處理有限數量的零件(比如,75),但是你有好幾千個零件的訂單(乙個相應的龐大的訂單表)。對於這種情況,選擇y可以極大的提高你的彈性域在queries-by-example模式的應用效能。

longlist

僅用於關鍵性彈性域。指定為y或者n來允許或者禁止彈性域使用長列表。長列表允許使用者在使用組合快速選擇來查詢彈性域組合時指定部分值。

no_combmsg

如果你使用了where_clause引數,會使用where_clause_msg引數而不是no_combmsg引數來指定適合的訊息來顯示給使用者當組合違反你的where子句時。

read_only

指定y來禁止更新彈性域分段的值,不論是通過速記別名,拷貝還是其它方法。

auto_combpick

僅用於關鍵性彈性域。決定當使用者輸入乙個不存在的組合時,對於不允許動態插入的彈性域直接輸入時組合值列表的行為。如果你指定為y,如果使用者在彈性域的乙個單獨分段上輸入了不正確的值,或者由非常量值(%)或者在多分段中有null分段時,組合值列會出現。如果你指定為n,組合值列表不會出現,並且會生成錯誤訊息」this combination does not exist…」。

預設值是y。

lock_flag

通常,當使用者在彈性域分段上輸入了乙個字元,這個動作會鎖定form的基礎表。儘管如此,在有些情況下,你可以想避免鎖上這個表;比如,你可能有幾個查詢都使用相同的基礎表,並且你不想其它使用者等待到表的鎖被解鎖。預設值是y。指定為n來關閉加鎖行為,或者指定為d時僅當彈性域的相關欄位是資料庫欄位時才鎖定表。

help

context_like

僅用於描述性彈性域。指定乙個where子句片段來限制哪些上下文編碼顯示在上下文本第的值列表視窗中。這個引數也禁止使用者輸入不符合where子句的上下文。上下文本段lov的where子句的結果就像下面這樣:

where ...

and descriptive_flex_context_code like

...預設值是』%』.如果這個引數是用於限制上下文的值,那麼必須在描述性彈性域定義中啟用override allowed(display context)。

彈性域不在post_query事件中使用這個限制。因此,與使用者可以查詢出對於where子句中context_like下無效的已存在資料。儘管如此,就像使用者查詢出目前-無效的彈性域資料的所有彈性域時,如果使用者按下ok(有或者沒有改變彈性域的值),彈性域被標記為已修改並且無效的值必須被更改。如果使用者按下了cancel按鈕,資料不會有執行並且不需要被更改(即使使用者修改了記錄中非彈性域部分)。

注意,像通常意義,對於乙個新記錄,描述性彈性域的任何引用欄位僅當在描述性彈性域開啟(或者在提交之前如果使用者沒有開啟彈性域時的提交之前的驗證)第一次的時候被評估。如果使用者開啟了彈性域,上下文本段會被填充引用欄位的值。如果使用者按下ok來退出彈性域視窗,那麼返回到引用字段並且修改它的值,上下文本段的值不會反應出引用欄位上的新值。進一步,已存在的上下文本段的值不會根據context_like引數在這個時候進行重新估算。要避免建立明顯不一致的行為時,你應該避免在form啟動時彈性域定義中初始化完這個context_like引數之後再修改這個引數(比如,不要讓它的值基於乙個使用者可以修改的字段的值)。

比如,這個引數可以用於在給定的國家中限制指定的國家上下文。

select_comb_from_view

僅用於關鍵性彈性域。彈性域使用編組表的名稱來建立select語句來進行驗證和生成值列表。如果關鍵性彈性域編碼組合表是基可翻譯實體的礎表(_b表),並且如果你想通過使用column標記從多語言表獲取額外的列(_tl表),那麼使用select_comb_from_view標記來指定多語言檢視的名稱(_vl檢視)。

如果在select_comb_from_view檢視中指定的值和關鍵性彈性域編碼組合表的名稱不一致的話,那麼將會自動禁用動態插入。

EBS Form開發 彈性域定義中的引數《三》

ebs form開發 彈性域定義中的引數 三 data set 僅用於關鍵性彈性域或者範圍彈性域.使用 block.field為彈性域指定包含值集識別符號。data set指定了使用哪些編碼組合的集合可用於這個彈性域。對於每個彈性域結構,你可以在組合表中把編碼組合分成幾個集合 比如 中價和低價的部分...

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

ebs form開發中彈性域的定義語法 關鍵性彈性域定義語法 在外鍵form或者組合form上,使用fnd key flex.define方法定義關鍵性彈性域。fnd key flex.define arguments thatspecify flexfield location block blo...

EBS Form開發中的內建函式DO KEY

ebs form開發中的內建函式do key 描述 執行對應於特定內建子程式的key 鍵 觸發器。如果沒有這樣的觸發器,那就執行其特定的子程式。這裡的行為就是模擬按下相應的功能鍵。語法 procedure do key built in subprogramvarchar2 受限制的內建型別的程式。...