Asp.net mvc 4 如何从MVC调用K2工作流

Asp.net mvc 4 如何从MVC调用K2工作流,asp.net-mvc-4,workflow,k2,Asp.net Mvc 4,Workflow,K2,全部 只是想知道我们是否可以从控制器调用K2工作流? 我有一个用MVC开发的UI,需要实现一些工作流。。。我们有没有办法做到这一点?有K2 API吗?我们可以直接从控制器打电话吗?任何指针,例如,都会有所帮助 提前感谢。你可以用MVC的K2做任何事情。他们有一整套API(web服务、DLL等)。您可以查看开发人员参考 K2安装包含所需的所有*.dll。默认位置为C:\Program Files(x86)\K2 blackpearl\Bin 下面是一个使用SourceCode.workflow.C

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


提前感谢。

你可以用MVC的K2做任何事情。他们有一整套API(web服务、DLL等)。您可以查看开发人员参考

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

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


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

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

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

更多信息

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;
        }
    }
}