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

SharePoint .NET Discussion :

Lien avec paramètre dynamique [SP-2007]


Sujet :

SharePoint .NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut Lien avec paramètre dynamique
    Bonjour,

    Je souhaiterais créer un lien (url) vers une application tierce depuis Sharepoint.
    Ce lien se construisant de manière dynamique avec passage d'un paramètre propre à l'utilisateur Sharepoint connecté.

    Comment procéder ?
    Merci d'avance.

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Sharepoint Designer 2007.
    Création d'une page ASPX.
    Passe en mode design.

    A partir de la tu verra plusieurs options te permettant d'insérer/de travailler avec des paramètres server tel que current User, il en existe d'autres

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Citation Envoyé par Lapinpanda Voir le message
    A partir de la tu verra plusieurs options te permettant d'insérer/de travailler avec des paramètres server tel que current User, il en existe d'autres
    Pour pouvoir accéder à ces paramètres serveur, il faut insérer un DataSource particulier ?

  4. #4
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    hum bonne question.

    ma datasource c'était une custom list, mais tu peux en choisir d'autres, meme des fichiers xml.


    Il faut passer par DataView -> insert dataview


    Peux être que cela ne sera pas la solution parfaite, mais cela t'indiquera comment cela peut se faire

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    En suivant ce ticket j'ai réussi à afficher :

    • les variables serveurs (Location="ServerVariable") qui correspondent aux variables du serveur IIS (liste des variables ici )
    • les variables CAML (Location="CAMLVariable") dont je ne sais pas trop à quoi elles correspondent et où en trouver une liste.


    Pour résumer, si je dois récupérer des informations spécifique du User connecté (Département, téléphone,...) il faudra que je passe par du code behind ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Salut,

    Normalement non, il te suffit d'un composant webpart (avec xslt) dans lequel tu définis ce paramètre (et sa valeur par défaut). Ceci aura pour effet de créer un parameterbinding qui lui-même sera utilisé comme variable dans ton/tes template(s) xslt.

    Pour avoir une idée de comment faire, importe un list view web part quelconque, convertis-le en vue xslt et décortique le début des templates générés.

    Edit : tu peux également chercher un paramètre dans la querystring, dans un formulaire, dans un control ou encore dans un cookie

    Re-édit : Clic droit sur composant WP / Paramètres pour accéder au menu définissant les paramètres.

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Citation Envoyé par nonoxp Voir le message
    Normalement non, il te suffit d'un composant webpart (avec xslt) dans lequel tu définis ce paramètre (et sa valeur par défaut). Ceci aura pour effet de créer un parameterbinding qui lui-même sera utilisé comme variable dans ton/tes template(s) xslt.
    Ok pour la création d'un composant WebPart
    Ok pour la définition d'un paramètre
    Ok pour l'utilisation de ce paramètre dans du code XSLT

    Mais comment affecter à ce paramètre une information propre à l'utilisateur courant. Exemple de paramètre que l'on retrouve sur la page "_layouts/userdisp.aspx" page sur laquelle on tombe quand on clique sur un utilisateur quelconque.

    Désolé si je suis lourd

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Exact, j'avais oublié que tu voulais les autres infos de l'utilisateur.

    Et bien, je crois qu'il n'y a pas 36 solutions si on veut éviter de le faire en code behind : passer par un webservice.

    La procédure :
    Dans SPD, Bibliothèque de source de données", "Services web XML", tu crées une connexion à un service web.
    Onglet Source, l'emplacement est [tonsite]/_vti_bin/UserGroup.asmx?WSDL (Voir commentaire en fin de post, il y a un bug connu avec les AAM).
    Se connecter maintenant.
    Dans Opération : sélectionner GetUserInfo.
    Dans les propriétés du paramètre userLoginName, mets en un par défaut pour tester et fais en sorte que ce soit WebPart-ement connectable.
    Au besoin, définis une méthode de connexion dans l'onglet suivant.
    Ok, afficher les données de cette source pour voir si ça se connecte bien.

    Insertion / Contrôle SP / Vue de données et Drag&Drop ta source de données WebService dessus.

    Il ne te reste plus qu'à définir les champs à afficher et faire ta connexion webpart pour le rendre plus dynamique.

    Ouf...

    Commentaire du bug connu :
    A prendre en compte si tu utilises comme moi des AAM (Mappages d'accès) sur une zone autre que default, sans avoir fait d'extension d'application web (2ème site IIS) pour cette zone.
    Le webservice ne se connecte tout simplement pas. En effet lors de l'affichage des données, tu vas avoir une erreur textuelle complètement bizarre qui a juste le mérite de dire que ça marche pas.
    Pour contourner le problème, il faut aller dans la liste des dossiers, _catalogs, fpdatasources. Là il devrait y avoir un xml du nom de ta connexion au web service créé précédemment. Trouve l'adresse de ton serveur et remplace le hostname public avec le hostname local (celui de la zone default). Ca doit se connecter après ça.

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Bonjour,

    Certaines opérations de ce WebService me retourne des données mais pour l'opération "GetUserInfo" il me retourne cette erreur.

    The server returned a non-specific error when trying to get data from the data source. Check the format and content of your query and try again.

  10. #10
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    GetUserInfo attend un ID, peux etre celui que tu donne ne correspond à rien dans sharepoint?

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Ok autant pour moi, il fallait que je fournisse le LoginUserName.

    Merci à tous les deux.

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Vu votre bonne volonté je vais abuser encore un peu

    1-
    Les datafields proposés par défaut par le WebService sont les suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <datafields>@ID,ID;@Sid,Sid;@Name,Name;@LoginName,LoginName;@Email,Email;@Notes,Notes;@IsSiteAdmin,IsSiteAdmin;@IsDomainGroup,IsDomainGroup;</datafields>
    afin d'avoir des données supplémentaires je le modifie en rajoutant deux fields supplémentaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Department,Department;@JobTitle,JobTitle;
    mais ceux-ci, contrairement aux autres, ne me retournent aucun résultat.

    2-
    Ma source de données me renvoie les informations de l'utilisateur que j'ai mis par défaut dans userLoginName.
    Maintenant si j'ai bien compris depuis une autre WebPart de la même page, qui se charge de récupérer l'utilisateur courant (via ServerVariable(LOGON_USER) par exemple) j'établis une connection afin de passer ce paramètre à ma nouvelle WebPart et initialiser le userLoginName avec ce paramètre ?

  13. #13
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    1 - Les datafields proposés par défaut par le WebService sont les suivants

    Ce ne sont pas des fields par défaut, c'est uniquement ce que propose de retourner ce webservice, tu ne peux pas le modifier ni rajouter d'autres fields, a moins de créer ton propre web services

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Citation Envoyé par Lapinpanda Voir le message
    1 - Les datafields proposés par défaut par le WebService sont les suivants

    Ce ne sont pas des fields par défaut, c'est uniquement ce que propose de retourner ce webservice, tu ne peux pas le modifier ni rajouter d'autres fields, a moins de créer ton propre web services
    Ok. Il est possible de récupérer et modifier le code de ces WebServices livrés par défaut ou faut se débrouiller comme un grand ?

  15. #15
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    ce sont les webservices de sharepoint, si tu veux modifier sharepoint amuses toi

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    C'est du MOSS ? Je n'en ai pas vraiment l'habitude mais je sais que la gestions des utilisateurs est plus poussée donc je pense qu'il doit y avoir d'autres webservices fournis.

    De plus, si c'est du MOSS, il me semble que tu peux t'en sortir astucieusement avec le composant qui fait une Recherche car le résultat renvoyé est un datasource bien propre et utilisable facilement.

    Sinon, il faudra passer par la case dév. code behind.

  17. #17
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Citation Envoyé par nonoxp Voir le message
    C'est du MOSS ?
    Oui
    Citation Envoyé par nonoxp Voir le message
    Je n'en ai pas vraiment l'habitude mais je sais que la gestions des utilisateurs est plus poussée donc je pense qu'il doit y avoir d'autres webservices fournis.
    Je ne sais pas, impossible de mettre la main sur la liste des WebServices MOSS.
    Edit : Ah si http://msdn.microsoft.com/en-us/libr...ice.12%29.aspx

    Citation Envoyé par nonoxp Voir le message
    De plus, si c'est du MOSS, il me semble que tu peux t'en sortir astucieusement avec le composant qui fait une Recherche car le résultat renvoyé est un datasource bien propre et utilisable facilement.
    Sur la page peopleresults.aspx ?

    Citation Envoyé par nonoxp Voir le message
    Sinon, il faudra passer par la case dév. code behind.
    Quand j'en serai là, j'aurais encore besoin de tes services

  18. #18
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    le webservicexs people.asmx est sympa aussi

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

Discussions similaires

  1. Path d'un forward avec paramètres dynamiques
    Par adilooo dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/04/2008, 16h56
  2. [CR XI] problème avec paramétres dynamiques
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 14/03/2008, 12h01
  3. [DB2] Requête avec paramètre dynamique
    Par tsyfar dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/06/2007, 10h26
  4. [Tableaux] Lien avec paramètre dans un tableau
    Par leeloo1902 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2007, 16h02
  5. Problème de lien avec paramêtre et facelets
    Par Tikaf dans le forum JSF
    Réponses: 2
    Dernier message: 08/01/2007, 11h14

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