RFC SUBMIT 调用SAP程序IDCNAP 应付账款账龄报告 报错 Exception condition “CNTL_SYSTEM_ERROR“ triggered

场景
外部系统通过接口调用IDCNAP 应付账款账龄报告(中国)报错 Exception condition “CNTL_SYSTEM_ERROR” triggered

SE37调用正常,外部系统调用报错,
在这里插入图片描述
在这里插入图片描述

导致问题原因,
通过类
cl_salv_bs_runtime_info=>set( display = ‘’
metadata = ‘’
data = ‘X’).
获取ALV执行结果内表数据,那么这个报表显示必须是常规的ALV标准函数才行,不然或者获取不到。
通过查看代码可知改事务码 IDCNAP 应付账款账龄报告不是通过常规的ALV显示
在这里插入图片描述

处理方法
复制一个标准程序到自开发程序,调整为标准的ALV函数显示即可
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

再次调用即可正常显示

在这里插入图片描述

源码如下
FUNCTION zfm_query_bzj.
*“----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*” VALUE(IV_BUKRS) TYPE BUKRS OPTIONAL
*" VALUE(IV_LIFNR) TYPE LIFNR OPTIONAL
*" VALUE(IV_HKONT) TYPE HKONT DEFAULT ‘2241020000’
*" VALUE(IV_DATE) TYPE DATE OPTIONAL
*" EXPORTING
*" VALUE(EV_STATUS) TYPE CHAR1
*" VALUE(EV_MESSAGE) TYPE CHAR100
*" VALUE(EV_AZBET) TYPE AZBET_F05A
*"----------------------------------------------------------------------
*(修改日志)--------------------------------------------------------
*

  • 日志号 修改人 修改时间 修改说明 传输号码

  • 001

TABLES bseg.

RANGES:sr_lifnr FOR bseg-lifnr,
sr_bukrs FOR bseg-bukrs,
sr_rclacc FOR bseg-hkont.
IF iv_bukrs IS INITIAL OR
iv_lifnr IS INITIAL
.

ev_status = 'E'.
ev_message = '公司代码,供应商编码必输'.

ELSE.

sr_lifnr-sign = 'I'.  sr_lifnr-option = 'EQ'.  sr_lifnr-low = iv_lifnr. APPEND sr_lifnr.
sr_bukrs-sign = 'I'.  sr_bukrs-option = 'EQ'.  sr_bukrs-low = iv_bukrs. APPEND sr_bukrs.
sr_rclacc-sign = 'I'. sr_rclacc-option = 'EQ'. sr_rclacc-low = iv_hkont.APPEND sr_rclacc.

"调用事务码:IDCNAP,程序名:RFIDCN_AP_AGING
DATA:ls_data TYPE REF TO data."通用表类型
FIELD-SYMBOLS : <lt_data> TYPE table, "通用表类型
                <dyn_wa>  TYPE any,
                <fs>      TYPE any.

cl_salv_bs_runtime_info=>set( display = ''
                              metadata = ''
                              data = 'X').

SUBMIT zrfidcn_ap_aging
  WITH kd_lifnr IN sr_lifnr
  WITH kd_bukrs IN sr_bukrs
  WITH s_kdate  = iv_date
  WITH s_rclacc IN sr_rclacc
  AND RETURN
  .

TRY .
    cl_salv_bs_runtime_info=>get_data_ref(
    IMPORTING
      r_data = ls_data ).
    ASSIGN ls_data->* TO <lt_data> .

    ev_status = 'S'.
    ev_message = '查询成功'.

    LOOP AT <lt_data> ASSIGNING <dyn_wa>.

      ASSIGN COMPONENT 'SEGMENT' OF STRUCTURE <dyn_wa> TO <fs>.
      ev_azbet = ev_azbet + <fs>.

    ENDLOOP.

  CATCH cx_salv_bs_sc_runtime_info .

    ev_status = 'E'.
    ev_message = '查询失败,无法检索数据,请稍后重试'.

ENDTRY .

cl_salv_bs_runtime_info=>clear_all( ).

ENDIF.

ENDFUNCTION.

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值