llcong 发表于 2017-5-24 08:31:11

EBS 开发中如何动态启用和禁止请求(Current Request)的参数

  EBS 开发中如何动态启用和禁止请求(Current Request)的参数
  (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
  我们可以使用依赖值集来启用和禁用参数。比如,有一个值集’A’,有一个对应的参数;还有另一个值集’B’,对应于另一个参数.我们可以加入一个条件,除非在值集’A’输入一个值,’B’才可以启用,也就是说值集B依赖于值集A。需要在值集B的条件中使用:and :$FLEX$.A = ‘<some value>’,实现的原理就是值集B不会被初始化,除非值集A返回一个符合条件的值。
  实现步骤
  1.先定义一个用于提供驱动值的参数,它使用值集A。
  2.定义一个隐藏的参数,它引用一个只返回Y或者null的值集.在符合的条件下,隐藏的参数的默认值会被设置Y,否则就会被设成NULL。
  3.为依赖值集A的值集B建立第三个参数,在值集B加一个条件让值集依赖于隐藏参数。当条件符合时,隐藏参数返回Y,那么第三个参数就可以被启用;
  值集创建
  1.第一个参数的值集是PO_SRS_REQUISITION_TYPE,系统已存在的。
  2.隐藏参数对应的值集



  3.第三个参数对应的值集



  4.创建相应的参数
  4.1对一个参数设置相应的值集为PO_SRS_REQUISITION_TYPE
  4.2对第二个参数设置值集为DummyValueSetTest,默认值类型为SQL Statement,默认值

select decode(:$FLEX$.PO_SRS_REQUISITION_TYPE,'PURCHASE','Y',NULL) from dual

并且不选择Display,这样就不在参数界面上看到这个参数。
  4.3对三个参数设置值集为XX_AvaialbleVendors.

  5.运行的效果如下
  初始界面

  选择Purchase的时候的效果

  切换到Internal时的效果

  参考文章:
http://apps2fusion.com/at/ar/241-enablingdisabling-concurrent-program-parameters
页: [1]
查看完整版本: EBS 开发中如何动态启用和禁止请求(Current Request)的参数