EBS Form開發 彈性域定義中的參數

EBS Form開發 彈性域定義中的參數<->

(版權聲明,本人原創或者翻譯的文章如需轉載,如轉載用於個人學習,請註明出處;否則請與本人聯繫,違者必究)

來源:Oracle Applications Developers Guide

下面的參數適用於所有類型的彈性域,除非有特殊標記。對於你想指定多於異常的參數,可以用\\0來隔離多個參數的值(像下面說明的).

指定彈性域位置的參數

BLOCK

包含你的彈性域的block的名稱。你的值字段,ID字段(如果有),和描述字段(如果有)都必須在同一個block。

FIELD       

你想放置彈性域的字段的值。這是一個顯示用的,非DB的form字段,它包含連接的分段值,包含分隔符。

DESCRIPTION

彈性域的描述字段。這是一個顯示用的,非DB的,不可輸入的字段,它包含了你的分段值的連接的描述。如果你不指定DESCRIPTION參數,你的form不顯示連接分段的描述。

ID          

僅用於關鍵性彈性域。指定這個字段,如果有,它包含了你的關鍵性彈性域的唯一ID(CCID)。

DATA_FILED

連接的隱藏IDs字段,是一個隱藏的form字段,它包含了連接分段的隱藏IDs.

指定使用哪一個彈性域的參數

APPL_SHORT_NAME

彈性域註冊時應用的縮寫名

CODE            

僅用於關鍵性或者範圍彈性域。縮寫編碼標示了彈性域。這就是在關鍵性彈性域form指定的彈性域編碼,比如GL#是Oracle Applications中的Accounting彈性域的編碼。

NUM            

僅用於關鍵性或者範圍彈性域。結構編碼(或者:block.field引用包含了結構編碼)標示了關鍵性彈性域的結構。

你可以指定不顯示的數據庫字段  :block.field,其中保存了彈性域結構編碼的標識符。你也可以用:$PROFILES$.your_profile_option_name來從一個用戶的profile選項中獲取值。也可以”硬編碼”一個結構的編碼,比如101到這個參數,而不是提供一個字段引用,但是這樣的數字會使你不能爲你的彈性域使用多個結構。如果你使用了多個結構,你就必須使用這個選項。

你可以使用下面的SQL語句來獲取你的彈性域結構的標識符號:

                 SELECT ID_FLEX_NUM,  ID_FLEX_STRUCTURE_NAME

FROM FND_ID_FLEX_STRUCTURES

WHERE ID_FLEX_CODE = ’flexfield code’;

這裏,彈性域編碼就是當你註冊彈性域的時候指定的編碼。

NUM的默認值是101.

DESC_FLEX_NAME

僅用於描述性彈性域。註冊時使用的名稱,它標示了描述性彈性域。

其它可選的參數

如果你不指定一個特定的可選的參數,彈性域方法爲這個參數使用通常的默認值。

VALIDATE      

僅用於關鍵性彈性域或者範圍彈性域。對於關鍵性彈性域,對於組合form通常使用FOR_INSERT,對於外鍵form,通常使用FULL。對於範圍彈性域,通常使用NONE來允許用戶來輸入任意值到一個分段,或者PARTIAL來保證用戶爲單個分段值輸入有效值,但是其不能組成一個實際有效的組合。

對於外鍵form使用驗證類型FULL來驗證所有分段值並當必要的時候生成一個新的編碼組合,並動態插入到組合表中。如果你指定爲FULL,彈性域根據編碼組合表中已存的編碼組合檢查你的用戶輸入的值。如果組合存在,你的彈性域會獲取編碼組合ID。如果組合不存在,彈性域會創建編碼組合ID並把組合插入到組合表中。如果你(或者安裝人員)定義了”Dynamic Inserts  Allowed”爲”No”的彈性域結構,然後當用戶輸入了一個不存在的組合時,彈性域會拋出一個錯誤消息。在這種情況下,彈性域不會創建新的編碼組合。對於使用外鍵引用的FORM,FULL是通常的值。

PARTIAL用於你想驗證單個分段值,但是不創建新的有效的組合或者在組合表中檢查已存在組合的form.當你有應用邏輯需要彈性域分段值但是不需要實際編碼組合時,可使用PARTIAL。比如,Oracle  Applications Short Alias form需要用戶爲每個分段輸入一個有效的值,但是不需要(或者檢查)已存在於組合表的實際編碼組合。Shorthand Aliases form也不創建組合。PARTIAL_IF_POSSIBLE是PARTIAL的特殊情況。如果你的彈性域(有獨立分段)有依賴分段,如果用戶沒爲關聯的獨立分段輸入值,那麼PARTIAL不爲依賴分段提供值列表。PARTIAL_IF_POSSIBLE,然而,還是會嘗試在依賴分段提供值列表。值列表包含了關聯獨立分段所有值的所有依賴值。(因此,你可以看到多個000值,如果000是默認的依賴值的話)。

如果不希望做任何驗證的話就使用NONE.

對於關鍵性彈性域,其默認值是FULL.範圍彈性域的默認值是NONE.

VDATE

是用於驗證啓用了Start Date和End Date的驗證日期。你使用Segment Values form定義每個分段的輸入的Start  Date和End Date.

比如,如果你想檢查傳入的日期的值(比如,會計期間的關閉日期),你可以使用字段引用(VDATE=>‘:block.field’)來指定其日期爲VDATE,並比較分段值和這個日期。

默認值是當前日期(SYSDATE).

DINSERT      

僅用於關鍵性彈性域。使用DINSERT來開啓或者關閉form上的動態插入功能。

默認值是Y(form可以使用動態插入)

DISPLAYABLE   

僅用於關鍵性彈性域或者範圍彈性域。DISPLAYABLE參數允許你顯示代表指定彈性域qualifiers的分段或者指定的分段編號,這裏分段編號是分段在彈性域窗口中分段出現的順序,不是關鍵性彈性域分段form上指定的分段編號。比如,如果你指定你僅想顯示分段編碼1,那麼彈性域就會只顯示通常出現在彈出式窗口第一個分段(指定結構的NUM).

DISPLAYABLE的默認值是ALL,也意味着彈性域會顯示所有分段。作爲選擇,你可以指定彈性域的qualifier的名字或者分段的編號。

你可以通過指定DISPLABLE多於一個值來使用DISPLABLE作爲切換開關,使用\\0隔離符.比如,如果你想彈性域顯示所有的分段,但除了第一個分段,你可以指定爲:

DISPLAYABLE=>‘ALL\\01’

注意\\0隔離了ALL和1.

如果你不顯示所有分段,但是你使用默認值來填充非顯示分段,,你也必須在form上隱藏SEGMENT1到SEGMENTn字段。你需要這些隱藏字段,因爲彈性域要爲所有顯示字段寫值到連接值字段,但是不寫值到不顯示的默認字段。因爲彈性域通常使用連接值字段的值來更新和插入數據到數據庫,非顯示字段的默認值不會提交到數據庫。然而,如果你有額外的隱藏字段(類似於組合form),彈性域會把彈性域值也會寫值到字段,就像連接分段值字段。不顯示的值僅寫到隱藏字段,但是也會被用於更新或插入數據庫。

UPDATEABLE

INSERTABLE        

僅用於關鍵性彈性域或者範圍彈性域。UPDATEABLE/INSERTABLE參數決定戶是否可以更新或者插入代表指定的唯一彈性域qualifiers或者分段號的分段,這裏分段號是分段在彈性域窗口中出現的順序,而不是關鍵性彈性域分段form上指定的分段編號.

默認值是ALL,意味着用戶可以更新/插入所有分段。可以選擇的,你可以指定彈性域qualifier名或者分段號。你可以輸入UPDATEABLE=>’’或者INSERTABLE=>’’(兩個單引號)來禁止用戶爲所有分段更新或者插入值。

你可以使用這些參數通過指定多於一個值作爲切換開關,使用\\0標示符隔離多個值。比如,如果你想用戶可以更新所有字段但除了第一個分段,你可以這麼指定:

UPDATEABLE=>’ALL\\01’

注意\\0隔離了1和ALL.

如果你使用INSERTABLE=>’’來禁止用戶爲所有分段插入值,那麼Shorthand Flexfield Entry在這個form上將會被禁用.

TITLE          

指定你想出現在彈出窗口上方的標題.關鍵性彈性域的默認值是你使用關鍵性彈性域分段form設置彈性域時結構的名稱.對於描述性彈性域,默認值是你使用描述性彈性域分段form設立彈性域時你所指定的標題。

REQUIRED      

僅用於關鍵性彈性域或者範圍彈性域。表明用戶在彈性域窗口是否不輸入分段值就可以退出彈性域窗口。

默認值是Y。

如果你指定值爲Y,那麼彈性域將禁止用戶從必填分段(一個值集的必填屬性設置爲Yes的分段)中離開,如果沒有爲那個分段輸入一個有效的值的話。還有,如果用戶保存一行數據但是還爲進入彈性域彈出窗口,彈性域會嘗試爲任意必填分段填充默認值,如果有必填字段不能填充默認值,會拋出一個錯誤消息。

如果你指定REQUIRED屬性爲Y,VALIDATE屬性爲FULL,那麼當用戶查詢出一個不關聯彈性域(外鍵彈性域ID列爲NULL值)的行時,彈性域會拋出一個錯誤消息警告用戶必填彈性域返回了一個NULL ID。

如果你指定值爲N,那麼彈性域允許用戶保存一行記錄,即使沒進入過彈性域彈出窗口。如果指定值爲N,用戶可以在彈性域窗口中導航(不停頓),即使不輸入或者更改任何值。但是,如果用戶輸入了或者更改了彈性域中任一分段的值,用戶不能離開彈性域窗口,直到彈性域窗口所有必填字段設置了有效值。如果你指定N並且用戶沒有打開或者沒有在彈性域窗口輸入值,用戶可以保存行記錄,不論是否彈性域包含必填字段。在這種情況下,彈性域不會爲必填字段保存默認值爲分段值,並且不會拋出錯誤消息。

如果你指定值爲N並VALIDATEABLE屬性爲FULL,那麼當用戶查詢出一個不關聯彈性域(外鍵彈性域ID列爲NULL值)的行時,彈性域會驗證查詢返回的單個分段的值。如果你想查詢非必填彈性域並不彈出錯誤消息時,就指定其值爲N。

注意即使必填屬性設置爲N,用戶開始爲這個彈性域輸入分段值,那麼就必須爲彈性域輸入完整的值或者放棄爲這個彈性域輸入值。

AUTOPICK       

決定當用戶輸入單個分段值時,是否顯示值列表窗口。默認值是Y。

COPY           

僅用於關鍵性彈性域.在彈性域窗口彈出之前,從block.field拷貝非NULL值到由指定的彈性域qulifier或者分段號指定的分段。類似地,如果你指定值爲ALL,那麼COPY屬性將拷貝一系列非空值,一系列分段值的連接(以及分段的隔離符)從block.field到所有的分段。比如,如果你有一個三段的彈性域,block.field值爲001.ABC.05,COPY會把001放到第一個分段,ABC到第二個分段,並且05到第三個分段。

你要拷貝的分段的值必須是對於那個分段有效的值。拷貝的值會覆蓋掉使用關鍵性彈性域分段form爲分段設置的默認值。儘管如此,速記彈性域分錄的值會覆蓋COPY屬性的值。並且COPY屬性不會拷貝NULL值來覆蓋已存在(默認)值。但是,如果你拷貝的值對於那個分段來說不是一個有效的值,它就會像使用NULL值覆蓋了默認值:無效值覆蓋了默認值,但是你的彈性域會擦掉拷貝的值,因爲它是無效的。所以你應該確保你要拷貝的字段包含有效的值。

當彈性域窗口關閉時,彈性域會自動拷貝由指定的彈性域qualifier或者分段編號所代表的分段的值到block.field。同樣,如果你指定值爲ALL,你的彈性域會自動拷貝彈性域所有分段的連接值到block.field.

你可以指定一個或者多個COPY參數值,並由\\0 隔離。稍後拷貝值會覆蓋前面的拷貝值。比如,假設你有一個字段,它記錄了連接的彈性域的值,叫做Concatenated_field,並且它的值爲01-ABC-680.你還有一個字段,Value_field,它保存了一個字符串的值,並且你想拷貝它到你的第二個分段,它的值爲XYZ.你可以指定:

COPY=>’block.Concatenated_field\\nALL\\0block.Vale_field\\n2’

注意\\0 分隔了不同的參數值。

當用戶打開彈性域窗口時,Oracle  Application Object Library會按順序執行兩次拷貝,用戶會在窗口中看到下面的值:

01

XYZ

680

彈性域窗口關閉之後,彈性域會分別拷貝值01-XYZ-680和XYZ回到上面兩個字段。注意在這種情況下,XYZ會覆蓋掉ABC值。

DERIVED        

僅用於關鍵性彈性域.使用DERIVED參數爲用戶輸入的組合從分段  qualifier提取值.使用block.field來指定希望彈性域要加載提取值到的block和字段.使用分段qualifier來指定你想使用的分段qualifier的名稱。注意:不要再\\n 周圍放在空格,並且\\n必須是小寫的.

彈性域使用下面的規則來從單個分段的qualifier值中獲取提取的qualifier值。如果分段qualifer是唯一的,提取值是分段qualifer的值;對於不是唯一的分段qualifiers,如果任何分段的qualifier的值=N,那麼提取值爲N,否則提取值爲Y。這個規則的唯一的例外是內置的SUMMARY_FLAG分段Qualifier;這個的規則是如果任意分段的值起源,那麼SUMMARY_FLAG的提取值是Y。彈性域會加載提取值到你定義qualifer時所指定組合表的qualifier列。

你可以指定一個或多組有\\0隔開的DERIVED參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章