Вопрос

Я разработчик 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?

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

Это тонкое различие.Другие простые отличия заключаются в том, что SAP использует формат даты YYYYMMDD и время HH24MISS

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top