none
Supprimer un item si métadonnées non définies RRS feed

  • Question

  • Bonjour,

    Lors de l'upload d'un document dans sharepoint 2010, une première phase demande quel document doit être uploadé et ensuite lorsque ce document est insérer la où il faut, une seconde fenêtre apparait pour la saisie des méta données du document uploadé précédemment.

    Sur cette fenêtre se situe deux boutons ok et annuler, est-il possible lors du clic sur annuler de déclencher un évènement qui va supprimer le document uploadé ? ou alors faut-il faire du custom code?

    Merci d'avance.

    eGm


    • Modifié eGm Be lundi 17 octobre 2011 16:41
    • Déplacé Hengzhe Li mardi 21 février 2012 06:40 merge forum (Origine :Développement Sharepoint 2010)
    lundi 17 octobre 2011 16:40

Réponses

  • Bonjour

    A priori la question est simple mais pas forcement la solution. Il s'agit plus d'une façon d'approcher le besoin...

    - Personaliser le comportement du bouton annuel n'est pas pris en charge nativement.

    - Ajouter du custom code oui, mais qu'elle approche conviendra le mieux ?

    Ma 1er idée serait d'utiliser un EventReceiver de list qui permet d'intercepter l'evenement "updated" d'un item par exemple. Ici on pourrait verifier que le document à bien toutes ses métas renseignés, et si ce n'est pas le cas, on le supprime. D'ailleurs l'equivalent sera faisable avec un simple workflow sharepoint designer, mais pour le coup moins réutilisable.
    Ceci dit ça ne fonctionne pas vraiment. En effet lors de l'upload du document l'evenement adding et added est déclenché. Ensuite si l'utilisateur "annule" la saisie des métas, aucun autre évenement n'est déclenché... donc on "rate" la vérification sur ce document.

    Une seconde idée serait donc de faire tourner un batch régulier qui en utilisant le modèle objet sharepoint ferai les verifications nécessaires et supprimerai les fichiers sans métas. C'est moins "immédiat" mais par contre efficace.

    Enfin comme autre approche, je me pose la question surtout de savoir pourquoi voulez vous faire ça ? A partir de quel moment l'absence de ces métas pose problème, et à qui ?
    Est-ce qu'une simple colonne calculée ou remplie par un workflow, qui dirai juste "les métas sont là" et qui serait ensuite exploitée dans le filtre d'une vue ne serait pas suffisant pour différencier les documents qui ont été catégorisé des autres ?

    • Proposé comme réponse lionel limozin jeudi 20 octobre 2011 09:13
    • Marqué comme réponse Pascal P dimanche 23 octobre 2011 11:50
    jeudi 20 octobre 2011 08:16
  • Bonjour,

    Lorsque vous mettez les métadonnées obligatoires les documents sont uploadés mais leurs états est "CheckOut", donc si vous attacher un EventReceiver vous ne pouvez jamais uploader un document. par contre vous pouvez créer un autre formulaire d'upload dans lequel vous mettez tous vos champ avec un "FileUpload" et l'ajout sera par code avec un Hashtable qui contient tous vos métadonnées, comme ça vous pouver contrôler les téléchargement des fichiers.

     

     


    Ahmed Mehdi

     

    http://www.proged.tn

     




    • Modifié Ahmed MEHDI samedi 22 octobre 2011 15:53
    • Proposé comme réponse Ahmed MEHDI samedi 22 octobre 2011 15:56
    • Marqué comme réponse Pascal P dimanche 23 octobre 2011 11:50
    samedi 22 octobre 2011 15:49

Toutes les réponses

  • Bonjour

    A priori la question est simple mais pas forcement la solution. Il s'agit plus d'une façon d'approcher le besoin...

    - Personaliser le comportement du bouton annuel n'est pas pris en charge nativement.

    - Ajouter du custom code oui, mais qu'elle approche conviendra le mieux ?

    Ma 1er idée serait d'utiliser un EventReceiver de list qui permet d'intercepter l'evenement "updated" d'un item par exemple. Ici on pourrait verifier que le document à bien toutes ses métas renseignés, et si ce n'est pas le cas, on le supprime. D'ailleurs l'equivalent sera faisable avec un simple workflow sharepoint designer, mais pour le coup moins réutilisable.
    Ceci dit ça ne fonctionne pas vraiment. En effet lors de l'upload du document l'evenement adding et added est déclenché. Ensuite si l'utilisateur "annule" la saisie des métas, aucun autre évenement n'est déclenché... donc on "rate" la vérification sur ce document.

    Une seconde idée serait donc de faire tourner un batch régulier qui en utilisant le modèle objet sharepoint ferai les verifications nécessaires et supprimerai les fichiers sans métas. C'est moins "immédiat" mais par contre efficace.

    Enfin comme autre approche, je me pose la question surtout de savoir pourquoi voulez vous faire ça ? A partir de quel moment l'absence de ces métas pose problème, et à qui ?
    Est-ce qu'une simple colonne calculée ou remplie par un workflow, qui dirai juste "les métas sont là" et qui serait ensuite exploitée dans le filtre d'une vue ne serait pas suffisant pour différencier les documents qui ont été catégorisé des autres ?

    • Proposé comme réponse lionel limozin jeudi 20 octobre 2011 09:13
    • Marqué comme réponse Pascal P dimanche 23 octobre 2011 11:50
    jeudi 20 octobre 2011 08:16
  • Nativement, je ne pense pas que tu puisses supprimer le document si les métadonnées ne sont pas renseigner.

    Le plus simple à mon avis est de passé par un EventReceiver qui permet de supprimer le document.

    jeudi 20 octobre 2011 09:12
  • Bonjour,

    Sachant que dans le cas de l'upload multiple l'utilisateur ne sera pas redérigé vers la page d'édit, je pense que la meilleur solution est le "Timer Job". tu peux envoyer, en premier lieu, aux auteurs des notifications pour compléter les métadata et en deuxième lieu tu les supprime s'ils ne sont pas édités.

    • Proposé comme réponse Ahmed MEHDI samedi 22 octobre 2011 15:55
    vendredi 21 octobre 2011 23:40
  • Bonjour,

    Pourquoi ne pas modifier vos propriétés en spécifiant que les métadonnées sont des champs obligatoires?

    Si les champs ne sont pas complétés l'utilisateur aura un message et le document ne sera pas uploader...


    Pascal P
    http://sharepoint-afterwork.fr
    Nouveaux site en FR
    Twitter: @PascalPoeck
    samedi 22 octobre 2011 13:31
  • Bonjour,

    Lorsque vous mettez les métadonnées obligatoires les documents sont uploadés mais leurs états est "CheckOut", donc si vous attacher un EventReceiver vous ne pouvez jamais uploader un document. par contre vous pouvez créer un autre formulaire d'upload dans lequel vous mettez tous vos champ avec un "FileUpload" et l'ajout sera par code avec un Hashtable qui contient tous vos métadonnées, comme ça vous pouver contrôler les téléchargement des fichiers.

     

     


    Ahmed Mehdi

     

    http://www.proged.tn

     




    • Modifié Ahmed MEHDI samedi 22 octobre 2011 15:53
    • Proposé comme réponse Ahmed MEHDI samedi 22 octobre 2011 15:56
    • Marqué comme réponse Pascal P dimanche 23 octobre 2011 11:50
    samedi 22 octobre 2011 15:49
  • Effectivement Mehdi, j'avais oublié le coup du check-out, bien vu ;-)

    Sinon pour éviter le coup du dev on peux aussi traiter ça par un workflow...


    Pascal P
    http://sharepoint-afterwork.fr
    Nouveaux site en FR
    Twitter: @PascalPoeck
    dimanche 23 octobre 2011 11:49