3

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

提前致谢。

4

2 回答 2

3

你肯定可以用 MVC 中的 K2 做任何事情。他们有全系列的 API(Web 服务、dll 等)。您可以在此处查看开发人员参考。

您的 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;
        }
    }
}
于 2015-02-13T11:53:15.873 回答
0

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

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

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

更多信息在这里

于 2015-12-08T22:32:07.387 回答