oracle ebs flex values api,ORACLE EBS财务科目FLEX FIELD的添加

在客制form时常常会遇到弹性栏位,如下图所示,其实就是调用标准API来实现的。

0818b9ca8b590ca3270a3433284dd417.png

1、添加相关item:下列名称都可以自己定义

account_segment_values:会计科目节段,也就是上图中显示的费用科目,非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,这个一般写入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、使用到的函数

FND_KEY_FLEX.Define()定义弹性域

FND_FLEX_EXT.GET_SEGS()获取科目节段组合

fnd_flex_ext.get_ccid()获取ID

FND_FLEX_KEYVAL.validate_ccid验证ccid的有效性

FND_FLEX_KEYVAL.concatenated_descriptions得到ccid的描述

FND_KEY_FLEX.Update_Definition()

这里使用到前两个

在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中添加如下标准函数:

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、如果要在开启form时带出会计科目组合,则需用到FND_FLEX_EXT.GET_SEGS()函数.

可在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默认进入insert模式,不允许使用F11查询,因此可以使用参数赋值,将item的Initial Value设置为该参数:PARAMETER.EXPENSE_ACCOUNT_DSP.

另外在POST-QUERY中,也要添加该函数,不然按CTRL+F11查询后该栏位会为空白.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值