private String GetProcInstName(String piID) { String name = ""; IWFWorkflowService api = WFFactory.GetWF(WFType.AgilePoint).GetAPI(); WFBaseProcessInstance pi = api.GetProcInst(piID); if (pi != null) { name = string.Format("{0},{1}", pi.ProcInstName, pi.Status); } return(name); }
public KeyValue[] GetActivityInstStatus(String piID) { KeyValue[] ret = null; try { WorkflowService api = WFFactory.GetWF(WFType.AgilePoint).GetAPI(); if (api != null) { ret = api.GetActivityInstStatus(piID); } } catch (Exception) { } return(ret); }
public string GetActivityInstInfo(string piID, string aiID) { string html = ""; try { WorkflowService api = WFFactory.GetWF(WFType.AgilePoint).GetAPI(); WFBaseProcessInstance pi = api.GetProcInst(piID); WFManualWorkItem[] mwks = GetManualWorkItems(api, aiID); WFAutomaticWorkItem[] awks = null; if (mwks == null || mwks.Length == 0) { awks = GetAutomaticWorkItems(api, aiID); } html = RenderActivityContent(api, pi, aiID, mwks, awks); } catch (Exception) { } return(html); }
private void UpdateImagePage(String piID) { IWFWorkflowService api = WFFactory.GetWF(WFType.AgilePoint).GetAPI(); string xml = api.GetProcDefGraphics(piID); if (xml == null || xml.Length == 0) { return; } GraphicImage g = new GraphicImage(); g.FromXml(xml); System.IO.MemoryStream ms = new System.IO.MemoryStream(g.Image); Bitmap bitmap = new Bitmap(ms); Size size = Calculate(bitmap.Width, bitmap.Height); Size bitmapSize = ZoomView(bitmap.Width, bitmap.Height); int maginX = (size.Width - bitmapSize.Width) / 2; int maginY = (size.Height - bitmapSize.Height) / 2; Bitmap canvas = new Bitmap(size.Width, size.Height, PixelFormat.Format24bppRgb); Graphics gdi = Graphics.FromImage(canvas); gdi.FillRectangle(new SolidBrush(Color.White), 0, 0, canvas.Width, canvas.Height); gdi.DrawImage(bitmap, maginX, maginY, bitmapSize.Width, bitmapSize.Height); ArrayList shapes = g.Normalize(bitmapSize.Width, bitmapSize.Height, maginX, maginY); WFBaseActivityInstance[] ais = api.GetActivityInstsByPIID(piID); gdi.Flush(); Session["ProcessImage"] = canvas; ProcInstImage.ImageUrl = "ProcessImage.aspx"; string map = ""; foreach (NamedRectangle shp in shapes) { AddImageContrl(shp, WFBaseActivityInstance.ACTIVE, true); AddImageContrl(shp, WFBaseActivityInstance.PENDING, true); AddImageContrl(shp, WFBaseActivityInstance.PASSED, true); AddImageContrl(shp, WFBaseActivityInstance.CANCELLED, true); AddImageContrl(shp, WFBaseActivityInstance.ACTIVATED, true); if (ais != null) { foreach (WFBaseActivityInstance ai in ais) { if (shp.Name.Equals(ai.Name)) { int participantCount = CountParticipantOnActivity(api, piID, ai); if (participantCount > 1) { DrawParticipantImage(gdi, shp, "MultiParticipant", participantCount); } else if (participantCount == 1) { DrawParticipantImage(gdi, shp, "SingleParticipant", participantCount); } } } } map += AddAreaControl(shp); } ActivityInfoMap.Text = map; // add hidden text to store activity (name, id) map foreach (WFBaseActivityInstance ai in ais) { HtmlInputHidden ctrl = new HtmlInputHidden(); ctrl.ID = ai.Name; ctrl.Value = ai.ID; PlaceHolder.Controls.Add(ctrl); } }
protected void Page_Load(object sender, EventArgs e) { B_ReceiveEdit l_BusReceiveEdit = null; B_Circulate l_BusCirculate = null; DataTable l_dtbCirculate = null; DataTable l_dtbProcessSteps = null; String l_strRegisterID = null; M_ReceiveBase l_objWorkItem = null; //WFBaseProcessInstance l_objProcessInstance = null; if (!Page.IsPostBack) { this.ucAttachment.UCIsEditable = false; PreviousPageUrl = Request.UrlReferrer.ToString(); l_strRegisterID = Request.QueryString[ConstString.QueryString.REGISTER_ID]; l_BusReceiveEdit = new B_ReceiveEdit(); l_BusReceiveEdit.ID = Convert.ToInt32(l_strRegisterID); if (l_BusReceiveEdit == null) { JScript.Alert("当前的ID或者无效,或者已经被删除!"); return; } this.ucAttachment.UCTemplateName = l_BusReceiveEdit.ProcessName; PopulateReceiveField(l_BusReceiveEdit); if (String.IsNullOrEmpty(l_BusReceiveEdit.ProcessID)) { divPrompt.Visible = true; return; } WFBaseProcessInstance fp = null; fp = WFFactory.GetWF(WFType.AgilePoint).GetAPI().GetProcInst(l_BusReceiveEdit.ProcessID); //l_objProcessInstance = AgilePointWF.GetAPI().GetProcInst(); if (fp != null) { ProcessTemplate = fp.DefName; String l_strCirculateTableName = FS.ADIM.OA.BLL.Common.TableName.GetCirculateTableName(fp.DefName); l_BusCirculate = new B_Circulate(l_strCirculateTableName); l_dtbCirculate = l_BusCirculate.GetCirculatesByID(l_strCirculateTableName, l_BusReceiveEdit.ProcessID, 0); gdvCirculate.DataSource = l_dtbCirculate; gdvCirculate.DataBind(); string strTableName = TableName.WorkItemsTableName.T_OA_GS_WorkItems; switch (fp.DefName) { case ProcessConstString.TemplateName.COMPANY_RECEIVE: l_objWorkItem = new B_GS_WorkItems(); strTableName = TableName.WorkItemsTableName.T_OA_GS_WorkItems; break; default: strTableName = TableName.WorkItemsTableName.T_OA_MS_WorkItems; l_objWorkItem = new B_MergeReceiveBase(); break; } strTableName += ((fp.Status == ProcessConstString.ProcessStatus.STATUS_COMPLETED || fp.Status == ProcessConstString.ProcessStatus.STATUS_CANCELED)?"_BAK":""); l_dtbProcessSteps = l_objWorkItem.GetStepsByProcessID(l_BusReceiveEdit.ProcessID, strTableName, l_objWorkItem); DataView l_dtvDataView = new DataView(l_dtbProcessSteps); l_dtvDataView.RowFilter = "D_StepStatus = 'Completed'"; rptProcessDetail.DataSource = l_dtvDataView; rptProcessDetail.DataBind(); } } }