2010-05-08 3 views
21

Je dois afficher l'état actuel d'une tâche de workflow d'approbation de document dans la page Web asp.net avec une activité spécifique en surbrillance.WF4 - Afficher l'image de flux de travail dans asp.net et mettre en surbrillance une activité

J'ai vu l'exemple de suivi de flux de travail visuel (en wf & WCF échantillons) mais j'ai deux questions,

  1. Je dois rendre workflow asp.net pas dans une application WPF.

  2. Je n'ai pas besoin d'afficher l'état actuel lorsque le flux de travail est en cours d'exécution, toutes les activités qui doivent être mises en surbrillance sont celles qui nécessitent une intervention de l'utilisateur. par exemple. « En attente de l'approbation du chef de service », etc.

Si je pouvais convertir le XAML de workflow en JPG après avoir sélectionné une activité spécifique par ID d'activité « qui a créé un signet et attendre la reprise du signet » il ferait l'oeuvre.

vérifier le fichier joint pour l'image de flux de travail qui doit être rendu à la page de asp.net:

Workflow with current activity highlighted (that is waiting to be resumed)

+0

semble que ce n'est pas (directement) faisable, si les exemples utilisent réhébergement le concepteur: http://stackoverflow.com/questions/2593302/windows-workflow-foundation-4-wf4-rehosting – TrueWill

Répondre

1

charge d'abord le flux de travail dans le concepteur.

Vous devriez déjà connaître l'activité que vous voulez mettre en surbrillance. Il existe un service de sélection dans le flux de travail que vous pouvez utiliser pour sélectionner les éléments de modèle appropriés. Cet exemple montre une sélection unique, mais il y en a plusieurs. Sur le concepteur de flux de travail, il y a un bouton pour copier le flux de travail sous forme d'image ou de quelque chose le long de ces lignes. Ce lien vous montrera comment obtenir le jpg de WorkflowDesigner.View. http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/b781c8df-608a-485a-80e3-a795d800f08d

 const double DPI = 96.0; 

     Rect size = VisualTreeHelper.GetDescendantBounds(view); 
     int imageWidth = (int)size.Width; 
     int imageHeight = (int)size.Height; 

     RenderTargetBitmap renderBitmap = new RenderTargetBitmap(imageWidth, imageHeight, DPI, DPI, PixelFormats.Pbgra32); 
     renderBitmap.Render(view); 
     BitmapFrame bf = BitmapFrame.Create(renderBitmap); 

     using (FileStream fs = new FileStream(@"c:\test.jpg", FileMode.Create)) 
     { 
      JpegBitmapEncoder encoder = new JpegBitmapEncoder(); 
      encoder.Frames.Add(BitmapFrame.Create(bf)); 
      encoder.Save(fs); 
      fs.Close(); 
     } 

En tant ajouté note que vous devriez vérifier par exemple Kushals: http://blogs.msdn.com/b/kushals/archive/2009/12/22/visualworkflowtracking-aka-workflowsimulator.aspx

Questions connexes