none
Hériter du type CallExternalMethodActivity pour créer une activité de Workflow utilisable dans SharePoint Designer. RRS feed

  • Question

  • Bonjour à tous,

    J'ai découvert récemment la capacité pour un flux de travail SharePoint d'interagir avec un système externe. J'entends par là la possibilité de transmettre des informations de SharePoint vers une application distincte mais également de placer un Workflow SharePoint en état d'attente d'une réponse de ce système externe.

    Il est en question ici : http://msdn.microsoft.com/en-us/magazine/ee335710.aspx
    Mais par simplicité, j'ai préféré suivre ce petit tutoriel : http://philwicklund.com/blog/Pages/Pluggable-Workflow-Services-in-SharePoint-2010.aspx

    Cela fonctionne parfaitement mais j'aurais voulu utiliser ces mécanismes de façon un peu plus souple que ce qui est proposé dans ce service. Autrement dit, plutôt que devoir figer mon flux de travail dans Visual Studio, j'aurais voulu pouvoir créer des activités de Workflow spécifiques à mon système externe mais utilisable dans SharePoint Designer.

    Habituellement, pour créer des activités spécifiques et utilisables dans SharePoint Designer, j'hérite simplement la classe que l'activité doit utiliser par le Type "System.Workflow.ComponentModel.Activity".
    Pour tenter de réaliser mon objectif, j'ai donc tout d'abord travaillé avec l'héritage du type "System.Workflow.Activities.CallExternalMethodActivity", qui lui-même hérite du type "System.Workflow.ComponentModel.Activity".

    Via le Designer de Visual Studio, j'ai pu s'en problème reproduire la paramétrage de mon activité via le Designer, tel que je l'avais fait dans le tutoriel du Plugglable Workflow Service. Compilation, packaging, et déploiement ne connurent aucun problème. J'ouvre donc SharePoint Designer pour retrouver ma nouvelle activité (ou action, comme le nomme SharePoint Designer). La phrase de mon activité s'affiche bien et je peux même saisir mes paramètres dans celle-ci. L'enregistrement se passe encore une fois très bien... mais au moment de publier mon flux de travail, une erreur se produit:

    (0, 0) Échec de la validation de l'Activity 'ID4' : La propriété 'InterfaceType' n'est pas définie.)
    (0, 0) Échec de la validation de l'Activity 'ID4' : La propriété 'MethodName' n'est pas définie.)

    J'ai essayé plusieurs choses, comme ne pas utiliser le Designer de Visual Studio pour lier mon Interface et la méthode mais les renseigner directement dans le constructeur de l'activité, ce qui donne :

    (0, 0) Le type System.Type, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 n'est pas indiqué comme étant autorisé dans le fichier de configuration de l'application.)
    (0, 0) Le type System.RuntimeTypeHandle, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 n'est pas indiqué comme étant autorisé dans le fichier de configuration de l'application.)

    J'ai enfin renseigné ces 2 types dans la section <authorizedTypes/> du web.config de mon application SharePoint.
    Et ici, la publication du flux de travail a enfin fonctionné !

    Mais à l'utilisation, le flux de travail part en erreur "Une erreur s'est produite". J'ai dans ce flux de travail ma seule activité qui comme dans le tutoriel enregistre en réalité un élément dans la liste "Annonces" du site sur lequel je suis. J'ai passé le démarrage de mon flux de travail au debug mais sans réel succès (je n'entre pas dans mon interface de création d'élément mais n'obtient pas non d'exception à son passage...).

    Je pense que mes dernières étapes ne sont pas forcément la bonne approche mais je tenais à préciser tout ce que j'ai pu tenter jusqu'alors...

    Quelqu'un aurait une idée sur comment m'y prendre?

    Merci à tous.

    • Déplacé Hengzhe Li mardi 21 février 2012 06:59 merge forum (Origine :Développement Sharepoint 2010)
    vendredi 11 mars 2011 11:27