Pregunta

Soy desarrollador de ASP.NET y ABAP. Durante años, utilicé RFC para comunicarme con ASP.NET utilizando SAP .NET Connector.

Durante las pruebas integradas, a veces necesitamos depurar un RFC que se ha llamado desde ASP.ENT, solo porque el error al que nos enfrentamos no ocurre en SE37.

Entonces, cada vez que necesitaba depurar el RFC, simplemente insertaba:

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

Al hacerlo, el programa se atasca. Luego voy a SM50 y lo depuro.

Me preguntaba si hay alguna otra forma de hacerlo, porque no me gusta la idea de cambiar el código para depurar, o implementar alguna funcionalidad de control de depuración.

Entonces, ¿qué haces cuando necesitas depurar RFC?

¡Gracias de antemano!

¿Fue útil?

Solución

Supongo que está utilizando una versión bastante reciente de sap (4.7+) Haz lo siguiente:

  • Obtenga el nombre de usuario que realiza la llamada RFC en SAP en ASP
  • Encienda SE37, vaya a la sección de código de su RFC
  • Mira el menú en la parte superior, haz clic en 'Utilidades'
  • Haga clic en Configuración
  • Vaya a la pestaña Depuración
  • Complete el nombre de usuario que realizará la llamada desde ASP
  • Haga clic en Coincidencia de IP (de lo contrario, aparece una sesión de depuración cada vez que un usuario realiza la llamada)
  • El punto de interrupción de sesión activo de inmediato es bueno hacer clic también
  • Coloque su punto de interrupción externo donde lo necesite (haga clic en el icono con la señal de stop y el hombrecito)
  • Pruebe su conector ASP
  • El punto de interrupción debe entrar en vigor, aparecerá una ventana de depuración
  • Es posible que no tenga la autorización para hacer esto, si no funciona, use SU53 para descubrir lo que se está perdiendo.

Esto debería funcionar.

Otros consejos

Tricky ... ¿puedes elaborar lo que quieres decir con " el error no ocurre en se37 " ;?

¿Eso significa que no puede reproducir los datos que conducen a su problema o que el problema es específico del hecho de que el módulo de función se llama a través de RFC?

Por lo general, debería poder usar se37 para iniciar el módulo de funciones, y hay algunas formas de registrar diferentes constelaciones de datos en el módulo de funciones. El comportamiento del módulo de funciones debe ser el mismo, independientemente de que se llame desde se37 o mediante RFC ...

Cuando llama a un RFM a través de SE37, sin saberlo, utiliza la pantalla de selección de SAP. En caso de que tenga una tabla con línea de encabezado cuando se invoca desde RFC, puede tener la línea de encabezado " rellenada "

En caso de que llame a la misma FM desde RFC, la línea de encabezado en la inicial.

LOOP AT PT_JNC.   SALIDA. ENDLOOP. o READ TABLE PT_JNC INDEX 1.
ayudará a llenar la línea del encabezado

Esta es una sutil diferencia. Otras diferencias simples son que SAP utiliza el formato de fecha AAAAMMDD y la hora HH24MISS

Saludos jnc en Kolkata

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top