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 :

EventHandler & message d'erreur


Sujet :

SharePoint .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut EventHandler & message d'erreur
    Bonjour, je cherche un moyen de pouvoir valider le contenu d'un document uploadé, et de remonter à l'utilisateur une erreur si le fichier uploadé n'est pas validé convenablement.
    J'ai un eventHandler "ItemAdded" me permettant de lire le contenu du fichier uploadé.
    Cependant, d'après ce que j'ai trouvé sur le net et confirmé par mes test, il n'est pas possible d'utiliser les propriétés natives SharePoint (ErrorMessage et Cancel) sur les évènements asynchrone (le cas de ItemAdded), et il n'est pas possible de lire le contenu d'un fichier uploadé en asynchrone (ItemAdding).

    En résumé, sur ItemAdded je peux lire le fichier, et sur ItemAdding afficher un message d'erreur. Cependant, l'ordre des méthodes et ItemAdding puis ItemAdded.

    Une idée pour pouvoir remonter l'erreur ?
    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 760
    Par défaut
    Salut,

    Le comportement que tu décris montre que tu as quasiment compris comment fonctionne les event receiver, il t'en manque juste un bout.

    Lorsque tu utilises les événements en -ing ou encore événement before, ton code s'exécute avant l'opération.

    C'est notamment la raison pour laquelle tu peux annuler l'upload d'un document (car il n'a pas encore été réalisé), mais c'est aussi la raison pour laquelle tu ne peux pas en lire le contenu (il n'existe pas encore pour sharepoint, vu qu'il n'a pas encore été rajouté).

    Pour les événements en -ed ou encore événements after, qui s'exécutent effectivement de manière asynchrone, ils s'exécutent une fois l'opération réalisée; c'est la raison pour laquelle tu ne peux plus annuler ton événement (car il a déjà été réalisé !) et aussi tu peux accéder à ton document (il existe déjà).

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut
    Ok merci, mais du coup comment faire pour contrôler le document uploadé et retourner un message d'erreur d'explication pour l'utilisateur ? Il y a forcément un moyen ou une ruse pour le faire ?

    J'ai pensé à déclenché une suppression du fichier uploadé, et donc la méthode en ed de la suppression (ItemDeleted) se déclenche (où il est possible d'afficher un message) mais le message n'apparait pas, cependant lorsque je supprime le document depuis l'interface, le message apparait (je pense que c'est parce que j'appelle une méthode synchrone depuis une méthode asynchrone et c'est cette dernière qui est mettre sur l'autre donc mon message ne peut apparaitre.

    Y a bien un moyen tout de même, et une redirection vers une page d'erreur c'est possible ? (si oui comment ?)

    Merci

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 760
    Par défaut
    A ce moment, fais ta validation dans le ItemAdded, puis fais un Server.Transfer dans vers une page d'erreur Custom si ton document n'est pas valide.

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut
    je ne trouve pas la méthode "Server.Transfer", je dois y accéder depuis l'objet SPItemEventProperties en paramètre de la méthode ItemAdded ? Sinon comment ?
    merci

  6. #6
    Membre émérite
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Par défaut
    Il me semble que sur evénement "-ing", tu récupére des informations sur l'item que tu vas rajouter...
    Notamment par "properties.AfterProperties["macolonne"]",

    Peut-être peux tu te débrouiller à partir de cette propriété...
    Un coup de debug la dessus pourra te donner les indications nécessaires.


    Cordialement

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2005
    Messages : 56
    Par défaut
    Bonjour,

    Pourquoi ne pas envoyer un e-mail à l'utilisateur dans le ItemAdded ?

    La fonction est SPUtility.SendEmail

    A mon avis c'est le plus simple, cependant le retour n'est pas immédiat (le fichier est tout de même ajouté).

    Cordialement,
    Edgar Maucourant
    Consultant / Formateur SharePoint (Admin, Dev, Fonctionnel)
    http://blog.nftinside.com

  8. #8
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut
    Citation Envoyé par STEMax Voir le message
    Bonjour,

    Pourquoi ne pas envoyer un e-mail à l'utilisateur dans le ItemAdded ?

    La fonction est SPUtility.SendEmail

    A mon avis c'est le plus simple, cependant le retour n'est pas immédiat (le fichier est tout de même ajouté).

    Cordialement,
    Edgar Maucourant
    Consultant / Formateur SharePoint (Admin, Dev, Fonctionnel)
    http://blog.nftinside.com
    j'y ait pensé, mais c'est tout de même pas terrible d'avoir une gestion d'erreur par email.

Discussions similaires

  1. [TSocket] Message d'erreur
    Par rgz dans le forum Web & réseau
    Réponses: 6
    Dernier message: 04/07/2003, 09h16
  2. Surcharger le message d'erreur après un OnException
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 11h42
  3. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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