Отмена процесса K2 - PullRequest
       21

Отмена процесса K2

3 голосов
/ 09 декабря 2010

Мне поручено задание на K2 Blackpearl, которое включает в себя программную остановку процесса определенных рабочих элементов напрямую, без использования интерфейса продукта, поскольку он не служит цели.

Проблема в том, что в этом бизнес-требовании конкретный инициатор может иметь несколько загрузок документов, что было возможно благодаря созданию специального приложения, которое считывает строки из файла Excel и автоматически загружает их в K2.

Разработчики этого решения больше не присутствуют, и детали их работы недоступны.

Мне только что сказали, что остановку процессов можно выполнить с помощью пользовательского консольного приложения.

Может кто-нибудь научить меня правильному пути? У меня нет предыдущего опыта работы с K2, поэтому это огромная задача для меня, так как я незнаком с его ходом.

1 Ответ

8 голосов
/ 10 декабря 2010

API-интерфейсы K2 очень хорошо документированы с примерами кода и демонстрационными приложениями, которые вы можете загрузить с K2 подполья.

Ответ на ваш вопрос здесь: k2underground.com/forums/p/12082/35429.aspx

Я вытащил соответствующие строки кода:

// ссылки

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SourceCode.Workflow.Management;
using SourceCode.Hosting.Client.BaseAPI;

// код

// connection string
SCConnectionStringBuilder scBuilder = new SCConnectionStringBuilder();
scBuilder.Authenticate = true;
scBuilder.IsPrimaryLogin = true;
scBuilder.Integrated = true;
scBuilder.Host = "localhost";
scBuilder.Port = 5555;

// connect to K2 Server
WorkflowManagementServer wfmServer = new WorkflowManagementServer();

wfmServer.CreateConnection();
wfmServer.Connection.Open(scBuilder.ConnectionString);

// optionally get a list of process instances to explore
/*
ProcessInstances procInst = 
  wfmServer.GetProcessInstancesAll(string.Empty, string.Empty, string.Empty);
*/

// when you've got a proc inst you're interested in, stop it.
int _procInstId = 123; // get this from your process instance context
wfmServer.StopProcessInstances(_procInstId);

Вы можете найти большепримеры кода здесь: Блог Тима Бирна re: K2

Из десятков доступных пространств имен в API наиболее часто используемые пространства имен (кстати, название компанииSourceCode):

> Sourcecode.Workflow.Client
> SourceCode.Workflow.Management
> SourceCode.SmartObjects.Client

Надеюсь, это поможет.

...