ABAP RFC Отладка

Я разработчик ASP.NET и ABAP. В течение многих лет я использовал RFC для связи с ASP.NET с помощью SAP .NET Connector.

Во время интегрированных тестов иногда нам нужно отлаживать RFC, который был вызван из ASP.ENT, просто потому, что ошибка, с которой мы сталкиваемся, не возникает в SE37.

Поэтому каждый раз, когда мне нужно было отладить RFC, я просто вставлял:

IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.

При этом программа застревает. Затем я иду к SM50 и отлаживаю его.

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

Итак, что вы делаете, когда вам нужно отладить RFC?

Заранее спасибо!

3 ответа

Решение

Я предполагаю, что вы используете довольно свежую версию sap (4.7+). Сделайте следующее:

  • Получите имя пользователя, которое делает RFC-вызов в SAP в ASP
  • Запустите SE37, перейдите в раздел кода вашего RFC
  • Посмотрите на меню сверху, нажмите "Утилиты"
  • Нажмите на настройки
  • Перейти на вкладку "Отладка"
  • Введите имя пользователя, который будет звонить из ASP
  • Нажмите IP Matching (иначе сеанс отладки появляется при каждом вызове любого пользователя)
  • Точка останова сеанса активна немедленно, приятно также нажать
  • Поместите свою внешнюю точку останова туда, где она вам нужна (щелкните значок со знаком остановки и человечком)
  • Протестируйте свой коннектор ASP
  • Точка останова должна вступить в силу, появится окно отладки.
  • У вас может не быть разрешения на это, если это не работает, используйте SU53, чтобы узнать, что вам не хватает.

Это должно работать.

Когда вы вызываете RFM через SE37, вы неосознанно используете экран выбора SAP. Если у вас есть таблица со строкой заголовка при вызове из RFC, она может иметь строку заголовка "заполнена"

В случае, если вы вызываете тот же FM из RFC, строка заголовка в начальной.

LOOP AT PT_JNC. ВЫХОД. ENDLOOP. или ПРОЧИТАЙТЕ ТАБЛИЦУ PT_JNC ИНДЕКС 1.
поможет заполнить строку заголовка

Это тонкая разница. Другие простые различия: SAP использует формат даты ГГГГММДД и время HH24MISS

С уважением JNC в Калькутте

Хитрый... Можете ли вы уточнить, что вы подразумеваете под "ошибка не происходит в se37"?

Означает ли это, что вы не можете воспроизвести данные, которые приводят к вашей проблеме, или что проблема связана с тем, что функциональный модуль вызывается через RFC?

Обычно вы должны иметь возможность использовать se37 для запуска функционального модуля, и есть несколько способов записать различные комбинации данных в функциональный модуль. Поведение функционального модуля должно быть таким же, относительно вызова из se37 или через RFC ...

Другие вопросы по тегам