2010-05-08 27 views
21

Tôi cần hiển thị trạng thái hiện tại của tác vụ phê duyệt tài liệu trong trang web asp.net với một hoạt động cụ thể được đánh dấu.WF4 - Hiển thị hình ảnh quy trình làm việc trong asp.net và đánh dấu hoạt động

Tôi đã thấy Visual workflow theo dõi ví dụ (trong wf & WCF mẫu) nhưng tôi có hai vấn đề,

  1. tôi phải làm công việc trong asp.net không trong một ứng dụng WPF.

  2. Tôi không cần hiển thị trạng thái hiện tại với luồng công việc đang chạy, tất cả các hoạt động cần được đánh dấu là những hoạt động yêu cầu người dùng nhập. ví dụ. "Chờ đợi sự chấp thuận của người đứng đầu bộ phận" vv

Nếu tôi chỉ có thể chuyển đổi các XAML workflow để JPG sau làm nổi bật một hoạt động cụ thể bằng id hoạt động "đã tạo ra một bookmark và chờ đợi cho nối lại các bookmark" nó sẽ làm công việc.

kiểm tra các file đính kèm cho hình ảnh công việc yêu cầu phải được hiển thị trên trang asp.net:

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

+0

Xuất hiện như là mặc dù nó không phải là (trực tiếp) doable, nếu các ví dụ sử dụng lưu trữ lại các nhà thiết kế: http://stackoverflow.com/câu hỏi/2593302/windows-workflow-foundation-4-wf4-rehosting – TrueWill

Trả lời

1

Đầu tiên tải công việc vào nhà thiết kế.

Bạn đã biết 'hoạt động' mà bạn muốn được đánh dấu. Có dịch vụ lựa chọn trong quy trình làm việc mà bạn có thể sử dụng để chọn các mục mẫu thích hợp. Ví dụ này cho thấy lựa chọn duy nhất, nhưng có nhiều.

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

Trên trình thiết kế luồng công việc có nút sao chép luồng công việc dưới dạng hình ảnh hoặc gì đó dọc theo các dòng đó. Liên kết này sẽ chỉ cho bạn cách lấy jpg từ 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(); 
     } 

Là một bổ sung lưu ý bạn nên kiểm tra Kushals dụ: http://blogs.msdn.com/b/kushals/archive/2009/12/22/visualworkflowtracking-aka-workflowsimulator.aspx

Các vấn đề liên quan