You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ABAP类方法向PBO返回表记录为空的问题排查与修复

问题分析与修复方案

首先,核心问题出在GET_MS_ZORK_JG_SETTING方法的实现上——当前的代码只是做了无意义的自我赋值,根本没有把已经填充好的实例属性返回给调用方。

排查步骤

  • 先确认方法声明:你的方法应该是通过RETURNING参数返回结构数据的(这是你描述的“返回该类型数据”的常规写法),类中的声明应该类似:
    METHODS get_ms_zork_jg_setting
      RETURNING
        VALUE(rv_jg_setting) TYPE zork_jg_setting.
    
  • 检查当前方法实现:你提到的ms_zork_jg_setting = ms_zork_jg_setting完全没有处理返回参数,这就是返回值为空的直接原因——RETURNING参数默认会被初始化为空结构,你没给它赋值,自然返回空。
  • 额外验证:确认实例go_bukrs_conf在调用填充方法后没有被重新初始化(比如屏幕PBO执行前有没有被重新创建),确保调用get_ms_zork_jg_setting时的实例和填充数据的是同一个实例。

修复方案

修改GET_MS_ZORK_JG_SETTING的方法实现,将已填充的实例属性赋值给返回参数:

METHOD get_ms_zork_jg_setting.
  " 将实例中已填充好的结构赋值给返回参数
  rv_jg_setting = ms_zork_jg_setting.
ENDMETHOD.

如果你的方法是用EXPORTING参数来返回数据的(虽然你描述是返回类型,但也存在这种写法),修复代码则是:

METHOD get_ms_zork_jg_setting.
  exporting_para = ms_zork_jg_setting.
ENDMETHOD.

另外再额外确认两点:

  • ms_zork_jg_setting是类的实例属性(INSTANCE ATTRIBUTE),而非静态属性——你是按公司代码创建实例,用实例属性更符合业务逻辑,避免多实例场景下的数据干扰。
  • 填充ms_zork_jg_setting的方法确实在go_bukrs_conf实例创建后被调用过,且没有后续代码清空该属性。

内容的提问来源于stack exchange,提问作者username1995.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:32:43