Précédent   Forum du club des développeurs et IT Pro > Dotnet > Général Dotnet > Développement Office System > InfoPath
InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/08/2012, 13h31   #1
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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 !
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2012, 20h22   #2
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/08/2012, 02h53   #3
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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 ^^ ?
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2012, 10h05   #4
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2012, 12h47   #5
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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 ?
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2012, 14h22   #6
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2012, 15h49   #7
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2012, 18h05   #8
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2012, 19h19   #9
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2012, 10h10   #10
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 13h26   #11
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 20h54   #12
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2012, 11h53   #13
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2012, 12h13   #14
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2012, 16h20   #15
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
\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 .
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2012, 16h43   #16
Catarssis
Nouveau Membre du Club
 
Homme Sed T
Développeur SharePoint 2010
Inscription : juillet 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Sed T
Localisation : Maroc

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

Informations forums :
Inscription : juillet 2011
Messages : 76
Points : 34
Points : 34
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 ...
Catarssis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2012, 10h39   #17
billout rm
Membre chevronné
 
Avatar de billout rm
 
MVP InfoPath
Inscription : juillet 2007
Messages : 648
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : MVP InfoPath

Informations forums :
Inscription : juillet 2007
Messages : 648
Points : 760
Points : 760
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
MVP InfoPath
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.
billout rm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h06.


 
 
 
 
Partenaires

Hébergement Web