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

VB.NET Discussion :

Infopath 2007 et WebService


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut Infopath 2007 et WebService
    Salut à tous

    J'ai fait un formulaire que j'ai besoin d'enregistrer en BDD via un serviceWeb
    Voici queques liens que j'ai trouvé intéressant, mais je n'arrive pas à les appliquer
    http://office.microsoft.com/fr-ca/in...in=HP001096815

    http://blogs.msdn.com/b/philoj/archi...08/490200.aspx (fichier ressources)
    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx

    Donc j'ai bien générer une classe VB (DemandeNoteDeFrais)à partir du my:schema.xsd d'infopath
    Mais je n'arrive pas à mettre mes données dedans :-(

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <WebMethod()> Public Sub EnregistrerNoteDeFrais(ByVal MaNote As DemandeNoteDeFrais)  
            End Sub
    En créant ma connexion de données côté infopath, j'envoie Formulaire entier.
    Et je reçoit bien quelquechose, mais mes champs sont vides
    Si je sélectionne côté infopath dans ma connexion de données "Champs ou groupe : Maemande" (Noeud racine de mes données) et Inclure "Sous arborescence XML comprenant l'élément sélectionné"
    Idem que mon 1er essai Ma classe MaNote est instanciée mais mes champs son vide

    J'ai essayé dans mon Webservice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <WebMethod()> Public Sub EnregistrerNoteDeFrais(ByVal MaNote As xmlNode)
     
                Dim ser As New XmlSerializer(GetType(DemandeNoteDeFrais))
                Dim LaNoteFrais As DemandeNoteDeFrais = CType(ser.Deserialize(New XmlNodeReader(MaNote)), DemandeNoteDeFrais)
     
            End Sub
    Mais là je me prend une erreur
    InfoPath ne peut pas envoyer le formulaire.
    Une erreur s'est produite lors de l'envoi du formulaire.
    La réponse SOAP indique qu'une erreur s'est produite sur le serveur*:

    System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.InvalidOperationException: Il existe une erreur dans le document XML. ---> System.InvalidOperationException: <Demande xmlns='http://schemas.microsoft.com/office/infopath/2003/myXSD/2005-09-23T12:28:27'> n'était pas attendu.
    à Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderDemandeNoteDeFrais.Read12_DemandeNoteDeFrais()
    --- Fin de la trace de la pile d'exception interne ---
    à System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
    à System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader)
    à WebServiceAD.Service1.EnregistrerNoteDeFrais(XmlNode MaNote) dans D:\Workspaces\Workflows\WebServiceAD\App_Code\UtilsAD.asmx.vb:ligne 493
    --- Fin de la trace de la pile d'exception interne ---
    Si je met un point d'arrêt dans mon serviceWeb
    Dans ce cas je retrouve bien toutes mes données, apperemment j'ai un problème de cast avec cette méthode.
    Je précise que pour envoyer les données d'infopath, je passe par la 2eme méthode Champs ou groupe/inclure

    Quelqu'un peut-il m'aider?

    Merci

  2. #2
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut Solution
    Ne pas suivre les instruction de microsoft

    Un collègue à configurer l'envoi d'info d'infopath :
    Champ et groupe : noeud racine
    inclure : Texte et élément enfant uniquement

    Et sur le WebService
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     <WebMethod()> Public Sub EnregistrerNoteDeFrais(ByVal MaNote As DemandeNoteDeFrais)
     
                Utilisateurs.ConnexionString = GetCNXWF()
            End Sub
    Donc je suis un peu dégouter, car j'ai essayé plein de combinaison différente mais je me suis borné à ne pas toucher à la liste inclure, me disant que microsoft devait savoir comment ça marche.
    Faut croire que dans mon cas, ça a loupé

    Mais bon, du momemt que ça marche ...
    Si quelqu'un peut m'expliquer pourquoi, je n'ai rien contre

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/02/2008, 13h53
  2. Réponses: 2
    Dernier message: 10/07/2007, 08h45
  3. Réponses: 8
    Dernier message: 06/07/2007, 08h03
  4. [Infopath 2007] fermeture form
    Par stephane eyskens dans le forum InfoPath
    Réponses: 19
    Dernier message: 16/04/2007, 18h49
  5. Infopath 2007 - Sharepoint List
    Par mschoum dans le forum InfoPath
    Réponses: 1
    Dernier message: 19/03/2007, 15h39

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