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

Développement Sharepoint .NET Discussion :

[SP 2007] Problème de mise à jour d'un élément avec EventHandler


Sujet :

Développement Sharepoint .NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut [SP 2007] Problème de mise à jour d'un élément avec EventHandler
    Bonjour,

    J'ai fait un petit EventHandler qui permet à l'ajout d'un élément de remplacer ses " " par "_". Le problème c'est qu'il me retourne une exception quand j'essaye de mettre à jour l'élément :

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    properties.ListItem.Update();
    properties.ListItem.SystemUpdate();
    properties.ListItem.UpdateOverwriteVersion();
    PS : L'EventHandler est déployé sur une bibliothèque de documents

    Cdt.

  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
    - Donne plus de code stp
    - Tu travail sur une liste ou sur une document library?
    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 membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    C'est sur une bibliothèque de document, mais je n'ai pas fait de xml car j'utilise EventHandlerExplorer pour le déployer sur ma bibliothèque de docs.

    Voici le corps de ma méthode ItemAdded
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
                     try
                    {
                        string nom = properties.ListItem["LinkFilename"].ToString();
     
                        //On remplace chaque " " par "_"
                        nom = nom.Replace(" ", "_");
     
                        //On met à jour 
                        properties.ListItem["LinkFilename"] = nom;
                        properties.ListItem.Update();
                    }
                    catch (Exception e)
                    {
                        Debug.error("Erreur dans l'EventHandler" + e.StackTrace);
                    }

  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
    Voici le corps de ma méthode ItemAdded
    Conseil : ItemAdded ==> l'élément a déjà été ajouté et précedemment sauvegarder. Je te déconseille fortement de faire ainsi.
    Utilise ItemAdding, l'avantage est que tu n'aura même pas besoin d'appeller de méthode Update(), tu fera juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     string nom = properties.ListItem["LinkFilename"].ToString();
     
                        //On remplace chaque " " par "_"
                        nom = nom.Replace(" ", "_");
     
                        //On met à jour 
                        properties.ListItem["LinkFilename"] = nom;
    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 membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    Ok je te remercie, je vais essayer de faire comme ça

  6. #6
    Membre averti
    Homme Profil pro
    Consultant SharePoint
    Inscrit en
    Mars 2006
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 270
    Points : 308
    Points
    308
    Par défaut
    Attention à 2 choses :
    - Le champ LinkFilename est peut être ReadOnly => utiliser le champ Title du SPFile (si bibliothèque de documents)

    Attention également aux droits, tu devra peut être mettre ton code dans un bloc SPSecurity.RunWithElevatedPrivileges (delegate(){ ton code ici }); pour exécuter le code avec le compte système.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    Quand je passe par ItemAdding, mon EventHandler me renvoie une exception dès le début de mon code. Je ne comprend pas pourquoi

  8. #8
    Membre averti
    Homme Profil pro
    Consultant SharePoint
    Inscrit en
    Mars 2006
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 270
    Points : 308
    Points
    308
    Par défaut
    Tu sais sur quelle instruction ?

    Le champ LinkFilename n'est peut être pas encore initialisé...

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    Je pense que c'est à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    try
    {
         string nom = properties.ListItem["LinkFilename"].ToString();
    Car j'ai mis un message de debug juste après et il ne s'affiche pas

  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
    Oui effectivement c'est normal,

    ton ListItem est nul pour la simple est bonne raison(ton item n'existe pas encore), c'est logique.

    Il faut utiliser d'autres properties de la variable "properties" (je sais plus, mais genre BeforeProperties ou un truc du genre)
    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é

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    Le problème vient bien du fait que le champ LinkFilename est en lecture seule.
    C'est pour ça que la fonction Update() ne fonctionnait pas.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    Pour résoudre mon problème j'ai mis à jour le champ FileLeafRef qui lui n'est pas en ReadOnly

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

Discussions similaires

  1. Problème de mise à jour d'un RCP avec p2
    Par dbabar dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 19/09/2017, 21h46
  2. Réponses: 10
    Dernier message: 02/02/2011, 16h45
  3. Problème de mises à jour d'un élément de la table
    Par neowner dans le forum Struts 2
    Réponses: 1
    Dernier message: 30/01/2011, 04h04
  4. Réponses: 1
    Dernier message: 07/05/2008, 17h09

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