Как в BPMOnline получить Id запущенного процесса сразу же после запуска
1/ Как в BPMOnline получить Id запущенного процесса сразу же после запуска?
2/ И id и Name родительского процесса?
Например: Старт -> [Получить Id процесса] -> [Шаги процесса]
Здравствуйте!
Уточните, пожалуйста, зачем Вам получать идентификатор процесса? И нужен ли именно идентификатор процесса или идентификатор экземпляра процесса?
Все тема закрыта. Задача решена.
1. Перед запуском подпроцесса задаем входящий параметр: InstanceUId (Id родительского процесса).
например:
[csharp]
Collection> processCollection = new Collection>();
Dictionary process = new Dictionary();
process.Add("processSchemaId", new Guid("{A9EE9783-31FE-4C5A-B3F5-94EED1650B2D}")); // KA21
process.Add("ActiveTreeGridCurrentRowId", documentId);
process.Add("ParentProcessId", new Guid(InstanceUId));
processCollection.Add(process);
StrartProcessConclusionUserTask.paramCollection = processCollection;
StrartProcessConclusionUserTask.processCollection = null;
StrartProcessConclusionUserTask.WaitForSubProcessCompletion = true;
[/csharp]
и в подпроцессе вытаскиваем название родительского процесса по параметру ParentProcessId
[csharp]
if(ParentProcessId != Guid.Empty)
{
Select s = new Select(UserConnection)
.Column("SP1","Name").As("Name")
.From("SysProcess").As("SP1")
.Where("SP1","Id").IsEqual(new QueryParameter(ParentProcessId)) as Select;
EntityCollection ent = new EntityCollection(UserConnection, "SysProcess");
ent.Load(s.ExecuteReader(UserConnection.EnsureDBConnection()));
if (ent.Count > 0)
{
ParentProcessName = " (" +ent[0].GetTypedColumnValue("Name") + ") ";
}
}
[/csharp]
И все, прикрепляем каждой задаче:
[csharp]
ActivityUserTask1.Title = string.Format("Назначить ответственного за подготовку заключения {0}",ParentProcessName);
[/csharp]