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

Configuration .NET Discussion :

Colonne de type "lookup" basée sur un champ du type "Person or group"


Sujet :

Configuration .NET

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Colonne de type "lookup" basée sur un champ du type "Person or group"
    Bonjour,


    Dans le cadre d'un projet en entreprise, je dois réaliser un site SharePoint utilisant la template "Employee Training" de Microsoft.

    Actuellement, lorsqu'une personne s'inscrit, un item associé apparaît dans une liste dédiée ("Registrations"), qui va attendre une approbation.
    Cette demande d'approbation est envoyée par mail aux Trainers, l'adresse mail étant à préciser dans la conception du Worklow.


    Ma question est : est-il possible d'envoyer les demandes de validation à telle ou telle personne en fonction du nom de l'inscrit ?
    Je m'explique ; tel que c'est maintenant, c'est une seule et même personne qui gère les validations.
    Or il faudrait que la demande de chaque employé soit respectivement envoyée à son manager (le workflow sera à modifier ensuite si je réussis à créer cette colonne).

    J'avais pensé à une colonne "lookup" qui se baserait sur le nom du créateur de l'élément (champ "Created by" dans l'item associé à l'inscrit), et sur une liste sharepoint associant chaque employé à son manager.

    Cependant, j'ai constaté dans mes recherches et mes essais qu'il n'est pas possible de créer une colonne de type "lookup" se basant sur un champ "Person or group".


    Pensez-vous que mon idée d'association employé/manager est réalisable ?


    Merci d'avance,

    Antoine

  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
    Bonjour,

    non il n'est pas possible de faire un lookup '"person".

    Pensez-vous que mon idée d'association employé/manager est réalisable ?
    Oui absolument, elle contiendra 2 colonne de type Person, une employé et une manager.

    Ensuite il faudra faire matcher "employé" avec le "Created"
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Je ne comprends pas très bien.

    Comment la 2ème colonne "manager" nouvellement créée va être approvisionnée, si un "lookup" sur le premier champ "created by" (soit la personne venant de s'inscrire) est impossible ?

  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
    Bonjour,

    2 listes.

    Liste A > Contient votre référentiel, Employée / Manager. Est alimenté une fois et ne bouge pas / n'est pas modifié par le WF.

    Liste B > Votre liste actuel, contient la colonne Created By.

    Votre workflow dans la moulinette va recherché un Employée.ID == Created By.ID, qui sera unique dans votre référentiel, on a donc identifié de manière unique le manager de votre employée
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup, en effet c'est une alternative !

    Il me vient une autre question ; si j'agrémente cette nouvelle liste, ce ne seront que des lignes de textes (j'ai une liste excel, que je copie via l'option "Edit in datasheet" de la liste).

    Comment le workflow pourra retrouver les coordonnées e-mail de la personne (manager) si ce n'est pas une valeur du type "Person or group" ?

    A moins qu'il ne soit possible de générer une liste complète à partir d'un groupe SharePoint déjà existant, composé uniquement de plusieurs éléments "Person or group" ?

  6. #6
    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
    Bonjour,

    Si vous ne mettez pas une colonne de type person or group, vous pourrez toujours bidouiller mais ce ne sera pas viable, et vous allez complexifier votre code pour "rechercher" votre employé de façon unique.

    En mode datasheet le copier coller de person or group ne fonctionnera pas car vous avez je pense dans votre excel "Nom Prenom" dans une colonne alors que sharepoint attend "LoginName".

    Je vois pas d'autres solutions que d'alimenter votre source référentiel à la main, mais une solution en deux temps peut vous aider grandement.

    Colonne "Employé" de type Person ,
    Colonne "Manager" de type Person,
    Colonne "Nom Employe" de type texte,
    Colonne "Nom Manager" de type texte,

    Ainsi vous avez la possibilité de généré une liste de référentiel pré-rempli. Ya plus qu'a remplir les cases de type Person
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    D'accord, donc si je comprends bien, vous suggérez d'insérer toutes les personnes et leurs managers en "texte", et manuellement d'aller les chercher pour remplir les champs "Person or group" ?

  8. #8
    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
    Absolument, le bénéfice des colonnes Person or group est trop important pour s'en priver!

    Il est possible une fois ce traitement effectué de sauvegarder via le mode data access toutes la liste pour un backup au cas ou
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Je vous remercie, c'est exactement les réponses que je cherchais !

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Après quelques essais et recherches, je me suis aperçu que ça ne fonctionnerait pas ; les ID de la liste des inscrits changent constamment (nouvelles formations, nouveaux inscrits), alors que ceux de la liste "Employés/Managers" sont fixes ; comment effectuer cette comparaison ?

    Je ne vois pas du tout comment, à partir du champ "Person or group" correspond à l'inscrit, aller chercher le nom du manager associé.

    Il faut également savoir que je n'ai pas accès à SharePoint Designer ; lorsque j'ai une modification à faire, je dois passer par l'administrateur.

    Merci d'avance,

    Antoine

  11. #11
    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
    Bonjour,

    Il faut utiliser l'objet SPQuery, qui permet de requeter des éléments, je recommande l'utilisation de Caml Builder, mais yen a d'autres.



    Je ne vois pas du tout comment, à partir du champ "Person or group" correspond à l'inscrit, aller chercher le nom du manager associé.
    Une personne s'inscrit, le champ Created By contient un objet SPUser. (CF MSDN)

    Il est très simple via votre liste de référentiel + une requete CAML de rechercher dans cette liste le SPUser correspondant, et donc son manager.


    Est ce clair?
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    A-t-on besoin de droits particuliers et d'accès à SP Designer pour utiliser cet outil ?


    Citation Envoyé par Lapinpanda Voir le message
    Il est très simple via votre liste de référentiel + une requete CAML de rechercher dans cette liste le SPUser correspondant, et donc son manager.
    Egalement, pour des soucis de maintient de la liste, il n'est pas pratique d'ajouter une colonne "Person or group" pour recopier tous les utilisateurs ;

    est-il possible de comparer un SPUser avec un objet de type texte (import de données excel) ?

  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
    A-t-on besoin de droits particuliers et d'accès à SP Designer pour utiliser cet outil ?
    Pas du tout.

    est-il possible de comparer un SPUser avec un objet de type texte (import de données excel) ?
    Comme je l'ai déjà dit, oui c'est possible, mais le développement pour avoir un algo qui cherche dans votre AD en fonction de valeur textuelles (nom + prénom) me semble bien plus compliqué et lourd à mettre en place que de manuellement indiquer à SharePoint dans les colonnes le bon SPUser...
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    J'ai pensé à une autre solution :


    Lorsque la personne clique sur une formation pour s'enregistrer (clic sur le nom de la formation, puis clic sur un bouton "My Registration"), un résumé apparaît (son nom, le nom de la formation, les dates de début/fin) avant qu'elle puisse valider par "OK".
    Une fois validée, son inscription, comme je l'expliquais, crée un nouvel item dans la liste "Registration".

    L'idéal serait d'ajouter un champ "Manager" à remplir juste avant qu'elle ne valide, et que ce champ vienne aggrémenter la liste "Registration", tout comme le nom de la formation et le "Created by", qui porte le nom de l'inscrit.

    Ayant pu explorer mon site grâce à SP Designer, voici ce que j'ai pu constater : ce résumé correspond en fait à une "data view web part", qui se base sur la page détaillant les infos de la formation après avoir cliqué dessus (la page contenant le bouton "My Registration", en somme).


    Comment pourrais-je ajouter un champ sur cette page, de type "Person or Group", qui doit être rempli par la personne avant de valider, et qui transmettrait l'information à la liste "Registrations" ?

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Travaillant également toujours sur la 1ère option, je me suis rendu compte de quelque chose : il n'est pas possible d'utiliser les requête CAML de manière automatique ?

    C'est à dire que lorsque la personne s'inscrit et créé automatiquement l'item dans liste "Registrations", n'est-il pas possible de compléter la colonne "Manager" en identifiant celui-ci automatiquement, de manière transparente ?

  16. #16
    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
    il n'est pas possible d'utiliser les requête CAML de manière automatique ?
    Le CAML est a destination des développeurs, et est massivement à utilisé soit même, il existe des tools permettant de minimiser le travail, mais bon...

    C'est à dire que lorsque la personne s'inscrit et créé automatiquement l'item dans liste "Registrations", n'est-il pas possible de compléter la colonne "Manager" en identifiant celui-ci automatiquement, de manière transparente ?
    Edit :
    Bah si, mais pas avec sharepoint designer, il faut faire un peu de dev, que se soit par code c# ou par (javascript + caml), et une liste référentiel pour matcher qui est le manager
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  17. #17
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    C'est dommage, avec SP 2010 le Workflow permet de faire simplement ceci, par le biais d'un "workflow lookup for a user", mais nous avons 2007, et je n'ai pour l'instant rien trouvé s'approchant de cette idée.

    Pensez-vous qu'il existe une autre voie, "simple" ?
    J'ai essayé de copier le nom de l'utilisateur par le biais de lookup (impossible avec un champ "Person or group"), ou de sources liées, pour pouvoir le comparer ensuite via un "Workflow lookup", ou "Lookup (Query base filtering)", mais ça ne fonctionne pas.

    Merci beaucoup pour votre avis.

Discussions similaires

  1. UPDATE en ajoutant un 0 sur un champ de type "char"
    Par doum2 dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/03/2006, 14h22
  2. select sur un champ de type LONG
    Par ppd dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2004, 18h19
  3. [Doublons] Unicité sur un champ de type TEXT
    Par PyRoFlo dans le forum Requêtes
    Réponses: 11
    Dernier message: 01/09/2004, 09h56
  4. Champs de type XML dans une base de données
    Par Flocodoupoil dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/07/2004, 18h57
  5. [VB6] Zone de liste modifiable basée sur un champ
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/11/2002, 13h41

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