13 | Документация

Редактирование объектов. Плагин Редактирование.

Редактирование объектов и табличных записей на карте. Плагин Редактирование. Общие положения.

CoGIS SOE позволяет создавать и редактировать пространственные объекты, их атрибуты, вложенные файлы и связи с другими объектами. Таким образом, функционал ГИС-сервера может быть значительно расширен за счет возможности ограничивать область действия пользователя определенными слоями, областями внутри слоев, типами объектов.
В рамках одного сервиса можно настроить несколько правил с разными ограничениями для разных групп пользователей.
Операции и условия их применения, задаваемые в плагине типа Редактирование , позволяют:
  • Создавать, после чего обновлять и удалять на карте:
  • объекты в слое картографического сервиса и их значения; редактировать геометрию объектов; объединять объекты;
  • записи в таблицах картографического сервиса;
  • файлы, прикрепленные в Карточке объекта или к записям в таблицах.
    1. Добавлять, удалять связи:
      1. «Один-ко-многим» - при создании или обновлении объекта в слое он связывается с объектами другого слоя по ключевому полю;
      2. «Многие-ко-многим» - при создании или обновлении объектов в слое связывать их с объектами другого слоя по ключевому полю.
    2. Ограничивать редактирование по:
      1. операциям;
      2. группам пользователей;
      3. слоям;
      4. значениям объектов;
      5. территории;
      6. объектам.
    3. Выполнять геотриггеры:
      1. Создание пространственных связей;
      2. Редактирование связанных объектов;
      3. Обновление поля;
      4. Геокодирование;
      5. Построение буферной зоны;
      6. Рассылка сообщений;
      7. Подсчет количества связей;
      8. Рассчитать геометрические атрибуты;
      9. Вызов SQL-команды;
      10. Вызов задачи геообработки;
      11. Вызов .NET метода;
      12. Создание объекта в таблице.
      13. Примечание: Геотриггеры запускаются автоматически при выполнении операции плагина Редактирование.

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

На панели управления нажмите Добавить плагин , из списка доступных плагинов выберите плагин Редактирование, пример ниже, см. Рисунок 713 .
Задайте принципы работы плагина редактирования, а именно:
  1. Будут ли пользователям разрешены операции редактирования. Если есть необходимость разрешать или запрещать выполнение операции в зависимости от каких-то данных, задайте Условие на разрешение операций , укажите имя таблицы базы данных, и введите определяющий запрос. Условие выполнится, если по определяющему запросу вернется хотя бы один объект из указанной таблицы, удовлетворяющий запросу.
  2. Какие операции будут разрешены.
  3. Какой группе пользователей будет разрешено выполнять операции.
  4. Над объектами какого слоя картографического сервиса будут выполняться операции. Какие ограничения будут применяться.
  5. Будет ли пользователям разрешено редактировать значение объекта в указанном атрибутивном поле.
  6. Будет ли пользователям разрешено редактировать геометрию объектов.
  7. Каким ограничениям должен удовлетворять отредактированный объект.
  8. Будут ли переопределены настройки картографического сервиса:
    1. символика создания объекта;
    2. значение объекта по умолчанию в атрибутивном поле.
  9. Какое максимальное количество файлов пользователи смогут прикрепить к объекту. Какого размера должны быть файлы, и какими свойствами должна обладать картинка. На карте файлы к объекту прикрепляются в его Карточке объекта посредством кнопки , если создан шаблон Карточки объекта , одним из блоков которого является блок Файлы . Как создать шаблон Карточки объекта и блок Файлы , описано в пункте Шаблон Карточки объекта , см. п. 4.13 .
Рисунок 713 - Настройки плагина Редактирование в разделе Правила SOE
Рабочий процесс настроек плагина Редактирование:
  1. В панели управления Правила SOE нажмите на кнопку Добавить плагин и выберите плагин Редактирование .
  2. Плагин в дереве Каталога плагинов по умолчанию отображается с названием, определенным по типу плагина. Для переименования плагина предназначено поле Название .
  3. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять плагин Редактирования .
  4. Разрешает операции - для разрешения операции переключите тумблер в положение Да , а для запрещения - в положение Нет . Для установки дополнительных ограничений в рамках данного правила, кликните на кнопку и задайте необходимые опции.
  5. Операции - включите или отключите кнопки для разрешения выполнения операций, по умолчанию будут доступны все операции. Если выполнение операций разрешено, то по умолчанию будут доступны все операции. Выберите, какие операции выполняться не будут, и нажмите соответствующую кнопку. Описание кнопок, активирующих выполнение операций, приведено ниже, см. Таблица 14 .
Таблица 14 - Кнопки, активирующие выполнение операций
Над чем выполняется операция
Тип операции
Операции над объектом
Создание
Обновление
Удаление
Операции над связями
Добавление
Обновление
 Удаление
Операции над вложениями
Добавление
Обновление
Удаление
  1. В опции Для пользователей укажите в выпадающем списке, какая группа пользователей или групп пользователей сможет выполнять операции.
    • Любых - редактирование будет разрешено всем пользователям.
    • Неавторизованных - редактирование будет доступно для анонимных пользователей.
    • Авторизованных - редактирование будет доступно для всех авторизованных пользователей.
    • Входящих в любую из групп - редактирование будет разрешено пользователям, входящим хотя бы в одну из указанных групп, если групп несколько, введите их названия через запятую.
    • Входящих во все группы - редактирование будет разрешено пользователям, входящим во все указанные группы, если групп несколько, введите их названия через запятую.
  2. Вы можете задать, к объектам каких слоев картографического сервиса будут применяться операции редактирования. Для этого в поле Слои нажмите на кнопку Добавить   и укажите номера слоев, соблюдая правила ввода - номера слоев можно указать через дефис или запятую. Например 0,1,5-10,14.
  3. Если необходимо задать настройки по ограничению слоев картографического сервиса, кликните на кнопку и поставьте нужные отметки, см. Рисунок 714 .
Рисунок 714 - Настройки ограничений для слоев
Определяющий запрос - заданные настройки могут применяться к объектам слоя, значения которых удовлетворяют определенному условию. Условие записывается в виде SQL-выражения в поле Определяющий запрос , которое открывается нажатием на кнопку  , пример выражения ниже, см. Рисунок 715 .
Выражение строится в следующем виде:
  1. <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
    или
  2. <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
    Например:
  3. Status = ‘Выполнен’
  4. Length > 20.
Рисунок 715 - Пример ограничения с помощью Определяющего запроса для слоя
Ограничение по экстенту - укажите территорию экстента, в границах которой пользователь сможет создавать или редактировать объекты, для этого отметьте опцию Ограничение по экстенту и задайте координаты XMax , XMin , YMax , YMin и координатную систему экстента карты, см. Рисунок 716 .
Рисунок 716 - Пример ограничения по экстенту карты
Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  1. Если необходимо, добавьте дополнительные параметры к плагину Редактирование:
  2. По умолчанию пользователям разрешено изменять геометрию объекта. Чтобы запретить эту операцию, укажите Нет для опции Редактировать геометрию .
  3. Помимо возможности создавать или обновлять объекты, вы можете предоставить пользователям возможность ввода или изменения значений определенных атрибутивных полей.
    • Если вы хотите разрешить пользователям изменять значения только нескольких атрибутивных полей, нажмите   Редактируемые поля и введите названия атрибутивных полей.
    • Если вы хотите разрешить пользователям изменять значения всех атрибутивных полей, за исключением нескольких, нажмите   Не редактируемые поля .
      • Чтобы задать обязательность заполнения полей при создании/редактировании объектов, даже когда в картографическом сервисе эти поля не обязательные, нажмите Обязательные поля и укажите все поля, которые должны быть обязательно заполненными. Данная настройка является заданной на уровне Правила SOE/Плагина Редактирования , что приоритетнее, чем обязательность, заданная на уровне Конструктора.
      • Ограничения после редактирования - кроме того, вы можете задать условие на значение созданного или обновленного объекта в атрибутивном поле, определить территорию, в границах которой должен быть создан объект, и задать условия, которым должен удовлетворять объект. Для этого нажмите  и задайте ограничения. При применении данной опции объект будет проверен на соответствие заданным параметрам и только после проверки сохраняется в базу данных и будет виден другим пользователям, подробнее см. п. 14.6.3 .
        • Шаблоны создания объектов - параметр позволяет переопределить иконку создаваемого объекта, а также значения по умолчанию, для этого нажмите на кнопку Добавить .
          • Название - введите название для кнопки вызова окна создания объектов. Например, введите текст Создание объекта .
          • Слои - укажите номера слоев, соблюдая правила ввода - номера слоев можно указать через дефис или запятую. Например, 0,1,5-10,14 .
          • Символ - загрузите файл иконки создаваемого объекта по кнопке Загрузить .
            Загруженная иконка будет отображаться как символ для слоев, выбранных в предыдущем параметре, в окне создания объектов, а также как символ создаваемого объекта на карте.
            Обратите внимание, что отображение загруженной иконки как символа создаваемого объекта на карте не поддерживается в мобильных приложениях.
            Если необходимо удалить загруженный файл, кликните кнопку Удалить.
          • Значение по умолчанию - укажите название атрибутивного поля и к нему задайте значения по умолчанию, тогда в режиме создания/редактирования объектов в Карточке объектов назначенные значения автоматически будут заполняться по умолчанию к определенным полям слоя. Например, если назначить Значения по умолчанию к полям в виде макросов, такие как текущий авторизованный пользователь с фамилией {CurrentUser.LastName}, именем {CurrentUser.FirstName}, электронной почтой {CurrentUser.Email} и т.д., тогда после авторизации пользователя в процессе создания/редактирования объектов в Карточке объектов будет автоматически заполнена атрибутивная информация о нем: Фамилия, Имя, Электронная почта и т.д, указанная пользователем при регистрации в личном кабинете , пример ниже, см. Рисунок 717 . Подробнее о макросах, используемых в настройках, см. п. 16 .
Рисунок 717 - Пример заданных значений по умолчанию в плагине Редактирование
  • Задайте дополнительные параметры для добавления вложений к объектам, которые пользователи смогут прикрепить, их количество, размеры и свойства, см. Рисунок 718 .
Рисунок 718 - Дополнительные параметры для добавления вложений к объектам
  • Автоматически поворачивать JPG-фото при загрузке - включите опцию, чтобы автоматически поворачивать фото в формате JPG по EXIF коду.
    По умолчанию включена.

Принцип работы плагина Редактирование с вложенными геотриггерами

При настройке раздела Правила SOE необходимо понимать принцип работы плагина Редактирования и вложенных в него геотриггеров.
  1. Сначала нужно задать соответствующие настройки к картографическому сервису плагина Редактирование и добавить каскад геотриггеров с настройками к картографическому приложению. Заданные настройки можно проверить на странице Правила SOE, см. Рисунок 719 .
  1. Рисунок 719 - Пример настройки плагина Редактирование и вложенных в него геотриггеров
  2. Для указанного плагина Редактирование , помимо стандартной проверки названия сервиса, указанных пользователей и слоя, CoGIS проверяет заданные ограничения на фильтры к слою/слоям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , пример ниже, см. Рисунок 720 . Например, если у пользователя нет прав на редактирование, появится соответствующее сообщение.
  3. После проверки заданных настроек плагина Редактирование , происходит формирование нового состояния объекта для будущего обновления, а затем объект обновляется в базе данных в соответствии с новыми значениями, например, при создании объекта автоматически заполняются атрибутивные значения в поле указанного слоя, назначенные с помощью опции Значение по умолчанию .
  1. Рисунок 720 - Пример настройки плагина Редактирование с доступом для определенной группы пользователей для определенного слоя и ограничением при помощи определяющего запроса
  2. После отработки плагина Редактирование CoGIS начнет запуск вложенных в него геотриггеров. Например, один геотриггер может изменить состояние объекта, а второй геотриггер будет применен к уже обновленному объекту. Например, при создании точечного объекта первый геотриггер связывает его с полигональными объектами, расположенными в пределах заданного экстента, а затем срабатывает второй геотриггер, который выполняет подсчет получившихся связей, пример настроек показан выше, см. Рисунок 719 .
  3. Для геотриггера можно задать условия, при которых разрешено изменение объектов, с помощью настроек: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам . В свою очередь, для данных ограничений можно указать следующие условия, пример ниже, см. Рисунок 721 :
    • если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в исходном состоянии «до обновления», или до сохранения объекта в базе данных.
    • если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в изменяемом состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. то есть после отработки плагина Редактирование (см. п. 1 и 2) и отработки геотриггеров (п. 3).
    • Рисунок 721 - Пример настройки одного геотриггера по определяющему запросу на основе разных условий состояния объекта
  1. После выполнения этапов 1-4, описанных выше, CoGIS возвращается к плагину Редактирование для проверки условий, заданных в настройках Ограничения после редактирования , см. Рисунок 722 .
  2. На этом этапе происходит финальная проверка плагина Редактирования для изменения объекта, если они соблюдены, то производится окончательная транзакция в базу данных и измененный объект становится доступен всем пользователям.
  3. Если условия на изменения объекта не были соблюдены, появится соответствующее сообщение, и окончательное сохранение объекта в базу данных не будет выполнено. В этом случае геотриггеры, которые были настроены на запуск по завершению сохранения изменений в базу данных, тоже не будут выполнены.
  4. Следует отметить, что этапы работы плагина Редактирования и вложенных в него геотриггеров незаметны для пользователя и обычно выполняются в течение нескольких секунд.
  1. Рисунок 722 - Пример настройки плагина Редактирование с настройкой Ограничения после редактирования

Геотриггеры

Геотриггеры. Общие положения.

Геотриггер срабатывает при выполнении одной из операций плагина редактирования.
Геотриггеры можно вложить в плагин редактирования, в этом случае геотриггеры будут срабатывать при выполнении одной из операций данного плагина редактирования подробнее см. п. 14.6.3 .
Если вы создали геотриггеры вне плагина редактирования и не указали в поле Сервис название картографического сервиса, тогда геотриггеры будут срабатывать при выполнении операции любого плагина редактирования, что не вполне корректно. Для корректной работы укажите в поле Сервис название картографического сервиса, чью функциональность расширяет плагин редактирования, при выполнении операции которого будет выполняться геотриггер.
В плагин редактирования или папку можно добавить следующие геотриггеры:
  1. Создание пространственных связей;
  2. Редактирование связанных объектов;
  3. Обновление поля;
  4. Геокодирование;
  5. Построение буферной зоны;
  6. Рассылка сообщений;
  7. Подсчет количества связей;
  8. Рассчитать геометрические атрибуты;
  9. Вызов SQL-команды;
  10. Вызов задачи геообработки;
  11. Вызов .NET метода.
Для этого на панели управления нажмите Добавить геотриггер и выберите геотриггер. В поле Сервис укажите название картографического сервиса. Укажите, для какой группы пользователей будет выполняться геотриггер. Для этого в выпадающем списке Для пользователей выберите группу.
Геотриггеры считываются снизу вверх. При пересечении настроек используются и применяются самые нижние геотриггеры.
Для описания всех геотриггеров одного типа в строке поиска введите название геотриггера, например Создание пространственных связей .
Для каждого геотриггера доступны следующие действия (см. Рисунок 723 ):
  • - кнопка позволяет включить или отключить геотриггер;
    При создании геотриггер включен по умолчанию. Нажмите на кнопку, чтобы отключить геотриггер. Отключенный геотриггер помечен светло-серым цветом.
  • - кнопка позволяет склонировать геотриггер;
    По нажатии на кнопку создается новый геотриггер с настройками, идентичными выбранному. Новый геотриггер добавляется в список ниже выбранного.
  • - кнопка позволяет удалить геотриггер.
  • Рисунок 723 - Доступные действия с геотриггерами

Шаблоны геотриггеров

В разделе Правила SOE можно создать и настроить собственные шаблоны геотриггеров на основе любого из стандартных геотриггеров. Например, для создания шаблона геотриггера Рассылка уведомлений использовался стандартный геотриггер Вызов SQL-команды , к которому были добавлены дополнительные параметры, где, при помощи SQL-команды было задано: кому отправлять уведомление, категория уведомления, текст уведомления по sms, тема письма и текст для уведомления по электронной почте и т.д ., пример ниже, см. Рисунок 724 .
Чтобы создать собственный шаблон геотриггера, используя стандартные геотриггеры, нажмите на кнопку Редактирование шаблонных геотриггеров, обратите внимание на то, что вместо каталога правил появится режим Каталог шаблонов , добавьте нужный геотриггер, задайте название и соответствующие настройки.
Чтобы сохранить ваш шаблон геотриггера с заданными настройками, выберите его в режиме Каталог шаблонов и на панели инструментов нажмите кнопку Экспорт в XML-файл , а если необходимо его импортировать, нажмите на кнопку Импорт в XML файл .
Для шаблонов по стандартным геотриггерам Рассылка сообщений , Вызов SQL-команды , Вызов задачи геообработки , Вызов .Net метода вы также можете использовать макросы вида {Relations. rel_table . submacros } (см. описание макроса в п. 14.6.4.8.1 ), где в качестве rel_table используется настроенный источник в параметре Источники (см. подробнее в описании геотриггеров - пп. 14.6.4.8 , 14.6.4.11 - 14.6.4.13 ).
Рисунок 724 - Пример настройки собственного шаблона геотриггера Рассылка уведомлений на основе стандартного геотриггера Вызов SQL-команды

Связывание объектов по пересечению. Создание пространственных связей.

При создании объекта или изменении его местоположения геотриггер Создание пространственных связей автоматически создает или редактирует связи между объектами слоев картографического сервиса по их пересечению на местности. Информация о классе отношений, хранящем связи между объектами слоев картографического сервиса, содержится на странице картографического сервиса. Если после изменения местоположения объект не пересекся с другим объектом или объект был удален, геотриггер удалит заданную связь.
Чтобы добавить геотриггер, нажмите , выберите Создание пространственных связей , выделенный ниже, см. Рисунок 725 и задайте необходимые настройки см. Рисунок 726 .
Рисунок 725 - Добавление геотриггера Создание пространственных связей
Рисунок 726 - Настройки геотриггера Создание пространственных связей
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет срабатывать геотриггер: создание, редактирование или удаление объекта.
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Задайте, в каких слоях картографического сервиса при изменениях будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. Если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных.
Задайте следующие настройки (см. Рисунок 727 ):
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 727 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. Если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных.
Задайте следующие настройки (см. Рисунок 728 ):
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 728 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры задайте следующие настройки:
  • Найти связанный слой - укажите тип связи объекта. В выпадающем списке выберите, каким образом находить связь между объектами слоев - по названию класса пространственных объектов или по названию класса отношений.
  • Имя класса объектов/связи - укажите название класса пространственных объектов или название класса отношений.
  • С какими объектами можно связывать созданный или редактируемый объект. Задайте Определяющий запрос на SQL.
  • Тип выбора объектов для связывания - укажите, каким образом выбрать объект для создания связи, если созданный объект пересекся с несколькими объектами:
    • Создать связи между созданным объектом и объектами, с которыми он пересекся. Выберите «все».
    • Создать связи между созданным объектом и объектом, пересечение с которым было построено в первую очередь. Выберите «первый».
    • Создать связи между созданным объектом и объектом, пересечение с которым является наилучшим. Выберите «лучший».
  • Пространственные отношения - выберите из выпадающего списка пространственные отношения при определении связи.
  • Удалять другие связи - включите Да/Нет. Должны ли при создании новой связи удаляться другие, если тип связи «один-ко-многим» или «многие-ко-многим».
  • Минимальный процент пересечения - укажите для линейных и полигональных объектов минимальный процент пересечения.
  • Буфер для связывания - укажите дополнительную буферную зону для поиска пересечения в «буфер для связывания».

Автоматическая запись значения одного из связанных объектов. Редактирование связанных объектов.

Данный геотриггер срабатывает при выполнении следующих операций:
  1. создание связи между объектами;
  2. удаление связи между объектами;
  3. обновление одного из связанных объектов.
Геотриггер автоматически записывает в атрибутивное поле следующие значения:
  1. простое значение, константа;
  2. составное или расчетное значение;
  3. значение связанного объекта;
  4. значение при отсутствии связи у объекта;
  5. геометрия связанного объекта.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Редактирование связанных объектов , выделенный ниже, см. Рисунок 729 и добавьте необходимые настройки, см. Рисунок 730 .
Рисунок 729 - Добавление геотриггера Редактирование связанных объектов
Рисунок 730 - Настройки геотриггера Редактирование связанных объектов
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер: создание, удаление связи между объектами, обновление одного из связанных объектов.
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 731 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 731 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления», или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 732 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 732 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры задайте следующие настройки:
  • Найти связанный слой - укажите тип связи объекта. В выпадающем списке выберите, каким образом находить связь между объектами слоев - по названию класса пространственных объектов или по названию класса отношений.
  • Имя класса объектов/связи - укажите название класса пространственных объектов или название класса отношений.
  • Название поля для записи значения - укажите название атрибутивного поля, в которое будет записано значение.
  • Значение - выберите интерпретатор при задании выражения для расчета необходимого значения:
    • простого значения, константы, заданного по умолчанию;
    • составного или расчетного значения;
      Пример: [AREA]/10000 - означает пересчет значения площади в квадратных метрах атрибутивного поля AREA в гектары.
    • значения связанного объекта в одном или нескольких атрибутивных полях;
      Название атрибутивного поля, значение которого берется, указывается в квадратных скобках.
    • значения при отсутствии связи у объекта;
    • геометрии связанного объекта;
      Пример: Object.Shape.X .
  • Тип объединения - объединение, сумма, среднее, количество, минимальное значение, максимальное значение.
  • Разделитель - дополнительная буферная зона для поиска пересечения.
  • Нужно ли объединять различные значения.
  • Максимальное кол-во значений .
  • Сортировка по полю .

Автоматическая запись значений в атрибутивные поля объекта. Обновление поля.

Данный геотриггер выполняется при выполнении следующих операций плагина редактирования:
  • создание объекта;
  • обновление объекта.
Геотриггер автоматически записывает в указанные атрибутивные поля следующие значения:
  • простое значение, константа;
  • составное или расчетное значение;
  • значение одного или нескольких атрибутивных полей своего класса;
  • значение при отсутствии связи у объекта;
  • геометрия объекта.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Обновление поля , см. Рисунок 733 и добавьте необходимые настройки, см. Рисунок 734 .
Рисунок 733 - Добавление геотриггера Обновление поля
Рисунок 734 - Настройки геотриггера Обновление поля
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер: создание, обновление объекта.
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3. В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 735 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 735 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 736 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля.
    При этом если опция Срабатывать, если изменены все поля отключена, то при изменении хотя бы одного из указанных полей будет выполняться геотриггер. Если опция Срабатывать, если изменены все поля отмечена, геотриггер будет выполняться, только в случае изменения всех указанных полей.
    Если поля не заданы, проверка на изменение полей для запуска геотриггера проводиться не будет; геотриггер будет срабатывать при создании или обновлении геометрии объекта (в зависимости от того, что выбрано в параметре Операции , см. выше).
  • Рисунок 736 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры задайте следующие настройки:
  • Обновляемые поля - выберите способ получения значений для заполнения/обновления атрибутивных полей при срабатывании геотриггера:
    • Значение - выбрано по умолчанию, в поля будут записаны фиксированные значения;
      Можно использовать макросы в фигурных скобках (см. Таблица 15 ).
    • Название поля - значения полей берутся из значений атрибутивных полей текущего объекта слоя;
    • SQL-выражение - значения полей рассчитываются по заданному выражению;
      Значения атрибутивных полей в выражении записываются в квадратных скобках.
      Нажмите и добавьте пару «поле-значение». В строке Имя поля задайте имя атрибутивного поля. В строке Значение укажите фиксированное значение (если выбран способ Значение ), имя поля текущего объекта слоя (если выбран способ Название поля ) или выражение (если выбран способ SQL-выражение ). Добавьте столько пар «поле-значение», сколько требуется.
  • Определяющий запрос для измененных полей - укажите, когда должен срабатывать геотриггер;
    Задайте SQL-фильтр для атрибутивных полей, значения которых были изменены.
  • Использовать форматированные значения - Да , Нет (положение по умолчанию) - выберите, заменять ли коды доменов на значения.
    Опция применима, если выбран способ получения значений обновляемых полей Название поля . В иных случаях опция игнорируется.
  • Таблица 15 - Макросы

Прямое и обратное геокодирование при создании и обновлении объектов

Данный геотриггер срабатывает при выполнении следующих операций плагина редактирования:
  1. создание объекта;
  2. обновление объекта.
Геотриггер используется при прямом и обратном геокодировании, создании или обновлении объектов на карте и загрузке файлов определенных форматов, содержащих адреса или координаты. То есть, геотриггер выполняет следующие задачи:
  1. создание объекта по адресу;
  2. создание объектов по адресам при загрузке Excel- или CSV-файла, содержащего адреса;
  3. определение адреса объекта при его создании или изменении местоположения на карте, запись значения в атрибутивное поле;
  4. пакетная запись адресов объектов, создаваемых по координатам, в соответствующие атрибутивные поля при загрузке Excel-, CSV-, SHP-файла, содержащего координаты.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер и выберите Геокодирование , выделенный ниже, см. Рисунок 737 и задайте необходимые настройки, см. Рисунок 738 .
Рисунок 737 - Добавление геотриггера Геокодирование
Рисунок 738 - Настройки геотриггера Геокодирование
Задайте Название геотриггера.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер: создание, обновление объекта.
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3. В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 739 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 739 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 740 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 740 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Укажите адрес сервиса геокодирования, на основе которого будет работать геотриггер. По данному адресу сервиса геокодирования должно быть установлено подключение в Конструкторе во вкладке Сервисы , Сервис геокодирования , описание которого приведено в пункте Сервис геокодирования , см. п. 4.10 .
  • Как сопоставить значения. Сопоставление атрибутивного поля сервиса геокодирования с атрибутивным полем слоя, в котором создан или отредактирован объект. Укажите атрибутивное поле сервиса геокодирования в поле Атрибут сервиса и название атрибутивного поля слоя, в котором создан или отредактирован объект в поле Значение из объекта .
  • Поля в классе пространственных объектов для записи в них адреса при поиске координат по адресу.
  • При вводе адреса объекта в соответствующее атрибутивное поле местоположение объекта будет автоматически изменяться. Данная настройка установлена по умолчанию - для опции Обновлять расположение по адресу выбрано Да .
  • При изменении местоположения объекта автоматически будет определено местоположение объекта и перезаписан адрес в значении соответствующего атрибутивного поля. Данная настройка установлена по умолчанию - для опции Обновлять адрес по расположению выбрано Да .
  • Если изменены и адрес, и геометрия, по умолчанию у адреса приоритет, и координаты будут пересчитаны. Если приоритетнее геометрия, переключите Приоритет адреса в положение Нет .
  • Радиус поиска адреса относительно редактируемого объекта, например, для установки адресного ориентира объекту, который находится вблизи здания с адресом.

Построение буферной зоны редактируемого объекта

Данный геотриггер выполняется при выполнении следующих операций плагина редактирования:
  • создание объекта;
  • обновление объекта;
  • удаление объекта.
Геотриггер используется для автоматического построения, корректировки, удаления буферной зоны объекта в определенном полигональном слое. Буферные зоны могут создаваться для объектов с разным типом геометрии.
Основными функциями геотриггера являются:
  • построение буферной зоны по кругу, квадрату, с расчетом по дорожной сети (зона транспортной доступности);
  • установление связи между буферной зоной и ее основным объектом;
  • корректировка буферной зоны при изменении геометрии основного объекта;
  • установка, корректировка размера буферной зоны по атрибуту основного объекта или по расчетному значению;
  • определение системы координат и метода построения буферной зоны;
  • удаление буферной зоны при удалении основного объекта.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер и выберите Построение буферной зоны , выделенный ниже, см. Рисунок 741 и задайте необходимые настройки, см. Рисунок 742 .
Рисунок 741 - Добавление геотриггера Построение буферной зоны
Рисунок 742 - Настройки геотриггера Построение буферной зоны
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции включите или отключите операции плагина редактирования для работы геотриггера, по умолчанию доступны операции Создание объекта , Обновление объекта и Удаление объекта .
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев, соблюдая правила ввода - номера слоев можно указать через дефис или запятую. Например: 0,1,5-10,14 .
Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 743 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 743 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 744 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 744 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Найти связанный слой - По названию класса связей , По названию класса объектов - выберите, как будет задан полигональный слой, в который будут сохранены объекты-буферные зоны, созданные в результате срабатывания геотриггера;
  • Имя класса объектов/связей ;
    Соответственно выбранному в параметре Найти связанный слой , укажите название или номер/идентификатор таблицы связей или название класса связанных объектов.
    Вы можете задать имя класса объектов, с которым не установлено связи (relationship). В таком случае для установления связи с текущим слоем по кнопке задайте Первичный ключ (поле с уникальными идентификаторами объектов основного слоя) и Внешний ключ (поле связанного слоя, содержащее первичные ключи основного слоя).
  • Тип буфера - Круг, Квадрат, Зона транспортной доступности - выберите из выпадающего списка форму буферной зоны;
  • Размер буфера - выберите способ получения размера буфера:
    • Значение - выбрано по умолчанию, фиксированный размер буфера;
      Задайте размер буфера в строке рядом, выберите из выпадающего списка единицы измерения.
      По умолчанию - 100 метров .
    • Название поля - размер буфера берется из значения атрибутивного поля текущего объекта основного слоя;
      В строке рядом задайте имя поля, где записан размер буфера; выберите из выпадающего списка единицы измерения.
    • SQL-выражение - размер буфера рассчитывается по заданному выражению;
      В строке рядом задайте SQL-выражение, выберите из выпадающего списка единицы измерения.
      Доступны единицы измерения - Метры , Километры , Десятичные градусы , Минуты , Часы . Единицы времени применимы с выбранным типом буфера Зона транспортной доступности .
  • Записать размер буфера в поле - укажите атрибутивное поле выбранного связанного слоя, в которое запишется размер буферной зоны;
  • Обновляемые поля связанного слоя - выберите способ получения значений для заполнения/обновления атрибутивных полей связанного слоя при срабатывании геотриггера:
    • Значение - выбрано по умолчанию, в поля связанного слоя будут записаны фиксированные значения;
    • Название поля - значения полей связанного слоя берутся из значений атрибутивных полей текущего объекта основного слоя;
    • SQL-выражение - значения полей связанного слоя рассчитываются по заданному выражению;
      Нажмите и добавьте пару «поле-значение». В строке Имя поля задайте имя атрибутивного поля связанного слоя. В строке Значение укажите фиксированное значение (если выбран способ Значение ), имя поля текущего объекта основного слоя (если выбран способ Название поля ) или выражение (если выбран способ SQL-выражение ). Добавьте столько пар «поле-значение», сколько требуется.
  • Координатная система - выберите, в какой системе координат создавать объекты-буферные зоны:
    • Исходного класса объектов - будет использована система координат основного слоя;
    • Класса объектов буфера - будет использована система координат связанного класса объектов;
    • Картографического сервиса - будет использована система координат сервиса;
    • Заданная вручную - задайте в строке рядом нужную систему координат в формате ESPG(WKID), WKT или JSON;
  • Использовать геодезический буфер - выберите метод расчета буферной зоны - геодезический (тумблер в положении Да , выбрано по умолчанию) или плоскостной (тумблер в положении Нет ).
  • Ссылка на сетевой сервис - укажите запущенный сервис сетевого анализа.
    Опция применима с выбранным типом буфера Зона транспортной доступности .
    При необходимости нажмите и задайте дополнительные настройки сервиса:
    • Тип расчета - выберите способ передвижения, тип формирования маршрута:
      • Geodesic_Length - геодезическое расстояние (расстояние по поверхности Земли, кратчайший путь между точками);
      • Big_Truck_Travel_Time - движение на грузовике с разрешённой максимальной массой более 12 т;
      • Small_Truck_Travel_Time - движение на грузовике с разрешённой максимальной массой от 3,5 до 12 т;
      • Car_Travel_Time - движение на легковом автомобиле или грузовике с разрешённой максимальной массой до 3,5 т;
      • Motorcycle_Travel_Time - движение на мотоцикле;
      • Bicycle_Travel_Time - движение на велосипеде;
      • Foot_Travel_Time - движение пешком;
    • Использовать иерархию - Да , Нет (положение по умолчанию) - выберите, учитывать ли иерархию дорог;
    • Детализованная площадь - Да , Нет (положение по умолчанию) - выберите, детализировать ли границу буфера;
    • Ограничения - нажмите и добавьте ограничение по типу дорог:
      • Big_Truck - использовать дороги, где разрешено движение грузовиков с разрешённой максимальной массой более 12 т;
      • Small_Truck - использовать дороги, где разрешено движение грузовиков с разрешённой максимальной массой от 3,5 до 12 т;
      • Car - использовать дороги, где разрешено движение легковых автомобилей и грузовиков с разрешённой максимальной массой до 3,5 т;
      • Motorcycle - использовать дороги, где разрешено движение мотоциклов;
      • Bicycle - использовать дороги, где разрешено движение велосипедов;
      • Foot - использовать тропы, тротуары и дороги, где разрешено движение пешеходов;
      • Avoid_Toll_Roads - избегать платных дорог;
      • Avoid_Ice_Roads - избегать ледовых переправ (зимников);
      • Avoid_Ferries - избегать паромных переправ;
      • Avoid_Unknown_Roads - избегать неизвестных дорог (грунтовых, неучтённых в основной дорожной сети, дорог без чёткой классификации);
      • Use Turn Penalty - учитывать дополнительные затраты времени и расстояния на повороты;
        Вы можете добавить столько ограничений, сколько требуется.
    • Точность залипания - задайте точность залипания и единицы измерения ( Метры , Километры , Десятичные градусы , Минуты , Часы ).
      По умолчанию - 500 м.

Автоматическая рассылка сообщений при редактировании объектов

Настройки данного геотриггера позволяют выполнять автоматическую рассылку сообщений определенным пользователям, например, если объект был изменен. Сообщения могут содержать информацию о редактируемом объекте. Геотриггер выполняется при выполнении любой операции плагина Редактирование .
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Рассылка сообщений (см. Рисунок 745 ) и добавьте необходимые настройки (см. Рисунок 746 ).
Рисунок 745 - Добавление геотриггера Рассылка сообщений
Рисунок 746 - Настройки геотриггера Рассылка сообщений
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер:
  • Создание объекта ;
  • Обновление объекта ;
  • Удаление объекта ;
  • Добавление связи ;
  • Обновление связи ;
  • Удаление связи ;
  • Добавление вложения ;
  • Обновление вложения ;
  • Удаление вложения .
  • В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
Укажите, для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 747 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 747 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 748 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 748 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
Для параметра Тип получателя по умолчанию указано Электронная почта . Если нужно, выберите другой параметр - помимо электронной почты также доступны Логин пользователя, Имя группы пользователей .
В поле Кому нажмите и укажите соответственно электронные адреса адресатов, логины или имя группы пользователей (см. Рисунок 749 ).
Укажите тему письма и текст сообщения. Можно использовать макросы (см. п. 14.6.4.8.1 ), а также отдельно значения атрибутивных полей. Макросы указываются в фигурных скобках, имена атрибутивных полей - в квадратных.
Для значений атрибутивных полей можно указывать формат через двоеточие:
  • [ field :X5] - значение числового атрибутивного поля field в указанном формате (учитывается разделитель дробной части, выбранный в операционной системе ГИС-сервера);
    Возможные форматы:
    • C - выводит денежную сумму, подставляя к числу знак валюты (валюта берется из настроек операционной системы ГИС-сервера);
      В числе выделяются группы разрядов, дробное число округляется до 2 знаков после запятой.
      Пример: значение 12345.6789123 с форматом C даст результат: 12 345,68 ₽ .
    • D - только для целочисленных полей; выводит целое число;
      Допустимо указывать количество разрядов. Недостающие разряды заполняются нулями.
      Пример: значение 1234 с форматом D8 даст результат: 00001234 .
    • E - выводит число в экспоненциальной форме;
      Допустимо указывать количество знаков после запятой.
      Пример: значение 1234 с форматом E2 даст результат: 1,23E+003 .
    • F - выводит дробное число;
      Допустимо указывать количество знаков после запятой. Без указания количества число выводится с округлением до 2 знака.
      Пример: значение 12345.6789123 с форматом F4 даст результат: 12345,6789 .
    • G - выводит число в общем формате; в зависимости от числа возможно представление в экспоненциальной форме;
      Допустимо указывать количество значимых цифр числа.
      Пример: значение 12345.6789123 с форматом G6 даст результат: 12345,7 .
    • N - выводит число с разделением групп разрядов;
      Допустимо указывать количество знаков после запятой. Без указания количества число выводится с округлением до 2 знака.
      Пример: значение 12345.6789123 с форматом N3 даст результат: 12 345,679 .
    • P - выводит число в процентах (исходное число умножается на 100);
      Допустимо указывать количество знаков после запятой. Без указания количества число выводится с округлением до 2 знака.
      Пример: значение 0.12345 с форматом P даст результат: 12,35 % .
    • X - только для целочисленных полей; выводит число в шестнадцатеричном виде;
      Допустимо указывать количество разрядов. Недостающие разряды заполняются нулями.
      Пример: значение 1234 с форматом X5 даст результат: 004D2 .
  • [ domain_field ] - для атрибутивного поля domain_field с наложенным доменом вместо кода домена выводится значение;
  • [ domain_field :Value] - для атрибутивного поля domain_field с наложенным доменом выводится код домена;
  • [ domain_field :X5] - для атрибутивного поля domain_field с наложенным доменом выводится числовой код домена в указанном формате;
    Возможные форматы см. выше.
  • [ date_field ] - значение атрибутивного поля date_field типа Дата или Дата-время в формате dd.MM.yyyy (для типа Дата) или dd.MM.yyyy HH:mm:ss (для типа Дата-время);
  • [ date_field :dd.MM.yyyy] - значение атрибутивного поля date_field типа Дата или Дата-время в формате dd.MM.yyyy ;
  • [ date_field :LOCAL:dd.MM.yyyy HH:mm] - значение атрибутивного поля date_field типа Дата-время в формате dd.MM.yyyy HH:mm в часовом поясе ГИС-сервера;
  • [ date_field :UTC:dd.MM.yyyy HH:mm] - значение атрибутивного поля date_field типа Дата-время в формате dd.MM.yyyy HH:mm в UTC.
Например:
Тема: <Изменён объект {Object.Name}> .
Текст сообщения:
Изменён объект: {Object.Name}
Изменил объект: {CurrentUser}
Координаты объекта до изменения: X {Object.ShapeBeforeChanges.CentroidX}, Y {Object.ShapeBeforeChanges.CentroidY}
Текущие координаты объекта: X {Object.Shape.CentroidX}, Y {Object.Shape.CentroidY}
Рисунок 749 - Пример настройки геотриггера Рассылка сообщений с текстом сообщений, содержащий макросы
По умолчанию для параметров Кому , Тема , Сообщение выбрано Значение , т. е. параметр указывается явно в текстовой строке рядом. При необходимости выберите Название поля , если значение параметра хранится в атрибутивном поле выбранного слоя, или SQL-выражение , чтобы составить нужное значение с помощью SQL-выражения. В таком случае в текстовой строке рядом укажите либо название атрибутивного поля либо задайте SQL-выражение.
Если адресатов несколько, укажите, требуется ли Отправлять письмо каждому адресату отдельно . По умолчанию опция отключена.
Включите опцию HTML-формат , если текст сообщения составлен с помощью HTML-кода.
Задайте SQL-фильтр для файловых вложений , которые требуется прикрепить к отправляемому сообщению. При этом:
  • если параметр не задан, никакие вложения прикреплены не будут;
  • если задано 1=1 , все вложения будут прикреплены;
  • если задано выражение "ATT_NAME" LIKE '%.pdf' , к сообщению будут прикреплены из вложений все PDF-файлы.
При необходимости задайте SQL-выражение для сортировки этих вложений .
Для SQL-выражений можно использовать и пользовательские атрибутивные поля таблицы вложений.
По умолчанию сообщения будут отправляться в соответствии с настройками SMTP-сервера, которые задаются на странице Настройки , к ней можно перейти из меню Администрирование (см. Руководство администратора по установке и настройке ). Если надо переопределить настройки SMTP-сервера, отметьте опцию Переопределить SMTP-настройки и задайте следующие настройки:
  • Сервер ;
  • Порт ;
  • SSL включен ;
  • Авторизация :
    • От кого ;
    • Логин ;
    • Пароль ;
  • Асинхронно ;
  • Время ожидания (в секундах).
Вы можете настроить вставку информации об объектах, связанных с текущим (в том числе вложения). Для этого настройте связанный слой (группа настроек Источники ). Именно этот источник затем используется для вставки в сообщение в макросах вида {Relations. rel_table . submacros } и {Files. rel_table .*.png} в качестве rel_table (см. п. 14.6.4.8.1 ).
Нажмите и добавьте источник связанных объектов, задав следующие настройки (см. Рисунок 750 ):
  • Название - имя источника, которое будет использоваться в макросах в качестве rel_table ;
    Используйте латинские буквы, цифры и знак подчеркивания для указания названия.
  • Найти связанный слой - По названию класса связей , По названию класса объектов - выберите, как будет задан связанный слой;
  • Имя класса объектов/связей ;
    Соответственно выбранному в параметре Найти связанный слой , укажите название таблицы связей или название класса связанных объектов.
    Вы можете задать имя класса объектов, с которым не установлено связи (relationship). В таком случае для установления связи с текущим слоем по кнопке задайте Первичный ключ и Внешний ключ .
  • Определяющий запрос ;
    Если первичный и внешний ключи не заданы, вы можете задать определяющий запрос, по которому будет определяться связанный объект.
    В запросе вы можете использовать макросы вида {CurrentFeature. field_name } , где field_name - атрибутивное поле текущего объекта.
  • Сортировка по полю ;
    Для макросов будет использоваться первый найденный связанный объект.
    При необходимости задайте атрибутивное поле для сортировки объектов связанного слоя.
  • SQL-фильтр для файловых вложений ;
    Опция используется для вставки вложений связанных объектов, аналогично соответственной опции для текущего объекта (см. выше).
    Пример: "ATT_NAME"='123.jpg'
  • SQL-выражение для сортировки этих вложений .
    Опция используется для сортировки вложений связанных объектов.
Неиспользуемый источник можно отключить, нажав на в строке с названием источника, или удалить по кнопке .
Рисунок 750 - Настройки источника связанных объектов
Макросы для шаблона сообщений
Для формирования шаблона сообщений можно использовать следующие макросы (указываются в фигурных скобках):
  • Общие:
    • {CurrentDate} - текущая дата;
    • {CurrentDate-7d} , {CurrentDate+2d} - текущая дата +/- несколько дней;
    • {CurrentDateTime} , {CurrentDateTime:dd.MM.yyyy HH:mm:ss} - текущая дата и время, в том числе с указанием формата;
    • {CurrentDateTime-1h} , {CurrentDateTime+5h} , {CurrentDateTime+7h:dd.MM.yyyy HH:mm:ss} , {CurrentDateTime:dd.MM.yyyy HH:mm:ss+7h} - текущая дата и время +/- несколько часов, в том числе с указанием формата;
    • {CurrentUser} , {User.Name} - текущий пользователь (логин);
    • {CurrentUserFullName} - полное имя пользователя из таблицы пользователей;
    • {CurrentUserEmail} - адрес электронной почты пользователя из таблицы пользователей;
    • {RuleID} - идентификатор (ID) правила SOE;
    • {TableName} - имя редактируемой таблицы (без схемы);
      Например, table .
    • {TableFullName} - полное имя редактируемой таблицы (включая схему);
      Например для базы PostgreSQL: public.table .
    • {OperationType} - тип операции редактирования;
      Может принимать значения: AddObject , UpdateObject , RemoveObject , AddAttachment , UpdateAttachment , RemoveAttachment , AddRelation , RemoveRelation , UpdateRelation .
  • По объекту:
  • {Object.Id} - уникальный номер создаваемого, обновляемого или удаляемого объекта (значение атрибутивного поля OBJECTID);
    Значение может использоваться при формировании динамической ссылки на карту.
  • {Object.Name} , {Object.Caption} - отображаемое имя (DisplayField) редактируемого объекта после его изменения;
  • {Object.NameBeforeUpdate} , {Object.CaptionBeforeUpdate} - отображаемое имя (DisplayField) редактируемого объекта до его изменения;
  • {Object.FieldValues; attr_name ; attr_value } - значения объекта во всех атрибутивных полях после их изменения, где attr_name - заголовок столбца с именами атрибутивных полей, attr_value - заголовок столбца со значениями атрибутивных полей (как они хранятся в базе);
    В HTML-коде значения отображаются в виде таблицы:
    | attr_name | attr_value |
    | field1 | value1 |
    | field2 | value2 |
    В простом тексте значения отображаются в виде:
    attr_name: field1
    attr_value: value1
    attr_name: field2
    attr_value: value2
  • {Object.Attributes; attr_name ; attr_value } - значения объекта во всех атрибутивных полях после их изменения, где attr_name - заголовок столбца с именами атрибутивных полей, attr_value - заголовок столбца со значениями атрибутивных полей (выводятся значения доменов вместо кодов);
    В HTML-коде значения отображаются в виде таблицы, в простом тексте - в строку (как и для макроса {Object.FieldValues; attr_name ; attr_value } , см. выше).
  • {Object.FieldValuesBeforeUpdate; attr_name ; attr_value } - значения объекта во всех атрибутивных полях до их изменения, где attr_name - заголовок столбца с именами атрибутивных полей, attr_value - заголовок столбца со значениями атрибутивных полей (как они хранятся в базе);
    В HTML-коде значения отображаются в виде таблицы, в простом тексте - в строку (как и для макроса {Object.FieldValues; attr_name ; attr_value } , см. выше).
  • {Object.AttributesBeforeUpdate; attr_name ; attr_value } - значения объекта во всех атрибутивных полях до их изменения, где attr_name - заголовок столбца с именами атрибутивных полей, attr_value - заголовок столбца со значениями атрибутивных полей (выводятся значения доменов вместо кодов);
    В HTML-коде значения отображаются в виде таблицы, в простом тексте - в строку (как и для макроса {Object.FieldValues; attr_name ; attr_value } , см. выше).
  • {Object.FieldValuesChanges; attr_name ; attr_value ; attr_old_value } - значения объекта во всех атрибутивных полях до и после его редактирования, где attr_name - заголовок столбца с именами атрибутивных полей, attr_value - заголовок столбца со значениями атрибутивных полей после изменения (как они хранятся в базе), attr_old_value - заголовок столбца со значениями атрибутивных полей до их изменения (как они хранятся в базе);
    В HTML-коде значения отображаются в виде таблицы:
    | attr_name | attr_value | attr_old_value |
    | field1 | value1 | old_value1 |
    | field2 | value2 | old_value2 |
    В простом тексте значения отображаются в виде:
    attr_name: field1
    attr_value: value1
    attr_old_value: old_value1
    attr_name: field2
    attr_value: value2
    attr_old_value: old_value2
  • {Object.AttributeChanges; attr_name ; attr_value ; attr_old_value } - значения объекта во всех атрибутивных полях до и после его редактирования, где attr_name - заголовок столбца с именами атрибутивных полей, attr_value - заголовок столбца со значениями атрибутивных полей после изменения (выводятся значения доменов вместо кодов), attr_old_value - заголовок столбца со значениями атрибутивных полей до их изменения (выводятся значения доменов вместо кодов);
    В HTML-коде значения отображаются в виде таблицы, в простом тексте - в строку (как и для макроса {Object.FieldValuesChanges; attr_name ; attr_value ; attr_old_value } , см. выше).
    • {Object.FieldValues. field_name } , {Object.FieldValues. date_field :dd.MM.yyyy HH:mm:ss LOCAL} - значение (как оно хранится в базе) указанного атрибутивного поля field_name после его редактирования;
      Через двоеточие после имени поля указывается формат отображения значений (для поле типа Дата-время date_field значение может быть выведено в часовом поясе ГИС-сервера).
      Пример: {Object.FieldValues.created_date:dd.MM.yyyy HH:mm:ss LOCAL} - дата создания объекта в указанном формате в часовом поясе ГИС-сервера.
    • {Object.FieldValues. field_name ::empty} , {Object.FieldValues. field_name ::empty: value1 : value2 } - проверяет, пусто ли атрибутивное поле field_name , и выводит:
      • значение value1 (когда задано) или 1, если поле не пусто;
      • значение value2 (когда задано) или 0, если поле пусто;
        Пример: {Object.FieldValues.name::empty:Yes:No} .
    • {Object.Attributes. field_name } - значение (выводится значение домена вместо кода) указанного атрибутивного поля field_name после его редактирования;
    • {Object.FieldValuesBeforeUpdate. field_name } - значение (как оно хранится в базе) указанного атрибутивного поля field_name до его редактирования;
      Через двоеточие после имени поля указывается формат отображения значений.
    • {Object.FieldValuesBeforeUpdate. field_name ::empty} , {Object.FieldValuesBeforeUpdate. field_name ::empty: value1 : value2 } - проверяет, было ли пусто атрибутивное поле field_name до редактирования, и выводит:
      • значение value1 (когда задано) или 1, если поле не пусто;
      • значение value2 (когда задано) или 0, если поле пусто;
        Пример: {Object.FieldValuesBeforeUpdate.name::empty:Yes:No} .
    • {Object.AttributesBeforeUpdate. field_name } - значение (выводится значение домена вместо кода) указанного атрибутивного поля field_name до его редактирования;
      • {Object.FieldValuesChanges. field_name ; attr_value ; attr_old_value } - значения указанного атрибутивного поля field_name до и после его редактирования, где attr_value - заголовок столбца со значением после изменения (как оно хранится в базе), attr_old_value - заголовок столбца со значением до изменения (как оно хранится в базе);
        Через двоеточие после имени поля указывается формат отображения значений.
        В HTML-коде значения отображаются в виде таблицы (без заголовков):
        | value | old_value |
        В простом тексте значения отображаются в виде:
        attr_value: value
        attr_old_value: old_value
      • {Object.FieldValuesChanges. field_name ::empty; attr_value ; attr_old_value } , {Object.FieldValuesChanges. field_name ::empty: value1 : value2 ; attr_value ; attr_old_value } - проверяет, было ли пусто указанное атрибутивное поле field_name до и после его редактирования; выводит (value_result и old_value_result):
        • значение value1 (когда задано) или 1, если поле не пусто;
        • значение value2 (когда задано) или 0, если поле пусто;
          Здесь attr_value - заголовок столбца с результатом проверки значения после изменения (как оно хранится в базе), attr_old_value - заголовок столбца с результатом проверки значения до редактирования (как оно хранится в базе).
          В HTML-коде результаты отображаются в виде таблицы (без заголовков):
          | value_result | old_value_result |
          В простом тексте результаты отображаются в виде:
          attr_value: value_result
          attr_old_value: old_value_result
      • {Object.AttributeChanges. field_name ; attr_value ; attr_old_value } - значения указанного атрибутивного поля field_name до и после его редактирования, где attr_value - заголовок столбца со значением после изменения (выводится значение домена вместо кода), attr_old_value - заголовок столбца со значением до изменения (выводится значение домена вместо кода);
        В HTML-коде значения отображаются в виде таблицы, в простом тексте - в строку (как и для макроса {Object.FieldValuesChanges. field_name ; attr_value ; attr_old_value } , см. выше).
      • {Object.Shape.CentroidX} - X-координата точечного объекта или центроида линии, полигона после редактирования;
        Через двоеточие указывается формат отображения значений.
      • {Object.Shape.CentroidY} - Y-координата точечного объекта или центроида линии, полигона после редактирования;
        Через двоеточие указывается формат отображения значений.
      • {Object.ShapeBeforeChanges.CentroidX} - X-координата точечного объекта или центроида линии, полигона до редактирования;
        Через двоеточие указывается формат отображения значений.
      • {Object.ShapeBeforeChanges.CentroidY} - Y-координата точечного объекта или центроида линии, полигона до редактирования;
        Через двоеточие указывается формат отображения значений.
    • {Condition; sql ; text_for_true } , {Condition; sql ; text_for_true ; text_for_false } - выводит сообщение text_for_true , если заданное условие sql верно для текущего объекта, иначе выводится сообщение text_for_false (если задано) или пустая строка;
      Примеры возможных условий sql :
      field =5
      field != 'текст'
      field1 > coalesce( field2 , 10)
      где field , field1 , field2 - имена атрибутивных полей текущего объекта.
      Сообщения text_for_true , text_for_false могут содержать HTML-код и другие макросы из этого раздела.
      Обратите внимание, что знак «точка с запятой», содержащийся в условии sql , должен быть записан как \; .
    • {Condition; field_name ; text_for_true } , {Condition; field_name ; text_for_true ; text_for_false } - выводит:
      • сообщение text_for_true , если атрибутивное поле field_name текущего объекта содержит значение не NULL (для поля типа Да/Нет содержит значение Да (true), для поля типа Строка значение не пусто и не NULL);
      • пустую строку, если атрибутивное поле field_name содержит NULL ;
      • сообщение text_for_false (если задано) или пустую строку, если атрибутивное поле field_name типа Да/Нет содержит значение Нет (false).
        Сообщения text_for_true , text_for_false могут содержать HTML-код и другие макросы из этого раздела.
  • По вложениям:
    • {Attachment.Id} - уникальный идентификатор вложения (OID);
    • {Attachment.File.Name} - имя файла вложения после редактирования;
    • {Attachment.FileBeforeUpdate.Name} - имя файла вложения до редактирования;
    • {Attachment.File.Size} - размер вложения после редактирования в байтах;
    • {Attachment.FileBeforeUpdate.Size} - размер вложения до редактирования в байтах;
    • {Attachment.File.Type} - тип файла (image/png, text/xml и др.) вложения после редактирования;
    • {Attachment.FileBeforeUpdate.Type} - тип файла (image/png, text/xml и др.) вложения до редактирования;
    • {Attachment.FileChanges; value_h ; old_value_h ; name_h ; size_h ; type_h } - размер, имя и тип файла вложения до и после редактирования, где value_h - заголовок столбца с измененными значениями; old_value_h - заголовок столбца со значениями до редактирования; name_h - заголовок строки со значениями имени файла; size_h - заголовок строки со значениями размера файла; type_h - заголовок строки со значениями типа файла;
      В HTML-коде значения отображаются в виде таблицы:
      | | value_h | old_value_h |
      | name_h | name | old_name |
      | size_h | size | old_size |
      | type_h | type | old_type |
      В простом тексте значения отображаются в виде:
      name_h: value_h = name, old_value_h = old_name
      size_h: value_h = size, old_value_h = old_size
      type_h: value_h = type, old_value_h = old_type
    • {Attachment.Object. submacros } - выводит информацию по объекту (согласно заданному макросу submacros ), которому принадлежит вложение;
      В качестве submacros допустимы все подмакросы с префиксом Object (см. выше).
      Примеры:
      {Attachment.Object.Id} - уникальный номер объекта, которому принадлежит вложение (значение атрибутивного поля OBJECTID).
      {Attachment.Object.Name} - отображаемое имя (DisplayField) объекта, которому принадлежит вложение.
    • {Files. filter } - путь до вложения-изображения, для вставки изображения в тело сообщения (не как прикрепленный файл);
      Здесь filter - фильтр на вложения текущего объекта. В качестве filter может быть конкретное имя файла вложения-изображения или маска (как для поиска в операционной системе). Для формирования пути будет использовано первое найденное по маске вложение, согласно настроенным SQL-выражениям для фильтрации и сортировки вложений.
      Макрос используется в совокупности с включенной опцией HTML-формат (см. п. 14.6.4.8 ). Не забудьте в теле сообщения указать тег <img> с нужными стилями и размерами.
      Пример: <img src="{Files.*.png}" width="120" height="120"> - в тело сообщения будет вставлено первое вложение-изображение формата png текущего объекта размером 120*120 .
  • По связанным объектам:
    • {Relation.To. submacros } - выводит информацию по объекту (согласно заданному макросу submacros ), к которому установлена связь;
      В качестве submacros допустимы все подмакросы с префиксом Object (см. выше), в том числе с указанием формата.
      Примеры:
      {Relation.To.Attributes. field_name } - значение объекта, к которому установлена связь, в атрибутивном поле field_name .
      {Relation.To.Id} - уникальный номер объекта, к которому установлена связь (значение атрибутивного поля OBJECTID).
      {Relation.To.FieldValues.created_date} , {Relation.To.FieldValues.created_date:dd.MM.yyyy HH:mm:ss} - дата создания объекта, к которому установлена связь, в том числе с указанием формата.
    • {Relation.From. submacros } - выводит информацию по объекту (согласно заданному макросу submacros ), от которого установлена связь;
      В качестве submacros допустимы все подмакросы с префиксом Object (см. выше).
      Примеры:
      {Relation.From.Attributes. field_name } - значение объекта, от которого установлена связь, в атрибутивном поле field_name .
      {Relation.From.Name} - отображаемое имя (DisplayField) объекта, от которого установлена связь.
      {Relation.From.FieldValues.created_date} , {Relation.From.FieldValues.created_date:dd.MM.yyyy HH:mm:ss} - дата создания объекта, от которого установлена связь, в том числе с указанием формата.
    • {Relations. rel_table . submacros } - выводит информацию по первому связанному объекту (согласно заданному макросу submacros ) из источника rel_table .
      Источник rel_table настраивается в группе настроек Источники (см. п. 14.6.4.8 ). Первый связанный объект определяется, исходя из настроек фильтрации и сортировки для источника связанных объектов.
      В качестве submacros допустимы все подмакросы с префиксом Object (см. выше).
      Примеры:
      {Relations. rel_table .Id} - уникальный номер первого связанного объекта из источника rel_table (значение атрибутивного поля OBJECTID).
      {Relations. rel_table .Name} - отображаемое имя (DisplayField) первого связанного объекта из источника rel_table .
    • {Files. rel_table . filter } - путь до вложения-изображения связанного объекта, для вставки изображения в тело сообщения (не как прикрепленный файл);
      Здесь filter - фильтр на вложения связанного объекта из источника rel_table . В качестве filter может быть конкретное имя файла вложения-изображения или маска (как для поиска в операционной системе). Для формирования пути будет использовано первое найденное по маске вложение связанного объекта, согласно настроенным SQL-выражениям для фильтрации и сортировки вложений.
      Источник rel_table , SQL-выражения для фильтрации и сортировки вложений настраиваются в группе настроек Источники (см. п. 14.6.4.8 ).
      Макрос используется в совокупности с включенной опцией HTML-формат (см. п. 14.4.4.8). Не забудьте в теле сообщения указать тег <img> с нужными стилями и размерами.
      Пример: <img src="{Files.Table.*}"> - в тело сообщения будет вставлено первое вложение-изображение связанного объекта любого формата из источника Table.

Запись в значение объекта количества связанных с ним объектов другого слоя. Подсчет количества связей.

Геотриггер позволяет записать в значение объекта количество объектов другого слоя, связанных с ним, и выполняется при следующих операциях плагина редактирования:
  1. добавление связи;
  2. удаление связи.
После каждого добавления или удаления связанного объекта геотриггер выполняет подсчет текущего количества связанных объектов. Затем записывает значение в атрибутивное поле, которое определяется в настройках геотриггера.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Подсчет количества связей , выделенный на рисунке ниже, см. Рисунок 751 и добавьте необходимые настройки, см. Рисунок 752 .
Рисунок 751 - Добавление геотриггера Подсчет количества связей
Рисунок 752 - Настройки геотриггера Подсчет количества связей
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции выберите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер: добавление, удаление связи.
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 753 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 753 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 754 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 754 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Тип связи объекта. Найти связанный слой по названию класса пространственных объектов или класса отношений.
  • Введите название класса пространственных объектов или класса отношений.
  • В какой объект нужно записывать значение - задайте Определяющий запрос на SQL.
  • Укажите атрибутивное поле, в которое будет записано значение количества связанных объектов.
  • Выберите тип подсчета:
    • Правда , записываемое в атрибутивное поле при наличии связи, работает при выборе типа подсчета «подсчет связей».
    • Ложь , записываемое в атрибутивное поле при наличии связи, работает при выборе типа подсчета «связь существует».

Расчет геометрических атрибутов редактируемого объекта

Геотриггер предназначен для записи значений редактируемого объекта в атрибутивные поля:
  1. Центральная точка;
  2. Площадь;
  3. Геодезическая площадь;
  4. Длина;
  5. Геодезическая длина;
  6. Количество частей;
  7. Количество точек;
  8. WKT.
Геотриггер выполняется при выполнении следующих операций плагина редактирования:
  1. создание объекта;
  2. обновление объекта.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Рассчитать геометрические атрибуты , выделенный ниже, см. Рисунок 755 и добавьте необходимые настройки, см. Рисунок 756 .
Рисунок 755 - Добавление геотриггера Рассчитать геометрические атрибуты
Рисунок 756 - Настройки геотриггера Рассчитать геометрические атрибуты
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Параметры определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер: создание, обновление объекта.
В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 757 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 757 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 758 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 758 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Систему координат, в которой будет рассчитана геометрия.
  • Единицы измерения, в которых будет рассчитана геометрия.
  • Округление, укажите необходимое количество знаков после запятой.
  • Определите, что будет рассчитывать геотриггер, и в какое поле будет записываться результат:
    • Поле атрибута объекта для записи координат центроида, три поля (X, Y, Z).
    • Поле атрибута объекта для записи площади/геодезической площади полигонального объекта.
    • Поле атрибута объекта для записи длины/геодезической длины, для записи длины линейного объекта или периметра полигона.
    • Поле атрибута объекта для записи количества частей, для мультиполигональных объектов.
    • Поле атрибута объекта для записи количества точек, для мультиточечных объектов.
    • Поле атрибута объекта для записи геометрии объекта в формате WKT.

Вызов SQL-команды

Геотриггер Вызов SQL-команды позволяет выполнить SQL-команду, используя контекст текущего объекта в процессе редактирования при создании/обновлении/удалении объекта, исходя из настроек плагина редактирования. Например, при вызове SQL-процедуры добавить записи изменений в лог-таблицу. С помощью геотриггера Вызов SQL-команды нельзя обновить текущий объект.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Вызов SQL-команды , выделенный ниже, см. Рисунок 759 и задайте необходимые настройки, см. Рисунок 760 .
Рисунок 759 - Добавление геотриггера Вызов SQL-команды
Рисунок 760 - Настройки геотриггера Вызов SQL-команды
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер:
  • Создание объекта ;
  • Обновление объекта ;
  • Удаление объекта ;
  • Добавление связи ;
  • Обновление связи ;
  • Удаление связи ;
  • Добавление вложения ;
  • Обновление вложения ;
  • Удаление вложения .
  • В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 761 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 761 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 762 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 762 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Время запуска - укажите время запуска выполнения SQL-команды для автоматического срабатывания геотриггера при создании/изменении/удалении объектов, по умолчанию задано После обновления , пример ниже, см. Рисунок 763 .
    Измените значение по умолчанию, если необходимо. Для параметра Время запуска доступны также следующие варианты:
    • До обновления - запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После завершения основной транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям.
  • Из какого слоя брать БД - укажите номер слоя/таблицы для выполнения SQL-команды. Если поле останется пустым, то геотриггер сработает для текущего слоя/таблицы редактируемого объекта.
  • SQL-команда - укажите необходимую SQL-команду.
  • Таймаут - по умолчанию указано 0 секунд . Укажите предельное время ожидания выполнения команды, по окончании которого выполнение геотриггера будет остановлено.
Вы можете использовать в SQL-команде информацию об объектах, связанных с текущим. Для этого настройте связанный слой (группа настроек Источники ). Именно этот источник затем используется для вставки в SQL-команду в макросах вида {Relations. rel_table . submacros } в качестве rel_table (см. описание макроса в п. 14.6.4.8.1 ).
Нажмите и добавьте источник связанных объектов, задав следующие настройки (см. Рисунок 764 ):
  • Название - имя источника, которое будет использоваться в макросах в качестве rel_table ;
    Используйте латинские буквы, цифры и знак подчеркивания для указания названия.
  • Найти связанный слой - По названию класса связей , По названию класса объектов - выберите, как будет задан связанный слой;
  • Имя класса объектов/связей ;
    Соответственно выбранному в параметре Найти связанный слой , укажите название таблицы связей или название класса связанных объектов.
    Вы можете задать имя класса объектов, с которым не установлено связи (relationship). В таком случае для установления связи с текущим слоем по кнопке задайте Первичный ключ и Внешний ключ .
  • Определяющий запрос ;
    Если первичный и внешний ключи не заданы, вы можете задать определяющий запрос, по которому будет определяться связанный объект.
    В запросе вы можете использовать макросы вида {CurrentFeature. field_name } , где field_name - атрибутивное поле текущего объекта.
  • Сортировка по полю .
    Для макросов будет использоваться первый найденный связанный объект.
    При необходимости задайте атрибутивное поле для сортировки объектов связанного слоя.
Неиспользуемый источник можно отключить, нажав на в строке с названием источника, или удалить по кнопке .
Рисунок 763 - Пример настройки геотриггера Вызов SQL-команды
Рисунок 764 - Настройки источника связанных данных

Вызов задачи геообработки

Геотриггер Вызов задачи геообработки позволяет запускать задачи сервиса геообработки в зависимости от декларативных настроек публикации и заданных дополнительных возможностей. Например, можно задать время запуска геотриггера при изменении объекта для определенных пользователей.
Например, если настроить этот геотриггер для обновления существующих атрибутивных полей на основе выходных публичных параметров, то исходя из настроек плагина редактирования геотриггер сработает при обновлении объекта и автоматически выполнит заданные обновления.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Вызов задачи геообработки , выделенный ниже (см. Рисунок 765 ), и добавьте необходимые настройки (см. Рисунок 766 ).
Рисунок 765 - Добавление геотриггера Вызов задачи геообработки
Рисунок 766 - Настройки геотриггера Вызов задачи геообработки
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер:
  • Создание объекта ;
  • Обновление объекта ;
  • Удаление объекта ;
  • Добавление связи ;
  • Обновление связи ;
  • Удаление связи ;
  • Добавление вложения ;
  • Обновление вложения ;
  • Удаление вложения .
  • В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 767 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 767 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 768 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 768 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Время запуска - укажите время запуска задачи сервиса геообработки для автоматического срабатывания геотриггера при создании/изменении/удалении объектов, по умолчанию задано После обновления .
    Измените значение по умолчанию, если необходимо. Для параметра Время запуска доступны также следующие варианты:
    • До обновления - запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После завершения основной транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям.
  • URL сервиса геообработки - укажите url сервиса геообработки для его подключения.
  • Логин к сервису - укажите логин для подключения к сервису геообработки, если указывать логин не нужно, оставьте строку пустой.
  • Пароль к сервису - укажите пароль для подключения к сервису геообработки, если указывать пароль не нужно, оставьте строку пустой.
  • Задача геообработки в сервисе - укажите задачу сервиса геообработки (task).
  • Входные параметры задачи - нажмите , в Имя параметра укажите имя входного публичного параметра и укажите Значение для запуска задачи сервиса геообработки. Для значений используйте значения атрибутивных полей и макросы, тогда при вызове геотриггер автоматически сформирует указанные значения (см. Рисунок 771 ).
  • Обновляемые поля по выходных параметрам - нажмите и добавьте пару «поле-значение». В строке Имя поля укажите имя обновляемого атрибутивного поля. В строке Значение задайте выходной параметр инструмента геообработки в фигурных скобках (см. Рисунок 771 ). Тогда после выполнения задачи сервиса геообработки геотриггер автоматически сработает после изменения объекта и обновит атрибутивные поля по указанным выходным параметрам.
    При этом в строке Значение можно указывать макросы вида (здесь OutputFeatureLayer - имя параметра для выходного слоя, см. Рисунок 769 ; prop - имя свойства из файла JSON, полученного по завершении работы инструмента геообработки, см. Рисунок 770 ):
    • {OutputFeatureLayer} или {OutputFeatureLayer.geometry} - в поле запишется геометрия выходного слоя; если выходной слой содержит несколько объектов, то запишется геометрия первого объекта;
    • {OutputFeatureLayer. N } , или {OutputFeatureLayer. N .geometry} , или {OutputFeatureLayer. N .features. N1 .geometry} - в поле запишется геометрия объекта выходного слоя (или N1 часть (парта)) с указанным индексом N (нумерация объектов производится с нуля);
    • {OutputFeatureLayer. myfield } - в поле запишется значение указанного атрибутивного поля myfield объекта выходного слоя; если выходной слой содержит несколько объектов, то запишется значение указанного атрибутивного поля myfield первого объекта;
    • {OutputFeatureLayer. N . myfield } или {OutputFeatureLayer. N .features. N .attributes. myfield } - в поле запишется значение указанного атрибутивного поля myfield объекта выходного слоя с указанным индексом N (нумерация объектов производится с нуля);
    • Рисунок 769 - Имя параметра выходного слоя для использования в макросах
    • {prop. N .prop1.prop2} или {prop. N . prop1.prop2. N1 .prop3} - для выходных параметров типа JSON - записывает значение указанного свойства prop с указанным индексом N или N1 , например, spatialReference.wkid или fields.0.name (см. Рисунок 775 );
    • Рисунок 770 - Фрагмент JSON файла по завершении работы инструмента геообработки
    • {output_param} или {output_param. N } - для остальных типов выходных параметров - в поле запишется значение выходного параметра, где output_param - имя выходного параметра; если выходной параметр представляет собой массив значений, то запишется значение выходного параметра с указанным индексом N (нумерация с нуля).
  • Таймаут - по умолчанию указано 0 секунд . Укажите предельное время ожидания выполнения задачи сервиса геообработки, по окончании которого выполнение геотриггера будет остановлено.
Вы можете использовать для указания значений входных параметров информацию об объектах, связанных с текущим. Для этого настройте связанный слой (группа настроек Источники ). Именно этот источник затем используется для вставки в макросах вида {Relations. rel_table . submacros } в качестве rel_table (см. описание макроса в п. 14.6.4.8.1 ).
Нажмите и добавьте источник связанных объектов, задав следующие настройки (см. Рисунок 772 ):
  • Название - имя источника, которое будет использоваться в макросах в качестве rel_table ;
    Используйте латинские буквы, цифры и знак подчеркивания для указания названия.
  • Найти связанный слой - По названию класса связей , По названию класса объектов - выберите, как будет задан связанный слой;
  • Имя класса объектов/связей ;
    Соответственно выбранному в параметре Найти связанный слой , укажите название таблицы связей или название класса связанных объектов.
    Вы можете задать имя класса объектов, с которым не установлено связи (relationship). В таком случае для установления связи с текущим слоем по кнопке задайте Первичный ключ и Внешний ключ .
  • Определяющий запрос ;
    Если первичный и внешний ключи не заданы, вы можете задать определяющий запрос, по которому будет определяться связанный объект.
    В запросе вы можете использовать макросы вида {CurrentFeature. field_name } , где field_name - атрибутивное поле текущего объекта.
  • Сортировка по полю .
    Для макросов будет использоваться первый найденный связанный объект.
    При необходимости задайте атрибутивное поле для сортировки объектов связанного слоя.
Неиспользуемый источник можно отключить, нажав на в строке с названием источника, или удалить по кнопке .
Рисунок 771 - Пример настройки геотриггера Вызов задачи геообработки
Рисунок 772 - Настройки источника связанных объектов

Вызов .NET метода

Геотриггер Вызов .NET метода позволяет выполнить вызов .NET метода с использованием функциональных возможностей .NET собственной библиотеки в dll-файле, и применить метод в процессе создания/обновления объекта.
Например, этот геотриггер можно использовать для перевода текста с русского на английский язык, в этом случае при создании/обновлении объекта геотриггер автоматически сделает запись в указанном атрибутивном поле на английском языке.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Вызов .NET метода , выделенный ниже, см. Рисунок 773 и добавьте необходимые настройки, см. Рисунок 774 .
Рисунок 773 - Добавление геотриггера Вызов .NET метода
Рисунок 774 - Настройки геотриггера Вызов .NET метода
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер:
  • Создание объекта ;
  • Обновление объекта ;
  • Удаление объекта ;
  • Добавление связи ;
  • Обновление связи ;
  • Удаление связи ;
  • Добавление вложения ;
  • Обновление вложения ;
  • Удаление вложения .
  • В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 775 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 775 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 776 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 776 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Время запуска - укажите время запуска выполнения вызова .NET метода для автоматического срабатывания геотриггера при создании/обновлении объектов, по умолчанию задано После обновления , пример ниже, см. Рисунок 777 .
    Измените значение по умолчанию, если необходимо. Для параметра Время запуска доступны также следующие варианты:
    • До обновления - запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После завершения основной транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям.
  • Путь до dll-файла .NET библиотеки ;
  • Полное имя класса, включая namespaсe ;
  • Имя статистического метода ;
  • Аргументы метода ;
  • Поле для записи - нажмите , в Имя поля укажите название атрибутивного поля и Значение для возможности создать или обновить текущий объект по указанным выходным значениям от .NET метода с использованием функциональных возможностей .NET библиотеки.
  • Таймаут - по умолчанию указано 0 секунд . Укажите предельное время ожидания выполнения вызова .NET метода, по окончании которого выполнение геотриггера будет остановлено.
Вы можете использовать для указания значений аргументов метода информацию об объектах, связанных с текущим. Для этого настройте связанный слой (группа настроек Источники ). Именно этот источник затем используется для вставки в макросах вида {Relations. rel_table . submacros } в качестве rel_table (см. описание макроса в п. 14.6.4.8.1 ).
Нажмите и добавьте источник связанных объектов, задав следующие настройки (см. Рисунок 778 ):
  • Название - имя источника, которое будет использоваться в макросах в качестве rel_table ;
    Используйте латинские буквы, цифры и знак подчеркивания для указания названия.
  • Найти связанный слой - По названию класса связей , По названию класса объектов - выберите, как будет задан связанный слой;
  • Имя класса объектов/связей ;
    Соответственно выбранному в параметре Найти связанный слой , укажите название таблицы связей или название класса связанных объектов.
    Вы можете задать имя класса объектов, с которым не установлено связи (relationship). В таком случае для установления связи с текущим слоем по кнопке задайте Первичный ключ и Внешний ключ .
  • Определяющий запрос ;
    Если первичный и внешний ключи не заданы, вы можете задать определяющий запрос, по которому будет определяться связанный объект.
    В запросе вы можете использовать макросы вида {CurrentFeature. field_name } , где field_name - атрибутивное поле текущего объекта.
  • Сортировка по полю .
    Для макросов будет использоваться первый найденный связанный объект.
    При необходимости задайте атрибутивное поле для сортировки объектов связанного слоя.
Неиспользуемый источник можно отключить, нажав на в строке с названием источника, или удалить по кнопке .
Рисунок 777 - Пример настройки геотриггера Вызов .NET метода
Рисунок 778 - Настройки источников связанных объектов

Создание объекта в таблице

Геотриггер Создание объекта в таблице позволяет автоматически вносить, обновлять или удалять записи в таблице базы данных при наступлении события с объектом целевого слоя.
Геотриггер может использоваться, чтобы фиксировать изменения объектов для последующего анализа, отправки уведомлений или интеграции с внешними системами. Пользователь задаёт таблицу и поля - система сама сформирует корректную операцию с учётом макросов и условий.
Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите   Создание объекта в таблице (см. Рисунок 779 ) и задайте необходимые настройки (см. Рисунок 780 ).
Рисунок 779 - Добавление геотриггера Создание объекта в таблице
Рисунок 780 - Настройки геотриггера Создание объекта в таблице
При необходимости задайте название добавленному геотриггеру в опции Название .
В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
В параметре Операции определите, при выполнении каких операций плагина Редактирование будет выполняться геотриггер:
  • Создание объекта ;
  • Обновление объекта ;
  • Удаление объекта ;
  • Добавление связи ;
  • Обновление связи ;
  • Удаление связи ;
  • Добавление вложения ;
  • Обновление вложения ;
  • Удаление вложения .
  • В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер:
  • Любых ;
  • Неавторизованных ;
  • Авторизованных ;
  • Входящих в любую из групп ;
  • Входящих во все группы .
  • Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  • Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 14.6.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.
Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 781 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • Рисунок 781 - Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам
Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 782 :
  • Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .
    Выражение запроса строится в следующем виде:
  • <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>
или
<Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>
Например:
Status = ‘Выполнен’
Length > 20.
  • Определите территорию, в границах которой при создании или редактировании объектов будет выполняться геотриггер. Для этого отметьте опцию Ограничение по экстенту , задайте координаты и координатную систему.
  • Определите объект слоя картографического сервиса. Для этого отметьте опцию Ограничение по объектам , укажите название класса пространственных объектов и создайте SQL-запрос, определяющий необходимую территорию.
  • В опции Срабатывать, если изменены поля укажите атрибутивное поле/поля, при изменении значений которых будет выполняться геотриггер.
  • Рисунок 782 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля
В группе настроек Параметры укажите следующие настройки:
  • Момент запуска - укажите момент запуска выполнения геотриггера при создании/изменении/удалении объектов:
    • До обновления - запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - выбрано по умолчанию, запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После завершения основной транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям;
  • Имя таблицы в БД - укажите имя таблицы, в которую будут вноситься изменения;
    Таблица должна находиться в той же базе данных, что и целевой слой.
  • Режим добавления записи :
    • Всегда - выбрано по умолчанию, запись создаётся при каждом срабатывании;
    • Только при отсутствии - запись создаётся, только если по SQL-условию для обновления записей не найдена существующая запись или SQL-условие для обновления записей не задано;
    • Никогда - создание отключено, возможны только обновление и удаление;
  • Заполняемые поля для создания записи - список пар «поле-значение», которые заполняются при создании новой записи;
  • Заполняемые поля для обновления записи - список пар «поле-значение», которые заполняются при обновлении записи;
  • Значение полей считать SQL‑выражениями - по умолчанию Нет , если включено, значения заполняемых полей интерпретируются как SQL‑выражения;
  • SQL‑условие для обновления записей - фильтр (WHERE‑условие) для поиска строки, которую требуется обновить;
    Если условие не задано, обновление не выполняется.
  • SQL‑условие для удаления записей - фильтр для удаления строк.
    Удаляются все записи, удовлетворяющие фильтру.
В качестве значений заполняемых полей вы можете указать фиксированные значения, макросы из п. 16 , а также дополнительно следующие макросы:
  • макросы разрешенных операций SOE (для всех макросов операций значение 1 - операция разрешена, 0 - запрещена):
    • {AddObject} - возможность добавлять объект;
    • {AddAttachment} - возможность добавлять вложения к объекту;
    • {AddRelation} - возможность добавлять связи к объекту;
    • {RemoveAttachment} - возможность удалять вложения объекта;
    • {RemoveObject} - возможность удалять объект;
    • {RemoveRelation} - возможность удалять связи объекта;
    • {UpdateAttachment} - возможность редактировать вложения объекта;
    • {UpdateObject} - возможность редактировать объект;
    • {UpdateField: myfield } - возможность редактировать конкретное поле объекта, где myfield - имя атрибутивного поля;
    • {UpdateGeometry} - возможность редактировать геометрию объекта;
    • {UpdateRelation} - возможность редактировать связи объекта;
  • макросы значений атрибутов текущего или связанного объекта (аналогично макросам для геотриггера Рассылка сообщений , см. п. 14.6.4.8.1 ).
  • контекстные макросы для передачи слоя и токена:
    • {ServiceUrl} - полный URL сервиса;
    • {LayerId} - номер слоя.
Обратите внимание, что при использовании макроса вида {Relations. rel_table . submacros } (см. описание макроса в п. 14.6.4.8.1 ), необходимо задать источник связанных объектов, который используется в качестве rel_table .
Для этого в разделе Источники нажмите и добавьте источник связанных объектов, задав следующие настройки (см. Рисунок 783 ):
  • Название - имя источника, которое будет использоваться в макросах в качестве rel_table ;
    Используйте латинские буквы, цифры и знак подчеркивания для указания названия.
  • Найти связанный слой - По названию класса связей , По названию класса объектов - выберите, как будет задан связанный слой;
  • Имя класса объектов/связей ;
    Соответственно выбранному в параметре Найти связанный слой , укажите название таблицы связей или название класса связанных объектов.
    Вы можете задать имя класса объектов, с которым не установлено связи (relationship). В таком случае для установления связи с текущим слоем по кнопке задайте Первичный ключ и Внешний ключ .
  • Определяющий запрос ;
    Если первичный и внешний ключи не заданы, вы можете задать определяющий запрос, по которому будет определяться связанный объект.
    В запросе вы можете использовать макросы вида {CurrentFeature. field_name } , где field_name - атрибутивное поле текущего объекта.
  • Сортировка по полю .
    Для макросов будет использоваться первый найденный связанный объект.
    При необходимости задайте атрибутивное поле для сортировки объектов связанного слоя.
Неиспользуемый источник можно отключить, нажав на в строке с названием источника, или удалить по кнопке .
Рисунок 783 - Настройки источников связанных объектов