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 :

Workflow sous Studio 2008


Sujet :

SharePoint .NET

  1. #1
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut Workflow sous Studio 2008
    Bonjour,


    Voilà j'ai créé un workflow sous designer, lié a une liste.
    a la création d'un element, le workflow se déclanche et envoi un mail avec dans son texte différentes valeurs contenues dans les propriétés de l'item en cours (grace au bouton de recherche Fx qui est simple a utiliser)

    il m'a fallu 2 minutes pour le faire et ca marche.


    le souci c'est que j'ai besoin d'implémenter des fonctions personnalisées, et je dois "convertir" (refaire en gros) mon workflow sous studio (2008).

    Là je ne trouve pas d'assistant pour aider à retrouver un champ, je ne sais pas les appeler.

    j'ai tenté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.sendEmail1.Body = "nom du lot : " + workflowProperties.Item.Title.ToString();
    mais a la compil paf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	La variable 'workflowProperties' n'est pas déclarée ou n'a jamais été assignée.
    merci si quelqu'un sait comment ca marche , moi je bloque bien la dessus...

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    C'est très étrange, tu es dans quel fichier ?

    Tu as bien ces lignes au debut de ta classe ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     public Workflow1()
    {
           InitializeComponent();
     }
     
    public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();
    (Elles sont générées automatiquement à la création du projet)

  3. #3
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    j'etais dans le designer.cs


    j'ai déjà codé en C# mais la je suis un peu dérouté. D'habitude en winform le designer permet de renseigner les valeurs à l'initialise component, et le fichier CS lance les fonctions() et permet eventuellement les déclarations ou autre.

    là l'envoi de mail n'apparait a aucun endroit dans le CS, et je ne l'ai trouvé que dans le designer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Microsoft.SharePoint.WorkflowActions.SendEmail MailInfo;
    j'ai donc imaginé que c'est a partir de là qu'il déclanchait l'envoi du mail, bref tout ca pour expliquer pourquoi j'etais dans le designer (et donc pkoi ca marchait pas).



    Maintenant j'ai un peu modifié et ca marche :

    je me place dans workflow.cs, je déclare des variables publics (que je peux ensuite interroger par le while ou le if du designer, je les remplis par une fonction que j'ai écrite n'importe ou (puisque je sais pas a quel endroit il en a besoin... :/ )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            public string Validation = ""; // correspond à une colonne "validation" de ma liste
            public SPListItem CurrentItem = null; // je la déclare sans info
     
    // ma fonction :
            private void init(object sender, ExternalDataEventArgs e)
            {
                CurrentItem = workflowProperties.Item;
                Validation = CurrentItem["Validation"].ToString();
            }
    seul hic (de taille) si je dois affecter ou remplir des variables pour d'autres activités, bah je vois pas ou et je dois rajouter mon code.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Pour effectuer du code lors de tes activités (affectation, déclaration de variables etc ..) tu crées ta méthode dans le fichier workflow.cs et dans ton designer, sur les propriétés de ton activité, tu indiques le nom de la méthode a appeler dans le champ "MethodInvoking" qui se trouve dans la section "handler".

    D'ailleurs, dans le designer, quand tu double clique sur l'une de tes activités, il va te créer automatiquement une méthode dans ton fichier workflow.cs, et indiquer cette méthode dans le champ MethodInvoking.

    Comme ça lorsque ton workflow sera à cette étape, il exécutera le code de ta méthode.

    Il ne faut en général pas toucher au fichier designer.cs.

    De même pour déclarer certaines variables qui te servent pour tes activités il faut faire le lien avec les propriétés de ta tache dans le designer.

    J'espère avoir pu t'aider !

  5. #5
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    merci de ton aide.

    a priori ca marche pour pas mal de choses, en revanche pour l'activité sendmail, j'arrive pas à affecter le champ body du mail , il envoie ce qui a été rentré par le designer sans tenir compte de ma fonction invoking (ou alors il execute invoking après :p ).

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Il me semble que pour les email envoyés dans les taches classiques, il y a une proprieté hasCustomEmailBody à mettre à true pour que ca soit pris en compte. Ca marche peut etre pareil pour les activités sendemail.

Discussions similaires

  1. Workflow Visual Studio 2008 + MétaDonnées Word
    Par glucas59 dans le forum SharePoint
    Réponses: 2
    Dernier message: 01/12/2008, 08h50
  2. problème de DLL sous visual studio 2008
    Par kira09 dans le forum C++
    Réponses: 2
    Dernier message: 12/06/2008, 12h50
  3. Réponses: 2
    Dernier message: 30/05/2008, 16h06
  4. Réponses: 1
    Dernier message: 16/05/2008, 09h51
  5. Workflow sous Visual Studio 2005
    Par Tizba dans le forum SharePoint
    Réponses: 4
    Dernier message: 08/04/2008, 14h45

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