public static void ApplayPermision(JsonItemCollection items) { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); ApplayPermision(cn, items); } }
public static string GetNewFileID() { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); string rv = cn.GetSerialNum("yz_sys_att" + DateTime.Today.ToString("yyyyMMdd"), 4, 1, 1); rv = rv.Substring("yz_sys_att".Length); return rv; } }
public string displayname() { string name = ""; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); User user =BPM.Client.User.FromAccount(cn, YZAuthHelper.LoginUserAccount); name = user.DisplayName; } return name; }
public string badge() { string div = ""; int count; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); count = cn.GetMyTaskCount(); } if (count > 0) { div = " <span class='badge bg-red'>" + count + "</span>"; } return div; }
public BPMHelper(string BPMServer, string UserAccount, string PWD) { _eServer = BPMServer; _userAccount = UserAccount; _pwd = PWD; using (BPMConnection bpmConn = new BPMConnection()) { bpmConn.Open(_eServer, _userAccount, _pwd); MemberCollection positions = OrgSvr.GetUserPositions(bpmConn, bpmConn.UID); if (positions.Count == 0) { throw new BPMException(string.Format("用户不属于任何组织,账号:{0}", bpmConn.UID)); } _userFullName = positions[0].FullName; } }
public virtual BPMObjectNameCollection GetOUExtAttrNames(HttpContext context) { YZRequest request = new YZRequest(context); String @namespace = request.GetString("namespace", Namespace.BPMOU); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); DataColumnCollection columns = OU.GetExtColumns(cn, @namespace); BPMObjectNameCollection attrNames = new BPMObjectNameCollection(); foreach (DataColumn column in columns) { attrNames.Add(column.ColumnName); } return(attrNames); } }
public void PullProcess(object obj) { BPMConnection cn = null; string server; string strPort; int port; string clientid = null; server = System.Web.Configuration.WebConfigurationManager.AppSettings["BPMServerName"]; strPort = System.Web.Configuration.WebConfigurationManager.AppSettings["BPMServerPort"]; if (!Int32.TryParse(strPort, out port)) { port = BPMConnection.DefaultPort; } while (true) { try { if (cn == null) { cn = new BPMConnection(); cn.OpenAnonymous(server, port); clientid = cn.RegisterClient(); } PushMessageCollection messages = cn.GetClientMessages(clientid); this.DispatchMessage(messages); Thread.Sleep(100); } catch (Exception) { if (cn.IsOpen) { cn.Close(); } cn = null; Thread.Sleep(3000); } } }
public virtual JObject RecedeBack(HttpContext context) { YZRequest request = new YZRequest(context); this.ApproveCheck(context); int stepid = request.GetInt32("StepID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; List <int> toStepIDs = jPost["toStepIDs"].ToObject <List <int> >(); BPMTask task; BPMProcStep srcStep; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //移动审批不保存表单数据 if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } srcStep = BPMProcStep.Load(cn, stepid); task = BPMTask.Load(cn, srcStep.TaskID); BPMStepCollection newSteps = BPMProcStep.RecedeBack(cn, stepid, toStepIDs.ToArray(), comments); List <string> to = new List <string>(); foreach (BPMProcStep step in newSteps) { to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName))); } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["sn"] = task.SerialNum; rv["tosteps"] = String.Join(";", to.ToArray()); return(rv); } }
public void PushMessage(string clientid, BPMObjectNameCollection uids, string[] channels, YZMessage message, bool broadcast) { JObject jmessage = JObject.FromObject(message); PushMessageCollection pushMessages = new PushMessageCollection(); foreach (string channel in channels) { PushMessage pushmessage = new BPM.PushMessage(clientid, uids, channel, jmessage); pushmessage.Broadcast = broadcast; pushMessages.Add(pushmessage); } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); cn.Push(pushMessages); } }
public virtual BPMObjectNameCollection GetFormApplicationNames(HttpContext context) { YZRequest request = new YZRequest(context); string folder = request.GetString("folder", null); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); FormApplicationCollection formApplications = cn.GetFormApplicationList(folder, BPMPermision.None); BPMObjectNameCollection names = new BPMObjectNameCollection(); foreach (FormApplication formApplication in formApplications) { names.Add(formApplication.Name); } return(names); } }
protected virtual void ExpandTree(BPMConnection cn, JArray items, string rsid) { UserResourceCollection resources = UserResource.GetChildren(cn, rsid); foreach (UserResource resource in resources) { JObject item = new JObject(); items.Add(item); item["leaf"] = false; item["text"] = resource.ResourceName; item["iconCls"] = "folder"; item["expanded"] = false; item["path"] = resource.RSID; JArray children = new JArray(); item[YZJsonProperty.children] = children; this.ExpandTree(cn, children, resource.RSID); } }
public virtual object Inform(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; BPMObjectNameCollection uids = jPost["uids"].ToObject <BPMObjectNameCollection>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); UserCollection users = BPMTask.Inform(cn, taskid, uids, comments); return(new { UserNameList = YZStringHelper.GetUserShortNameListString(users) }); } }
public virtual JObject Pickback(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); int stepid = request.GetInt32("StepID"); string comments = request.GetString("Comments", null); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMProcStep step = BPMTask.PickBack(cn, taskid, stepid, comments); JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["StepName"] = step.NodeName; rv["UserFriendlyName"] = YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName); return(rv); } }
public virtual object GetTaskCount(HttpContext context) { //获得数据 int total; int worklist; int sharetask; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); total = cn.GetMyTaskCount(out worklist, out sharetask); } return(new { total = total, worklist = worklist, sharetask = sharetask }); }
public virtual JObject GetFolders(HttpContext context) { YZRequest request = new YZRequest(context); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); JObject rv = new JObject(); JArray items = new JArray(); rv[YZJsonProperty.children] = items; this.ExpandTree(cn, items, null); rv[YZJsonProperty.success] = true; return(rv); } }
public virtual object SaveProcessAsNewVersion(HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path"); JObject post = request.GetPostData <JObject>(); BPMProcess process = post.ToObject <BPMProcess>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); process.Save(cn, path, null, true); } return(new { server = WebConfigurationManager.AppSettings["BPMServerName"], version = process.Version.ToString(2) }); }
public Result UpdateUser(AuthInfo authInfo, UserInfo userInfo, string updateFieldName) { try { YZService.AuthSystem(authInfo); YZAuthHelper.SetAuthCookie(authInfo.RealLoginAccount); //传入值检查 if (String.Compare(updateFieldName, "Password") == 0) { throw new Exception(String.Format("属性不支持以更新方式修改:{0}", updateFieldName)); } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //获得用户原始信息 User user = new User(); user.Open(cn, userInfo.Account); //粘合新属性 PropertyInfo tagProp = typeof(User).GetProperty(updateFieldName); FieldInfo srcProp = typeof(UserInfo).GetField(updateFieldName); if (tagProp == null || srcProp == null) { throw new Exception(String.Format("无效的属性:{0}", updateFieldName)); } tagProp.SetValue(user, srcProp.GetValue(userInfo), null); //执行更新 BPM.Client.User.Update(cn, user.Account, user); } return(Result.SuccessResult); } catch (Exception e) { return(Result.FromException(e)); } }
public virtual JObject GetTaskForecastSteps(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); string xmlData = request.GetString("xmlData", null); if (!String.IsNullOrEmpty(xmlData)) { xmlData = Encoding.UTF8.GetString(Convert.FromBase64String(xmlData)); } JObject rv = new JObject(); //获得数据 BPMStepCollection steps = null; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); steps = BPMTask.GetForecastSteps(cn, taskid, xmlData); //将数据转化为Json集合 JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMProcStep step in steps) { if (!step.IsHumanStep) { continue; } children.Add(Serialize(cn, step)); } rv[YZJsonProperty.total] = children.Count; } //输出数据 rv[YZJsonProperty.success] = true; return(rv); }
public virtual object SearchMember(HttpContext context) { YZRequest request = new YZRequest(context); string keyword = request.GetString("keyword", null); bool includeDisabledUser = request.GetBool("includeDisabledUser", false); //将数据转化为Json集合 JObject rv = new JObject(); JArray children = new JArray(); rv[YZJsonProperty.children] = children; if (!String.IsNullOrEmpty(keyword)) { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); MemberCollection members = OrgSvr.SearchMember(cn, keyword, includeDisabledUser); UserCollection users = new UserCollection(); foreach (Member member in members) { User user = users.TryGetItem(member.UserAccount); if (user == null) { user = User.FromAccount(cn, member.UserAccount); users.Add(user); } JObject jItem = this.JObjectFromMember(member, user); string oufullName = member.GetParentOU(cn).GetFriendlyFullName(cn); jItem["parentouFriendlyName"] = oufullName; jItem["memberFriendlyName"] = oufullName + "/" + user.Account; jItem["search"] = true; children.Add(jItem); } } } //输出数据 return(rv); }
public virtual JObject PutbackShareTaskExt(HttpContext context) { JArray processedItems = new JArray(); try { YZRequest request = new YZRequest(context); JObject jPost = request.GetPostData <JObject>(); JArray items = (JArray)jPost["items"]; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (JObject item in items) { int id = (int)item["ID"]; int stepid = (int)item["StepID"]; BPMProcStep.PutbackShareStep(cn, stepid); JObject processedItem = new JObject(); processedItem["ID"] = id; processedItems.Add(processedItem); } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv[YZJsonProperty.processedItems] = processedItems; return(rv); } } catch (Exception exp) { JObject rv = new JObject(); rv[YZJsonProperty.success] = false; rv[YZJsonProperty.errorMessage] = exp.Message; rv[YZJsonProperty.processedItems] = processedItems; return(rv); } }
public virtual void SaveFormService(HttpContext context) { YZRequest request = new YZRequest(context); JObject post = request.GetPostData <JObject>(); FormApplication app = post["data"].ToObject <FormApplication>(); ACL acl = post["acl"].ToObject <ACL>(); string mode = request.GetString("mode"); string path; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (mode == "edit") { path = request.GetString("path"); string name = request.GetString("name"); if (name != app.Name) { path = cn.RenameObject(StoreZoneType.FormService, path, app.Name); } app.Save(cn, path, true); } else { string folder = request.GetString("folder", ""); if (String.IsNullOrEmpty(folder)) { path = app.Name; } else { path = folder + "/" + app.Name; } app.Save(cn, path, false); } SecurityManager.SaveACL(cn, SecurityResType.FormApplication, path, null, acl); } }
private JObject GetApprovalLog(BPMConnection cn, int TaskID) { JObject result = new JObject(); BPMTask task = BPMTask.Load(cn, TaskID); result["success"] = true; result["TaskID"] = TaskID; result["SN"] = task.SerialNum; result["State"] = task.TaskState.ToString(); JArray StepItems = new JArray(); result["StepItems"] = StepItems; BPMStepCollection steps = BPMTask.GetAllSteps(cn, TaskID); foreach (BPMProcStep step in steps) { if (step.IsHumanStep) { JObject item = new JObject(); StepItems.Add(item); item["StepID"] = step.StepID; item["NodeName"] = step.NodeName; item["ReceiveAt"] = YZStringHelper.DateToStringL(step.ReceiveAt); item["FinishAt"] = step.FinishAt == DateTime.MinValue ? "" : YZStringHelper.DateToStringL(step.FinishAt); item["OwnerAccount"] = step.OwnerAccount; item["OwnerName"] = step.OwnerFullName; item["RecipientAccount"] = step.RecipientAccount == null ? "" : step.RecipientAccount; item["RecipientName"] = step.RecipientFullName == null ? "" : step.RecipientFullName; item["HandlerAccount"] = step.HandlerAccount == null ? "" : step.HandlerAccount; item["HandlerName"] = step.HandlerFullName == null ? "" : step.HandlerFullName; item["AgentAccount"] = step.AgentAccount == null ? "" : step.AgentAccount; item["AgentName"] = step.AgentFullName == null ? "" : step.AgentFullName; item["SelAction"] = step.SelAction == null ? "" : step.SelAction; item["Comments"] = step.Comments == null ? "" : step.Comments; } } return(result); }
private JObject MyTask(BPMConnection cn, string Path, int Start, int Limit, string ProcessName, string Keyword) { int rowcount; JObject result = new JObject(); string TaskFilter = getTaskFilter(ProcessName, Keyword, true); BPMTaskListCollection tasks = cn.GetMyTaskList(Path, TaskFilter, "StepID DESC", Start, Limit, out rowcount); //将数据转化为Json集合 result["success"] = true; result["totalRows"] = rowcount; JArray children = new JArray(); result["children"] = children; foreach (BPMTaskListItem task in tasks) { JObject item = new JObject(); children.Add(item); item["StepID"] = task.StepID; item["TaskID"] = task.TaskID; item["SerialNum"] = task.SerialNum; item["ProcessName"] = task.ProcessName; item["OwnerAccount"] = task.OwnerAccount; item["OwnerName"] = task.OwnerFullName; item["AgentAccount"] = task.AgentAccount == null ? "" : task.AgentAccount; item["AgentName"] = task.AgentFullName == null ? "" : task.AgentFullName; item["CreateAt"] = YZStringHelper.DateToStringL(task.CreateAt); item["NodeName"] = task.StepName; item["ReceiveAt"] = YZStringHelper.DateToStringL(task.ReceiveAt); item["Share"] = task.Share; item["Description"] = task.Description == null ? "" : task.Description; } //这里发现一个系统bug,当Start为1时,实际第1条待办也会在结果里,导致实际的数量比Limit多1条。 if (Start == 1 && children.Count - Limit == 1) { children.RemoveAt(0); } return(result); }
public static string GetNewFileID() { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //确保不覆盖已存在的物理文件 string fileId; string savePath; do { fileId = cn.GetSerialNum("yz_sys_att" + DateTime.Today.ToString("yyyyMMdd"), 4, 1, 1); fileId = fileId.Substring("yz_sys_att".Length); savePath = AttachmentInfo.FileIDToPath(fileId, AttachmentManager.AttachmentRootPath); } while (File.Exists(savePath)); return(fileId); } }
public UserCollection GetUsers(BPMConnection cn) { UserCollection users = new UserCollection(); foreach (Footmark footmark in this) { if (users.Contains(footmark.Account)) { continue; } User user = User.TryGetUser(cn, footmark.Account); if (user != null) { users.Add(user); } } return(users); }
public void Serialize(BPMConnection cn,JsonItem item) { User user = null; if (cn != null) user = User.TryGetUser(cn, this.uid); if (user == null) { user = new User(); user.Account = this.uid; } item.Attributes["id"] = this.id; item.Attributes["uid"] = user.Account; item.Attributes["uname"] = user.ShortName; item.Attributes["date"] = YZStringHelper.DateToStringM(this.date); item.Attributes["resType"] = this.resType.ToString(); item.Attributes["resId"] = this.resId; item.Attributes["message"] = this.message; }
public virtual void Reject(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } BPMTask.Reject(cn, taskid, comments); } }
public virtual JObject GetRoleDefine(HttpContext context) { YZRequest request = new YZRequest(context); string fullname = request.GetString("fullname"); Role role; MemberCollection members = new MemberCollection(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); role = Role.FromFullName(cn, fullname); members = Role.GetMembers(cn, fullname); } JObject rv = JObject.FromObject(role); rv["Members"] = JArray.FromObject(members); return(rv); }
public static LibraryCollection GetLibraries(IYZDbProvider provider, IDbConnection cn, string uid, string libType, string filter, string sort) { LibraryCollection alllibs = GetLibraries(provider, cn, libType, filter, sort); LibraryCollection libs = new LibraryCollection(); using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); foreach (Library lib in alllibs) { string rsid = String.Format("Library://{0}", lib.LibID); if (BPM.Client.Security.SecurityManager.CheckPermision(bpmcn, rsid, BPMPermision.Read)) { libs.Add(lib); } } } return(libs); }
public virtual JObject GetProcedureParams(HttpContext context) { YZRequest request = new YZRequest(context); String datasourceName = request.GetString("DataSource", null); String procedureName = request.GetString("ProcedureName"); FlowDataSet dataset = new FlowDataSet(); FlowDataTable tableParams; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); DataSourceManager.LoadProdecureSchema(cn, datasourceName, procedureName, out tableParams); dataset.Tables.Add(tableParams); } JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType"); rv["supportOp"] = false; return(rv); }
public virtual object GetAppLog(HttpContext context) { YZRequest request = new YZRequest(context); BPMObjectNameCollection sids; using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); sids = bpmcn.Token.SIDs; } using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { return(LogManager.GetLog(provider, cn, sids, request.GetDateTime("Date"), this.GetFilterString(request, provider), request.GetSortString("LogDate DESC"), request.Start, request.Limit)); } } }
public Result AddUser(AuthInfo authInfo, UserInfo userInfo) { try { YZService.AuthSystem(authInfo); YZAuthHelper.SetAuthCookie(authInfo.RealLoginAccount); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); OU.AddMember(cn, YZService.LDAPOU2BPMOUPath(userInfo.LDAPOU), null, userInfo.Member, userInfo.User, null, null, null); } return(Result.SuccessResult); } catch (Exception e) { return(Result.FromException(e)); } }
public virtual object GetOutOfOffice(HttpContext context) { YZRequest request = new YZRequest(context); string uid = YZAuthHelper.LoginUserAccount; UserCommonInfo userCommonInfo; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); userCommonInfo = UserCommonInfo.FromAccount(cn, uid); } return(new { state = userCommonInfo.OutOfOfficeState.ToString(), DateFrom = userCommonInfo.OutOfOfficeFrom, DateTo = userCommonInfo.OutOfOfficeTo }); }
public virtual object GetLoginUserACEInfo(HttpContext context) { YZRequest request = new YZRequest(context); string uid = YZAuthHelper.LoginUserAccount; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); User user = User.FromAccount(cn, uid); ACE ace = new ACE(); ace.SIDType = SIDType.UserSID; ace.SID = user.SID; return(new { SID = user.SID, DisplayName = ace.GetSIDDisplayName(cn) }); } }
public virtual void SaveFormDefine(HttpContext context) { YZRequest request = new YZRequest(context); string folder = request.GetString("folder", ""); string fileName = request.GetString("fileName"); string path = request.GetString("path", ""); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); JObject version = new JObject(); version["lastUpdateTime"] = DateTime.Now; cn.SaveFormDefine(Path.Combine(folder, fileName), true, context.Request.InputStream); DataVersionManager.FormFolderVersion.UpdateVersion(folder, version); } }
protected void Page_Load(object sender, EventArgs e) { if (!AspxHelper.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } this.Page.ClientScript.RegisterClientScriptInclude("FormScript", this.ResolveClientUrl("../Scripts/XForm.js")); BPMConnection cn = new BPMConnection(); if (this._treeView.Nodes.Count != 0) { return; } try { cn.WebOpen(this.Page); OUCollection ous = cn.GetRootOUs(); SecurityToken token = cn.Token; foreach (OU ou in ous) { TreeNode node = CreateNode(ou); this._treeView.Nodes.Add(node); TreeNode firstDeptNode = null; OnNodeCreated(cn, ou, node, token, ref firstDeptNode); if (firstDeptNode != null) { firstDeptNode.Selected = true; } } } finally { cn.Close(); } }
public static JsonItem GetTaskStateJsonItem(BPMConnection cn, TaskState state, int taskid) { JsonItem rv = new JsonItem(); rv.Attributes.Add("State", state.ToString().ToLower()); if (state == TaskState.Running) { JsonItemCollection children = new JsonItemCollection(); rv.Attributes.Add("children", children); BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid); foreach (BPMProcStep step in steps) { JsonItem item = new JsonItem(); item.Attributes.Add("StepName", step.StepDisplayName); item.Attributes.Add("Share", step.Share); item.Attributes.Add("RecipientAccount", step.RecipientAccount); item.Attributes.Add("RecipientDisplayName", step.RecipientFullName); children.Add(item); } } return rv; }
public static void ApplayRecordPermision(BPMConnection cn, JsonItemCollection items,string rsid, string tableName,string jsonitemKeyAttrName) { //获得资源上的记录级权限种类 UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, rsid); BPMObjectNameCollection permNames = new BPMObjectNameCollection(); foreach (UserResourcePermision resourcePerm in resourcePerms) { if (resourcePerm.PermType == UserResourcePermisionType.Record) permNames.Add(resourcePerm.PermName); } //应用权限 foreach(JsonItem item in items) { string key = Convert.ToString(item.Attributes[jsonitemKeyAttrName]); bool[] rv = RecordSecurityManager.CheckPermision(cn, tableName, key, permNames); JsonItem jsonPerm = new JsonItem(); item.Attributes["perm"] = jsonPerm; for (int i = 0; i < permNames.Count; i++) jsonPerm.Attributes[permNames[i]] = rv[i]; } }
public static string GetTaskProcessingStatus(BPMConnection cn, TaskState state, int taskid) { if (state != TaskState.Running) return null; else return GetTaskStateDisplayString(cn, state, taskid); }
public static string GetTaskStateDisplayString(BPMConnection cn, TaskState state, int taskid) { if (state != TaskState.Running) return YZStringHelper.GetTaskStateDisplayName(state); Dictionary<string, BPMObjectNameCollection> results = new Dictionary<string, BPMObjectNameCollection>(); BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid); foreach (BPMProcStep step in steps) { string stepName = step.StepDisplayName; if(step.Share && String.IsNullOrEmpty(step.RecipientAccount)) stepName = stepName + "(等待获取)"; BPMObjectNameCollection users = null; if (results.ContainsKey(stepName)) { users = results[stepName]; } else { users = new BPMObjectNameCollection(); results.Add(stepName, users); } string userName = YZStringHelper.GetUserShortName(step.RecipientAccount,step.RecipientFullName); if (!String.IsNullOrEmpty(userName) && !users.Contains(userName)) users.Add(userName); } List<string> rvs = new List<string>(); foreach (KeyValuePair<string, BPMObjectNameCollection> kv in results) { string users = String.Join(",",kv.Value.ToArray()); if (String.IsNullOrEmpty(users)) rvs.Add(kv.Key); else rvs.Add(String.Format("{0}:{1}",kv.Key,users)); } return String.Join(";",rvs.ToArray()); }
/// <summary> /// 根据用户账号取得用户在组织架构中的全名 /// </summary> /// <param name="strUserAccount"></param> /// <returns></returns> public string OUFullNameByUserAccount(string strUserAccount) { string strResult = ""; if (strUserAccount == _userAccount) { strResult = _userFullName; } else { using (BPMConnection bpmConn = new BPMConnection()) { bpmConn.Open(_eServer, _userAccount, _pwd); MemberCollection positions = OrgSvr.GetUserPositions(bpmConn, strUserAccount); if (positions.Count == 0) { throw new BPMException(string.Format("用户不属于任何组织,账号:{0}", strUserAccount)); } strResult = positions[0].FullName; } } return strResult; }
/// <summary> /// 发起流程申请 /// </summary> /// <param name="processName"></param> /// <param name="xmlStream"></param> public string StartProcess(string processName, DataSet ds,int PID) { using (BPMConnection bpmConn = new BPMConnection()) { bpmConn.Open(_eServer, _userAccount, _pwd); if (_tag == null) { throw new Exception("发起流程前必须指定格式化数据流的方法GeneratePostXML!"); } MemoryStream xmlStream = _tag(processName, _userFullName, ds, PID); PostResult result = BPMProcess.Post(bpmConn, xmlStream); return string.Format("[State:{0},TaskID:{1},SN:'{2}']", result.State, result.TaskID, result.SN); } }
public static bool CheckModulePermision(string rsid, string permName) { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); return CheckModulePermision(cn, rsid, permName); } }
public static bool CheckModulePermision(BPMConnection cn, string rsid, string permName) { return UserResourceSecurityManager.CheckPermision(cn, rsid, permName); }
public static void ApplayPermision(BPMConnection cn, JsonItemCollection items) { for(int moduleIndex = 0; moduleIndex < items.Count ; moduleIndex++) { JsonItem item = items[moduleIndex]; bool moduleExecute = true; if (item.Attributes.ContainsKey("modulePerm")) { YZModulePermision perm = item.Attributes["modulePerm"] as YZModulePermision; item.Attributes.Remove("modulePerm"); //检查模块权限 moduleExecute = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, "Execute"); if (moduleExecute) { //获得模块config配置项 JsonItem config = null; if (item.Attributes.ContainsKey("config")) config = item.Attributes["config"] as JsonItem; else { config = new JsonItem(); item.Attributes["config"] = config; } //在config配置项下建perm配置 JsonItem jsonPerm = new JsonItem(); config.Attributes["perm"] = jsonPerm; //记录模块rsid jsonPerm.Attributes["rsid"] = perm.RSID; //生成工具条上的访问权限 if (perm.GenToolbarPermision) { //获得工具条上的模块级权限种类 UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, perm.RSID); BPMObjectNameCollection permNames = new BPMObjectNameCollection(); foreach (UserResourcePermision resourcePerm in resourcePerms) { if (resourcePerm.PermType == UserResourcePermisionType.Module) permNames.Add(resourcePerm.PermName); } //记录工具条上的模块级权限许可情况 bool[] rv = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, permNames); for (int i = 0; i < permNames.Count; i++) jsonPerm.Attributes[permNames[i]] = rv[i]; } } else { items.RemoveAt(moduleIndex); moduleIndex--; } } //此模块可见则检查子级 if (moduleExecute) { if (item.Attributes.ContainsKey("children")) { JsonItemCollection children = item.Attributes["children"] as JsonItemCollection; if (children != null) { int allCount = children.Count; ApplayPermision(cn, children); if (allCount != 0 && children.Count == 0) { //item.Attributes["empty"] = true; items.RemoveAt(moduleIndex); moduleIndex--; continue; } } } if (item.Attributes.ContainsKey("tabs")) { JsonItemCollection tabs = item.Attributes["tabs"] as JsonItemCollection; if (tabs != null) { int allCount = tabs.Count; ApplayPermision(cn, tabs); if (allCount != 0 && tabs.Count == 0) { //item.Attributes["empty"] = true; items.RemoveAt(moduleIndex); moduleIndex--; continue; } } } } } }