Example #1
0
        //public string CreateFlow(string flowname)
        //{
        //    UI_WorkFlow_Entity wfe = CWFEngine.CreateAWFEntityByName(flowname);
        //    if (wfe != null)
        //    {
        //        Dictionary<string, string> record = wfe.GetRecordItems();
        //            record["username"] = (Session["User"] as EquipModel.Entities.Person_Info).Person_Name;
        //            record["time"] = DateTime.Now.ToString();
        //        return wfe.Start(record);
        //        //Json(new { url = wfe.Start(record), wfe_id = wfe.EntityID });
        //        //"{url:'" + wfe.Start(record) + "', wfe_id:'" + wfe.EntityID + "'}";

        //    }
        //    else
        //        return null;
        //}
        public string CreateFlow(string flowname)
        {
            UI_WorkFlow_Entity wfe = CWFEngine.CreateAWFEntityByName(flowname);

            if (wfe != null)
            {
                Dictionary <string, string> record = wfe.GetRecordItems();
                record["username"] = (Session["User"] as EquipModel.Entities.Person_Info).Person_Name;
                record["time"]     = DateTime.Now.ToString();
                wfe.Start(record);
                Dictionary <string, string> signal = new Dictionary <string, string>();

                signal["currentuser"] = (Session["User"] as EquipModel.Entities.Person_Info).Person_Name;
                signal["start_done"]  = "true";
                //submit
                CWFEngine.SubmitSignal(wfe.EntityID, signal, record);



                CWorkFlow   wf  = new CWorkFlow();
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(CWFEngine.GetWorkFlowEntiy(wfe.EntityID, true).Binary);
                wf.InstFromXmlNode(doc.DocumentElement);

                string returl = "";
                if (wf.GetCurrentEvent().CheckAuthority <Person_Info>((Dictionary <string, object>)Session[CWFEngine.authority_params], ((IObjectContextAdapter)(new EquipWebContext())).ObjectContext))
                {
                    returl = wf.GetCurrentEvent().currentaction + "?wfe_id=" + wfe.EntityID.ToString();
                    //如果权限认证通过则返回正确的页面URL
                    return(returl);
                    //return returl;
                }
                else
                {
                    //如果权限认证不通过, 则删除刚创建的工作流实体, 并返回 -1
                    CWFEngine.RemoveWFEntity(wfe.EntityID);
                    return("-1");
                }
                //Json(new { url = wfe.Start(record), wfe_id = wfe.EntityID });
                //"{url:'" + wfe.Start(record) + "', wfe_id:'" + wfe.EntityID + "'}";
            }
            else
            {
                return(null);
            }
        }