利用fnd_flex_keyval包轻松获取关键性弹性域组合描述字段

摘自:http://blog.sina.com.cn/s/blog_bd3f4a600102wr9r.html


-- 已存在的组合,返回CCID,不存在的组合,自动创建并返回CCID

 

l_ccid := fnd_flex_ext.get_ccid(application_short_name => l_application_short_name,

                                      key_flex_code => l_key_flex_code,

                                      structure_number => l_chart_of_accounts_id,

                                      --validation_date => fnd_date.date_to_chardate(sysdate),

                                      validation_date => to_char(sysdate,'YYYY-MM-DD'),

                                      concatenated_segments => seg_sum);

利用fnd_flex_keyval包轻松获取关键性弹性域组合描述字段

在Oracle Forms客户化开发中,如果遇到有在Form上提供关键性弹性域(以下简称“键弹性域”)功能支持的时候,我们可以利用FND_KEY_FLEX.DEFINE函数来轻松完成所有的初始化工作。其中也包括键弹性域的组合描述字段的显示的初始化:只要在FND_KEY_FLEX.DEFINE调用时指定了DESCRIPTION参数即可。然而有时我们仅是想要显示这个描述组合字段,仅此而已。并不需要提供完整的键弹性域功能。那么我们有什么快速而有效的方法来得到这个描述组合字段呢?试试下面的fnd_flex_keyval包里的方法吧~

 

实例:获取库存物料的物料类别集中的类别组合“描述”字段

 

需要用到的方法:

  • fnd_flex_keyval.validate_segs()
  • fnd_flex_keyval.concatenated_descriptions()

fnd_flex_keyval.validate_segs 的参数很多,对于获取物料类别组合字段我们仅需要其中的五个参数,如下:

复制代码

fnd_flex_keyval.validate_segs( 
          operation       
 => <</span>OPERATIONS> 
        , appl_short_name 
 => <</span>Application Short Name> 
       , key_flex_code   
 => <</span>Key Flex Code> 
      , structure_number
 => <</span>ID_FLEX_NUM> 
       , concat_segments 
 => <</span>CONCATENATED_SEGMENTS> 
); 

复制代码

参数说明:

- operation 可选值有:

  • FIND_COMBINATION - 所给定的组合字段必须在系统中已经被定义
  • CREATE_COMBINATION - 如果组合字段不存在,则在系统中创建该组合
  • CREATE_COMB_NO_AT - 功能和CREATE_COMBINATION相同,只是不像前者要使用相对独立的子事务autonomous transaction
  • CHECK_COMBINATION - 只是检查一下给定的组合字段是否合法,不管检查结果如何,都不创建新的组合
  • DEFAULT_COMBINATION - 返回默认的最小组合(这个参数值我也没太搞懂,呵呵)
  • CHECK_SEGMENTS - 分别验证字段(这个也很糊涂~)

- appl_short_name 应用程序简称,例如库存模块对应的应用简称为INV

- key_flex_code 键弹性域代码,可以在键弹性域定义界面找到,例如MCAT, GL#等等

- structure_number  指定键弹性域下的某个结构NUM,可以在键弹性域定义界面找到,对应字段为ID_FLEX_NUM

- concat_segments  要获取组合描述字段的对应的“值“组合字段,例如: A.000.MISC

一旦初始化验证字段成功,那么描述组合字段便可以通过调用fnd_flex_keyval.concatenated_descriptions()来得到了。

完整代码如下:

 

复制代码

FUNCTION get_concat_descriptions (p_concat_segs IN VARCHAR2)
  
 RETURN VARCHAR2
IS
BEGIN
   IF fnd_flex_keyval.validate_segs (operation             => 'FIND_COMBINATION',
                                     appl_short_name      
 => 'INV',
                                     key_flex_code        
 => 'MCAT',
                                     structure_number     
 => 101,
                                     concat_segments      
 =>p_concat_segs
                                    )
  
 THEN
      RETURN (fnd_flex_keyval.concatenated_descriptions ());
  
 ELSE
      RETURN '';
  
 END IF;
END;


参考文档
http://www.cnblogs.com/toowang/archive/2013/02/19/2917705.html
http://blog.csdn.net/rfb0204421/article/details/7926243
http://www.cnblogs.com/pompeii2008/p/5329631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值