2010-05-08 3 views
21

Ich muss den aktuellen Status eines Dokuments Genehmigung Workflow-Aufgabe in asp.net Webseite mit einer bestimmten Aktivität markiert angezeigt.WF4 - Zeigen Sie Workflow-Bild in asp.net und markieren Sie eine Aktivität

ich das Visual Workflow-Tracker Beispiel gesehen habe (in wf & wcf Proben), aber ich habe zwei Fragen,

  1. Ich habe Workflow in asp.net machen nicht in einer WPF-Anwendung.

  2. Ich muss den aktuellen Status nicht anzeigen, während der Workflow ausgeführt wird. Alle Aktivitäten, die hervorgehoben werden müssen, sind diejenigen, die Benutzereingaben erfordern. z.B. „Warten auf die Freigabe von Abteilungsleiter“ usw.

Wenn ich nur den Workflow XAML zu JPG konvertieren könnte eine spezifische Aktivität von Aktivität id nach Hervorhebung „die ein Lesezeichen und wartet auf die Wiederaufnahme erstellt das Lesezeichen“ es tun würde, die Arbeit.

Kontrolle die angehängte Datei für Bild erforderlich Workflow auf asp.net Seite gerendert wird: der Workflow in den Designer

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

+0

scheint, als ob es nicht (direkt) machbar ist, wenn die Beispiele verwenden Rehosting den Designer: http://stackoverflow.com/questions/2593302/windows-workflow-foundation-4-wf4-rehosting – TrueWill

Antwort

1

Erste Last.

Sie sollten bereits die gewünschte Aktivität kennen. Im Workflow gibt es einen Auswahlservice, mit dem Sie die geeigneten Modellelemente auswählen können. Dieses Beispiel zeigt eine einzelne Auswahl, aber es gibt mehrere.

Auf dem Workflow-Designer gibt es eine Schaltfläche zum Kopieren von Workflow als Bild oder etwas in diese Richtung. Dieser Link zeigt Ihnen, wie Sie das jpg aus der WorkflowDesigner.View erhalten. 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(); 
     } 

Als zusätzlichen beachten Sie Kushals Beispiel sollten überprüfen: http://blogs.msdn.com/b/kushals/archive/2009/12/22/visualworkflowtracking-aka-workflowsimulator.aspx

Verwandte Themen