Публикация
Как в BPMOnline получить Id запущенного процесса сразу же после запуска
5 сентября 2012 14:47
1/ Как в BPMOnline получить Id запущенного процесса сразу же после запуска?
2/ И id и Name родительского процесса?
Например: Старт -> [Получить Id процесса] -> [Шаги процесса]
6 сентября 2012 12:01
Здравствуйте!
Уточните, пожалуйста, зачем Вам получать идентификатор процесса? И нужен ли именно идентификатор процесса или идентификатор экземпляра процесса?
8 сентября 2012 13:14
Все тема закрыта. Задача решена.
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);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать