二开插件 - 获取工作流流程图及节点配置信息的方法
客户需求: 有客户需要获取流程图设计时信息,并获取流程图中的消息节点是否勾选了发送短信的选项。二开如何实现呢?
解决方法:
1. 根据流程实例ID获取流程图。
此处注意,一定要根据流程图版本Id获取流程图,不能直接到流程图(T_WF_PROCDEF)中获取。
/// <summary> /// 获取流程实例Id的流程图 /// </summary> /// <param name="ctx"></param> /// <param name="procInstId"></param> /// <returns></returns> private Process GetProcess(Context ctx, string procInstId) { string procVerId = GetProcVerId(ctx, procInstId); return WorkflowModelServiceHelper.GetProcessByVersionId(ctx, procVerId); } /// <summary> /// 根据流程实例Id获取流程版本Id /// </summary> /// <param name="ctx"></param> /// <param name="procInstId"></param> /// <returns></returns> private string GetProcVerId(Context ctx, string procInstId) { string sql = "SELECT FVERSIONID FROM T_WF_PROCINST WHERE FPROCINSTID=@FPROCINSTID"; return DBServiceHelper.ExecuteScalar<string>(ctx, sql, string.Empty, new SqlParam("@FPROCINSTID", DbType.AnsiString, procInstId)); }
2. 查看流程节点Id的方法。
二开插件 - 查看流程图节点Id的方法
https://vip.kingdee.com/article/178895735277545216
3. 根据流程节点Id获取流程节点运行时信息并获取流程节点中配置项的值
/// <summary> /// 获取指定节点Id的设计时信息 /// </summary> /// <param name="process"></param> /// <param name="activityId"></param> private void GetMessageAction(Process process, int activityId) { var activity = process.Activities.FirstOrDefault(m => m.ActivityId == activityId); var messageAction = activity.ActionEvents.FirstOrDefault(m => m is MessageAction) as MessageAction; ActionEventContext actionEventContext = new ActionEventContext(); bool isMailNotice = messageAction.IsMailNotice.GetValue(actionEventContext);//是否发邮件 bool isSMSNotice = messageAction.IsSMSNotice.GetValue(actionEventContext);//是否发短信 bool isXunTongNotice = messageAction.IsXunTongNotice.GetValue(actionEventContext);//是否发云之家 }
其它节点动作也可以参考上述代码获取相关属性。
二开插件 - 获取工作流流程图及节点配置信息的方法
客户需求: 有客户需要获取流程图设计时信息,并获取流程图中的消息节点是否勾选了发送短信的选项。二开如何实现呢?解决方法:1. 根据流...
点击下载文档
本文2024-09-23 03:36:46发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159965.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章