zoukankan      html  css  js  c++  java
  • 使用C#代码审批/转签K2 Blackpearl流程

    以下是使用代码审批、转签k2 blackpearl流程,初探K2 Blackpearl,望高人多多包涵、指点.

        //执行动作
    private void MyAction(string argAction)
    {
    //创建连接对象
    SourceCode.Workflow.Client.Connection wfcon = new SourceCode.Workflow.Client.Connection();
    //打开K2连接
    string k2Server = System.Configuration.ConfigurationManager.AppSettings["K2Server"];
    string workflowServicePort = System.Configuration.ConfigurationManager.AppSettings["WorkflowServicePort"];
    wfcon.Open(k2Server
    + ":" + workflowServicePort);

    //当前用户打开
    wfcon.ImpersonateUser(HttpContext.Current.User.Identity.Name);

    //获取流程列表
    SourceCode.Workflow.Client.WorklistItem worklistitem = wfcon.OpenWorklistItem(SN);

    /*
    //获取流程实例编号
    string[] _SN = SN.Split('_');
    int _ID = int.Parse(_SN[0]);
    //获取流程实例
    SourceCode.Workflow.Client.ProcessInstance proInst = wfcon.OpenProcessInstance(_ID);
    //DataFields赋值
    proInst.DataFields["TaskUsers"].Value = ddlTaskUsers.SelectedValue;
    //更新DataFields
    procinst.Update();
    */

    //查找action(执行动作)
    foreach (SourceCode.Workflow.Client.Action action in worklistitem.Actions)
    {
    if (action.Name.Equals(argAction))
    {
    //执行动作
    action.Execute();
    }
    }
    wfcon.Dispose();
    }

    //转签
    protected void ProcRedirect(string argEmpName)
    {
    //创建连接对象
    SourceCode.Workflow.Client.Connection wfcon = new SourceCode.Workflow.Client.Connection();

    //打开K2连接
    string k2Server = System.Configuration.ConfigurationManager.AppSettings["K2Server"];
    string workflowServicePort = System.Configuration.ConfigurationManager.AppSettings["WorkflowServicePort"];
    wfcon.Open(k2Server
    + ":" + workflowServicePort);

    wfcon.ImpersonateUser(HttpContext.Current.User.Identity.Name);

    //获取流程列表
    SourceCode.Workflow.Client.WorklistItem worklistitem = wfcon.OpenWorklistItem(SN);
    //转签
    worklistitem.Redirect(argEmpName);
    //释放资源
    wfcon.Dispose();
    }

    流程图如下:

  • 相关阅读:
    Arduino Nano与SIM800C 通信
    Laravel 查询数据按照时间分组
    Laravel 查询或写入Enum字段出错的bug解决办法
    【示例代码及地区json】js省市区三级联动 升级版
    【示例代码及地区json】js省市区三级联动
    Laravel使用whereHas进行过滤不符合条件的预加载with数据
    Laravel where条件拼接,数组拼接where条件
    postman传数组参数,二维数组,多维数组
    中国元器件电商
    蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
  • 原文地址:https://www.cnblogs.com/dannyli/p/2125302.html
Copyright © 2011-2022 走看看