天天看點

Activiti擷取工作流 流程圖

該方法可以檢視工作流模型的設計圖

public void QueryPNG(string method, SyncContext context)

        {

            //method = "/process-definition/FileAuthUser:14:6962/diagram";// 測試擷取流程圖的圖檔

            var api = new WFOperator(context.Context);//執行個體化工作流對象

            var content = api.Call(Method.GET, method, null);

            byte[] data = content.RawBytes;//擷取到的資料

            if (Encoding.Default.GetString(data).Contains("error"))

            {

                string errorMessage = Encoding.Default.GetString(data);

                JObject error = JObject.Parse(errorMessage);

                // 抛出異常資訊,用戶端顯示

                throw new Exception("圖檔資源通路錯誤:" + error.Value<string>("errorMessage"));

            }

//将擷取到的流程圖下載下傳下載下傳到本地

            var response = context.Response;

            response.ClearContent();

            response.ContentType = "image/png";

            response.AddHeader("Content-Disposition", "attachment;filename=1.png");

            response.AddHeader("Content-Length", data.Length.ToString(CultureInfo.InvariantCulture));

            response.BinaryWrite(data);

            response.Flush();

        }

該方法可以檢視目前執行的工作流的執行個體圖,可以檢視目前執行的節點資訊

參數:string processId,

 var method = "/process-instance/{0}/diagram";// 測試擷取流程圖的圖檔

            method = string.Format(method, processId);

            var context = syncContext;

            var api = new WFOperator(context.Context);

            var content = api.Call(Method.GET, method, null);

            byte[] data = content.RawBytes;

            if (Encoding.Default.GetString(data).Contains("error"))

            {

                string errorMessage = Encoding.Default.GetString(data);

                JObject error = JObject.Parse(errorMessage);

                // 抛出異常資訊,用戶端顯示

                throw new Exception("圖檔資源通路錯誤:" + error.Value<string>("errorMessage"));

            }

            var response = context.Response;

            response.ClearContent();

            response.ContentType = "image/png";

            response.AddHeader("Content-Disposition", "attachment;filename=1.png");

            response.AddHeader("Content-Length", data.Length.ToString(CultureInfo.InvariantCulture));

            response.BinaryWrite(data);

            response.Flush();

繼續閱讀