Abap 选择选项作为FM参数

Abap 选择选项作为FM参数,abap,Abap,如何将选择选项作为功能模块参数传递 我有一个带有一些参数的程序,需要将select options参数传递给Z_FM,以便在select语句中使用。在功能模块定义的“表格”部分,定义类似表格的RFG_范围 你的FM看起来像 TABLES range_table STRUCTURE EFG_RANGES 然后,您可以将其用作原始的“选择选项”参数 WHERE field IN range_table 这在用作RFC的FM中起作用 希望这有帮助是的,它会转储长度错误 解决方法是

如何将选择选项作为功能模块参数传递


我有一个带有一些参数的程序,需要将select options参数传递给Z_FM,以便在select语句中使用。

在功能模块定义的“表格”部分,定义类似表格的RFG_范围

你的FM看起来像

  TABLES
      range_table STRUCTURE  EFG_RANGES
然后,您可以将其用作原始的“选择选项”参数

WHERE field IN range_table
这在用作RFC的FM中起作用
希望这有帮助

是的,它会转储长度错误

解决方法是使用辅助表

DATA t_aux TYPE STANDARD TABLE OF efg_ranges.

t_aux[] = param_range[];

CALL FUNCTION 'Z_MYFM'
  TABLES
    range_param = t-aux.
这应该行得通

问题是选择选项根据用于定义选择选项的表格字段设置“低”和“高”的长度


rfg_范围的固定长度为45。

只是为了共享完整的解决方案

参数:

SELECT-OPTIONS: p_docs FOR bkpf-belnr.
打电话给FM

DATA taux TYPE STANDARD TABLE OF efg_ranges.

taux[] = p_docs[].

CALL FUNCTION 'ZCRIP_GET_PG'
  EXPORTING
    soc           = p_bukrs
    fecha_ini     = fini
    fecha_fin     = ffin
  TABLES
    documentos    = taux.

如果FM将作为RFC工作,则相同?功能模块在大多数情况下已过时。如果可能的话,你应该避免使用它们。使用类可能更有意义。我得到一个错误:CALL\u FUNCTION\u CONFLICT\u LENG。“P_DOCS”是正确的类型,其长度不正确。