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

Langage PHP Discussion :

[Webservice] et complexeType


Sujet :

Langage PHP

  1. #1
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut [Webservice] et complexeType
    Bonjour à tous,
    N'étant pas forcement un enorme tueur en XML, ça fait quelques jours que je m'echine à faire appel à un webservice.

    Je dois y faire appel en PHP.

    Lorsque je fais un __getFunctions(), je récupère ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
        [0] => ListOfEmployeeInterfaceTopElmt EmployeeQueryById(string $PrimaryRowId)
        [1] => ListOfEmployeeInterfaceTopElmt EmployeeQueryByExample(ListOfEmployeeInterfaceTopElmt $Message)
       ...
    )

    Pour la premiere fonction, pas de problème vu que c'est un string. Par contre pour le deuxième je galère beaucoup plus.

    Je vais détailler un peu le WSDL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <message name="spcEmployee_EmployeeQueryByExample_Input">
    	<part name="Message" type="xsdLocal0:ListOfEmployeeInterfaceTopElmt">
    	</part>
    </message>
    <message name="spcEmployee_EmployeeQueryByExample_Output">
    	<part name="Message" type="xsdLocal0:ListOfEmployeeInterfaceTopElmt">
    	</part>
    </message>
    [...]

    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
    44
     
    <xsd:complexType name="ListOfEmployeeInterfaceTopElmt">
    	<xsd:sequence>
    		<xsd:element name="ListOfEmployeeInterface" maxOccurs="1" minOccurs="1" type="xsdLocal0:ListOfEmployeeInterface">
    		</xsd:element>
    	</xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ListOfEmployeeInterface">
    	<xsd:sequence>
    		<xsd:element name="Employee" maxOccurs="1" minOccurs="0" type="xsdLocal0:ArrayOfEmployee">
    		</xsd:element>
    	</xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ArrayOfEmployee">
    	<xsd:complexContent mixed="false">
    		<xsd:restriction base="soapenc:Array">
    			<xsd:attribute aPrefix:arrayType="xsdLocal0:Employee[]" ref="soapenc:arrayType" xmlns:aPrefix="http://schemas.xmlsoap.org/wsdl/">
    			</xsd:attribute>
    		</xsd:restriction>
    	</xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="Employee">
    	<xsd:sequence>
    		<xsd:element name="Id" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="Alias" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="AvailabilityStatus" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="AvailabilityStatusUntil" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="BuildingNumber" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="CPRegion" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="CPRegionId" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="CPRegionIntegrationId" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		<xsd:element name="CellPhone" maxOccurs="1" minOccurs="0" type="xsd:string">
    		</xsd:element>
    		[...]
    	</xsd:sequence>
    </xsd:complexType>
    Du coup pour cette deuxime fonction, je ne sais pas comment y acceder. probablement avec SoapVar

    D'aiulleur si quelqu'un pourrais me détailler quoi est quoi dans cette fonction ça serait interessant.

    d'avance

  2. #2
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Mon problème ne parle à personne ?

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    si mais tu fais ça avec quoi php5 noSOAP ??

    A+JYT

  4. #4
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par sekaijin
    si mais tu fais ça avec quoi php5 noSOAP ??

    A+JYT
    A oui effectivement je n'ai pas précisé.

    PHP5

  5. #5
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Bon j'ai plus ou moins résolu mon problème, je vous donne la solution, car je pense que ça pourra resservir à certain.

    En gros lorsque l'on a un complexetype, il attend tout simplement du XML.
    Qui peut être créé facilement avec la class "stdClass".

    donc en gros pour mon cas, de façon très simple, on peut le construire de cette façon avant de faire le __soapCall

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $Message = new stdClass();
    $Message->ListOfEmployeeInterface = new stdClass();
    $Message->ListOfEmployeeInterface->Employee[0] = new stdClass();
    $Message->ListOfEmployeeInterface->Employee[0]->Id = '125';
    $Message->ListOfEmployeeInterface->Employee[0]->LoginName = 'toto';
    [...]
    Voili voilou.

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

Discussions similaires

  1. [Webservice] et complexeType
    Par BrYs dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 08/01/2007, 11h15
  2. [WebService]Fichier Java et WSDL associé pour Web Services
    Par P4_le_requin_breton dans le forum Services Web
    Réponses: 9
    Dernier message: 23/02/2004, 12h55
  3. [WebServices] - Taux de change
    Par malbaladejo dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 03/02/2004, 16h20
  4. [XMLRAD] Security des WebModules et/ou des WebServices
    Par Lux interior dans le forum XMLRAD
    Réponses: 4
    Dernier message: 18/12/2002, 17h09
  5. WebService Google sur builder 5?
    Par billuh dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/11/2002, 19h43

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