关于 abap 函数 CALL FUNCTION RFC_READ_TABLE DESTINATION 读取其他系统数据失败问题

关于 abap 函数 CALL FUNCTION RFC_READ_TABLE DESTINATION 读取其他系统数据失败问题
在 sm59 测试连接系统是成功的

但是使用 RFC_READ_TABLE 却查不到,返回 sy-subrc = 7,p_dest 为 目标系统

代码如下:

  CALL FUNCTION 'RFC_READ_TABLE' DESTINATION p_dest
    EXPORTING
      query_table          = p_tname
    IMPORTING
      lines_per_record     = lv_lines
    TABLES
      options              = lt_options
      fields               = lt_fields
      data                 = lt_data
    EXCEPTIONS
      table_not_available  = 1
      table_without_data   = 2
      option_not_valid     = 3
      field_not_valid      = 4
      not_authorized       = 5
      data_buffer_exceeded = 6
      OTHERS               = 7.
  IF sy-subrc EQ 7.

  ENDIF.

请问怎么解决吗?

RFC_READ_TABLE 函数返回 sy-subrc = 7 时,表示读取表格数据出错,一般是由于以下原因:

目标系统中没有指定的表格或表格不可用。
选项或字段中指定了无效值。
数据缓冲区不够大。
针对这个问题,你可以按照以下步骤进行排查:

确认目标系统中是否有指定的表格,表格是否可用。你可以使用 SE16 或 SE11 等工具进行确认。

确认选项和字段中是否指定了有效值。可以使用 ST05 或 ST12 等工具进行 SQL 语句的跟踪,查看是否有错误的 SQL 语句。

如果数据缓冲区不够大,可以尝试调整 lt_data 的大小,或者使用 BAPI 方法来读取数据。答案参考来自 https://www.wodianping.com/