Вопрос

Как добавлять новые объекты через код так, чтобы бизнес-процесс мог триггериться на создание этих объектов ?

Есть у меня бизнес-процесс А, в нём есть элемент скрипт, который через код добавляет новые объекты, делает он это, примерно, так:

 

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 ?

Нравится

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

Добрый день.

Для того, чтобы срабатывал вызов бизнес-процесса по сигналу, Вам нужно делать добавление через EntitySchema. Вот таким образом:

EntitySchema contactSchema = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
Entity contactEntity = contactSchema.CreateEntity(UserConnection);
contactEntity.SetDefColumnValues();
contactEntity.SetColumnValue("Name", "User01");
contactEntity.Save();

 

Алла Савельева,

Добрый день. Попробовал так, но бизнес-процесс всё равно не стартует по сигналу. В процессе, в котором вызывается этот код, ошибок при выполнении нет, сами данные успешно добавились, а процесс, который должен запуститься, не запускается вовсе, то есть тоже нет каких-либо ошибок в логах процессов.

Хм, я заметил, что старт бизнес-процесса по сигналу всё таки срабатывает, но только, если запустить процесс создания объектов вручную(нажав Run). Но мне надо, чтобы этот процесс запускался автоматически(механизм этого есть и работает). Не пойму, что именно в автоматическом запуске первого процесса мешает позже запуститься второму процессу. Может, надо UserConnection как-то по-другому доставать ?

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