Low-code дизайнер > Приложение > Работа с приложением в скриптах / Массовые действия с элементами приложений в скрипте

Массовые действия с элементами приложений в скрипте

В ELMA365 вы можете массово добавлять элементы и обновлять их поля через скрипт, используя методы на языке TypeScript. Это позволяет снизить нагрузку на систему и уменьшить влияние установленных лимитов, когда нужно обработать большое количество данных. Например, если у вас настроена интеграция со сторонней системой, можно из неё загрузить каталог товаров в приложение.

Вы можете задать следующие методы в скриптах:

  • app.batch().save() — массовое добавление элементов приложения;
  • app.batch().update() — массовое обновление полей элементов приложения.

Обратите внимание, за один запрос обрабатывается не более 10000 элементов. Это ограничение применяется ко всем указанным методам.

В статье рассмотрим на примерах, как использовать методы в скриптах. Подробнее читайте в справке ELMA365 TS SDK.

Массовое добавление элементов

С помощью app.batch().save() пакет элементов приложения обрабатывается за один запрос.

Используйте этот метод, чтобы:

  • сохранить новые элементы в приложение;
  • обновить поля существующих элементов. В этом случае укажите их идентификаторы, чтобы по ним найти нужные элементы, внести в них изменения и сохранить отредактированные элементы в базе данных.

Пример 1

Предположим, компания использует для работы систему ELMA365. Сотрудники маркетинга также применяют сторонний сервис, в котором хранятся публикации по продукту и комментарии от клиентов.

Чтобы работники смежных отделов могли увидеть все данные в одном месте, информацию из этого внешнего сервиса можно массово перенести в ELMA365. Для этого нужно:

  1. Создать приложения для загрузки публикаций и комментариев.
  2. Настроить интеграцию через пользовательский модуль и добавить в интерфейс модуля две кнопки со скриптами:
  • Добавить посты — для массового переноса всех публикаций из стороннего сервиса в ELMA365;
  • Добавить комментарии — для загрузки всех комментариев к этим публикациям.

Шаг 1: Создать два приложения

Для начала создайте приложения, чтобы импортировать в них данные. При этом добавляйте свойства приложений в соответствии с полями публикаций и комментариев в сторонней системе. Рассмотрим на примере:

  1. Посты — содержит свойства:
  • Название (__name) — системное свойство, создаётся автоматически;
  • Номер (postID) — тип Число (целое) для идентификационного номера, по которому во внешней системе определяется связь между публикацией и комментариями к ней, т. е. значения этого поля равны в связанных элементах;
  • Заголовок (title) — тип Строка (строка) для заголовка публикации;
  • Текст (body) — тип Строка (текст) для текста публикации;
  • Комментарии (comments) — тип Приложение (один) для ссылки на связанный комментарий.
  1. Комментарии — содержит свойства:
  • Название (__name) — системное свойство, создаётся автоматически;
  • Номер (postID) — тип Число (целое) для идентификационного номера, по которому во внешней системе определяется связь между публикацией и комментариями к ней, т. е. значения этого поля равны в связанных элементах;
  • Электронная почта пользователя (email) — тип Электронная почта для электронной почты пользователя, оставившего комментарий;
  • Сообщение (body) — тип Строка (текст) для текста комментария;
  • Посты (post) — тип Приложение (один) для ссылки на связанный пост.

С помощью этих свойств далее в скрипте определяются поля, в которые запишутся значения, переданные из внешнего сервиса. Подробнее про заполнение полей Комментарии и Посты типа Приложение (один) читайте в разделе «Пример 2».

Шаг 2: Настроить загрузку данных через скрипт

После создания приложений настройте импорт данных из сторонней системы.

Для этого:

  1. В настроенном модуле интеграции перейдите на вкладку Настройки и нажмите кнопку Изменить форму.
  2. В открывшемся дизайнере интерфейсов:
  • создайте кнопки Добавить посты и Добавить комментарии;
  • на вкладке Скрипты на стороне клиента пропишите код, используя app.batch().save(). Этот код позволит импортировать данные в приложения, когда пользователь нажмёт кнопку Добавить посты или Добавить комментарии.

Пример кода

  1. Сохраните и опубликуйте изменения.

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

Массовое обновление полей элементов

Чтобы обновить множество полей элементов за один запрос, используйте в скрипте метод app.batch().update(). При этом вы можете:

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

Пример 2

В примере 1 мы перенесли из сторонней системы данные в приложения Посты и Комментарии, используя в скрипте метод app.batch().save(). При этом поля Посты в карточках комментариев и Комментарии в карточках публикаций пока остались пустыми, т. к. ссылки на связанные элементы не передаются из внешней системы, а создаются в ELMA365.

Чтобы сотрудники при работе в этих приложениях могли быстро находить нужную информацию, заполним эти пустые поля ссылками на связанные элементы.

Рассмотрим, как массово обновить поля, используя метод app.batch().update().

В сторонней системе связь между публикациями и комментариями определяется через поле Номер (postID). Значение в нём одинаково в связанных элементах. Используем это свойство в скрипте, чтобы по нему найти нужные публикации и добавить ссылки в поле Посты на карточки комментариев.

Для этого:

  1. В настроенном модуле интеграции перейдите на вкладку Настройки и нажмите кнопку Изменить форму.
  2. В открывшемся дизайнере интерфейсов добавьте виджет Кнопка с названием Обновить поля.
  3. На вкладке Скрипты пропишите код, с помощью которого пользователь обновит связи между элементами приложений Посты и Комментарии. Если нажать кнопку Обновить поля, в карточках комментариев появятся ссылки в полях Пост.

Пример кода

  1. Сохраните и опубликуйте изменения.

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