Платформа
Решения
Кто использует Directual и почему?
Что можно сделать на платформе?
Какие отрасли подходят для Directual?
Материалы
Этот урок охватывает несколько практических подходов к обработке данных в формате JSON.

Сначала вам нужно создать новый сценарий, который будет обрабатывать все новые входящие объекты. Этот сценарий будет работать со структурой Incoming Data и триггером New objects.
Перейдите в раздел сценариев и создайте новый сценарий для обработки новых входящих данных.

Далее настройте общие параметры, назвав сценарий и выбрав нужную целевую структуру данных и триггер. В этом примере сценарий называется Parse Incoming Data. Его целевая структура данных — Incoming Data, а срабатывает он по триггеру New objects.

Далее добавьте контекстную переменную → SysName: user_id, Type - link, Link - App users [WebUser].
Она понадобится вам, чтобы извлечь ID из JSON.



Пример плоского JSON
Откройте сценарий и добавьте шаг редактирования объекта, перетащив его на холст. Не забывайте добавлять комментарии, чтобы в будущем было легко разобраться в сценарии.

Теперь настройте шаг редактирования объекта, чтобы записать данные из JSON в контекстную переменную и получить ID. Не забудьте отключить умные поля ввода, чтобы использовать инструмент шаблонов для JSON. Поле с JSON называется Payload – {{payload.id}}.

Существует два разных способа работы с данными в формате JSON, подробнее вы можете узнать в документации.
Далее добавьте шаг условия и настройте его для проверки, существует ли уже такой объект с пользователем. И снова не забудьте добавить комментарии.

Идея заключается в том, чтобы перейти к пользователю по ссылке и проверить, заполнен ли его ID. Если он не пуст — значит, такой пользователь уже существует. Если он пуст — объекта не существует, и нам нужно будет его создать. Если объект не существует, мы используем шаг Create Object. Если объект уже существует, мы изменим его поля с помощью шага Edit object. Сценарий останавливается, когда обработаны оба шага.
Далее настройте шаг редактирования объекта. Измените поле First name объекта пользователя, на который ссылается наша контекстная переменная, и запишите в него данные из JSON, используя инструмент шаблонов для извлечения этого поля из JSON. Шаг Edit object позволяет изменять сразу несколько полей. В данном случае мы изменяем поля First name и Last name.

Теперь настроим шаг создания объекта. Создайте объект в структуре WebUser. Вы заранее знаете ID создаваемого объекта, поэтому выберите опцию Set ID manually. Вы получите значение для ID из контекстной переменной. Сохранять его где-либо отдельно не нужно, так как вы уже знаете этот ID. Опция генерации события или её отсутствие влияет на другие сценарии. Например, если вы хотите создать сценарий, который запускается при создании нового объекта, вам нужно будет включить эту опцию.

На второй вкладке вы можете настроить сопоставление полей. Сохраните First name и Last name из нашего JSON во вновь созданный объект.

Опубликуйте сценарий и запустите его. Он будет реагировать на все новые объекты. Чтобы прогнать через него уже существующий объект, скопируйте ID этого объекта и запустите его через сценарий с помощью меню отладки.
Теперь посмотрите на логи, чтобы убедиться, что всё сработало правильно. Вы также можете посмотреть на счётчики на шагах и увидеть путь объекта. Давайте проверим таблицу App Users. Новый объект с именем и фамилией был успешно создан — это David Watson.
В развёрнутой карточке объекта вы можете увидеть все версии этого объекта, а также ссылки на сценарий или endpoint, который изменил/создал объект. В данном случае вы видите сценарий и шаг Create object.
