2017-01-19 18 views
2

Я пытаюсь экспортировать значение для расширения внутри вызова BAPI, которое выполняется в задаче обновления фона. Но значение не считывается внутри расширения, однако, если я выполняю локальный тест, значение корректно считывается из памяти.Как использовать EXPORT/IMPORT для памяти ABAP - SAP

Любые идеи относительно того, почему это не работает?

Это мой код:

Экспорт программы:

DATA: lv_id TYPE char30. 

CONCATENATE 'ZTCODE' sy-uname 
    INTO lv_id. 

EXPORT ztcode FROM iv_tcode TO MEMORY ID lv_id. 

Импортозамещение (внутри улучшения):

DATA: lv_tcode TYPE sy-tcode, 
     lv_id  TYPE char30. 

CONCATENATE 'ZTCODE' sy-uname 
    INTO lv_id. 

IMPORT ztcode TO lv_tcode FROM MEMORY ID lv_id. 

ответ

3

Видимо вы пытаетесь перенести данные из сеанса пользователя к фон/обновление. Это не будет работать с использованием памяти ABAP. Проверьте документацию на ABAP Memory Organization: вызов RFC или модуль обновления выполняется в другом сеансе пользователя, который имеет другую память ABAP.

+0

Спасибо, эта схема объясняет это красиво. Один связанный с этим вопрос, однако, я не нашел для него надлежащей документации, знаете ли вы преимущества/отличия от использования EXPORT с приемом «TO DATABASE indx (st)»? – Beto

+0

Вы проверили интерактивную справочную/синтаксическую документацию по этому утверждению? – vwegert

+0

Да, но неясно, какая разница. И иногда это работает, если я использую синтаксис «TO DATABASE», но не без него, поэтому я спросил ... – Beto