Bonjour à toutes Zé à tous,

Me voici confronté à un problème de soumission de requête à un WS et son passage de paramètre au travers d'un tableau PHP.

Voici ce que je dois envoyer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v3="http://gdfsuez.com/bef/chp/calypso/demande/v3">
   <soapenv:Header>
   </soapenv:Header>
   <soapenv:Body>
      <v3:creerDemande>
         <creerDemandeInput>
            <demande>
               <typeDemande>
                  <code>ZMAS</code>
               </typeDemande>
               <statutDemande>
                  <code>TERM</code>
               </statutDemande>
               <motifDemande>
                  <code>VENTSNOR</code>
               </motifDemande>
               <texteLibreDemande>Souscription Dépannage Elec.</texteLibreDemande>
               <!-- client contractant et conseiller enregistrant -->
               <refPersonneCreer>
                  <!-- BP client -->
                  <idPersonne>300013432</idPersonne>
                  <rolePersonne>
                     <code>CONTRACT</code>
                  </rolePersonne>
               </refPersonneCreer>
               <refPersonneCreer>
                  <!-- BP conseiller -->
                  <idPersonne>131805</idPersonne>
                  <rolePersonne>
                     <code>RESP</code>
                  </rolePersonne>
               </refPersonneCreer>
               <prioriteDemande>
                  <code>5</code>
               </prioriteDemande>
               <planificationDemandee>0</planificationDemandee>
            </demande>
         </creerDemandeInput>
      </v3:creerDemande>
   </soapenv:Body>
</soapenv:Envelope>
Vous constaterez que je dois passer le paramètre refPersonneCreer deux, une fois pour le CONTRACT (contractant) et une fois pour le RESP (responsable).

Pour ça je créé mon tableau de paramètre de ma requête comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
$params=array('creerDemandeInput'=>array(
					'demande'=>array(
						'typeDemande'=>array(
							'code'=>'ZMAS'), // Variable
						'statutDemande'=>array(
							'code'=>'TERM'),
						'motifDemande'=>array(
							'code'=>'VENTSNOR'), // Variable
						'texteLibreDemande'=>'Souscription Dépannage Elec.', //libre
						'refPersonneCreer'=>array(
							'idPersonne'=>'300013432', // BP CLIENT
							'rolePersonne'=>array(
								'code'=>'CONTRACT')),
						'refPersonneCreer'=>array(
							'idPersonne'=>'131805', // BP CONSEILLER
							'rolePersonne'=>array(
								'code'=>'RESP')),
						'prioriteDemande'=>array(
								'code'=>5),
						'planificationDemandee'=>0
						)
					),
					'context'=>array(
						'version'=>'3.0',
						'systemPath'=>array(
							'system'=>array(
								'systemId'=>'mop')
						)
					)
				);
Mais vous constatez que la clé "refPersonneCreer" est présente deux fois et là ... PHP me fait la gueule.

Il me crée l'enveloppe suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://gdfsuez.com/bef/chp/calypso/demande/v3">
<SOAP-ENV:Body>
	<ns1:creerDemande>
		<creerDemandeInput>
			<demande>
				<typeDemande>
					<code>ZMAS</code>
				</typeDemande>
				<statutDemande>
					<code>TERM</code>
				</statutDemande>
				<motifDemande>
					<code>VENTSNOR</code>
				</motifDemande>
				<texteLibreDemande>Souscription Dépannage Elec.</texteLibreDemande>
				<refPersonneCreer>
					<idPersonne>131805</idPersonne>
					<rolePersonne>
						<code>RESP</code>
					</rolePersonne>
				</refPersonneCreer>
				<prioriteDemande>
					<code>5</code>
				</prioriteDemande>
				<planificationDemandee>false</planificationDemandee>
			</demande>
		</creerDemandeInput>
		<context>
			<version>3.0</version>
			<systemPath>
				<system>
					<systemId>mop</systemId>
				</system>
			</systemPath>
		</context>
	</ns1:creerDemande>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Qui ne contient que le second "refPersonneCreer" Logique.

Comment contourner ceci ?

J'ai essayer de mettre les deux "refPersonneCreer" dans des array indépendant mais le WS du coup ne les vois pas .

Si tu as eu la patience d'arriver jusqu'ici je te remercie !
Si tu as une piste ou mieux, une réponse il se peut que l'on devienne copain !!!