Вопрос

Terrasoft.generateGUID в бизнес-процессах

Всем доброго времени суток. Версия 7.11.

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

Привязка на деталь осуществляется по id основной записи. Обычно в таких случаях на клиенте создаётся свой guid через функцию Terrasoft.generateGUID();, который затем в insert прописывается в колонку Id также, как и любая другая колонка.

Есть ли аналог этого в сценариях БП?

Нравится

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

Денис, здравствуйте.

Для этих целей есть метод Guid.NewGuid(), подробнее можно найти по ссылке.

Пример использования : 

var contactId = Guid.NewGuid();

Андрей, спасибо! Частично помогло.

Частично - потому что записать сгенерированный таким образом newGiud в другой объект в колонку-справочника невозможно. Возникает ошибка: System.ArgumentException: Отсутствует сопоставление типа объекта Terrasoft.Core.DB.QueryColumnExpression с известным собственным типом управляемого поставщика.

Соответственно вопрос: есть ли callback у insert.Execute(); ? Чтобы можно было гарантированно вызвать продолжение функции уже после того, как запись с id newGiud создана в базе.

Денис

Скорее всего вам не надо создавать новый guid. После создания записи вам надо прочитать в процессе ее id и уже затем использовать его в записях детали.

например

var Id = item.GetTypedColumnValue<Guid>("Id");

Пример можно глянуть здесь https://academy.terrasoft.ru/documents/technic-sdk/7-11/kak-zapuskat-pr…

 

Денис,

Просьба предоставить полный код Задания - сценария, тогда будет проще понять в чем ошибка.

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