Вопрос

Добрый день!

в сущности Активность есть поле типа Boolean. Нужно его вывести в расширенные настройки элемента Открыть страницу редактирования, чтобы при создании активности это поле уже было заполнено.

Как можно вынести свое поле в блок расширенные настройки?

вариант реализации через "добавить элемент" не хотелось бы рассматривать.

 

 

У меня такой же вопрос

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

Добрый день!
При открытии страницы на добавление новой записи любые поля можно предзаполнять (https://monosnap.com/file/tPSQ0trcaysvRU4HTCUngC2G16hyXF). При открытии страницы на редактирование такое сделать нельзя, да и не нужно это делать (перезатирать существующие значения).

Сидоров Александр В.,

опишу свой кейс. Мне нужно открыть страницу сущности Обращение через элемент Открыть страницу редактирования. При этом создается активность. вот в этой активности мне нужно заполнять поле "напоминать ответственному" и "дату напоминания". нам нужно отправлять письмо уже после истечения даты завершения активности, а не до даты начала активности 

Опочина Любовь,

"При этом создается активность" - тогда предлагаю во внутреннем бизнес процессе Активности добавить логику по заполнению полей при создании активности

Сидоров Александр В.,

да. Но это оповещение нужно сделать не для всех активностей, а только для нескольких. опираться на их заголовок не очень хотелось, поэтому сделать поле -признак, что нужно оповещать. но чтобы это поле заполнить, его нужно вынести в расширенные настройки

Если активность создаётся по уже существующему обращению, то можно не в активность, а в обращение добавить новое поле-признак, которое заполняете перед тем, как открыть страницу обращения. И в логике на создании активности учитывать значение этого поля в записи привязанного к активности обращения.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

На прод среде имеется бизнес-процесс в пакете Custom. Я хочу изменить этот процесс, внести его в свой пакет разработки. Что собственно уже сделал на среде разработки. Однако при импорте на тестовую заметил, что этот БП не импортируется, так как такой уже есть в пакете Custom. Есть какие нибудь методы решения такой проблемы? только удаление из Custom на прод перед импортом? Или лучше всё таки новый бп создать?

У меня такой же вопрос

1 комментарий
Лучший ответ

Добрый день!
Можно у себя на стенде перетащить БП в свой пакет (сменить пакет у БП), а при установке в прод ставить архивом изменяемые пакеты (включая Custom) через установку приложения (не импорт схемы)

Добрый день!
Можно у себя на стенде перетащить БП в свой пакет (сменить пакет у БП), а при установке в прод ставить архивом изменяемые пакеты (включая Custom) через установку приложения (не импорт схемы)

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Запускаю из сервиса БП, в котором нет никаких ожиданий.

UserConnection 	userConnection	= HttpContext.Current.Session["UserConnection"] as UserConnection;
var 			manager 		= userConnection.ProcessSchemaManager;
var 			processSchema 	= manager.GetInstanceByName("UsrProcess");
var 			process 		= processSchema.CreateProcess(userConnection);
 
process.SetPropertyValue("ExternalCall", true);
process.Execute(userConnection);

Подскажите, как дождаться завершения БП и прочитать параметры, которые мы имеем в конце выполнения?

У меня такой же вопрос

8 комментариев
Лучший ответ

Добрый день!
Данное действие синхронно, т.е. после завершения операции process.Execute(userConnection); уже можно забирать параметры.
Забирать их следующим образом (пример):

res.Success = process.GetPropertyValue("RpSuccess") != null ? (bool)process.GetPropertyValue("RpSuccess") : false;
res.ErrorDescription = process.GetPropertyValue("RpReturnMsg") != null ? (string)process.GetPropertyValue("RpReturnMsg") : "";

 

Добрый день!
Данное действие синхронно, т.е. после завершения операции process.Execute(userConnection); уже можно забирать параметры.
Забирать их следующим образом (пример):

res.Success = process.GetPropertyValue("RpSuccess") != null ? (bool)process.GetPropertyValue("RpSuccess") : false;
res.ErrorDescription = process.GetPropertyValue("RpReturnMsg") != null ? (string)process.GetPropertyValue("RpReturnMsg") : "";

 

Я бы еще добавил проверку что БП завершен а не свалилися например с ошибкой или еще выполняется, примерно так. 

if (process.Status != ProcessStatus.Running && process.Status != ProcessStatus.Error)

or

if (process.Status == Terrasoft.Core.Process.ProcessStatus.Done)

Как выяснилось, мне нужен интерпретируемый процесс, а там все немного по-другому, а именно

UserConnection 	userConnection	= HttpContext.Current.Session["UserConnection"] as UserConnection;
var manager 		= userConnection.ProcessSchemaManager;
var processSchema 	= manager.GetInstanceByName("UsrPreCreateDealProcess");
var flowEngine 		= new Terrasoft.Core.Process.FlowEngine(userConnection);
Dictionary<string, object> parameter = new Dictionary<string, object>();
parameter.Add("CarId", car_id);
Terrasoft.Core.Process.ProcessDescriptor pd = flowEngine.RunProcess(processSchema, parameter);
if (pd.ProcessStatus == Terrasoft.Core.Process.ProcessStatus.Done)
{
	?????
}

Как вытащить параметры в конце выполнения здесь?

Есть предположение, что копать стоит в сторону FlowEngineStateService, у него есть метод FindProcessComponentSet(Guid processUId), который возвращает инфу о процессе. И там уже забрать параметры

Сидоров Александр В.,

я нашел этот класс, у него есть метод GetParameterValue, но он стабильно возвращает, что параметр не найден по данному пути и возникает (философский) вопрос, что есть Путь? Видимо, это не просто имя. Но товарищи из Террасофта не догадались описать этот момент нигде ни разу.

перепробовал всё с FlowEngineStateService - ничего не работает, написал в ТП

Вообще, не очень хорошо запускать процессы и ждать их завершения синхронно. Ведь процесс может выполняться некоторое время или вообще иметь элементы для общения с пользователем. Лучше будет в самом процессе записывать результаты в какую-то таблицу, а потом периодически её новые записи обрабатывать.

ТП ответила, что решения в 7.11 нет. Я так и знал :)) и заранее сделал обходной путь через БД. Заодно полезное для отладки логирование получилось

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем привет.

В недавних версиях, если в задании-сценарии поставить галочку для компилируемого процесса, обращаться с параметрами процесса можно было как с обычными переменными. Как я понимаю, в новых версиях все процессы стали интерпретируемыми и такое больше не прокатит. Как правильно писать и читать параметры бизнес-процесса в задании-сценарии?

Заранее спасибо за помощь.

У меня такой же вопрос

2 комментария
Лучший ответ

Начиная с версии 7.12.3 все создаваемые бизнес-процессы в bpm’online являются интерпретируемыми. Для обращения к значениям параметра процесса следует использовать методы get и set 

Метод Get возвращает значение параметра элемента или процесса.

Сигнатура метода:

Get<T>(string path)

где:

T — тип значения параметра;

path — строка, определяющая путь к параметру или свойству. Путь формируется согласно правилам:

“имя параметра”,

“имя свойства”,

“имя элемента.имя параметра”,

“имя элемента.имя свойства”.

Метод Set указывает значение параметру элемента или процесса.

Сигнатура метода:

Set(string path, T value)

где:

value — указываемое значение,

path — строка, определяющая путь к параметру или свойству. Путь формируется согласно правилам, описанным выше для метода Get.

 

Так например чтобы получить в скриптаске UserConnection нужно использовать конструкцию:

UserConnection userConnection = Get<UserConnection>("UserConnection");

Чтобы получить строковый параметр БП:

string message = Get<string>("Message");

Подробнее тут

Начиная с версии 7.12.3 все создаваемые бизнес-процессы в bpm’online являются интерпретируемыми. Для обращения к значениям параметра процесса следует использовать методы get и set 

Метод Get возвращает значение параметра элемента или процесса.

Сигнатура метода:

Get<T>(string path)

где:

T — тип значения параметра;

path — строка, определяющая путь к параметру или свойству. Путь формируется согласно правилам:

“имя параметра”,

“имя свойства”,

“имя элемента.имя параметра”,

“имя элемента.имя свойства”.

Метод Set указывает значение параметру элемента или процесса.

Сигнатура метода:

Set(string path, T value)

где:

value — указываемое значение,

path — строка, определяющая путь к параметру или свойству. Путь формируется согласно правилам, описанным выше для метода Get.

 

Так например чтобы получить в скриптаске UserConnection нужно использовать конструкцию:

UserConnection userConnection = Get<UserConnection>("UserConnection");

Чтобы получить строковый параметр БП:

string message = Get<string>("Message");

Подробнее тут

Григорий Чех,

Спасибо большое! Как-то этот мануал мимо меня прошёл.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Вопрос:

Возникла необходимость разобрать массив с большим кол-вом данным.  На академии такой пример не рассмотрен.
В курсе о возможности парсинга массива при настройке параметров JSONPath, но это работает при условии возвращения одной записи в массиве. А как быть с большим кол-вом данных?

При настройке обработки ответа веб-сервиса, есть поле "Является массивом", при его активации, ответ конвертируется в интерфейс IObjectList, и записать его в параметрах бизнес процесса представляется возможным только с типом данных "Коллекция значений", что усложняет парсинг массива.

Вопросы:
Что за интерфейсы IObjectList/ICompositeObject/ICompositeObjectList<TObject>, и как обрабатывать такой конвертированный массив?
Можно-ли обработать массив из ответа веб-сервиса и как это сделать?

Веб-сервис http://hetzner1.k-matika.ru:64123/0/rest/KmWebService/GenderSearchContact?GenderName={значение}, выборка по полу {Male/Female}

Выборка полей по каждому контакту: Id, Name, Phone

Ответ:

Пример реализации:
Сервис (схема):

Рекомендации: используйте контракты для передачи объектов, для формирования json, используйте возможности newtonsoft.json
Бизнес-процесс:

Сервис


Настройки элемента "Вызвать веб сервис"


Настройки элемента "Задание-сценарий":

Поделиться

1 комментарий

ICompositeObjectList представляет собой массив элементов ICompositeObject. Перебирается обычным циклом (foreach).
ICompositeObject - dictionary (ключ-значение).
Получить значение можно одним из 2х методов:
 

/// <summary>Returns inner value by key.</summary>
    /// <param name="key">The key.</param>
    /// <param name="valueType">Type of the value.</param>
    /// <param name="value">Result value.</param>
    bool TryGetValue(string key, Type valueType, out object value);
 
    /// <summary>Returns inner value by key.</summary>
    /// <typeparam name="TValueType">The type of the value.</typeparam>
    /// <param name="key">The key.</param>
    /// <param name="value">Result value.</param>
    bool TryGetValue<TValueType>(string key, out TValueType value);

 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Здравствуйте.

Есть следующая ситуация:

Заходим в деталь карточки раздела, добавляя туда запись отрабатывает БП который меняет значение поля в Entity, но при возвращении в карточку остается старое значение.
Поэтому возникает необходимость актуализировать данные в карточке, к примеру, при помощи метода this.reloadEntity(), но непонятно как отправить message из БП в схему карточки и там уже запустить обновление.

Есть идеи?

У меня такой же вопрос

5 комментариев
Лучший ответ

На сервере через Элемент скрипты делаете так:
 

string messageText = "{\"любой текст, если хотите\"}";
string sender = "NeedUpdatedGrid";
MsgChannelUtilities.PostMessageToAll(sender, messageText);

Затем создаете клиентский модуль, такого содержания:
 

define("ClientMessageBridge", ["ConfigurationConstants"],
function(ConfigurationConstants) {
    return {
        messages: {
            "NeedUpdatedGrid": {
                "mode": Terrasoft.MessageMode.BROADCAST,
                "direction": Terrasoft.MessageDirectionType.PUBLISH
            }
        },
        methods: {
            init: function() {
                this.callParent(arguments);
                this.addMessageConfig({
                    sender: "NeedUpdatedGrid",
                    messageName: "NeedUpdatedGrid"
                });
            },
            afterPublishMessage: function(
                sandboxMessageName,
                webSocketBody,
                result,
                publishConfig) {
                if (sandboxMessageName === "NeedUpdatedGrid") {
                    var name = webSocketBody.name;
                }
            }
        }
    };
});

А там, где хотите обновить грид, делаете так:

init: function() {
  this.callParent(arguments);
  this.sandbox.subscribe("NeedUpdatedGrid", this.myNameMethod, this);
},
myNameMethod: function(args) {
    this.reloadEntity();
}

Ну и соответственно не забудьте в схеме дописать 
блок messages, сообщение можете принимать как BROADCAST
 

На сервере через Элемент скрипты делаете так:
 

string messageText = "{\"любой текст, если хотите\"}";
string sender = "NeedUpdatedGrid";
MsgChannelUtilities.PostMessageToAll(sender, messageText);

Затем создаете клиентский модуль, такого содержания:
 

define("ClientMessageBridge", ["ConfigurationConstants"],
function(ConfigurationConstants) {
    return {
        messages: {
            "NeedUpdatedGrid": {
                "mode": Terrasoft.MessageMode.BROADCAST,
                "direction": Terrasoft.MessageDirectionType.PUBLISH
            }
        },
        methods: {
            init: function() {
                this.callParent(arguments);
                this.addMessageConfig({
                    sender: "NeedUpdatedGrid",
                    messageName: "NeedUpdatedGrid"
                });
            },
            afterPublishMessage: function(
                sandboxMessageName,
                webSocketBody,
                result,
                publishConfig) {
                if (sandboxMessageName === "NeedUpdatedGrid") {
                    var name = webSocketBody.name;
                }
            }
        }
    };
});

А там, где хотите обновить грид, делаете так:

init: function() {
  this.callParent(arguments);
  this.sandbox.subscribe("NeedUpdatedGrid", this.myNameMethod, this);
},
myNameMethod: function(args) {
    this.reloadEntity();
}

Ну и соответственно не забудьте в схеме дописать 
блок messages, сообщение можете принимать как BROADCAST
 

Литвинко Павел,

Спасибо, попробую.
А зачем эта функция?

afterPublishMessage: function(
                sandboxMessageName,
                webSocketBody,
                result,
                publishConfig) {
                if (sandboxMessageName === "NeedUpdatedGrid") {
                    var name = webSocketBody.name;
                }
                }

И модуль этой же функции должен от кого-то наследоваться?

Литвинко Павел,

На сервере через Элемент скрипты делаете так:

Под - "...Элемент скрипты..." , вы имели ввиду элемент задание сценарий?
Если это так, то следующий код там неприменим:

MsgChannelUtilities.PostMessageToAll(sender, messageText);

Так как объект MsgChannelUtilities отсутствует в данном контексте.

Андреев Андрей Сергеевич пишет:

Литвинко Павел,

На сервере через Элемент скрипты делаете так:

Под - "...Элемент скрипты..." , вы имели ввиду элемент задание сценарий?
Если это так, то следующий код там неприменим:

MsgChannelUtilities.<span>PostMessageToAll</span><span>(</span>sender, messageText<span>)</span><span>;</span>

Так как объект MsgChannelUtilities отсутствует в данном контексте.

ЕщеСвернуть

Да, задание сценарий 

Андреев Андрей Сергеевич пишет:

Литвинко Павел,

Спасибо, попробую.
А зачем эта функция?


 
afterPublishMessage: function(
                sandboxMessageName,
                webSocketBody,
                result,
                publishConfig) {
                if (sandboxMessageName === "NeedUpdatedGrid") {
                    var name = webSocketBody.name;
                }
                }

И модуль этой же функции должен от кого-то наследоваться?

https://academy.terrasoft.ua/documents/technic-sdk/7-13/clientmessagebr… 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Подскажите, как из бизнес-процесса сделать запись в центр уведомлений (нужно записать текст ошибки для админа при работе интеграции сделанной с  помощью бизнес-процесса)?

У меня такой же вопрос

12 комментариев
Лучший ответ

Prime Source,

Я для этих целей проходился по всем членам группы и каждому создавал уведомление, возможно есть более простой и удобный способ

Обсуждалось тут описано тут

Григорий Чех,

 

Можно найти эту запись в базе в таблице Reminding и посмотреть значение поля NotificationTypeId и других интересующих полей.

Григорий Чех,

 Можно ли отправить уведомление не конкретному человеку а группе, к примеру пользователям с правами System Administrator ?

Нет, поле «Кому» ссылается только на контакт.

Зверев Александр,

 это я тоже заметил. Но есть же наверно возможность уведомления в центр уведомлений отправлять группе? Или все же это только поименно и других нет способов?

Почему Вы считаете, что такая возможность есть? Список полей объекта виден в дизайнере, там поля «Группа пользователей» нет.

Зверев Александр,

 Видимо не правильно выразился. Я хотел узнать есть ли возможность создавать уведомления в центре уведомлений которые отправляются группе пользователей. Не обязательно методом что тут описан, возможно есть другие методы вывести туда сообщения?

Prime Source,

Я для этих целей проходился по всем членам группы и каждому создавал уведомление, возможно есть более простой и удобный способ

Как вариант, писать в ленту. Создать канал, подписать на него нужную группу пользователей.

Зверев Александр,

во, отличная идея про канал. Теперь только нужно подумать как из процесса в канал отправить сообщение))

См. здесь.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Есть БП который вызывается через кнопку в клиентском модуле, он заполняет деталь. Как через сообщения сделать обновление детали после окончания работы БП что бы было видно наполнение детали? На форуме был такой вопрос но там было сделано через ивент в БП старого типа, в новых это не работает.

Я понимаю что нужно создать в конце БП скрипт который будет генерировать сообщение, а на клиентском модуле нужно подписать на него, но видимо я делаю что-то не так и у меня не работают мои попытки 

У меня такой же вопрос

7 комментариев
Лучший ответ
PostMessage отправляет конкретному юзеру. Поэтому надо быть уверенным, что бп запущен от нужного пользователя и он на нужной странице(где есть код для обработки обратного сигнала). 
Если не подходит, можно воспользоваться PostMessageToAll(string sender, string message). Рассылает сообщение по всей конфигурации всем пользователям.

Здравствуйте!

В конце БП в элементе Задание-сценарий вставляете следующую строку:
 

MsgChannelUtilities.PostMessage(UserConnection, "MyMessage", "UpdateDetail");

В клиентском модуле детали реализовать следующий код:
 

init: function () {
				this.callParent(arguments);
				this.subscriptionFunction();
			},
subscriptionFunction: function() {
				Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE,
				this.bpListenerMessage, this);
			},
bpListenerMessage: function(scope, message) {
				if (!message || message.Header.Sender !== "MyMessage") {
					return;
				}
				var message2 = message.Body;
				if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetail") {
					this.updateDetail();
				}
			}

Примерно так.

Нигрескул Алексей,

 

Не обновляет, уже и не знаю в чем дело может быть

В БП

var userConnection = Get<UserConnection>("UserConnection");
Terrasoft.Configuration.MsgChannelUtilities.PostMessage(userConnection, "ReloadDetailConcert", "UpdateDetail");
return true;

На клиенте

init: function () {
	this.callParent(arguments);
	this.subscriptionFunction();
},
subscriptionFunction: function() {
	Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE,
	this.bpListenerMessage, this);
},
bpListenerMessage: function(scope, message) {
	if (!message || message.Header.Sender !== "ReloadDetailConcert") {
		return;
	}
	var message2 = message.Body;
	if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetail") {
		this.updateDetail();
	}
},

 

PostMessage отправляет конкретному юзеру. Поэтому надо быть уверенным, что бп запущен от нужного пользователя и он на нужной странице(где есть код для обработки обратного сигнала). 
Если не подходит, можно воспользоваться PostMessageToAll(string sender, string message). Рассылает сообщение по всей конфигурации всем пользователям.

Варфоломеев Данила,

Изменил на 

Terrasoft.Configuration.MsgChannelUtilities.PostMessageToAll("ReloadDetailConcert", "UpdateDetail");
return true;

не помогло

Нужно ли еще прописать?

messages: {
	"ReloadDetailConcert": {
		mode: Terrasoft.MessageMode.BROADCAST,
		"direction": Terrasoft.MessageDirectionType.SUBSCRIBE
	}
},

 

Prime Source,

Да нет. Должно и так работать. Даже subscriptionFunction не вызывается?

Варфоломеев Данила,

По дебагу срабатывает, и сообщение правильно ловит, и выполняет this.updateDetail(); ,но почему нет данных в детали не пойму. Может что в процессе не так? Вот его скрин, там идет цикл который делает 8 проходов, и когда в таблице 8 записей становится он выполняет скрипт сообщения и завершает

 

Prime Source,

//Relationships - название детали из details.
//пример:
this.updateDetail({detail: "Relationships"});

Проверьте код(указывается ли имя детали). Плюс должны быть настроены колонки

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Вопрос:

Каким образом можно отправить email сообщение из бизнес-процесса с вложенными файлами?

Кейс такой: Есть раздел "Контрагенты", в нем есть деталь Файлы и ссылки, в данную деталь добавляю 2 файла.
Как только статус контрагента перейдет, допустим, в "Отправка", запускается процесс отправки письма с вложенными файлами из детали Файлы и ссылки. Кроме того, email будет отправляться вручную, после запуска бп, контакту текущего пользователя будет появляться сформированное письмо для выбора адресата (контакты контрагента).

Ответ:

Для Вашей задачи можно воспользоваться следующим подходом:
- Создать активность с типом email
- Добавить для нее вложение, например, открыв страницу редактирования пользователю и прикрепив нужные файлы
- Установить с помощью элемента Формула значение для параметра paractivityid
- В рамках задания сценария выполнить отправку:
var activityId = Get<Guid>("paractivityid");
var emailClientFactory = ClassFactory.Get(new ConstructorArgument("userConnection", UserConnection));
var activityEmailSender = new ActivityEmailSender(emailClientFactory, UserConnection);
activityEmailSender.Send(activityId);
return true;

При этом необходимо в usings добавить следующие библиотеки:
- Terrasoft.Mail.Sender
- Terrasoft.Mail
- Terrasoft.Core.Factories
- Terrasoft.Configuration

Пример использования данного кода можно найти в базовом процессе "Отправка email сообщения контакту обращения".
 

Поделиться

1 комментарий

Добрый день Ксения.

Вариантов реализации данной задачу очень много. Но если нам требуется отправить Емайл с фложениями, я бы пошел по пути создания своего Элемента процесса, вывода его в "Элементы процесса" и далее его бы использовал для выполнения своих Кейсов. Если внимательно на это посмотреть, то элемент "Отправить email" практические все это умеет и даже есть вставить C# код по событию "После сохранения активности" для пост обработки.

я бы взял за основу данных Элемент процесса и переделал под себя.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Вопрос:

Как отправить уведомление через элемент процесса Добавить данные. Элемент Notification с типом Remindingотрабатывает, но уведомление не приходит.

Ответ:

Проблема связана с настройками элемента "Добавить данные". Для корректного добавления уведомления Вам необходимо добавить маппинг поля "Объект" на объект, по которому Вы хотите добавить уведомление. Пример заполнения настроек:

Объект: [#Справочник.Объект раздела (представление).Activity#]
Источник: объект, с которым должно быть создано напоминание ( к примеру, продажа)
Уникальный идентификатор записи: id записи источника

В рамках бизнес-процесса есть возможность создавать уведомление по новому разделу, для этого Вам необходимо в справочнике "Источник уведомления" создать новую запись для Вашего раздела и указать её в настройках элемента (если в разделе Справочники не будет указанного, необходимо его создать).

Но при отправке уведомления по своему разделу не будет увеличиваться и обновляться счетчик новых уведомлений, это связано с тем, что для нового раздела не настроен провайдер.
Для создания провайдера потребуется определенный навык в разработке, Вы можете ознакомитсья с реализацией базовых провайдеров в исходных кодах LeadNotificationProvider, использующего INotificationProvider.

В качестве обходного решения Вы можете создавать Активность (например, проконтролировать обработку записи из кастомного раздела № Х.), и создавать в рамках процесса напоминание по Активности:


В данном варианте в элементе "Уникальный идентификатор записи" необходимо выполнить маппинг на id из элемента "Читать данные Активности".

Либо же Вы можете включить визирование в разделе и отправлять визу по созданной записи, детальнее в статье на Академии.

 

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать