2010-05-08 19 views
21

Muszę wyświetlić bieżący status zadania przepływu zatwierdzania dokumentów na stronie asp.net z podświetloną określoną akcją.WF4 - Wyświetl obraz przepływu pracy w asp.net i zaznacz działanie

Widziałem Visual przykład workflow tracker (WF & wcf próbek), ale mam dwa problemy,

  1. muszę uczynić obieg w asp.net nie w aplikacji WPF.

  2. Nie muszę wyświetlać bieżącego stanu przy uruchomionym przepływie pracy, wszystkie czynności, które należy zaznaczyć, to te, które wymagają wprowadzenia użytkownika. na przykład „Czeka na zatwierdzenie od kierownika działu” itd

Gdybym tylko mógł przekonwertować XAML workflow do JPG po podkreślając specyficzną aktywność od aktywności id „który stworzył zakładkę i czeka na wznowienie zakładkę” byłoby to zrobić Praca.

check załączony plik do wymaganego workflow obrazu mają być świadczone na stronie asp.net:

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

+0

wydaje się, że to nie jest (bezpośrednio) wykonalne, jeśli przykłady wykorzystują rehosting projektanta: http://stackoverflow.com/questions/2593302/windows-workflow-foundation-4-wf4-rehosting – TrueWill

Odpowiedz

1

najpierw załadować workflow do projektanta.

Powinieneś już znać "aktywność", którą chcesz podświetlić. W przepływie pracy można wybrać usługę wyboru, aby wybrać odpowiednie elementy modelu. Ten przykład pokazuje pojedynczy wybór, ale jest wiele.

ModelService modelService = wd.Context.Services.GetService<ModelService>(); 
     IEnumerable<ModelItem> activityCollection = modelService.Find(modelService.Root, typeof(Activity)); 
     Selection.Select(wd.Context, activityCollection.ElementAt(5)); 

W projektancie przepływu pracy znajduje się przycisk do kopiowania przepływu pracy jako obrazu lub czegoś podobnego do tych linii. Ten link pokazuje, jak uzyskać plik jpg z 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(); 
     } 

Jako dodatkową uwagę należy sprawdzić przykład Kushals: http://blogs.msdn.com/b/kushals/archive/2009/12/22/visualworkflowtracking-aka-workflowsimulator.aspx

Powiązane problemy