代码之家  ›  专栏  ›  技术社区  ›  Amit

如何从MVC调用K2工作流

  •  3
  • Amit  · 技术社区  · 10 年前

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

    提前感谢。

    2 回复  |  直到 10 年前
        1
  •  3
  •   M.Ob    10 年前

    你可以用MVC中的K2做任何事情。它们有一系列的API(web服务、dll等) here .

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

    下面是一个使用SourceCode.workflow.Client.dll启动工作流的简单示例:。

    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
  •  0
  •   Chevdor    9 年前

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

    例如,您可以使用RESTAPI并使用GET方法轻松启动新流程。

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

    更多信息 here .