Abap: Нужно ли очистить экспортную переменную? - PullRequest
0 голосов
/ 25 октября 2018

Я нашел этот код:

FUNCTION /FOO/BAR.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IV_XYZ) TYPE  STRING
*"  EXPORTING
*"     VALUE(EV_RESULT_JSON) TYPE  STRING
*"----------------------------------------------------------------------



*-- Initialization
  clear ev_result_json.

Нужен ли clear ev_result_json?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Да или Нет.

Нет , поскольку этот параметр передается по значению (VALUE (EV_RESULT_JSON)), поэтому его начальное значение всегда является начальным.

Если оно былопереданный по ссылке, тогда ответ может быть yes , поскольку его начальное значение является значением передаваемого аргумента, поэтому оно зависит от алгоритма функционального модуля.

PS: лично вв случае параметра, передаваемого по значению, я иногда предпочитаю добавить CLEAR в начале обработки, чтобы облегчить отладку с помощью кнопки «прыжок» для возобновления обработки;в случае параметра, переданного по ссылке, я иногда добавляю CLEAR к «документу» о том факте, что входное значение не используется.

Добавление 1 час спустя: поскольку логика параметра EXPORTING не таковаочевидно, и поскольку ABAP Objects рекомендуется (насколько это возможно), предпочтительно превратить функциональный модуль в функциональный метод с параметром RETURNING, который всегда передается по значению, поэтому не должно быть путаницы.

0 голосов
/ 25 октября 2018

No, поскольку они будут очищены после выхода из FM.

Извините, не прочитал правильно.Ответ все еще НЕТ.Потому что в поле «Значение экспорта» после ввода FM ничего нет.

...