在表单插件中获取流程中的节点

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

在表单插件中获取流程中的节点

有客户需要在单据中,根据不同的流程节点和审核人设置单据的控件显示和隐藏。

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();//节点名称

    }

}

以上代码仅供参考。

在表单插件中获取流程中的节点

有客户需要在单据中,根据不同的流程节点和审核人设置单据的控件显示和隐藏。1. 在单据插件中获取流程信息。流程任务处理节点,即信息中心...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息