Bonjour,
J'ai cette structure de tableau :
<tabBenef xsi:type="def:ArrayOfstring" soapenc:arrayType="xsd:string[]"/>
J'aimerais le remplir manuellement (nom,prenom,DateN,parente).
Pouvez vous m'aider ?
Cordialement,
DEPOLLIER Kevin
Version imprimable
Bonjour,
J'ai cette structure de tableau :
<tabBenef xsi:type="def:ArrayOfstring" soapenc:arrayType="xsd:string[]"/>
J'aimerais le remplir manuellement (nom,prenom,DateN,parente).
Pouvez vous m'aider ?
Cordialement,
DEPOLLIER Kevin
Quand je dis remplir le tableau manuellement, je veux dire en codant.
Je ne vois pas comment lui passer les paramètres.
<item>Kevin</item>
<item>Dep</item>
<item>19/09/1990</item>
<item>Conjoint</item>
Bah si c'est en codant... En quel langage, et qu'est-ce que tu as déjà ?
Je dois créer un web service ayant pour serveur 4D. J'utilise soapUI comme client.
SoapUI traduit le wsdl et me demande de rentrer les paramètres pour tous les champs nécessaire à 4D. Jusque la aucun problémes pour ces champs, sauf pour le tableau : je ne vois pas comment completer celui-ci.
voici le code complet :
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:def="http://www.4d.com/namespace/default" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<def:ws_recup_chemins soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<nomTelePro xsi:type="xsd:string">?</nomTelePro>
<numAdh xsi:type="xsd:string">?</numAdh>
<nomAdh xsi:type="xsd:string">?</nomAdh>
<prenomAdh xsi:type="xsd:string">?</prenomAdh>
<adresseAdh xsi:type="xsd:string">?</adresseAdh>
<code_postal_Adh xsi:type="xsd:string">?</code_postal_Adh>
<villeAdh xsi:type="xsd:string">?</villeAdh>
<telephoneAdh xsi:type="xsd:string">?</telephoneAdh>
<dateNaissanceAdh xsi:type="xsd:string">?</dateNaissanceAdh>
<numMutuelleEmetteur xsi:type="xsd:string">?</numMutuelleEmetteur>
<nomMutuelleEmetteur xsi:type="xsd:string">?</nomMutuelleEmetteur>
<adresseMutuelleEmetteur xsi:type="xsd:string">?</adresseMutuelleEmetteur>
<codePostalMutuelleEmetteur xsi:type="xsd:string">?</codePostalMutuelleEmetteur>
<villeMutuelleEmetteur xsi:type="xsd:string">?</villeMutuelleEmetteur>
<TelephoneMutEmetteur xsi:type="xsd:string">?</TelephoneMutEmetteur>
<jourPrelevementMutuelleEmetteur xsi:type="xsd:string">?</jourPrelevementMutuelleEmetteur>
<periodicite xsi:type="xsd:string">?</periodicite>
<numeroContrat xsi:type="xsd:float">?</numeroContrat>
<tabBenef xsi:type="def:ArrayOfstring" soapenc:arrayType="xsd:string[]"/>
</def:ws_recup_chemins>
</soapenv:Body>
</soapenv:Envelope>
Normalement ce def:ArrayOfstring devrait être défini quelque part dans le WSDL ou au moins dans un XML Schema qu'il référence, décrivant ainsi ce qu'il faut mettre dedans.
Je n'ai pas trouvé d'exemple fourni par 4D.
Il y a peut-être leur doc ou leur forum d'entraide, aussi. Qui n'ont pas de fonction rechercher (ou au moins pas sans s'enregistrer, et moi j'en ai rien à cirer de leurs trucs.)
Oui, j'ai déja regarder sur le site et leur forum mais aucun éléments n'a pus m'apporter une aide.
C'est pourquoi je viens ici.
Je te remercie pour le temps que tu m'a consacrer même si ma requête n'a pas aboutit.
Et le WSDL, c'est pas important, on l'oublie ?
Le WSDL est généré automatiquement par 4D. Je ne pense pas que le problème vienne d'ici.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 <div style="margin-left:40px"> <definitions name="A_WebService" targetNamespace="http://www.4d.com/namespace/default"> <types> <schema targetNamespace="http://www.4d.com/namespace/default"> <complexType name="ArrayOfstring"> <complexContent> <restriction base="SOAP-ENC:Array"> <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/></restriction> </complexContent> </complexType> </schema> </types> <message name="ws_recup_cheminsRequest"> <part name="nomTelePro" type="xsd:string"/> <part name="numAdh" type="xsd:string"/> <part name="nomAdh" type="xsd:string"/> <part name="prenomAdh" type="xsd:string"/> <part name="adresseAdh" type="xsd:string"/> <part name="code_postal_Adh" type="xsd:string"/> <part name="villeAdh" type="xsd:string"/> <part name="telephoneAdh" type="xsd:string"/> <part name="dateNaissanceAdh" type="xsd:string"/> <part name="numMutuelleEmetteur" type="xsd:string"/> <part name="nomMutuelleEmetteur" type="xsd:string"/> <part name="adresseMutuelleEmetteur" type="xsd:string"/> <part name="codePostalMutuelleEmetteur" type="xsd:string"/> <part name="villeMutuelleEmetteur" type="xsd:string"/> <part name="TelephoneMutEmetteur" type="xsd:string"/> <part name="jourPrelevementMutuelleEmetteur" type="xsd:string"/> <part name="periodicite" type="xsd:string"/> <part name="numeroContrat" type="xsd:float"/> <part name="tabBenef" type="tns:ArrayOfstring"/> </message> <message name="ws_recup_cheminsResponse"> <part name="cheminContrat" type="xsd:string"/> <part name="cheminCourrier" type="xsd:string"/> </message> <portType name="A_WebServiceRPC"> <operation name="ws_recup_chemins"> <input message="tns:ws_recup_cheminsRequest"/> <output message="tns:ws_recup_cheminsResponse"/> </operation> </portType> <binding name="A_WebServiceBinding" type="tns:A_WebServiceRPC"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/> <operation name="ws_recup_chemins"> <documentation>no documentation is available</documentation> <soap:operation soapAction="A_WebService#ws_recup_chemins"/> <input> <soap:body use="encoded" namespace="http://www.4d.com/namespace/default" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="encoded" namespace="http://www.4d.com/namespace/default" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="A_WebService"> <documentation/> <port name="A_WebServicePort" binding="tns:A_WebServiceBinding"> <soap:address location="http://artemis:8080/4DSOAP/"/> </port> </service> </definitions></div>
Qui a parlé de problème ? Tu sais pas comment faire un truc, regardons comment faire...
Apparemment un def:ArrayOfstring est la même chose qu'un soapenc:Array, sauf qu'il est contraint pour que son soapenc:arrayType soit toujours à xsd:string[].
Est-ce que tu as essayé :
Accessoirement, ceci devrait marcher aussi, mais je suis pas sûr, mon SOAP étant rouillé :Code:
1
2
3
4
5
6 <tabBenef xsi:type="def:ArrayOfstring" soapenc:arrayType="xsd:string[]"> <item xsi:type="xsd:string">Kevin</item> <item xsi:type="xsd:string">Dep</item> <item xsi:type="xsd:string">19/09/1990</item> <item xsi:type="xsd:string">Conjoint</item> </tabBenef>
Code:
1
2
3
4
5
6 <tabBenef xsi:type="def:ArrayOfstring" soapenc:arrayType="xsd:string[]"> <item>Kevin</item> <item>Dep</item> <item>19/09/1990</item> <item>Conjoint</item> </tabBenef>
Oui j'avais déja essayé ces 2 méthodes. Le problème est que 4D n'arrive pas à récupérer les données.
Peut-être que je déclare mal ce tableau.
Pour récupérer des champs j'utilise :
Pour le tableau :Code:
1
2 DECLARATION SOAP(numeroContrat;Est un numérique ;SOAP entrée ;"numeroContrat")
C'est comme ci il ne trouvait même pas le tableau. Il passe sans erreur mais rien ne se passe.Code:
1
2
3
4
5 //Declaration du tableau TABLEAU TEXTE(tabBenef;1;3) DECLARATION SOAP(tabBenef;Est un tableau texte ;SOAP entrée ;"tabBenef")
Ça c'est du pur 4D, j'en sais rien, moi. Peut-être si un habitué passe... Mais il vaudrait mieux chercher du côté de leur support à eux.
Je viens de créer une nouvelle discussion dans le coin 4D.
Le WSDL est donc bon ? Sa structure et la définition du tableau n'ont pas de problème ?
Rien qui me choque... Mais je suis pas très calé sur ces trucs-là.