彈性域
1.彈性域的分成:關鍵性彈性域,說明性彈性域。
關鍵性彈性域:在使用key彈性域的基表中,只保存ID,但是可以通過ID查詢到相應的segment1.在table結構中表現爲**_ID,Segment1等。
說明性彈性域:針對特定用戶 擴展輸入特定信息的字段。在table的structure中表現爲attribute_category,attribute1,attribute2字段等。
註冊關鍵性彈性域 à略。
註冊說明性彈性域:
(1).創建table
注:使用說明性彈性域的數據table必須含有attribute_category及若干attribute字段。 Attribute_category字段:指彈性域的context字段。Attribute字段:指實際使用的字段。
Create table ( ….....,
Attribute_category varchar2(20),
Attribute1 varchar2(40),
……… )
(2).註冊彈性域:
Begin
Ad_dd.register_table(‘BND’,’CHALLENGE_FLEX’,’T’,10,10,40);
End;
Remark:BNDà application short name, CHALLENGE_FLEX àTable Name
Column type |
Column name |
序號 |
Begin
Columns length |
Ad_dd.register_column(‘BND’,’CHALLENGE_FLEX’,’Attribute1’,2,‘Varchar2’,40,’N’,’N’ );
End;
(4).查看是否註冊成功
select ft.table_id
from fnd_tables ft
where ft.table_name = 'Challenge_flex';
select *
from fnd_columns fc
where fc.table_id in
(select ft.table_id
from fnd_tables ft
where ft.table_name = 'CHALLENGE_FLEX')
(5).註冊彈性域列
PATH:Application Developer àFlexfieldàdescriptiveàregister
(6).註冊彈性域字段
Path: Application DeveloperàFlexfieldàDescriptiveàsegments
(7).啓用說明性彈性域
7.1先按將相應的form開發好,然後在form級的以下trrigger中加入
PRE-QUERY: FND_FLEX.EVENT(‘PRE-QUERY’);
POST-QUERY: FND_FLEX.EVENT(‘PRE-QUERY’);
PRE-INSERT: FND_FLEX.EVENT(‘PRE-INSERT’);
PRE-UPDATE: FND_FLEX.EVENT(‘PRE-UPDATE’);
WHEN-VALIDATE-ITEM FND_FLEX.EVENT(‘WHEN-VALIDATE-ITEM’);
WHEN-VALIDATE-RECORD FND_FLEX.EVENT(‘WHEN-VALIDATE-RECORD’);
7.2在pre-form的trigger中加入如下:
Begin
Fnd_descr_flex.define(block à’CHALLENGE_FLEX’,
Field à’block_item’,---value: Desc_Flex
Appl_short_name à ‘BND’,
Desc-flex_name à ‘TEST_FLEX’);
End;
說明一下相應的參數:
Block:啓用彈性域的數據塊名。
Field:指後面新增的item.
Appl_short_name:指相應的模塊的簡稱(System AdminàApplicationàRegister)
Desc_flex_name:指註冊彈性域時的名稱
(8).在要啓用彈性域的數據塊中增加一個item作爲flex_item.名稱爲desc_flex
8.1 flex_item desc_flex屬性設置如下:
Subclass information : text_item_desc_flex
Database item : NO
Canvas: 對應的canvas name
8.2 在desc_flex項的以下trigger中加入如下代碼。
When-validate-item : fnd_flex.event(‘when-validate-item’);
When-new-item-instance: fnd_flex.event(‘when-new-item-instance’);