Question

Je suis développeur ASP.NET et ABAP.Pendant des années, j'ai utilisé les RFC pour communiquer avec ASP.NET à l'aide de SAP .NET Connector.

Lors des tests intégrés, nous devons parfois déboguer une RFC qui a été appelée depuis ASP.ENT, simplement parce que le bug auquel nous sommes confrontés ne se produit pas dans SE37.

Ainsi, chaque fois que j'avais besoin de déboguer la RFC, j'insérais simplement :

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

Ce faisant, le programme reste bloqué.Ensuite, je vais sur SM50 et je le débogue.

Je me demandais s'il existe un autre moyen de procéder, car je n'aime pas l'idée de modifier le code pour déboguer ou d'implémenter une fonctionnalité de contrôle de débogage.

Alors, que faites-vous lorsque vous avez besoin de déboguer les RFC ?

Merci d'avance!

Était-ce utile?

La solution

Je suppose que vous utilisez une version assez récente de SAP (4.7+) Procédez comme suit:

  • Récupère le nom d'utilisateur à l'origine de l'appel RFC dans SAP sous ASP
  • Lancez SE37, allez à la section de code de votre RFC
  • Regardez le menu en haut, cliquez sur "Utilitaires"
  • cliquez sur Paramètres
  • Allez sur l'onglet Débogage
  • Entrez le nom d'utilisateur qui passera l'appel depuis ASP
  • Cliquez sur IP Matching (sinon une session de débogage apparaît à chaque fois qu'un utilisateur passe l'appel)
  • Il est agréable de cliquer sur le point d'arrêt de session actif immédiatement
  • Placez votre point d'arrêt externe là où vous en avez besoin (cliquez sur l'icône avec le panneau d'arrêt et le petit homme)
  • Testez votre connecteur ASP
  • Le point d'arrêt devrait entrer en vigueur, une fenêtre de débogage apparaîtra
  • Vous n’avez peut-être pas l’autorisation de le faire. Si cela ne fonctionne pas, utilisez SU53 pour déterminer ce qui vous manque.

Cela devrait fonctionner.

Autres conseils

Tricky .. pouvez-vous préciser ce que vous entendez par & "le bogue ne se produit pas à se37 &";?

Cela signifie-t-il que vous ne pouvez pas reproduire les données à l'origine de votre problème ou que le problème est spécifique au fait que le module de fonction est appelé via RFC?

En règle générale, vous devriez pouvoir utiliser se37 pour démarrer le module de fonction. Il existe quelques méthodes pour enregistrer différentes constellations de données dans le module de fonction. Le comportement du module de fonction doit être identique, qu’il soit appelé depuis se37 ou via RFC ...

Lorsque vous appelez un RFM via SE37, vous utilisez sans le savoir l'écran de sélection SAP.Dans le cas où vous avez une table avec une ligne d'en-tête lorsqu'elle est invoquée à partir de RFC, il pourrait avoir la ligne d'en-tête "remplie"

Dans le cas où vous appelez le même FM depuis RFC, la ligne d'en-tête est initiale.

BOUCLE À PT_JNC.SORTIE.BOUCLE FINALE.ou LIRE LE TABLEAU PT_JNC INDEX 1.
aidera à remplir la ligne d'en-tête

C'est une différence subtile.D'autres différences simples sont que SAP utilise le format de date AAAAMMJJ et l'heure HH24MISS.

Cordialement JNC à Kolkata

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top