Серверные скрипты

В Системе для работы со скриптами добавлен раздел Серверные скрипты как альтернатива использованию хранимых процедур БД. Серверные скрипты используются в шаблонах маршрутов и этапах гибкого листа рассылки.

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

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

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

Для просмотра серверных скриптов необходимо перейти в раздел Элементы кастомизации (отображение узла зависит от параметра конфигурационного файла «config.json») и выбрать подраздел Серверные скрипты. Отобразится таблица существующих скриптов. Для каждой записи таблицы отобразится информация: название скрипта, автор, версия, пользователь, который последний редактировал скрипт, время создания и последней модификации скрипта.

Таблица скриптов, команды работы со скриптами

Добавление нового серверного скрипта

Для создания нового серверного скрипта необходимо выполнить следующие действия:

  1. В разделе Элементы кастомизации открыть подраздел Серверные скрипты.
  2. Нажать кнопку img. Откроется форма создания серверного скрипта.

    Открытая форма содержит следующие вкладки: Метаданные, Код, Файл и Версии.

    Вкладка Метаданные содержит:

    • название скрипта (обязательный и уникальный реквизит);

    • манифест, включающий информацию о зависимостях и платформе (текстовые поля), метках скриптов и сборках общего кода.

  3. На вкладке Метаданные указать название скрипта, при необходимости заполнить поле Описание.

  4. В блоке Манифест для добавления входящих и/или исходящих параметров нажать кнопку img. Заполнить поля Название и Тип (первое поле является текстовым, второе – предоставляет выбор значения из раскрывающегося списка, оба поля являются обязательными).

    Вкладка «Метаданные» в форме создания серверного скрипта

  5. Для сохранения введенных значений манифеста у каждой строки со значениями нажать кнопкуimg. Для изменения значений в строке перевести ее в режим редактирования, нажав кнопку img. При необходимости удалить добавленную строку – кнопка img у каждой добавляемой/редактируемой строки манифеста.

  6. При необходимости перейти на вкладки Файл и Код.

    На вкладке Файл реализована возможность загрузки кода из добавляемого файла в формате CS. Для загрузки файла можно использовать стандартный диалог открытия файла или перетянуть файл в область загрузки (механизм drag-and-drop). При загрузке файла в формате CS происходит загрузка кода на соответствующую вкладку.

    На вкладке Код отображается код серверного скрипта.

    Вкладка «Код» в режиме редактирования

  7. После ввода или изменения параметров скрипта нажать кнопку [Версия 0], а затем нажать кнопку [Сохранить новую версию] (при создании нового скрипта) или [Сохранить] (или сочетания клавиш [Ctrl+S]), если сохранение выполняется при изменении скрипта.

Серверный скрипт будет создан.

На вкладке Версии будут отображаться все версии серверного скрипта.

Редактирование серверных скриптов

Редактирование серверных скриптов доступно как в открытой карточке (открытие карточки выполняется двойным нажатием ЛКМ на запись таблицы), так и в области предварительного просмотра. По умолчанию будет открыта активная версия серверного скрипта, номер редактируемой версии будет отображен на кнопке сохранения изменений.

Для того чтобы отредактировать серверный скрипт, необходимо выполнить следующие действия:

  1. В разделе Элементы кастомизации открыть подраздел Серверные скрипты.
  2. Открыть необходимый серверный скрипт, нажав ЛКМ на него.
  3. Отредактировать параметры серверного скрипта. Карточка серверного скрипта в режиме редактирования аналогична форме создания.
  4. После внесения изменений нажать кнопку [Версия N] и выбрать вариант сохранения:

    • сохранить изменения в текущую версию серверного скрипта – действие [Сохранить];

    • сохранить новую версию – действие [Сохранить новую версию].

Серверный скрипт будет отредактирован.

Редактирование версии серверного скрипта

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

  1. В разделе Элементы кастомизации открыть подраздел Серверные скрипты.
  2. Открыть карточку скрипта или открыть область предварительного просмотра.
  3. Перейти на вкладку Версии, выбрать нужную версию и нажать кнопку [Изменить].
  4. Отредактировать и сохранить изменения в текущую версию или в новую.

Редактирование версии серверного скрипта

Выбранная версия будет отредактирована.

Любая версия может быть объявлена активной, для этого на вкладке Версии выбрать нужную версию и нажать кнопку [Сделать активной].

Любая версия может быть добавлена в пакет, для этого нужно на вкладке Версии выбрать версию, нажать кнопку [Добавить в пакет] и выбрать нужный пакет. Выбранная версия серверного скрипта будет добавлена в пакет, или обновлена, если пакет уже содержит версию текущего серверного скрипта.

Экспорт, импорт и удаление серверных скриптов

В Системе реализована возможность импорта/экспорта серверных скриптов.

Для экспорта/импорта серверных скриптов необходимо использовать соответствующие кнопки на панели действий. При экспорте создается файл в формате ZIP. Для импорта следует, используя стандартный диалог открытия файла, выбрать необходимый файл в формате ZIP.

Удаление серверного скрипта выполняется при нажатии кнопки меню img и выборе пункта [Удалить].