程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> wf框架編程-監控部分:監控(3)

wf框架編程-監控部分:監控(3)

編輯:關於C語言

2.3 如何實現自定義監控

TrackingService是抽象類,使用工廠模式加入Runtime中

如果要自定義TrackingService,就要實現自定義的TrackingProfile和TrackingChannel

TrackingProfile可以認為是容器(包含了UserTrackPoint,WorkflowTrackPoint,ActivityTrackPoint),定義了在什麼時候(那種狀態發生變化的時候)發送TrackingRecord

TrackingChannel是抽象類,Send方法定義了對TrackingRecord的處理,可以持久化到數據庫,也可以持久化到文件或者打印輸出

InstanceCompletedOrTerminated方法,在工作流結束時被調用。

TrackingParameters的信息可以用來識別wf實例所關聯的跟蹤信道。

可以自己實現特定的TrackingQuery從持久化介質中獲得

默認的SqlTrackingQuery實現方法...實現機制...(估計是調用存儲過程取數的一個過程)

獲得自定義TrackingProfile和

如何設置自定義Tacking Pofile

TrackingProfile類圖分析(),構造容器。

WorkflowTrackPoint由TrackingWorkflowEvent枚舉定義

ActivityTrackPoint由ActivityExecutionStatus枚舉定義

UserTrackPoint:可以在自定義Acitivity的Execute方法中調用TrackData方法發送數據,可以指定對那種類型的Acitivity使用UserTrack

TrackData是在Activity中定義protected方法。protected void TrackData(object userData);

TrackingCondition的使用

ActivityTrackingCondition的使用,例如:活動的優先級屬性設置為 High 時才跟蹤電子郵件

ActivityTrackingCondition condition =

new ActivityTrackingCondition("Priority", "High");

actMatch.Conditions.Add(condition);

屬性值的形式從活動或工作流提取數據,使用ActivityDataTrackingExtract提前Activity屬性

actTrack.Extracts.Add(new ActivityDataTrackingExtract("To"));

跟蹤服務篩選器,Tacking服務,可以這樣理解:MatchingLocation定義TrackLocation定義的觸發器(只是針對Acitivity和Workflow狀態機),UserTrackingLocation定義常規需要加入的信息

UserTracking的觸發是由Activity自己實現的。

可用Tacking Pofile進行篩選,

如何掛自定義Tacking Pofile

默認的SqlTrackingService可以用ProfileUpdated事件掛自定義的TrackingProfile

自定義的TrackingService如下TrackingProfile可以持久化成XML字符串保存到XML文件中或者保存到數據庫,TrackingProfileSerializer保存成字符串。

關於TrackData

ActivityExecutionContext和Activity中都存在 

圖形化跟蹤(HttpHandler)

如果是web方式:我們先序列化設計器MarkupSerialer得到XOML,調用vIEw.SaveWorkflowImage存成圖片,reponse給客戶端就可以實現,StartKit是個現成的例子。http://netfx3.com/content/WFHome.aspx 上也有例子和Jon Flanders的blog上的內容相同,可以參考ASP.Net Workflow Monitor Implementation這個例子

wf框架編程-監控部分:監控

如果是Winform客戶端可以看http://netfx3.com/content/WFHome.ASPx

中WorkflowManager的例子:

wf框架編程-監控部分:監控

實例分析:StarKit

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved