Я видел несколько стандартных методов ABAP, которые возвращают ссылку на данные как результат. CL_ABAP_EXCEPTIONAL_VALUES=>GET_MAX_VALUE( )
является одним из таких методов. Я склонен использовать этот метод в одной строке, например:
DATA lv_max_value TYPE i.
lv_max_value = CL_ABAP_EXCEPTIONAL_VALUES=>GET_MAX_VALUE( lv_max_value )->*.
К сожалению, это не работает, потому что:
Тип результата функционального метода «GET_MAX_VALUE» не является ссылкой на объект или интерфейсной ссылкой.
Вопрос под рукой: возможно ли разыменовать такие результаты напрямую?
Всякий раз, когда я уверен, что результаты совместимый Я бы предпочел избежать старого метода разыменования (сохранение ссылки, присвоение ее символу поля и затем помещение его в переменную назначения):
DATA lv_max_value TYPE i.
DATA ref TYPE REF TO data.
FIELD-SYMBOLS <field> TYPE any.
ref = CL_ABAP_EXCEPTIONAL_VALUES=>GET_MAX_VALUE( lv_max_value ).
ASSIGN ref->* TO <field>.
lv_max_value = <field>.
Это выглядит как массивная операция для простого действие.