Как добавлять новые объекты через код так, чтобы бизнес-процесс мог триггериться на создание этих объектов ?
Есть у меня бизнес-процесс А, в нём есть элемент скрипт, который через код добавляет новые объекты, делает он это, примерно, так:
var insert = new Insert(userConnection).Into("UsrCard") .Set("Id", Column.Parameter("id")) .Set("Name", Column.Parameter("Name")) ...; insert.Execute();
Есть бизнес-процесс Б, который стартует по сигналу создания этих объектов(Object signal, UsrCard, Record Added). Точнее он должен старовать, но этого не делает. Я так понимаю, что проблема в том, как именно я добавляю эти объекты. Естественно, если бы я это делал через элемент Add data, то всё работало бы, но мне надо добавлять именно через код, так как объектов создать надо много и так удобней.
Вопрос в том, как мне нужно поменять мой подход добавления объектов, чтобы процесс Б начал триггериться на эти новые объекты, можно ли вообще этого добиться, не используя элемент Add data ?
Нравится
Добрый день.
Для того, чтобы срабатывал вызов бизнес-процесса по сигналу, Вам нужно делать добавление через EntitySchema. Вот таким образом:
EntitySchema contactSchema = UserConnection.EntitySchemaManager.GetInstanceByName("Contact"); Entity contactEntity = contactSchema.CreateEntity(UserConnection); contactEntity.SetDefColumnValues(); contactEntity.SetColumnValue("Name", "User01"); contactEntity.Save();
Алла Савельева,
Добрый день. Попробовал так, но бизнес-процесс всё равно не стартует по сигналу. В процессе, в котором вызывается этот код, ошибок при выполнении нет, сами данные успешно добавились, а процесс, который должен запуститься, не запускается вовсе, то есть тоже нет каких-либо ошибок в логах процессов.
Хм, я заметил, что старт бизнес-процесса по сигналу всё таки срабатывает, но только, если запустить процесс создания объектов вручную(нажав Run). Но мне надо, чтобы этот процесс запускался автоматически(механизм этого есть и работает). Не пойму, что именно в автоматическом запуске первого процесса мешает позже запуститься второму процессу. Может, надо UserConnection как-то по-другому доставать ?