Как в BPMOnline получить Id запущенного процесса сразу же после запуска

1/ Как в BPMOnline получить Id запущенного процесса сразу же после запуска?
2/ И id и Name родительского процесса?
Например: Старт -> [Получить Id процесса] -> [Шаги процесса]

Нравится

Поделиться

3 комментария

Здравствуйте!

Уточните, пожалуйста, зачем Вам получать идентификатор процесса? И нужен ли именно идентификатор процесса или идентификатор экземпляра процесса?

Есть несколько процессов , например : М1, M2, M3 - Во всех этих процессах внутри запускается процесс M11.
Задача : Во всех задачах M11 в заголовок должно прибавляться название родительского процесса

Все тема закрыта. Задача решена.
1. Перед запуском подпроцесса задаем входящий параметр: InstanceUId (Id родительского процесса).
например:

Collection<Dictionary<string, object>> processCollection = new Collection<Dictionary<string, object>>();
Dictionary<string, object> process = new Dictionary<string, object>();
process.Add("processSchemaId", new Guid("{A9EE9783-31FE-4C5A-B3F5-94EED1650B2D}")); // KA21
process.Add("ActiveTreeGridCurrentRowId", documentId);
<strong>process.Add("ParentProcessId", new Guid(InstanceUId));</strong>
processCollection.Add(process);
StrartProcessConclusionUserTask.paramCollection = processCollection;
StrartProcessConclusionUserTask.processCollection = null;
StrartProcessConclusionUserTask.WaitForSubProcessCompletion = true;

и в подпроцессе вытаскиваем название родительского процесса по параметру ParentProcessId

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)
	{
		<strong>ParentProcessName = " (" +ent[0].GetTypedColumnValue<string>("Name") + ") ";</strong>
	}
}

И все, прикрепляем каждой задаче:

ActivityUserTask1.Title = string.Format("Назначить ответственного за подготовку заключения {0}",ParentProcessName);
Показать все комментарии