Коллеги, добрый вечер! После добавления объекта запускается процесс, можно ли к запускаемым процессам привязать поле например Заказ или сущность от которой он запускается чтобы потом проверить, есть ли запущенные процессы, которые относятся к этому заказу? Например, хочу найти такой процесс, который выполняется и относиться к такому-то заказу.
Нравится
Добрый день. А почему бы не добавить в таблицу сущности состояние или другие значения БП. Можно, например, в разные моменты БП вносить туда изменения
Точно, спасибо, сразу и не подумал. Такой вопрос, а как получить Uid процесса с кода?
Думаю, что вам отлично подойдет такое действие бизнес-процесса как "Привязка процесса к объекту"
Его использование по сути позволит вам добавить нужный объект в "Связанные объекты" процесса и увидеть его на детали в "Журнале процесса"
Если же нужен какой-то анализ или статистика, "Связанные объекты" можно посмотреть через сущность (представление) VwSysProcessEntity [Представление объекта процесса (Пакеты)]
А вот в 7.5 БП "Управление лидом" там есть элемент Привязать Лид к процессу и такой там код
if (LeadId.IsEmpty()) { return false; } new Update(UserConnection, "Lead") .Set("QualificationProcessId", Column.Parameter(UId)) .Where("Id").IsEqual(Column.Parameter(LeadId)).Execute();
UId - я так понимаю это UId процесса, который запуститься, а вот колонки в объекте Lead QualificationProcessId я не нахожу, её руками создавали в БД? Просто на демке смотрю, нету доступа к БД.
Для того, чтобы определить активные процессы по конкретной записи, используйте следующую последовательность элементов:
1) Стартовый сигнал
Условия для запуска процесса указываются в стартовом сигнале.
2) Чтение данных
Выберите объектом чтения данных «Процесс в объекте», а в условиях на объект укажите условия:
• Объект = Идентификатор записи стартового сигнала.
(назовем этот элемент «Список запущенных процессов по записи»)
3) Чтение данных
Выберите объектом чтения данных «Элемент рабочего пространства (представление)», а в условиях на объект укажите условия:
• UId = Id процесса.
Id процесса можно определить, открыв его в дизайнере процессов.
Нас интересуют значения, между «id=» и «&isNewSchema» , Designers/ProcessSchemaDesigner.aspx?Id=00000000-0000-0000-0000-000000000000&isNewSchema.
• Рабочее пространство = UserConnection.Workspace.Id
(назовем этот элемент «Определение ID схемы процесса»)
4) Чтение данных
На этом этапе будем считать количество запущенных процессов. Выберите объектом чтения данных «Журнал процессов», а в условиях на объект укажите условия:
• Процесс = Определение Id схемы процесса.Первый элемент результирующей коллекции.Id
• Id = Список запущенных процессов по записи.Первый элемент результирующей коллекции.Процесс.
Если количество записей в 4ом элементе = 0, тогда по конкретной записи нет запущенных процессов, иначе – запущен хотя бы один процесс.