reference - 访问返回参数的组件时出现ThisIsNotAObjectReference错误

标签 reference components abap

我收到 ThisIsNotAObjectReference 尝试处理完全类型化的数据引用表达式时的语法消息,如下所示:

method getDataReference.
 rr_value = ref #( varStructure ).
endmethod.

data(lr_value) = object->getDataReference( )->structureComponent.

我理解检索对象引用的语法是相同的,但是如何处理表达式中的完全类型化数据引用?

最佳答案

您不能将方法调用与引用组件访问链接起来。您应该像这样使用辅助变量:

CLASS lcl_class DEFINITION.
PUBLIC SECTION.
 METHODS: getdatareference RETURNING VALUE(rr_value) TYPE REF TO mara.
ENDCLASS.

CLASS lcl_class IMPLEMENTATION.
  METHOD getdatareference.
    DATA: ls_mara TYPE mara.
    rr_value = REF #( ls_mara ).
    SELECT SINGLE * FROM mara INTO rr_value->*.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  DATA(lcl)     = NEW lcl_class( ).
  DATA(lv_mara) = lcl->getdatareference( ).
  DATA(l_matnr) = lv_mara->matnr.

关于reference - 访问返回参数的组件时出现ThisIsNotAObjectReference错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208609/

相关文章:

java - 在 Java 中传递和编辑原始对象

parameters - Blazor 3.1 Component Tag Helper 参数

Angular 2/4。重用策略。如何通知组件它已被重用?

abap - ABAP运算符中?=的含义是什么?

abap - 访问 RFC 调用系统的堆栈内存

c# - 引用实例化另一个的对象?

c++ - 此代码如何使用整数为您提供引用?

javascript - 重新分配、变异、引用类型和值类型

javascript - React - 如果分数发生变化,则按最高分数对记分牌上的玩家进行排序

abap - 创建条目选项在 SE11 中被禁用。为什么?