4.8. Импорт элементов в справочник

При разработке бизнес-приложений часто возникает потребность добавить в справочник большое количество элементов. Мы реализовали возможность импорта элементов справочника из файлов xls, xlsx, csv.

Кнопка импорта import расположена в разделе «Элементы» редактора справочника:

../_images/image_40.png

4.8.1. Общее описание процесса импорта

4.8.1.1. Сопоставление импортированных элементов элементам справочника

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

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

  • Для каждой строки файла, начиная со второй, будет создан новый элемент справочника.
  • Если для столбца файла не нашлось совпадения с кодом столбца справочника, этот столбец будет проигнорирован.
  • Если в файле нет столбца с заголовком, совпадающим с кодом столбца справочника (с точностью до локали), то соответствующие поля для элементов справочника останутся пустыми.

На этом этапе могут возникнуть ошибки:

  1. В выбранном файле нет ни одного столбца, заголовок которого соответствует коду столбца справочника. Импорт не выполняется, система отображает сообщение об ошибке с текстом:

    Не удалось распознать содержимое файла. Заголовки столбцов в файле должны совпадать с кодами столбцов справочника.

  2. В выбранном файле есть два или более столбца, в заголовке которых указан одинаковый код столбца справочника. Импорт не выполняется, система отображает сообщение об ошибке с текстом:

    Не удалось распознать содержимое файла. Файл содержит столбцы с дублирующимися заголовками.

4.8.1.2. Переводимые столбцы

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

В общем случае каждому переводимому столбцу справочника могут соответствовать несколько столбцов в файле с заголовками вида <код_столбца>/<код_локали>.

Случай 1: переводимому столбцу справочника соответствует один столбец в файле с заголовком <код_столбца>. В этом случае для каждого импортируемого элемента в каждой локали, в том числе в локали по умолчанию, будет указано одно и то же значение соответствующей строки файла.

Случай 2: переводимому столбцу справочника соответствует несколько столбцов в файле с заголовком <код_столбца>/<код_локали>. В этом случае в переводах каждого элемента будет указано соответствующее локали значение из столбца файла.

Если для отдельной локали нет соответствующего столбца в файле, в переводах элемента для нее используется значение локали по умолчанию.

Если в заголовке столбца в файле указан несуществующий код локали, этот столбец будет проигнорирован.

4.8.1.3. Результат проверки

Если проверка структуры импортируемого файла завершилась успешно, то отображается диалог с примером элементов, которые будут добавлены в результате импорта:

../_images/image_41.png

На этом этапе можно оценить, насколько корректно был сформирован файл для импорта, и отменить импорт при необходимости. Непосредственно создание новых элементов справочника будет выполнено после нажатия на кнопку «Импортировать».

4.8.2. Пример

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

Сначала настроим справочник «Города»:

../_images/image_42.png

Справочник содержит три поля:

  • code - код элемента, поле будет служить ключом для справочника;
  • distr - название области, переводимое поле;
  • city - название города, переводимое поле.

Далее нужно заполнить файл, который будем импортировать:

../_images/image_43.png

Первой строкой в таблице указаны коды столбцов справочника, для переводимых столбцов через / указаны коды локалей.

Подсказка

Коды локалей настраиваются в Настройках платформы, раздел «Настройки системы» - “Региональные настройки” - “Языки”.

Локалью системы по умолчанию является та, которая указана в таблице первой:

../_images/image_44.png

Теперь импортируем созданный файл в справочник Synergy IDE:

../_images/image_45.png

Превью результатов импорта выглядит так:

../_images/image_46.png

В этом диалоге можно открыть переводы отдельного поля и проверить, как они были заполнены. Например, для города Акколь переводы выглядят таким образом:

../_images/image_47.png

Видно, что локали ru и kk, настроенные в файле, были заполнены соответствующими значениями. Для локалей en и jp, которые не были указаны в файле, был использован перевод из локали по умолчанию (локаль ru).

Выполним импорт элементов из файла:

../_images/image_48.png

Таким образом значительно упрощается задача импорта большого количества элементов в справочники Synergy.