Импортёр данных#
Импортёр данных – это сервисное приложение для обработки и импорта данных из различных источников в Систему.
Приложение работает с файлами источников следующих форматов:
.tab;
.mid/.mif;
.xlsx, .gml;
.shp;
.kml/.kmz;
.gpx;
zip-архивы.
Авторизация#
Для авторизации введите в форму логин и пароль, которые используете для входа в Систему:
Логин и пароль для Системы и импортёра совпадают.
Чтобы не вводить логин и пароль при следующем входе в Систему, установите флажок «Запомнить меня».
Узнать, как авторизироваться в импортёре с помощью ЕСИА, можно по ссылке.
Журнал импорта#
После авторизации при входе в импортёр открывается Журнал импорта.
В журнале импорта отображается информация по всем задачам импорта и указаны следующие характеристики:
Имя шаблона;
Статус импорта;
Проект;
Создатель;
Время.
Задачи помещаются в журнал по времени запуска: от новых к старым.
Задача может находиться в одном из следующих статусов:
В очереди – задача ожидает импорта;
Импорт – когда задача находится в состоянии импорта, в поле [Статус импорта], отображается процесс импорта задачи, который состоит из 2 этапов:
Подготовка данных – статус импорта изменится на «Подготовка».
Импорт – после завершения подготовки данных начинается импорт задачи и отображается информация о количестве импортированных объектов из общего количества объектов.
Выполнен – импорт шаблона успешно завершён;
Ошибка – импорт данных завершён с ошибкой, при необходимости нужно повторить импорт.
Примечание
Одновременно можно импортировать не более 5 задач.
Создание задачи импорта#
Чтобы создать задачу импорта:
Нажмите кнопку + Создать задачу импорта.
Заполните поля:
[Проект] – выберите проект, для которого производится импорт;
[Шаблон] – введите наименование шаблона или выберите из списка;
[Набор данных] – введите наименование набора данных или выберите из списка (см. Набор данных);
[Система координат] – укажите систему координат.
Примечание
Содержание списков шаблонов импорта и наборов данных фильтруется по принадлежности к проекту.
Загрузите файл для импорта: нажмите на ссылку «Выберите файлы» или перенесите файлы в выделенную область.
При успешной загрузке файлов в левой части экрана появятся типы исходных данных, полученные из файлов. Если при загрузке файла произошла ошибка, то появится сообщение об ошибке.
Чтобы удалить тип исходных данных из задачи импорта, нажмите кнопку «Удалить».
Сопоставьте типы данных с парами импорта, которые ранее были загружены из шаблона, или выполните автоматическое сопоставление.
Примечание
Порядок импорта пар рассчитывается автоматически. Сортировка пар происходит при сохранении изменений в шаблоне импорта.
Для автоматического сопоставления типов данных с парами импорта нажмите на кнопку Сопоставить автоматически.
Если есть ранее сделанные сопоставления, то приложение запросит подтверждение на их удаление. Для продолжения подтвердите действие.
Для каждого типа исходных данных приложение найдет пары, у которых тип источника имеет такое же наименование. Для всех найденных соответствий будет сделано сопоставление.
Если в источнике данных есть типы данных с совпадающими именами, то для сопоставления будет взят первый из них.
Если в парах шаблона импорта есть ошибки, то сопоставленная пара будет подсвечиваться красным. Запуск импорта будет невозможен до устранения проблемы.
Если структура данных файла не соответствует структуре данных, описанной в паре импорта, то сопоставленный тип источника подсветится. Запуск импорта будет невозможен до устранения проблемы. Для устранения проблемы обратитесь к администратору.
Нажмите кнопку Импортировать, чтобы начать процесс импорта. Подтвердите операцию в появившемся окне.
Если при импорте произошли ошибки и импорт не может быть выполнен, то Система завершит задачу импорта и присвоит ей статус «Ошибка».
Импорт не может быть запущен, если:
Размер файла-источника слишком большой. Размер файла должен быть прямо пропорционален количеству доступного места. Например, если на сервере приложений доступен 1gb ОЗУ на момент загрузки исходного файла, то Импортёр сможет обработать файл размером до 1gb.
Система координат указана неверно.
Файл-источник не содержит данные.
Завершение импорта#
После запуска импорта приложение откроет журнал импорта, в котором отображаются все задачи импорта, в том числе их статусы.
Информация о задаче импорта появится в «Журнале импорта».
Также создать задачу импорта можно во вкладке «Шаблоны», для этого:
выберите из списка шаблон, с помощью которого хотите выполнить импорт;
в появившемся окне нажмите «Импортировать»;
заполните поля, следуя инструкции выше, при импорте файла через окно шаблонов поля [Проект] и [Шаблон] будут заполнены автоматически.
Просмотр деталей импорта#
Посмотреть детали импорта можно по задачам, которые завершились с ошибкой. Чтобы посмотреть детали импорта, нажмите на нужную запись.
Детали импорта содержат информацию о количестве импортированных объектов и количестве объектов в источнике.
Также в деталях импорта отображается тип геометрии: точки, линии, полигоны, коллекции или «без геометрии».
Если импорт был прерван из-за ошибки в процессе импорта данных пары, то детали импорта будут содержать информацию:
об успешно импортированных парах;
о паре, при импорте которой произошла ошибка;
о парах, которые остались необработанными.
Ошибки при импорте#
При возникновении ошибок обратитесь к администратору Системы.
Большой размер файла-источника
Описание ошибки
Размер файла – источника превышает допустимый.
Решение
Разделите исходные данные на несколько файлов.
В модели данных не найдены атрибуты из типа приёмника
Описание ошибки
{тип приёмника1}
В модели данных не найдены атрибуты {атрибут1_приёмника},…,{атрибутN_приёмника}
…
{тип приёмникаN}
В модели данных не найдены атрибуты {атрибут1_приёмника},…,{атрибутN_приёмника}
Решение
Чтобы решить проблему, откройте шаблон импорта, найдите тип приёмника и далее атрибут, который отсутствует в модели данных. Удалите правила преобразования для данного атрибута приёмника.
Некорректная геометрия объекта
Описание ошибки
{тип источника} – {тип приёмника}
Есть объекты с некорректной геометрией в количестве {количество}
Решение
Внесите изменения в источник данных.
Сервис импорта был недоступен
Описание ошибки
Импорт был прерван из-за недоступности сервиса импорта
Решение
Выполните импорт заново.
Система координат указана неверно
Описание ошибки
{тип источника} – {тип приёмника}
Система координат указана неверно. Для импорта данных в формате GPX или KML/KMZ должна быть выбрана система координат EPSG:4326
Решение
Установите систему координат EPSG:4326, если импорт данных происходит в формате GPX или KML/KMZ.
Структура источника отличается от структуры данных в шаблоне импорта
Описание ошибки
{тип источника} - {тип приёмника}
Структура источника отличается от структуры данных в шаблоне импорта. Не найдены атрибуты:
{атрибут_приёмника},…,{атрибутN_приёмника}
…
{тип приёмникаN}
Структура источника отличается от структуры данных в шаблоне импорта. Не найдены атрибуты:
{атрибут1_приёмника},…,{атрибутN_приёмника}
Решение
Убедитесь, что файл соответствует шаблону импорта и при необходимости внесите изменения в шаблон импорта.
Файл не содержит данные
Описание ошибки
Файл не содержит данные.
Решение
Проверьте корректность данных файла или выберите другой файл для импорта.
Копирование шаблона импорта#
В приложении можно выполнить массовую операцию копирования шаблона импорта в несколько проектов.
Чтобы скопировать шаблон импорта на другой проект:
Выберите команду «Скопировать на другой проект» в каталоге шаблонов импорта в меню шаблона:
Отметьте нужные проекты и нажмите на кнопку Скопировать.
Чтобы отметить все проекты, нажмите Выбрать все.
Операция копирования выполняется некоторое время и сопровождается индикацией прогресса.
В приложении все модальные окна можно закрыть с помощью клавиши Esc. Модальное окно тиражирования шаблона нельзя закрыть в процессе копирования данных до его завершения, но можно остановить копирование соответствующей кнопкой.
Примечание
Структура данных в шаблоне импорта может отличаться от структуры данных проекта, на который шаблон был скопирован.
В этом случае пользователь получит сообщение о наличии ошибок при завершении операции копирования.
Если сообщение об ошибке относится к данным, которые необходимо импортировать, то ошибку следует исправить.
Если же сообщение об ошибке относится к данным, которые не нужны для работы, то можно запустить задачу импорта. Импорт корректных данных будет выполнен, а информация об ошибке в других данных будет зафиксирована в журнале импорта.
Каталог шаблонов импорта#
Импорт данных выполняется в соответствии с условиями и правилами, заданными в шаблоне импорта.
Шаблон импорта может быть использован многократно, если структура источника данных и приёмника не меняется.
Шаблон импорта включает в себя:
информацию о структуре источника и приёмника;
правило сопоставления атрибутов источника и приёмника;
правила преобразования исходных данных;
правила поиска объекта для установления с ним семантической связи в ссылочных атрибутах приёмника;
правила фильтрации объектов источника;
режим импорта, определённый для каждого типа приёмника.
Для редактирования существующего шаблона выберите проект и нужный шаблон в таблице, после этого откроется окно редактирования.
Примечание
Список проектов содержит проекты, в которые добавлена учётная запись текущего пользователя. Учетная запись должна быть связана с карточкой субъекта в Oсновном приложении.
Создание/редактирование шаблона импорта#
Для создания нового шаблона импорта выберите проект и нажмите кнопку + Создать.
Затем выполните следующие действия:
Создание шаблона импорта из файла#
Чтобы создать шаблон импорта из файла:
Перейдите к каталогу шаблонов импорта.
Нажмите кнопку Создать из файла.
Выберите файл с шаблоном импорта и подтвердите действие. Файл шаблона должен иметь расширение .json.
Шаблон будет создан и появится в каталоге шаблонов импорта. Шаблону будет присвоено имя шаблона, которое было у него перед сохранением.
Если структура файла не читается или шаблон не подходит для использования на текущем проекте, то появится уведомление об ошибке и шаблон не будет создан.
Пример ошибки:
Сохранение шаблона импорта в файл#
Для переноса шаблона импорта с проекта на проект можно сохранить его в виде файла.
Чтобы сохранить шаблон импорта в файл:
В каталоге шаблонов импорта выберите в меню шаблона команду «Сохранить шаблон как файл».
Подтвердите действие.
Изменение имени шаблона#
При создании шаблона имя формируется автоматически в формате «Новый шаблон от [текущая дата]».
Чтобы изменить имя шаблона, нажмите рядом с именем и внесите правки.
Для отмены изменений нажмите клавишу Esc, а для сохранения нажмите Enter или щёлкните левой кнопкой мыши в любом месте приложения вне строки редактирования.
Добавление источника данных#
Чтобы добавить новый источник данных, нажмите на ссылку «выберите файлы» или перенесите файлы в выделенную область.
Примечание
Можно добавить несколько источников данных в шаблон импорта. Источники необходимо добавить либо по очереди, либо группой, либо zip-архивом.
Вместе с файлом .shp выберите файлы c расширениям .dbf, .shx, .cpg, имена которых совпадают. Если не хватает какого-то из файлов, то Система пропускает эту группу и уведомляет о необработанных файлах. Файлы с расширениями .prj, .sbn, .sbx не используются.
Импортер выполнит проверку файла(ов) и, если они соответствуют требованиям, отобразит структуру источника данных. Структура источника состоит из списка пар импорта.
Пример: Территориальные зоны (действующие).tab.
Тип источника
Тип приемника
Режим импорта
Сопоставлено
Если файлы не могут быть прочитаны или неверно определён состав файлов, то отобразится ошибка. Убедитесь, что файлы выбраны корректно и повторите попытку.
При попытке загрузить файлы, которые различаются структурой, приложение сообщит об ошибке.
Например, если файлы mid/mif различаются числом записей: в семантическом файле mid – 5 записей, а в файле с координатами mif – 4 записи.
Совет
Если тип источника данных требует наличия нескольких файлов в своём составе, то потребуется выбрать для загрузки файлы всех типов из указанных в перечне. Например, для формата .tab, импортёр будет ожидать связанные с ним файлы .id, .dat, .map, при этом имена у файлов должны совпадать.
Настройка правил импорта#
Настройка правил импорта для пары «тип источника – тип приёмника»#
Для перехода к редактированию нажмите левой кнопкой мыши на нужную пару в таблице.
Откроется окно Сопоставление атрибутов.
Для настройки необходимо:
Настроить удаление ранее импортированных данных из набора данных.
Вернуться к редактированию шаблона.
Для перехода к сопоставлению другой пары можно воспользоваться сочетанием клавиш:
Ctrl + стрелка влево – перемещение на пару вверх в списке на странице настройки шаблона. Если текущая пара в начале списка, то при переходе для настройки откроется последняя пара в списке.
Ctrl + стрелка вправо – перемещение на пару вниз в списке на странице настройки шаблона. Если текущая пара в конце списка, то при переходе для настройки откроется первая пара в списке.
Добавление типа объекта в приёмник#
Нажмите на поле добавления типа объекта приёмника.
Начните вводить наименование или Alias типа объекта.
Выберите один из предложенных вариантов в раскрывающемся списке.
Подсказка
По мере ввода символов результаты в раскрывающемся списке будут обновляться. Продолжайте вводить буквы, пока не увидите нужный результат.
В области приёмника отобразится список атрибутов приёмника, его наименование, Alias и тип данных.
Выбор режима импорта#
В поле выбора режима импорта выберите требуемый вариант из списка:
Добавить все объекты – в режиме будут импортированы все объекты из источника.
Удалить объекты по набору данных и добавить новые объекты – перед началом импорта будут удалены все объекты с указанным типом приемника и связанные с набором данных, заданным при запуске задачи импорта. Далее будут импортированы все объекты источника.
Добавить только новые объекты без обновления существующих – при импорте будет произведён поиск объекта в приёмнике по значению ключевых атрибутов. Если в приёмнике искомый объект существует, то он не будет изменен или удалён, а запись из источника будет пропущена.
Добавить новые объекты и обновить существующие – при импорте будет произведён поиск объекта в приёмнике по значению ключевых атрибутов. Если в приёмнике искомый объект существует, то он будет изменён: значения в сопоставленных атрибутах будут обновлены, для пространственных объектов будет заменена геометрия при условии, что она есть в экземпляре источника.
Для режимов Добавить только новые объекты без обновления существующих и Добавить новые объекты и обновить существующие необходимо указать ключевые атрибуты, по которым в процессе импорта будет выполняться поиск объектов в приёмнике.
Атрибут приёмника можно назначить ключевым только в том случае, когда он сопоставлен с атрибутом источника.
Чтобы сделать атрибут ключевым, необходимо нажать на изображение ключа в поле атрибута. Если атрибут выбран ключевым, изображение станет синим.
Удаление ранее импортированных данных из набора данных#
Чтобы удалить ранее импортированные данные по набору данных, необходимо выбрать для пары импорта режим «Удалить объекты по набору данных и добавить новые объекты» при настройке шаблона импорта.
Обратите внимание, что набор данных, по которому будут удалены данные, выбирается на этапе создания задачи импорта.
Сопоставление атрибутов#
Для сопоставления атрибута источника с атрибутом приёмника перетяните выбранный атрибут источника в атрибут приёмника.
Если атрибут источника добавлен в сопоставление по ошибке, то его можно удалить. Для этого нажмите на крестик рядом с названием атрибута.
Если атрибут был задействован в функциях правила преобразования, то он будет удален также из правила преобразования. Приложение проверит корректность описания правила преобразования и при выявлении ошибки сообщит о её возникновении.
Примечание
Система позволяет записывать значение одного атрибута источника в несколько атрибутов приёмника.
Атрибуты с типом дата на стороне источника могут содержать даты в коротком формате записи без указания времени и в формате с указанием времени. В базу данных Geometa даты записываются в формате ДатаВремя.
Если тип данных атрибута источника совпадает с типом данных приёмника, то дополнительных действий по настройке сопоставления не требуется, иначе Система сообщит об ошибке в правиле преобразования.
При необходимости для атрибута приёмника задайте правила преобразования исходных данных (см. Функция преобразования (конвертации) Convert). Для редактирования правила преобразования нужно кликнуть на поле атрибута приёмника, с которым сопоставлен хотя бы один атрибут источника.
Атрибут источника можно удалить из сопоставления. При удалении атрибута источника он также будет удалён из выражения. При этом система проверит корректность описания правила преобразования и при выявлении ошибки сообщит о её возникновении.
Ошибка не блокирует возможность сохранения изменений, но шаблон импорта, содержащий ошибки, не получится использовать для импорта данных.
Функция преобразования (конвертации) Convert#
Преобразование применяется в следующих случаях:
дополнение исходных данных статичным текстом;
склеивание строковых данных из нескольких атрибутов источника в одну строку – Функция конкатенации Concat.
Примечание
Выражение пребразования можно составить для всех типов атрибутов приёмника, кроме ссылочных.
Чтобы конвертировать один тип данных в другой, используйте выражение:
Convert.функция(#S. "атрибут источника")
функция
– выберите функцию, исходя из исходного и целевого типа данных. Необходимые функции перечислены в таблице.(#S. "атрибут источника")
– введите название атрибута источника в двойных кавычках. Функция преобразования принимает только один аргумент.
Функция |
Исходный тип данных |
Целевой тип данных |
Дополнительный параметр |
---|---|---|---|
BoolToDouble() |
Логический тип |
Вещественное число |
|
BoolToInteger() |
Логический тип |
Целое число |
|
BoolToString() |
Логический тип |
Строка |
|
DateTimeToString() |
Дата |
Строка |
|
DoubleToBool() |
Вещественное число |
Логический тип |
|
DoubleToInteger() |
Вещественное число |
Целое число |
|
DoubleToString() |
Вещественное число |
Строка |
'N' |
IntegerToBool() |
Целое число |
Логический тип |
|
IntegerToDouble() |
Целое число |
Вещественное число |
|
IntegerToString() |
Целое число |
Строка |
|
StringToDateTime() |
Строка |
Дата |
|
StringToBool() |
Строка |
Логический тип |
|
StringToInteger() |
Строка |
Целое число |
|
StringToDouble() |
Строка |
Вещественное число |
'N' |
Примечание
Для функции конвертации также может потребоваться указание формата данных.
Примеры конвертации
Пример конвертации строкового атрибута источника AREA в атрибут приёмника area с типом данных Вещественное число:
Convert.StringToDouble(#S. "AREA", 'N').
где:
S. "Глубина" – атрибут источника.
„N“ – управляющий символ, который говорит, что в аргументе могут присутствовать цифры целой и дробной частей с разделителем «,» и необязательным отрицательным знаком.
Пример конвертации из вещественного числа в строку:
Convert.DoubleToString(#S. \"Глубина\",'N')
где:
S. "Глубина" – атрибут источника.
'N' – управляющий символ, который говорит, что в аргументе могут присутствовать цифры целой и дробной частей с разделителем «,» и необязательным отрицательным знаком.
', \n' – символ запятая + перевод строки.
Пример конвертации строки в дату:
Convert.StringToDateTime(#S."ДатаДокумента",'dd.MM.yyyy')
где:
S. "ДатаДокумента" – атрибут источника.
„dd.MM.yyyy“ – формат вывода даты в системе.
Функция конкатенации Concat#
Конкатенация – это операция склеивания строк. Результатом конкатенации всегда будет строка.
С помощью функции конкатенации можно записать значения нескольких атрибутов источника в один атрибут приёмника, но это работает только для строковых атрибутов приёмника.
Наиболее часто конкатенация применяется для того, чтобы не потерять исходные данные из атрибутов источника, когда они не представлены в виде характеристик объектов приёмника.
Для примера рассмотрим вариант импорта данных объектов капитального строительства. Допустим, что у объекта капитального строительства есть три атрибута, которых нет в модели данных приёмника: «Глубина», «Объём», «Высота». Будем записывать их значения в атрибут «Примечание».
Нужно получить следующую конструкцию:
Глубина: 10;
Объём: 20;
Высота: 40.
Для этого требуется составить следующее правило преобразования:
String.Concat('Глубина:', Convert.DoubleToString(#S."Глубина",'N'), ',\n','Объём:', Convert.DoubleToString(#S."Объём",'N'), ',\n','Высота:', Convert.DoubleToString(#S."Высота",'N'), ',\n')
String.Concat() – функция конкатенации, которая принимает произвольное количество строковых аргументов.
'Глубина:' – простой текст, будет добавлен в результирующую строку без изменений.
Convert.DoubleToString(#S. "Глубина",'N') – функция конвертации из вещественного числа в строку, где:
S. "Глубина" – атрибут источника,
'N' – управляющий символ, который говорит, что в аргументе могут присутствовать цифры целой и дробной частей с разделителем «,» и необязательным отрицательным знаком.
', \n' – символ запятая + перевод строки.
Функция получения идентификатора текущего набора данных Context.CurrentInfosetKey#
С помощью функции Context.CurrentInfoSetKey можно вернуть набор данных, который был указан при создании задачи импорта, в виде целого числа.
Например, если для атрибута «Ключ связывания» (EmeraldBindingKey) в таблице с данными нужно склеить объект из нескольких записей по ключевому полю, уникальному только в рамках текущей таблицы, то можно использовать составное выражение типа:
String.Concat(Convert.IntegerToString(Context.CurrentInfoSetKey),'_',#S."Zone")
Где:
String.Concat() – функция конкатенации, которая принимает произвольное количество строковых аргументов;
Convert.IntegerToString – функция конвертации, которая приводит целое число к строке;
Context.CurrentInfoSetKey – функция, которая возвращает идентификатор текущего набора данных;
S."Zone" – атрибут источника.
Константы#
Можно использовать константное значение для заполнения данных атрибута приёмника или входящего параметра (аргумента) функции преобразования.
Если тип данных константы не соответствует ожидаемому типу, то при импорте будет произведена попытка автоматического приведения типа к целевому. При неудачной попытке будет зафиксирована ошибка записи значения в целевой атрибут.
Для записи константы в строковый атрибут в правиле преобразования необходимо записать значение константы в одинарных кавычках. Например, ‘123’ или ‘abc’.
Примечание
Константа в атрибуте типа «вещественное число» или «целое число» пишется без кавычек:
123 – целое число,
123.1 – вещественное число, где разделитель точка.
Условие поиска (фильтрации) для ссылочного атрибута#
Ссылочные атрибуты служат для установки связи объекта с другими объектами системы Geometa. Чтобы установить связь с объектом, необходимо задать критерий поиска. С его помощью будет установлена связь со всеми объектами, которые удовлетворяют критерию.
Примечание
Удаленные в корзину объекты не учитываются при поиске.
Составление правила поиска#
Для описания правила поиска объекта сопоставьте атрибуты источника, по значениям которых должен выполняться поиск, со ссылочным атрибутом приёмника. (См. Сопоставление атрибутов)
Чтобы составить правило поиска, щёлкните левой кнопкой мыши по ссылочному атрибуту приёмника.
Будет открыто окно «Настройки фильтра».
Запишите равенство #T."X" = #S."Y".
#T."X" – это указатель на атрибут приемника, по которому будет строиться поисковый запрос. X – alias атрибута, в связанном объекте.
#S."Y" – это указатель на атрибут источника, значение которого принимается в качестве аргумента для поиска. Y – наименование атрибута источника.
Имена атрибутов и структуру связей можно уточнить в метаданных проекта. Для изучения метаданных используйте редактор метаданных.
Чтобы проверить, корректно ли составлено выражение, нажмите кнопку «Проверить». В правой части окна будет отображен результат проверки.
Ссылочный атрибут может ссылаться на логическое представление, которое объединяет несколько типов данных. Примеры выражений для поиска в логических представлениях:
Для поиска по всем типам алиасы типов указывать не требуется. Выражение будет выглядеть следующим образом:
#T."[имя атрибута]" = #S."[имя атрибута]"
При этом атрибут, по которому производится поиск, должен быть определен в списке атрибутов LV, иначе проверка выражения выдаст ошибку.
Для поиска объектов конкретного типа в выражении после тега #T нужно указать алиас типа в круглых скобках (). Выражение будет выглядеть следующим образом:
#T(алиас типа)."[имя атрибута]" = #S."[имя атрибута]"
При этом атрибут, по которому производится поиск, должен быть определён в указанном типе, иначе проверка выражения выдаст ошибку.
Пример выражения:
#T(DocPD)."Num" = #S."NUMBER"
Для правила фильтрации можно добавить условие поиска только в текущем наборе данных: #T."InfoSetKey" = Context.CurrentInfoSetKey.
Полное выражение выглядит следующим образом:
#T."атрибут приемника" = #S."атрибут источника" && #T."InfoSetKey" = Context.CurrentInfoSetKey
Где:
#T."атрибут приемника" = #S."атрибут источника" – правило для сопоставления источника со ссылочным атрибутом приемника;
#T."InfoSetKey" = Context.CurrentInfoSetKey – условие, по которому сопоставление должно происходить только с объектами приемника, связанными с текущим набором данных.
Для поиска сразу по нескольким атрибутам типа приёмника можно использовать составное выражение. Выражение будет выглядеть следующим образом:
#T(алиас типа)."[имя атрибута1]" = #S."[имя атрибута1]" && #T(алиас типа)."[имя атрибута2]" = #S."[имя атрибута2]"
Пример выражения:
#T(DocPD)."Num" = #S."NUMBER" && #T(DocPD)."Name" = #S."NameDoc"
Не получится выполнить поиск по составному выражению по нескольким типам приёмника.
Например, для поиска в логическом представлении Субъекты (SubjParty) проверка выражения #T(SubjOrganization)."INN" = '1234' && #T(SubjPerson)."LastName" = 'Иванов' выдаст ошибку: «Поиск по составному выражению через && в разных типах объектов невозможен. Выражение содержит следующие типы: SubjOrganization, SubjPerson.
Однако, выражение #T."FirstName" = 'Иван' && #T(SubjPerson)."LastName" = 'Иванов' не приведет к ошибке, но так как в одной из частей выражения указан конкретный тип объекта приёмника, то остальные части выражения, в которых тип объекта не указан, будут обработаны как типизированные под этот тип.
Важно
Операция ИЛИ (||) в выражениях поиска не поддерживается.
Использование ключей внешних систем для связывания импортируемых объектов#
Ключи внешних систем не используются в каких-либо бизнес-процессах системы, кроме импорта и экспорта данных. Поэтому для их хранения предусмотрен универсальный атрибут «Ключ связывания» EmeraldBindingKey. Этот атрибут присутствует в каждом типе данных приёмника.
Для установления связи между импортируемыми объектами разных типов:
Cопоставьте атрибут источника, содержащий ключ, с атрибутом приёмника «Ключ связывания» EmeraldBindingKey в импортируемом типе данных;
В ссылочном атрибуте корневого объекта задайте правило поиска по «Ключу связывания»:
#T."EmeraldBindingKey" = #S."[Имя атрибута источника, содержащего ключ]"
Может потребоваться применение функции преобразования к строковому типу, если атрибут источника, содержащего ключ, имеет не строковый тип.
При импорте порядок импорта пар будет определён автоматически с учётом устанавливаемых связей
Если при настройке правил связывания система обнаружит зацикливание связей, то пары и атрибуты будут обозначены как проблемные. В этом случае нужно удалить либо отредактировать одно из правил связывания.
Выделение нескольких типов данных по столбцам из одной записи#
Пример таблицы с исходными данными:
В таблице представлен реестр с сервитутами, которые отличаются геометрией.
Уникальным идентификатором записи может служить атрибут fid или номер записи. Геометрия не может служить уникальным идентификатором, так как может изменяться во внешней системе и поступать во внутреннюю систему при повторном импорте в изменённом виде.
Чтобы выделить несколько типов данных по столбцам из одной записи, необходимо:
Создать новый шаблон.
Добавить файл с исходными данными.
Создать копию пары импорта.
Добавить в приёмник первой пары корневой тип данных.
Добавить в приёмник второй пары дочерний тип данных, то есть в типе данных первой пары есть ссылочный атрибут, который ссылается на тип данных второй пары.
Настроить связывание данных по ссылочному атрибуту. (См. Как загрузить объект из файла)
Фильтрация исходных данных по значению в атрибуте источника#
Фильтровать данные по значению в атрибуте источника необходимо, когда записи в источнике относятся к разным типам данных и их тип идентифицируются по значениям в некотором атрибуте. Таким образом для импорта только части данных необходимо в свойствах пары задать правило фильтрации по атрибуту.
Для этого необходимо выполнить следующие действия:
Создайте шаблон импорта.
Загрузите файл с исходными данными.
Создайте копию пары импорта.
В первой паре найдите и выберите тип приёмника, соответствующий коду 0001. Настройте правило фильтрации вида #S."code" = ‘0001’.
Во второй паре найдите и выберите тип приёмника, соответствующий коду 0002. Настройте правило фильтрации вида #S."code" = ‘0002’.
Фильтрация исходных данных по типу геометрии исходных данных#
Если исходные данные имеют разную геометрию, они должны быть отфильтрованы и разделены при добавлении в приёмник.
Например, в системе есть типы данных приёмника «Красные линии линейные» и «Красные линии площадные». Зададим для них правила фильтрации.
Для этого необходимо выполнить следующие действия:
Создайте шаблон импорта.
Загрузите файл с исходными данными.
Выберите пару и создайте ее копию.
В первой паре найдите и выберите тип приёмника, предназначенный для размещения линейных объектов. Настройте правило фильтрации вида Geom.IsLine() = true.
Во второй паре найдите и выберите тип приёмника, предназначенный для размещения площадных объектов. Настройте правило фильтрации вида Geom.IsPolygon() = true.
Варианты фильтров по типам геометрии:
Geom.IsExist() – функция определяет, есть ли геометрия у объекта. При значении Geom.IsExist() = true в выборку попадут объекты с геометрией, при значении Geom.IsExist() = false в выборку попадут объекты без геометрии.
Geom.IsPolygon() – функция возвращает значение true для объектов с типом геометрии Polygon или MultiPolygon. Таким образом, если в правиле фильтрации записать выражение Geom.IsPolygon() = true, то в выборку попадут объекты с типом геометрии Polygon или MultiPolygon. Если в выборке нужны объекты всех типов геометрии, кроме полигонов, то запишите в фильтр выражение Geom.IsPolygon() = false.
Функции Geom.IsLine(), Geom.IsPoint(), Geom.IsCollection() работают аналогичным образом с Geom.IsPolygon(), разница в типе геометрии. Geom.IsLine() возвращает true для типов геометрии LineString и MultiLineString. Geom.IsPoint() возвращает true для типов геометрии Point и MultiPoint. Geom.IsCollection() возвращает true для типа геометрии Geocollection.
Выражение для правила фильтрации может быть составным. Например:
#S."Area"=Convert.StringToInteger('70') && Geom.IsPolygon()=true
Выражение отберёт объекты, у которых площадь равна 70 и есть геометрия с типом Polygon или MultiPolygon.
Geom.IsValid() – функция определяет корректность геометрического объекта. Можно использовать фильтр для исходных данных Geom.IsValid() = true, который выполнит отбор только тех объектов, геометрия которых пройдёт проверку на валидность.
Информацию об отфильтрованных объектах можно посмотреть в журнале импорта.
Если в исходных данных есть некорректная геометрия и фильтр Geom.IsValid() = true не применяется, то импорт будет завершён с ошибкой.
Сохранение шаблона импорта#
Для сохранения изменений нажмите на кнопку «Сохранить» на странице редактирования шаблона.
Если в шаблоне импорта есть несохранённые изменения, приложение предупредит о них при переходе на другую страницу. Для сохранения изменений выберите вариант «Cохранить».
После сохранения шаблона будет открыто окно импорта файла. (См. Создание задачи импорта)
Глоссарий#
- Алиас#
– уникальное имя типа объекта на латинице.
- Атрибут объекта#
– характеристика, которой обладает объект. Например, объект «пассажир» имеет атрибуты «имя», «фамилия», «отчество», «пол», «дата рождения».
- Атрибут объекта приёмника#
– наименование поля объекта системы, в которое выполняется импорт данных.
- Атрибуты объекта источника#
– наименование полей объекта в файле-источнике.
- Импорт данных#
– процесс переноса информации из одного источника в другой с целью сохранения, обработки или анализа данных. В контексте импортёра импорт данных выполняется в соответствии с правилами, установленными в шаблоне импорта.
- Источник#
– файл или группа файлов, содержащих исходные данные, которые необходимо импортировать.
- Ключевой атрибут#
– атрибут, по значениям которого будет произведён поиск объектов в приёмнике.
- Конкатенация#
– операция склеивания строк.
- Модель данных#
– концептуальное представление данных и их взаимосвязей. Модель данных определяет структуру, ограничения и семантику элементов данных и их соединений.
- Набор данных#
– это сведения о том, каким образом и когда данные были загружены в систему, кем они были разработаны, каким документом были утверждены, в каких картах они отражены, их актуальность, сведения о точности данных и другая информация, которая нужна для оценки качества и применимости набора данных для конкретной задачи.
Набор данных нужен, чтобы:
связывать данные, загруженные в систему, с описанием их создания;
связывать утвержденные документы, загруженные в систему, и данные, утвержденные этим документом;
находить по документу все загруженные в систему пространственные данные, сформированные карты и слои;
по объекту системы находить документ, утвердивший его;
задавать документу границы территории, на которую он действует.
- Правило преобразования#
– логическое выражение, которое описывает алгоритм изменения значений атрибутов источника.
- Правило сопоставления#
– совокупность связей атрибутов источника и приёмника с правилами преобразования, фильтрации, а также правилами установки связей в ссылочных атрибутах.
- Приёмник#
– совокупность типов объектов системы, в которые производится импорт данных.
- Проект#
– часть основного приложения на базе Системы с индивидуальной конфигурацией структуры и функциональных возможностей, ограниченная территорией региона, города или муниципального образования.
Виды конфигурации проекта:
Региональный;
Городской округ;
Муниципальное образование.
- Проектная система координат#
– система координат, которая используется в проекте по умолчанию.
- Режим импорта#
– определяет, каким образом будут обработаны исходные данные. Например, в режиме «добавить все объекты» по каждой записи в источнике будет создан новый объект в приёмнике.
- Система координат#
– установленные правила соотнесения цифровых значений координат и точек пространства.
- Тег сопоставления#
– маркер с наименованием атрибута источника в атрибуте приёмника, который показывает наличие сопоставления.
- Тип объекта источника#
– тип данных объекта источника. Типы данных могут быть разными в зависимости от формата объекта.
- Тип объекта системы#
– в Системе типы данных описываются метаданными. Описание типа включает имя типа, алиас и другие характеристики.
- Шаблон импорта#
– совокупность правил обработки и импорта исходных данных.