par Steve Park, consultant PI/ABAP
Avez-vous déjà appelé un service Web hébergé par SAP uniquement pour obtenir un code retour générique qui pourrait signifier n’importe quoi ? Vous demandez-vous quelles étaient les données exactes transmises dans le paramètre lors de l’exécution du service Web SAP ? Par exemple, lorsque vous passez « 00001 », est-ce que vous passez réellement « 00001 » ou est-ce simplement « 1 ». Cela peut faire la différence entre un service Web appelé avec succès ou un appel de service Web qui ramène une exception.
J’ai trouvé un problème lors du test d’un service Web SAP lors d’un appel provenant d’un client externe. Le service Web SAP renvoyait une exception au client externe qui ne nous disait pas grand-chose.
Ce service Web SAP a été créé à partir d’un module de fonction, ma première étape a donc été d’accéder au module de fonction et de saisir exactement ce que le client externe essayait d’envoyer et d’espérer obtenir la même exception. Étonnamment, le module fonctionnel est revenu avec succès.
Comme je n’ai pas pu comprendre ce qui n’allait pas lors des tests dans SAP, mon étape suivante consiste à voir ce que le client externe transmet réellement en temps réel au service Web SAP à l’aide du débogueur ABAP. Vous vous demandez probablement comment SAP saura-t-il quand lancer le débogueur ABAP puisque SAP est appelé depuis un client externe ?
La réponse : vous devez informer SAP que vous attendez un appel
Voici les étapes à suivre pour activer le débogueur ABAP pour les appels externes.
1) Dans la transaction SICF, recherchez le service avec lequel vous rencontrez des problèmes et mettez en surbrillance votre service puis rendez-vous sur : Editer -> Debugging->Activate Debugging
2) Ici, vous devez saisir l’identifiant d’utilisateur que le client externe utilise lors de l’appel. Il est extrêmement important que ce soit le même utilisateur que vous serez connecté à SAP.
3) Assurez-vous que vous êtes actuellement connecté à SAP avec le même utilisateur. Lancez maintenant l’appel depuis le client externe et cette fois, vous remarquerez qu’un débogueur ABAP sera également lancé. Vous pouvez maintenant parcourir le code et voir exactement où le problème se produit.
4) Une fois que vous avez trouvé le problème, n’oubliez pas de désactiver le débogueur. Si vous oubliez, SAP le désactivera automatiquement après un délai de 2 heures.