动态获取BRF +函数参数?

2020-09-14 14:01发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我们创建了许多BRF +公式表达式。 在自定义程序中,用户可以选择其中之一来计算价格。 要求是当选择BRF +公式时,自定义程序应在公式中显示操作数,它们是BRF +函数的参数。 这样用户就会知道应该输入的内容。

我知道这是abap函数还是abap方法,使用RTTS可以动态获取其参数。 但是如何通过ID获取BRF +函数参数呢?

2条回答
灬番茄
2020-09-14 14:03

我找到了解决方法。

CL_FDT_CONTEXT类具有私有属性MT_NAME_VALUE。 我在此属性中找到了参数。

创建一个类增强功能以​​为此类添加新方法,

方法GET_MT_NAME_VALUES
     出口
       值(ET_NAME_VALUE)键入HASHED TABLE。

为MT_NAME_VALUE分配导出参数,

 METHOD get_mt_name_values。

   et_name_value = me-> mt_name_value。

 ENDMETHOD。

然后在程序中调用GET_MT_NAME_VALUES,

类型:
   开始于s_name_id_value,
     id TYPE if_fdt_types => id,
     名称TYPE abap_parmname
     data_object_type TYPE if_fdt_types => data_object_type,
     值TYPE REF TO数据,
     value_set TYPE abap_bool,
   s_name_id_value的结尾。
 类型:
   t_name_id_value s_name_id_value类型的哈希表
                   具有唯一键名称。

 数据:t_name TYPE t_name_id_value。

 数据(lo_fuction)= cl_fdt_factory => if_fdt_factory〜get_instance(
   )-> get_function('005056A4CCA61ED8A8924F0F3F4F1D98')。
 *

 DATA(lo_context)= CAST cl_fdt_context(lo_fuction-> get_process_context())。

 lo_context-> get_mt_name_values(IMPORTING et_name_value = t_name)。
 

仅此而已。

一周热门 更多>