IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service] Requête SOAP clé array identiques


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 27
    Points
    27
    Par défaut [Web Service] Requête SOAP clé array identiques
    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 !!!

  2. #2
    Membre actif
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Points : 232
    Points
    232
    Par défaut
    Bonsoir,

    C'est un WS public ?

    Que dit la doc du ws ?

    Et si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Array('refPersonneCreer'=>array('idPersonne'=>'300013432', 'rolePersonne'=>array('code'=>'CONTRACT')),array('idPersonne'=>'131805','rolePersonne'=>array('code'=>'RESP')))
    Un truc comme ça.

    Natso

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Pardon pour le retard à ta réponse.

    J'ai essayé la technique du tableau supplémentaire imbriqué mais sans succès.

    Non malheureusement le WS n'est pas publique.

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    D'abord, je ne vois pas pourquoi le bloc 'context' qui ne paraît pas dans le "Voici ce que je dois envoyer"; et puis pourquoi il n'y a pas 'creerDemande' qui est cette fois paru dans le "Voici ce que je dois envoyer".

    Et tout cas, essayez ceci, sans garantie, qui suit le "Voici ce que je dois envoyer".
    Code xml : 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
    $params=array(
        'creerDemande'=>array(
            'creerDemandeInput'=>array(
                'demande'=>array(
                    'typeDemande'=>array(
                        'code'=>'ZMAS'
                    ),
                    'statutDemande'=>array(
                        'code'=>'TERM'
                    ),
                    'motifDemande'=>array(
                        'code'=>'VENTSNOR'
                    ),
                    'texteLibreDemande'=>'Souscription Dépannage Elec.',
                    'refPersonneCreer'=>array(
                        array(
                            'idPersonne'=>'300013432',
                            'rolePersonne'=>array(
                                'code'=>'CONTRACT'
                            )
                        ),
                        array(
                            'idPersonne'=>'131805',
                            'rolePersonne'=>array(
                                'code'=>'RESP'
                            )
                        )
                    )
                ),
                'prioriteDemande'=>array(
                    'code'=>5
                ),
                'planificationDemandee'=>0
            )
        )
    );

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    J'ai contourné le problème.

    J'ai créé la première insertion et je viens la mettre à jour ensuite ...

    C'est un peu ugly mais ça fonctionne !

    Merci de votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service] PHP, soap et type complex
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/07/2009, 16h58
  2. [Web Service] Serveur SOAP - NuSOAP ou php_soap (natif)
    Par alexfrere dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/01/2009, 11h43
  3. [Web Service] PHP & SOAP - web service
    Par Gregory.M dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/12/2008, 13h07
  4. [Web Service] Requête et réponse XML
    Par mme_chelaou dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/12/2008, 17h56
  5. Web Service Adressing SOAP Asynchone
    Par miryame dans le forum Services Web
    Réponses: 2
    Dernier message: 23/11/2006, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo