none
Requête CAML sur liste de tâches RRS feed

  • Question

  • Bonjour,

     

    J'ai pour objectif de développer une webpart affichant toutes les tâches affectées à l'utilisateur connecté dans l'ensemble de SharePoint (23 collections de site différentes)

     

    Pour faire cela je me suis dit que la meilleure facon était une requete CAML sur la collection de site sur chacune des collections pour récupérer ce qu'il me faut (statut, échéance, url de la collection, url de la tâche...)

     

    J'arrive a effectuer la requete mais je ne sais pas comment récupérer l'url de la tache :

     

    en effet j'arrive avec EncodedAbsUrl à avoir l'URL de la liste, mais pour avoir l'item je ne trouve pas le parametre, sachant que FileRef ou autre me donne des valeurs du style 5_.000

     

    Comment faire pour avoir l'url de l'élément ??

     

    Pensez vous que la méthode choisie soit la bonne ?

     

    Merci.

    lundi 19 janvier 2009 10:44

Réponses

  • Bonjour,

     

    par expérience je peux vous dire que cette technique peut considérablement poser problème. Pourquoi ? Tout simplement parce que les requêtes effectuées sont couteuses et qu'elles peuvent prendre suffisament de ressources pour mettre votre plateforme à genoux. Bien sûr, celà dépend du nombre de sites et de la plateforme que vous avez, mais considérez que si par chance le problème ne se pose pas aujourd'hui, il se posera demain.

     

    L'alternative est selon moi un traitement non temps réel, via un job SharePoint par exemple. Le principe repose sur le fait que vous précalculez les relations utilisateur/tâche pendant la nuit (par exemple) pour les stocker dans un fichier (idéalement un fichier XML) pour les afficher le reste de la journée. Evidemment, le problème est que les tâches récemment saisies n'apparaitront pas...

     

    Quoi qu'il en soit l'approche job SharePoint me parait plus pertinente. Déjà parce que l'approche temps réel est trop dangereuse pour vos sites. Ensutie parce que les jobs SharePoint peuvent tourner sur un ou des serveurs spécifiques (et laisser les serveurs frontaux tranquilles pendant que des serveurs de traitement s'occupent du travail). Enfin parce que le job peut tourner périodiquement, chaque nuit et/ou chaque midi (dans le cas de serveurs de traitement). Libre à vous d'intituler alors votre webparts "les tâches qui vous étaient assignées ce matin/ce midi..."

     

    En ce qui concerne l'URL, il vous faudra concaténer l'URL de votre liste / dossier (SPFolder) avec le name de votre tâche.

     

    Cordialement,

     

    lundi 19 janvier 2009 15:44
    Modérateur

Toutes les réponses

  • Bonjour,

     

    par expérience je peux vous dire que cette technique peut considérablement poser problème. Pourquoi ? Tout simplement parce que les requêtes effectuées sont couteuses et qu'elles peuvent prendre suffisament de ressources pour mettre votre plateforme à genoux. Bien sûr, celà dépend du nombre de sites et de la plateforme que vous avez, mais considérez que si par chance le problème ne se pose pas aujourd'hui, il se posera demain.

     

    L'alternative est selon moi un traitement non temps réel, via un job SharePoint par exemple. Le principe repose sur le fait que vous précalculez les relations utilisateur/tâche pendant la nuit (par exemple) pour les stocker dans un fichier (idéalement un fichier XML) pour les afficher le reste de la journée. Evidemment, le problème est que les tâches récemment saisies n'apparaitront pas...

     

    Quoi qu'il en soit l'approche job SharePoint me parait plus pertinente. Déjà parce que l'approche temps réel est trop dangereuse pour vos sites. Ensutie parce que les jobs SharePoint peuvent tourner sur un ou des serveurs spécifiques (et laisser les serveurs frontaux tranquilles pendant que des serveurs de traitement s'occupent du travail). Enfin parce que le job peut tourner périodiquement, chaque nuit et/ou chaque midi (dans le cas de serveurs de traitement). Libre à vous d'intituler alors votre webparts "les tâches qui vous étaient assignées ce matin/ce midi..."

     

    En ce qui concerne l'URL, il vous faudra concaténer l'URL de votre liste / dossier (SPFolder) avec le name de votre tâche.

     

    Cordialement,

     

    lundi 19 janvier 2009 15:44
    Modérateur
  • Merci pour ces informations, je vais donc revoir ma méthode de traitement...

     

    Pensez vous dans ce cas qu'il pourrait etre pertinent de déployer des events (sur l'ajout et la modification) d'éléments de toutes les listes de tâches, de maniere à tenir le fichier xml à jour et d'avoir un affichage en temps réel ?

     

    Auriez vous de plus des exemples de webpart récupérant des infos depuis un fichier XML ? n'ayant jamais fait cela j'aimerais le plus d'informations possibles afin d'éviter des erreurs...

     

    Merci !

     

    vendredi 23 janvier 2009 09:55