Bonjour,
Mon but est de consommer un WebService SAP dans une application C++.
Ce WS renvoie simplement un String pour un paramètre donné.
Ci-dessous, l'interface générée par le WSDL importer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 __interface INTERFACE_UUID("{84315FF7-92AE-A15F-5A89-3820B28AEAB2}") ZQM_WEB_READMEASURE : public IInvokable { public: virtual char64 ZqmFmMeasuresRead(const int PMeaId) = 0; };
Et ci-après, l'utilisation du WS.
l'execution de la ligne 4 provoque l'exception suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /*1*/_di_ZQM_WEB_READMEASURE SAP_WS_ReadMeasure; /*2*/SAP_WS_ReadMeasure = GetZQM_WEB_READMEASURE(true, "" , HTTPRIO1); /*3*/ /*4*/lbledt_response->Text = SAP_WS_ReadMeasure->ZqmFmMeasuresRead(StrToInt(lbledt_meaID->Text));
CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'PMeaId'
Un test de ce WS avec SoapUI est concluant, mais l'erreur est reproduisible par la mise en commentaire ci-dessous:
<urn:ZqmFmMeasuresRead>
<!--PMeaId>1</PMeaId-->
</urn:ZqmFmMeasuresRead>
J'ai executé le même code avec C++ 2006, 2009 et 2010, avec le même résultat.
J'ai également essayé plusieurs options d'import de l'outil WSDL importer, y compris le Unwind Literal Params.
Tout conseil bienvenu!
DBI
Partager