Репозиторий с шаблоном разработки «Загрузка данных с обложки из xlsx-файлов».
!!! Шаблон поддерживается в версиях Directum RX до 4.9 включительно. После выхода официального релиза библиотеки ClosedXML с поддержкой DocumentFormat.OpenXml.dll версии 3.0.1 и выше возможно обновление на 4.10.
Данный шаблон был разработан на основе шаблона компании "Роса", добавлена загрузка из базы ФИАС (ГАР) справочинков Населенные пункты, Поселения, Муниципальные районы и их иерархии. Данный шаблон без модификации работает при установленном решении для органов государственных власти.
Для загрузки некоторых справочников (федерального классификатора обращений, муниципальных районов, поселений) необходимо решение для органов госудалственной власти. Если загрузка в данные справочники не требуется, то шаблон нужно модифицировать (закоментировать функции по загрузке), чтобы использовать шаблон по назначению.
Шаблон позволяет перенести данные в Directum RX. В качестве источника данных для переноса используются книги Excel с расширением XLSX. Чтобы произвести создание записей справочников в Directum RX, достаточно заполнить специально сформированные шаблоны Excel и загрузить данные из обложки.
Шаблон отличается от утилиты https://github.com/DirectumCompany/rx-util-importdata-net-core тем, что позволяет загружать записи с обложки модуля любым сотрудником (если есть права на справочники). Также есть различия в перечне загружаемых справочников. После каждой загрузки строится отчет об успешно/неуспешно загруженных записях.
Note
Замечания и пожеланию по развитию шаблона разработки фиксируйте через Issues. При оформлении ошибки, опишите сценарий для воспроизведения. Для пожеланий приведите обоснование для описываемых изменений - частоту использования, бизнес-ценность, риски и/или эффект от реализации.
Внимание! Изменения будут вноситься только в новые версии.
-
Федеральный классификатор обращений граждан (разделы, темы, тематики, темы, вопросы, подвопросы).
-
Номенклатура дел (сроки хранения, номенклатура дел).
-
Орг. структура.
3.1. Учетные записи.
3.2. Персоны.
3.3. Организации.
3.4. Наши организации.
3.5. Подразделения.
3.6. Должности.
3.7. Работники.
-
Населенные пункты с ГУИД ФИАС (из ФИАС (ГАР)).
-
Муниципальные районы с ГУИД ФИАС (из ФИАС (ГАР)).
-
Поселения с ГУИД ФИАС (из ФИАС (ГАР)).
Примечания.
- Для того, чтобы в справочник населенные пункты загрузился ГУИД ФИАС, необходимо перекрыть (если он еще не перекрыт) справочник City модуля Commons и добавить новое свойство:
- Справочники Муниципальные районы, Поселения реализованы в решении для органов государственной власти. Если есть необходимость в данных справочниках, то справочники необходимо реализовать на своем слое. Для ознакомления с разработкой данных справочников необходимо обратиться в службу поддержки Directum, запросив решение.
- Загрузка иерархии справочников по муниципальному делению (Населенные пункты -> Поселения -> Муниципальные районы) происходит с помощью плагина к утилите RxCmd, так как xml-файлы базы ФИАС (ГАР) с иерархией содержат много информации и не могут быть загружены через веб-клиент (есть ограничение в 2 мин.).
- При создании учетных записей пароль по умолчанию устанавливается пароль «1Qwerty». При необходимости его можно изменить в константе Constants.Module.PasswordDefault.
Данные загружаются до первой пустой строки, поэтому в пустых строк быть не должно.
Шаблоны можно найти в папке Шаблоны.
- По ссылке https://fias.nalog.ru/Updates на вкладке ГАР БД ФИАС необходимо выполнить экспорт последней полной версии XML, находящейся в правом столбце, в формате .zip.
- В экспортируемой папке находим по региону область/республику, в которую планируется импорт. Например, код Владимирской области – 33.
- Находящийся в папке документ в формате XML, наименование которого начинается с «AS_ADDR_OBJ_<год><месяц><день><гуид>», необходимо переместить из архивированной папки (например, на рабочий стол).
- После перемещения документ необходимо открыть с помощью Excel, выбрав способ открытия файла XML-таблица.
- В сформировавшейся таблице в столбце Level выбираются уровни:
• 5 - город;
• 6 - населенный пункт.
Примечания. Отмеченные уровни импортируются в систему. Остальные уровни с шаблона необходимо удалить. Если шаблон большой, то рекомендуется разбить его на несколько примерно по 5000 записей. данное ограничение связано с там, что для веб-клиента в системе Directum RX стоит таймаут - 2 мин.
-
Получившийся документ необходимо пересохранить в формате xlsx.
-
В системе в модуле Загрузка данных по гиперссылке Загрузить населенные пункты в полях:
• Файл* – добавляется документ с населенными пунктами;
• Страна* – Российская Федерация;
• Регион* – регион заказчика (например, Владимирская область).
- В модуле Общие справочники по гиперссылке Населенные пункты в соответствующем регионе появятся импортированные данные.
Примечание. Сейчас в модуле Загрузка данных в справочнике Населенные пункты часть населенных пунктов внесена в систему, поэтому дубль необходимо удалить. Если населенный пункт уже использовался в Системе, то необходимо из импортированного населенного пункта скопировать ИД в ФИАС, добавить его в аналогичное поле населенного пункта, который был уже использован, после чего удалить импортированный дубль из системы.
Порядок аналогичен загрузке населенных пунктов. Выбирается тот же файл. Отличия - в пунктах 5, 7.
-
В сформировавшейся таблице в столбце Level выбираются уровни:
• 3 - Муниципальные районы;
-
В системе в модуле Загрузка данных по гиперссылке Загрузить муниципальные районы ...
Порядок аналогичен загрузке населенных пунктов. Выбирается тот же файл. Отличия - в пунктах 5, 7.
-
В сформировавшейся таблице в столбце Level выбираются уровни:
• 4 - Сельские/Городские поселения;
-
В системе в модуле Загрузка данных по гиперссылке Загрузить поселения ...
- Из папки lib\FIASRxCmdPlugin скопировать файлы библиотеки Sungero.RxCmd.FiasPlugin.dll, Sungero.RxCmd.FiasPlugin.pdb, Sungero.RxCmd.FiasPlugin.deps.json в папку с плагинами утилиты RxCmd \etc\_builds\DirectumRX\RxCmd\Plugins.
- Запустить rxcmd c параметрами:
rxcmd.exe fias add_municipal_hierarchy -n "login" -p password -s "http://localhost/Integration/odata" "<Путь к файлу с иерархией>" "<Код региона>"
где
• «fias» - имя команды первого уровня, т. е. все, что будет загружаться, выгружаться из этого модуля начинается с этой команды,
• «add_municipal_hierarchy» - функция загрузки иерархии по муниципальному делению.
• "<Путь к файлу с иерархией>" – путь до файла «AS_MUN_HIERARCHY_<год><месяц><день><гуид>», загруженного из ФИАС.
• <Код региона> - не обязателен, сделан для оптимизации загрузки. Если указан, то поиск иерархии происходит только по загружаемому региону, иначе поиск происходит по всем данным (населенные пункты, поселения и муниципальные районы), которые есть в системе.
- Дожидаемся окончания работы. В процессе обработки на экране отображается лог обработки. Для примера, самый большой файл с иерархией Московской области (2,5 ГБ) обрабатывается в среднем за 25 мин., Удмуртской республики (500 МБ) - 4 мин.
Примечания.
- Загрузку иерархии необходимо проиводить, когда уже загружены населенные пункты, поселения, муниципальные районы.
- Подробнее о разработке плагинов к RxCmd можно почитать https://club.directum.ru/webhelp/directumrx/web/index.html?sds_sozdanie_plagina_rxcmd.htm.
- Если необходимы модификации плагина, то исходный код проекта плагина находится в папке Extension\FiasRxCmdPlugin.
Для работы требуется:
- Установленный Directum RX версии 4.6 и выше. Для более младших версий требуется модификация. Необходимо удалить/закомментировать функции, которые загружают информацию в новые справочники (Муниципальные районы, Поселения).
- Установленное решение "Обращения граждан" (если требуется загрузка справочников федерального классификатора обращений граждан). Если данное решение не установлено, то требуется модификация. Необходимо удалить/закомментировать функции, которые загружают информацию о федеральном классификаторе обращений.
- Склонировать репозиторий https://github.com/DirectumCompany/rx-template-upload-data-ui.git в папку.
- Указать в _ConfigSettings.xml DDS:
<block name="REPOSITORIES">
<repository folderName="Base" solutionType="Base" url="" />
<repository folderName="<Папка из п.1>" solutionType="Work"
url="https://github.com/DirectumCompany/rx-template-upload-data-ui.git" />
</block>
Возможные варианты:
- Сделать fork репозитория rx-template-upload-data-ui для своей учетной записи.
- Склонировать созданный в п. 1 репозиторий в папку.
- Указать в _ConfigSettings.xml DDS:
<block name="REPOSITORIES">
<repository folderName="Base" solutionType="Base" url="" />
<repository folderName="<Папка из п.2>" solutionType="Work"
url="<Адрес репозитория gitHub учетной записи пользователя из п. 1>" />
</block>
Вариант не рекомендуется, так как при выходе версии шаблона разработки не гарантируется обратная совместимость.
- Склонировать репозиторий https://github.com/DirectumCompany/rx-template-upload-data-ui.git в папку.
- Указать в _ConfigSettings.xml DDS:
<block name="REPOSITORIES">
<repository folderName="Base" solutionType="Base" url="" />
<repository folderName="<Папка из п.1>" solutionType="Base"
url="https://github.com/DirectumCompany/rx-template-upload-data-ui.git" />
<repository folderName="<Папка для рабочего слоя>" solutionType="Work"
url="<Адрес репозитория для рабочего слоя>" />
</block>
Рекомендуемый вариант для проектов внедрения.
- В системе контроля версий с поддержкой git создать новый репозиторий.
- Склонировать репозиторий https://github.com/DirectumCompany/rx-template-upload-data-ui.git в папку с ключом --mirror.
- Перейти в папку из п. 2.
- Импортировать клонированный репозиторий в систему контроля версий командой: git push –mirror <Адрес репозитория из п. 1>