Bonjour à tous,
J'utilise Delphi v5 avec MSSOAP Toolkit v3.0 pour consommer un webservice d'un systeme en intranet, j'arrive bien à initialiser mon objet SOAP avec le WSDL du webservice et je fais des appels à des webservices avec succés.

Le probléme c'est que je n'arrive pas à avoir le bon type de variable retourné par les webservices pour que je puisse interpreter les retours, pour faciliter l'exposition de mon probléme, je fais appel à une fonction qui a un retour de ce type (d'aprés le WSDL) :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
			<xsd:complexType name="TgetResponseString">
				<xsd:all>
					<xsd:element name="transId" type="xsd:string"/>
					<xsd:element name="transDate" type="xsd:string"/>
					<xsd:element name="status" type="typens:ArrayOfString"/>
					<xsd:element name="response" type="xsd:string"/>
				</xsd:all>
			</xsd:complexType>

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
var 
 
SoapClient: OleVariant;
 
begin
 
SoapClient := CreateOleObject('MSSOAP.SoapClient30');
 
SoapClient.mssoapinit('http://17.17.17.5/padbradze/padbradze_wsdl?app=ssmpp');
 
SoapClient.getBalance('ABCDEF67812323671901', 1, '12900102');// << What's this type ?
 
end;
Here's a working code in PHP consuming the same service:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
try {
	$client = new SoapClient("http://17.17.17.5/padbradze/padbradze_wsdl?app=ssmpp");
 
	$result = $client->getBalance('ABCDEF67812323671901', 1, '12900102');
	echo $result->transId."\n";
} catch (SoapFault $fault) {
	echo "Headerfault: ".$fault->headerfault."\n";
	echo "Faultcode: ".$fault->faultcode."\n";
	echo "Faultstring: ".$fault->faultstring."\n";
}