none
Identification de l'évènement : nouvelle version d'un document RRS feed

  • Question

  • Bonjour.

     

    J'ai développé un bout de code qui permet d'insérer la version du document en pied de page. Je voudrais simplement quel est l'évènement sur lequel placer ce code.

     

    Il faut que ce soit l'évènement qui est déclenché lors de la création d'un nouvelle version d'un docuement dans une bibliothèque.

     

    Merci, 

    jeudi 10 juillet 2008 08:55

Réponses

  • Bonjour,

     

    Vous devez attacher un évènement à votre bibliothèque et fournir une implémentation aux receivers suivant: ItemAdded et ItemUpdated. ItemAdded sera appelé lors de la création et itemUpdated lors de la modification.

     

    Attention cependant aux déclanchement circulaires : lors de l'éxection de votre reveiver ItemUpdated, si vous modifiez l'élément, alors ItemUpdated sera ré-appelé etc ... ==> pensez donc à désactiver le déclanchement des évenements (DisableEventFiring, puis EnableEventFiring).

     

    Ceci dit, vous pouvez également vous attacher au Receiver ItemCheckingIn, qui interviendra juste avant l'archivage de l'élément.

     

    Dites moi si je n'ai pas été assez clair

     

    Julien Chomarat

    http://www.sharepointofview.fr/julien/default.aspx

     

     

     

    jeudi 10 juillet 2008 15:53

Toutes les réponses

  • Bonjour,

     

    Vous devez attacher un évènement à votre bibliothèque et fournir une implémentation aux receivers suivant: ItemAdded et ItemUpdated. ItemAdded sera appelé lors de la création et itemUpdated lors de la modification.

     

    Attention cependant aux déclanchement circulaires : lors de l'éxection de votre reveiver ItemUpdated, si vous modifiez l'élément, alors ItemUpdated sera ré-appelé etc ... ==> pensez donc à désactiver le déclanchement des évenements (DisableEventFiring, puis EnableEventFiring).

     

    Ceci dit, vous pouvez également vous attacher au Receiver ItemCheckingIn, qui interviendra juste avant l'archivage de l'élément.

     

    Dites moi si je n'ai pas été assez clair

     

    Julien Chomarat

    http://www.sharepointofview.fr/julien/default.aspx

     

     

     

    jeudi 10 juillet 2008 15:53
  • Merci pour cette réponse très interessante.

     

    J'ai bien compris le prinicpe du redéclenchement de ItemUpdated lors d'une modification du document.

     

    Pouvez vous me donner un peu plus de détails consernant le receiver ItemCheckingIn ?

     

    vendredi 11 juillet 2008 07:25
  • Dans les listes de SharePoint, chaque éléments est dans un controleur de sources, ce qui veut dire qu'il faut extraire un élément avant de pouvoir l'éditer, et une fois les modifications effectuées, il faut archiver. Ces actions, en Anglais sont check out (extraire) et check in (archiver). L'extraction va empecher un autre utilisateur de modifier l'élément sur lequel vous travaillez. Lors de l'archivage, le numéro de version de l'élément sera incrémenté.

     

    L'idée est donc que vous pouvez intercepter un seul évènement, ItemCheckingIn plutot que les 2 évènements ItemAdded et ItemUpdated. En effet, vous devrez archiver votre élément, qu'il soit nouveau ou pas.

     

    Petite remarque, dans SharePoint vous pouvez intercepter un évènement en mode synchrone et en mode asynchrone. Dans la doc SharePoint, vous verrez par exemple les receiver ItemAdding et ItemAdded. ItemAdding va intervenir avant que l'action de l'ajout ne s'effectue, et ItemAdded après. Idem pour l'archivage, vous aurez ItemCheckingIn qui intervient avant l'archivage, et ItemCheckedIn qui intervient après. Dans votre exemple, il vaut mieux intervenir avant, donc ItemCheckingIn. On parle de mode synchrone (...ing) car vous pouvez annuler l'évenement, donc SharePoint attend que cet évènement soit fini avant de continuer. Le mode asynchrone (...ed) intervient après, donc vous n'avez plus la main sur l'action (ajout, modificatio etc ...).

     

    Julien Chomarat

    http://www.sharepointofview.fr/julien/default.aspx
    vendredi 11 juillet 2008 08:13