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 :

Récupération des valeurs d'un champ dans une section extensible


Sujet :

InfoPath .NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut Récupération des valeurs d'un champ dans une section extensible
    Bonjour s'il vous plait j'aimerais savoir comment faire pour récuperer les valeurs dans champs "C1" dans une section extensible , j'ai esseyé le code suivant mais ca ne marche pas :

    XPathNodeIterator nodes = MainDataSource.CreateNavigator().Select("/dfs:myFields", this.NamespaceManager);
    string field1 = string.Empty;
    foreach(XPathNavigator node in nodes)
    {
    field1 = node.SelectSingleNode("/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:Valeur", this.NamespaceManager).Value;
    }

    le count de "nodes" est a 0 , alors que quand je met l'XPath d'un champ de la source de données principal je reçois ce que je veux , et ma source de données viens d'une liste sharepoint ...
    aidez moi s'il vous plait !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Désolé je suis en vacances donc je ne traite pas trop actuellement sur les forums. Je vous réponds directement sur le forum pour votre MP (ça pourrait aider la communauté).

    Pour votre problème, le XPathNodeIterator renvoie 0 lorsque l'expression à étudier n'est pas correcte. Si vous souhaitez utiliser une source de données secondaire, vous ne pouvez pas l'attaquer par le MainDataSource qui correspond comme son nom l'indique à la source de données principale.


    En suivant ce post, vous arriverez à votre bonheur : http://www.infopathdev.com/forums/p/9471/33542.aspx

    Bon dév!
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Merci pour votre interet , en faite oui, c'était un probleme de datasource , maintenant le gros soucis , c'est que je veux inserer les données que j'ai récuperé dans une liste SharePoint .. , vous avez une idée pour faire cela ^^ ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Pour cela vous allez devoir utiliser du code managé.

    Si vous utilisez InfoPath Forms Services (version Web), le formulaire est ouvert dans le contexte SharePoint et vous pouvez utiliser le modèle objet de SharePoint en référençant la dll "Microsoft.SharePoint". Vous pouvez suivre ce genre tuto que vous trouverez partout sur Internet : http://www.mindfiresolutions.com/Add...epoint-372.php


    Si vous ne pouvez pas utiliser le modèle objet (si vous utilisez InfoPath en version cliente, le formulaire n'est pas ouvert dans le contexte SharePoint), vous pouvez utiliser les web services SharePoint pour rajouter un élément.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Bonjour ^^ ,

    mon formulaire est ouvert sur Web effectivement , donc j'essai d'inserer les enregistrement de cette façon :

    using (SPSite oSPsite = new SPSite("http://website url/"))
    {
    using (SPWeb oSPWeb = oSPsite.OpenWeb())
    {
    oSPWeb.AllowUnsafeUpdates = true;

    // Fetch the List
    SPList list = oSPWeb.Lists["MyList"];

    //Add a new item in the List
    SPListItem itemToAdd = list.Items.Add();
    itemToAdd["Title"] = "Test Title";
    itemToAdd["Description"] = "Test Description";
    itemToAdd.Update();
    }
    } ...

    Mais j'ai un souci pour ouvrir le site avec cette méthode :
    using (SPSite oSPsite = new SPSite("http://website url/"))
    j'ai vérifié et revérifié mon URL et rien , probléme d'accés, alors que quand j'y accéde depuis du code Visual Studio ça marche .. , mais depuis InfoPath non ... sauriez-vous pourquoi ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Attention il ne faut pas coder les URL en dur...
    Vous pouvez utilisez les méthodes SPContext.Current.Site et SPContext.Current.Web pour récupérer les SPSite et SPWeb du site sur leque vous êtes connecté.

    Ensuite si vous êtes en SharePoint 2010, il faut vérifier la cible de génération 32 bits ou 64 bits. Un "SPSite" instancié en 32 bits vous renverra une erreur car le SharePoint est monté en 64 bits.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Effectivement j'aimerai bien ne pas entrer l'URL brute comme ça mais le :
    -SPContext.Current.Site
    -SPControl.GetContextSite(HttpContext.Current)
    ne marchent pas. (sur Visual Studio(dév de workflow))

    Cordialement

  8. #8
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Rebonjour,

    Je n'ai pas suivi la fin de votre réponse : vous développez un workflow ou un formulaire InfoPath avec code managé?

    Si vous êtes dans InfoPath, la méthode "SPContext.Current.Site" fonctionne correctement car j'utilise ce principe dans tous mes projets.
    Par contre, pour que cela fonctionne, il faut débugguer le formulaire directement depuis SharePoint.

    Si vous développez un workflow avec workflow foundation, il faudra utiliser l'objet WorkflowProperties qui comprend des propriétés pour récupérer le SPWeb et le SPSite.

    Cordialement.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    j'ai pu récupéré le site avec workflowProperites.SiteUrl.toString();
    mais il me retourne "http://Site.com" alors que j'ai besoin de subsite qui est par exemple "http://Site.com/Proto" :S

    Cordialement

  10. #10
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    En effet,
    Le "workflowProperties.SiteUrl.toString()" vous renvoie l'url de la racine de la collection de sites.

    Vous devez donc utiliser "workflowProperties.Web.Url"
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Bonjour ,c'est bon j'ai pu avoir l'URL.
    maintenant pour ouvrir le site depuis du code infopath
    j'ai utilisé la méthode

    using (SPSite site = new SPSite(SPContext.Current.Web.ToString()))
    {
    using (SPWeb web = site.OpenWeb())
    {..

    et même pour manipuler la méthode de chargement du formulaire, il me sort l'erreur suivante :

    System.Security.SecurityException
    Request for the permission of type 'Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' failed.
    at Planification_des_tâches.FormCode.Groupe_Changed(Object sender, XmlEventArgs e)
    at Microsoft.Office.InfoPath.Internal.XmlEventHost.GenericProxy(Object genericDelegate, DataDOMEvent dataDOMEvent, InfoPathEvents type)
    at Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_SinkHelper.OnAfterChange(DataDOMEvent pDataDOMEvent)

    j'ai modifié les persmissions au niveau du webconfig a Medium au lieu de Minimal mais rien .. :S

    Cordialement

  12. #12
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,
    Est-ce que l'utilisateur avec lequel vous êtes connecté possède assez de droits sur le site SharePoint en question? Si ce n'est pas le cas, il faut utiliser ce que l'on appelle le RunWithElevatedPrivileges:

    http://blogs.msdn.com/b/sowmyancs/ar...b-context.aspx
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Bonjour ,
    Comment savoir les droit de mon utilisateur sur le site SharePoint ? car je suis en session administrateur .. , normalement je devrais avoir tous les droits ..

    Cordialement

  14. #14
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    En effet, ce ne peut-être ça!
    Du coup la seule explication est que vous n'avez pas modifié le niveau d'autorisation dans votre formulaire InfoPath...

    Pour cela il faut :
    - Ouvrir votre formulaire InfoPath en mode design,
    - Aller dans option du formulaire
    - Aller sur l'onglet “Sécurité et approbation".
    - Désélectionner “Déterminer automatiquement le niveau de sécurité”
    - Cocher Confiance totale,
    - Enregistrer pour publier le formulaire.

    Et normalement après ça, ça rocks!
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    \O/ ca marche, merci beaucoup pour ton aide ^^ ,
    mais ce qui est bizarre , c'est que ca marche en mode débugge (j'ai entré l'url à la place du Context...) mais quand je publie et j'essai de le faire depuis le site , ca ne marche pas :S .

  16. #16
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    et j'ai un autre soucie, et je crois que c'est la meme erreur qui fait que ca ne marche pas coté web , c'est que quand j'ajoute du code a mon formulaire , je ne peux plus l'ouvrir en mode web , il s'ouvre en infopath ...

  17. #17
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Il faut dans ce cas vérifié dans les "options du formulaire" dans l'onglet "Compatibilité" si votre formulaire est en mode "Formulaire Web".
    Ensuite il faut vérifier dans votre bibliothèque SharePoint si le mode d'ouverture est défini à "Ouvrir dans le navigateur" (dans les paramètres avancés de la bibliothèque).

    Avec ça, vous devrez être bon.
    Par contre, il faudrait recréer un post à chaque nouvelle question afin que les utilisateurs ne puissent s'y retrouver.

    Cordialement.
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2014, 13h57
  2. [IP-2010] Modifier un champs dans une section extensible
    Par benx94 dans le forum InfoPath
    Réponses: 1
    Dernier message: 14/06/2013, 22h23
  3. [MySQL] récupération des valeurs d'un formulaire d'une page dans une autre page
    Par CSI2012 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/02/2013, 13h43
  4. Réponses: 2
    Dernier message: 30/11/2007, 17h54
  5. Réponses: 1
    Dernier message: 19/03/2006, 20h52

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