ORACLE EBS财务科目FLEX FIELD的添加
在客制form時(shí)常常會(huì)遇到彈性欄位,如下圖所示,其實(shí)就是調(diào)用標(biāo)準(zhǔn)API來(lái)實(shí)現(xiàn)的。
1、添加相關(guān)item:下列名稱都可以自己定義
account_segment_values:會(huì)計(jì)科目節(jié)段,也就是上圖中顯示的費(fèi)用科目,非database?
Property | Value |
Name | account_segment_values |
Item?Type | Text?Item |
Subclass?Information | Text?Item |
List?Of?Values | ENABLE_LIST_LAMP |
Validate?form?list | No |
Database?item | No |
account_id:科目ID,這個(gè)一般寫入Database
Property | Value |
Name | ACCOUNT_ID |
Item?Type | Text?Item |
Subclass?Information | Text?Item |
Database?item | Yes |
account_desc:科目描述
Property | Value |
Name | ACCOUNT_DESC |
Item?Type | Text?Item |
Subclass?Information | Text?Item |
2、使用到的函數(shù)
FND_KEY_FLEX.Define()?定義彈性域
FND_FLEX_EXT.GET_SEGS()?獲取科目節(jié)段組合
fnd_flex_ext.get_ccid()?獲取ID
FND_FLEX_KEYVAL.validate_ccid驗(yàn)證ccid的有效性
FND_FLEX_KEYVAL.concatenated_descriptions?得到ccid的描述
FND_KEY_FLEX.Update_Definition()
這里使用到前兩個(gè)
在form的when-new-form-instance中定義彈性域:
FND_KEY_FLEX.Define
(
BLOCK=>?'SFC_MTL_SYSTEM_ITEM_CUSV',
FIELD=>?'EXPENSE_ACCOUNT_DSP',
ID=>?'EXPENSE_ACCOUNT',
APPL_SHORT_NAME=>?'SQLGL',
CODE=>?'GL#',
NUM=>?:PARAMETER.CHART_OF_ACCOUNTS_ID,--STRUCTURE?Number(CHART_OF_ACCOUNTS_ID')
REQUIRED=>'N',
VALIDATE=>'FULL',
USEDBFLDS=>'N',
VRULE=>'\\nSUMMARY_FLAG\\nI\\nAPPL=SQLGL;NAME=FLEX-Parent?not?allowed\\nN\\0GL_GLOBAL\\nDETAIL_POSTING_ALLOWED\\nE\\nAPPL=SQLGL;NAME=INV_VRULE_POSTING\\nN'
);
如有必要,一般在form和block的pre-query,post-query,pre-insert,pre-upadte,when-validate-record,when-new-item-instance這些trigger中添加如下標(biāo)準(zhǔn)函數(shù):
FND_FLEX.EVENT('PRE-UPDATE');
FND_FLEX.EVENT('PRE-INSERT');
FND_FLEX.EVENT('POST-QUERY');
FND_FLEX.EVENT('PRE-QUERY');
FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');
FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');
3、如果要在開(kāi)啟form時(shí)帶出會(huì)計(jì)科目組合,則需用到FND_FLEX_EXT.GET_SEGS()函數(shù).
可在pre-form或when-new-form-instance中添加:
l_concat_segs?:=
fnd_flex_ext.get_segs(
application_short_name?=>?'SQLGL',
key_flex_code?=>?'GL#',
structure_number?=>:PARAMETER.CHART_OF_ACCOUNTS_ID,
combination_id?=>?:PARAMETER.ORG_EXPENSE_ACCOUNT);
if?l_concat_segs?is?null?then
FND_MESSAGE.RETRIEVE;
FND_MESSAGE.ERROR;
RAISE?FORM_TRIGGER_FAILURE;
else
--:SFC_MTL_SYSTEM_ITEM_CUSV.expense_account_dsp?:=?l_concat_segs;
:PARAMETER.EXPENSE_ACCOUNT_DSP?:=l_concat_segs;
這里注意,如果直接賦值給item,form默認(rèn)進(jìn)入insert模式,不允許使用F11查詢,因此可以使用參數(shù)賦值,將item的Initial?Value設(shè)置為該參數(shù):PARAMETER.EXPENSE_ACCOUNT_DSP.
另外在POST-QUERY中,也要添加該函數(shù),不然按CTRL+F11查詢后該欄位會(huì)為空白.
?
轉(zhuǎn)載于:https://blog.51cto.com/thomaszhou/1227097
總結(jié)
以上是生活随笔為你收集整理的ORACLE EBS财务科目FLEX FIELD的添加的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 平均负载及CPU上下文切换
- 下一篇: 3.5链表----链表中元素的删除(只删