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

InfoPath .NET Discussion :

repeating table, web service, requete update


Sujet :

InfoPath .NET

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 62
    Points
    62
    Par défaut repeating table, web service, requete update
    Bonjour a tous,

    J'ai un probleme casi-similaire au precedent. J'ai trouve une solution a mon probleme, mais elle est un peu scabreuse a realiser.

    je vous explique. J'ai dans mon formulaire Infopath une data connexion vers mon webservice effectuant une requete select. cette requete retourne une repeating table. Tout ca fonctionne sans probleme.

    ce que je voudrais, c'est renvoyer les donnees de ma repeating table vers mon webservice afin de faire une requete UPDATE.

    Pour effectuer ca, j'avais pensais faire une boucle avec comme test d'arret le nbre d'elements ds ma repeating table et d'appeler ma methods update a chaque nouvelle ligne de la repeating table. mais cela est complexe et lourd pour l'execution des donnees.
    Je pensais aussi pourquoi ne pas renvoyer ma repeating table a mon webservice et ensuite dans le webservice effectuer la requete.

    y a t-il une facon d'optimiser ces enregistrements ?

    merci de vos conseils

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Comme tu le dis très bien un appel avec beaucoupo de données et plus perfommant que 10 fois un petit appel.

    Donc envoi ton noeud parent qui contient tes éléments répétitif et dans ton webservice fait une boucle sur ces élément et insérent les un a un.

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    bonjour, je retourne donc mon noeud selectionned ans mon webservice sous format string. Mais petit probleme, il me retourne toutes mes valeurs collees les unes aux autres de cette facon :

    2087881BeakBane10DELIVERED2087883Midland11N/A2087885THK
    Il m'est donc difficile de cerner les balises. Comment faire dans ce cas ?

    A l'origine, mon fichier xml qu'Infopath recoit pour afficher mes donnees est tel qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <blocktotal id_block="2"> /block que j'ai selectionne dans mon code infopath
           <description id="1">
              ....
           </description>
           <description id="2">
              ....
           </description>
    </blocktotal>

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Si je peux pas voir le code que tu as dans ton webservice je ne pourrais jamais te dire qu'es-ce qu'il y a de faux.

    Je veux voir les deux codes celui qui envoie et celui qui traite le résultat dans le webservice.
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Code in Infopath

    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
     
    'select the ID of Description Block thanks to the xml_incrementation using in the button
    Dim ID As String = Me.DataSources("xml_incrementation").CreateNavigator().SelectSingleNode("/dfs:myFields/dfs:dataFields/tns:xml_incrementationResponse/tns:xml_incrementationResult/Extra/BlocToSee", NamespaceManager).Value
    Dim Area As String = Me.DataSources("Supplier").CreateNavigator().SelectSingleNode("/dfs:myFields/dfs:queryFields/tns:Supplier/tns:area", NamespaceManager).Value
     
    'Connect to the data connection to select the infomation
    Dim conn As XPathNavigator = Me.DataSources("Supplier").CreateNavigator()
     
    'Select the noeuds what we need in function of the BlocToSee field
    Dim XPath As String = "/dfs:myFields/dfs:dataFields/tns:SupplierResponse/tns:SupplierResult/Supplier/BLOCKTOTAL[@id_block='" + ID + "']"
    Dim ligneSelect As XPathNavigator = conn.SelectSingleNode(XPath, NamespaceManager)
     
    Dim test As String = ligneSelect.ToString
     
    'Dim WsSave As save_infopath.Update = New save_infopath.Update()
    'send the data in the webservice in calling the method
    'WsSave.UPDATE_Supplier(test)
     
    'post my receive data in a text-box
    Dim Description As XPathNavigator = Me.MainDataSource.CreateNavigator.SelectSingleNode("/my:myFields/my:result_Supplier", NamespaceManager)
    Description.SetValue(test)
    Sur mon webservice, j'avais creer un code pour un fichier XML et comme ca ne fonctionnais pas, j'ai mis en commentaire du cote infopath l'apel a ma methode et j'ai renvoyer ma data dans une texte box.

  6. #6
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    écoute il existe des méthode qui sont décrit dans l'aide de Visual studio qu'il faudrait consulter avant de poster.

    .Value et .toString ne renvoit que la valeur du champ pas les balises.

    Tu dois utiliser outerxml ou innerxml je te laisse consulter l'aide pour voir la différence entre ces méthode.

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

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

Discussions similaires

  1. [MySQL] relier plusieurs tables dans une requete "update" en mysql
    Par ainuod dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/06/2011, 19h45
  2. Creer une requete update qui recupere les données de 2 tables
    Par pooi1 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/06/2007, 13h13
  3. [WD10] Requete Update sur 2 tables
    Par mogwai162 dans le forum WinDev
    Réponses: 2
    Dernier message: 29/03/2007, 13h49
  4. [Web Service] [SOAP] Envoie requete
    Par _beber85 dans le forum JDBC
    Réponses: 1
    Dernier message: 08/06/2006, 09h31
  5. [update]deux tables dans la requete
    Par thief dans le forum Oracle
    Réponses: 2
    Dernier message: 02/09/2005, 16h45

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