2010-11-05 8 views
2

De nos jours, j'essaie de faire une application simple qui consomme du service Web SAP. J'ai eu wsdl lien via le gestionnaire de savon et l'a ajouté au projet en tant que refections web. C# a créé un type complexe qui inclut les paramètres et les tables d'import-export de ma RFC et si je veux appeler la méthode des services web, je dois envoyer toutes mes valeurs dans une variable thats complexe aussi les valeurs retournées me reviennent dans une variable thats type même. Mais les tables retournées sont initiales.Problème, consommation du service Web SAP avec .Net

Cependant, j'ai wsdl lien via wsconfig et wsadmin dans un autre système mais même RFC, C# n'a pas créé de type complexe. Il a créé différents types pour les paramètres de chaque RFC et je peux envoyer mes valeurs dans différentes variables aussi les valeurs retournées sont correctes.

Pourquoi le gestionnaire de savon et wsconfig créent-ils différents wsdl ou pourquoi C# crée-t-il différents types et méthodes pour le même RFC? Comment résoudre ce problème? Connaissez-vous des astuces ou des astuces?

Merci pour les conseils

Répondre

0

Les deux systèmes ont-ils le même niveau de version? Avec les nouvelles versions, il pourrait y avoir des changements dans le mécanisme de génération de wsdl. Donc, wsconfig/wsadmin est considéré comme obsolète et vous devriez utiliser soamanager si disponible.

+0

Pas le même niveau. si j'utilise soapmanager wsdl, les tables retournées sont vides. – Abaper

+0

Pourquoi est-ce? Avez-vous débogué l'appel de fonction du côté SAP? – Richard

1

Comme déjà mentionné, wsconfig et wsadmin sont considérés comme obsolètes, vous devez donc toujours utiliser la transaction soamanager. Lorsque vous ouvrez le WSDL pour un service Web dans soamanager, vous le verrez dans une nouvelle fenêtre de navigateur. Dans sa barre d'adresse (disons: l'URL), vous voyez quelque part à la fin un "../ws_policy/" - essayez de le remplacer par "../standard/ .." et rechargez le WSDL avec ce nouveau adresse, puis utilisez ce nouveau/autre WSDL pour votre programme client.

Est-ce que cela aide?

+0

merci pour le conseil, mais cela ne fonctionne pas. il crée à nouveau un type complexe et les valeurs retournées ne sont pas correctes. – Abaper

Questions connexes