【问题标题】:How to Invoke K2 workflow from MVC如何从 MVC 调用 K2 工作流
【发布时间】:2015-02-10 19:01:22
【问题描述】:

全部 只是想知道我们是否可以从控制器调用 K2 工作流? 我有一个用 MVC 开发的 UI,需要实现一些工作流......有什么办法可以实现这个吗?是否有任何 K2 API?我们可以直接从控制器调用吗?任何指针,示例都会有所帮助。

提前致谢。

【问题讨论】:

    标签: asp.net-mvc-4 workflow k2


    【解决方案1】:

    您当然可以使用 MVC 中的 K2 做任何事情。他们有全系列的 API(Web 服务、dll 等)。可以查看开发者参考here

    您的 K2 安装包含您需要的所有 *.dll。默认位置是 C:\Program Files (x86)\K2 blackpearl\Bin。

    这是一个使用 SourceCode.Workflow.Client.dll 启动工作流的简单示例:(注意:我编写了自己的类库来处理我的所有 K2 交互,将我的控制器的工作分开,但是你如果你愿意,可以简单地将下面的方法放在你的控制器中)。

    using SourceCode.Workflow.Client;
    
    public class MySampleK2Service: IMySampleK2Service
    {
    
        private readonly string serverHost;
        private readonly string impersonatedUser;
    
        public MySampleK2Service(string serverHost, string impersonatedUser)
        {
            this.serverHost = serverHost;
            this.impersonatedUser = impersonatedUser;
        }
    
        public int StartNewWorkflow(string processName, string folio)
        {
            using (var connection = new Connection())
            {
                connection.Open(this.serverHost);
    
                if (this.impersonatedUser != null)
                {
                    connection.ImpersonateUser(this.impersonatedUser);
                }
    
                var processInstance = connection.CreateProcessInstance(processName);
                processInstance.Folio = folio;
                connection.StartProcessInstance(processInstance, true);
    
                return processInstance.ID;
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      您也可以使用 K2 提供的称为 K2Services 的 Web 服务。有了这些,你就不需要任何参考了。

      例如,您可以使用 REST API 并使用 GET 方法轻松启动新进程。

      如果您需要更多控制并通过 DataFields 传递数据,您可以使用 POST 方法。

      更多信息here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-13
        • 2018-07-18
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 2015-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多