Вопрос по бизнес-процессу

Коллеги, добрый вечер! После добавления объекта запускается процесс, можно ли к запускаемым процессам привязать поле например Заказ или сущность от которой он запускается чтобы потом проверить, есть ли запущенные процессы, которые относятся к этому заказу? Например, хочу найти такой процесс, который выполняется и относиться к такому-то заказу.

Нравится

6 комментариев

Добрый день. А почему бы не добавить в таблицу сущности состояние или другие значения БП. Можно, например, в разные моменты БП вносить туда изменения

Точно, спасибо, сразу и не подумал. Такой вопрос, а как получить 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, тогда по конкретной записи нет запущенных процессов, иначе – запущен хотя бы один процесс.

Показать все комментарии