在表单插件中获取流程中的节点
有客户需要在单据中,根据不同的流程节点和审核人设置单据的控件显示和隐藏。
1. 在单据插件中获取流程信息。
流程任务处理节点,即信息中心-待处理任务界面点击处理弹出的界面,在加载单据时,会传入如下参数:
workflowHandled=1
TemplateDetailId=流程模版明细内码
VerId=流程定义版本内码
ActivityId=流程节点定义Id
BOSConst.CST_KEY_WfActivityInstance=this._activityInstance流程节点实例
2. 获取流程中的节点ID和名称
引用以下组件:
Kingdee.BOS.Workflow.dll
Kingdee.BOS.Workflow.ServiceHelper.dll
引用如下命名空间:
using Kingdee.BOS.Workflow;
using Kingdee.BOS.Workflow.Elements;
using Kingdee.BOS.Workflow.ServiceHelper;
函数如下:
private void LoadProcessNodes(string versionId)
{
Process proc = WorkflowModelServiceHelper.GetProcessByVersionId(ctx, verId);
foreach (Activity act in _prc.Activities)
{
//开始节点
//if (act is StartActivity) continue; //开始节点
//是否是人工节点
var hasInterac = act.ActionEvents.Any((p) =>
{
return ((ActionEventTypeAttribute)ActionEventTypeAttribute.GetCustomAttribute
(p.GetType(), typeof(ActionEventTypeAttribute))).ActionEventType == ActionEventType.Interactive;
});
if (!hasInterac) continue;//没有人工节点则不要加载
int actId = act.ActivityId;//节点Id
string actName = act.DisplayName.ToString();//节点名称
}
}
以上代码仅供参考。
在表单插件中获取流程中的节点
本文2024-09-23 03:32:10发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159484.html