2009-02-02 2 views
2

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

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

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

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

Поступая таким образом, программа застревает. Затем я перехожу на SM50 и отлаживаю его.

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

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

Заранее благодарен!

+0

я могу получить некоторые ссылки о том, как я могу написать код для извлечения данных из RFC. Я совершенно не знаком с этим методом. – Ankur

ответ

5

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

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

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

+0

Будет ли окно отладки в SAPGUI или в ASP-приложении? – Thorsten

+0

Это будет в SAPGUI, вам нужно будет войти в систему и клиент, конечно, с разрешениями отладки и т. Д. – tomdemuyt

+0

Спасибо Tom! Он работает очень хорошо! Спасибо! –

0

Tricky .. вы можете уточнить, что вы подразумеваете под «ошибка не возникает при se37»?

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

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

+0

Пример: У нас есть этот BDC для CA02. Он очень хорошо работал на тестах SE37, но когда мы вызываем RFC из ASP.NET, он просто не работает. И если мы сгенерировали SM35 и выполнили вручную, он просто отлично работает! Таким образом, проблема заключалась в том, что эта конкретная функциональность не поддерживает выполнение RFC и BDC. –

+0

Использование BDC через RFC может привести к «интересным» ошибкам. Для меня это звучит так, как передача данных в вызове работает некорректно. Попробуйте написать обертку вокруг вызовов BDC и проверите данные с помощью описанного вами метода. – Thorsten

0

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

Если вы вызываете тот же FM из RFC, заголовок строки в исходном.

LOOP AT PT_JNC. ВЫХОД. ENDLOOP. или READ ТАБЛИЦА PT_JNC INDEX 1.
поможет заполнить строку заголовка

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

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