Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:technical_manual:import_plugin [2017/02/22 09:31] |
ru:technical_manual:import_plugin [2023/03/16 12:20] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Плагины импорта ====== | ||
+ | ===== Введение ===== | ||
+ | |||
+ | Плагин импорта позволяет прочесть информацию из внешней системы и преобразовать его к виду, понятному механизму импорта Business Studio((Функционал доступен в Business Studio, начиная с версии 4.2, только в редакции Enterprise)). Пользователю также необходимо настроить пакет импорта, который настраивает правила трансляции данных, полученных плагином, в данные Business Studio. Пользователь может разработать плагин самостоятельно, используя в качестве примера исходный код плагинов, идущих в комплекте Business Studio. | ||
+ | |||
+ | ===== Интерфейс плагина ===== | ||
+ | |||
+ | Плагин представляет собой скомпилированную библиотеку, которая реализует необходимые методы, которые использует механизм импорта Business Studio. Краткое описание этих методов см. ниже. | ||
+ | |||
+ | **Методы** | ||
+ | <code> | ||
+ | |||
+ | /// </summary> | ||
+ | /// Возвращаемая строка будет отображаться в списке доступных плагинов для формирования пакета импорта. | ||
+ | /// </summary> | ||
+ | /// <returns>Возвращает строку с названием плагина </returns> | ||
+ | public static string GetPluginTitle() | ||
+ | |||
+ | /// </summary> | ||
+ | /// Метод открытия плагина. Запоминает выбранные файлы. Создаёт новое приложение. | ||
+ | /// </summary> | ||
+ | /// <returns> True, если всё прошло без ошибок </returns> | ||
+ | public static bool Open() | ||
+ | |||
+ | /// <summary> | ||
+ | /// Определяет количество фрагментов информации. | ||
+ | /// </summary> | ||
+ | /// <returns>Количество фрагментов информации</returns> | ||
+ | public static int GetPartsCount() | ||
+ | |||
+ | /// <summary> | ||
+ | /// Получает список всех классов, используемых на диаграммах. | ||
+ | /// </summary> | ||
+ | /// <param name="partNumber">Номер текущего информационного фрагмента</param> | ||
+ | /// <returns>Возвращает список всех классов</returns> | ||
+ | public static List<string> GetClasses(int partNumber) | ||
+ | |||
+ | /// <summary> | ||
+ | /// Получает список всех графических классов. | ||
+ | /// </summary> | ||
+ | /// <param name="partNumber">Номер текущего информационного фрагмента</param> | ||
+ | /// <returns>Возвращает графические классы объектов</returns> | ||
+ | public static List<string> GetGraphicClasses(int partNumber) | ||
+ | |||
+ | /// <summary> | ||
+ | /// Получает параметры фигур принадлежащие определённому классу. | ||
+ | /// </summary> /// <param name="className">Имя класса </param> | ||
+ | /// <param name="partNumber">Номер текущего информационного фрагмента</param> | ||
+ | /// <returns>Возвращает параметры фигур принадлежащие определённому мастеру</returns> | ||
+ | public static List<string> GetParameters(string className, int partNumber) | ||
+ | |||
+ | /// <summary> | ||
+ | /// Получает список значений параметров от фигур заданного мастера. | ||
+ | /// </summary> /// <param name="className">Имя класса</param> | ||
+ | /// <param name="partNumber">Номер текущего информационного фрагмента</param> | ||
+ | /// <returns>Возвращает список значений параметров от фигур заданного класса</returns> | ||
+ | public static List<string[]> GetData(string className, int partNumber) | ||
+ | |||
+ | /// <summary> | ||
+ | /// Получает графические параметры фигур принадлежащие определённому классу. | ||
+ | /// </summary> | ||
+ | /// <param name="className">Имя класса. Получаем заголовки параметров у объектов данного класса</param> | ||
+ | /// <param name="partNumber">Номер текущего информационного фрагмента</param> | ||
+ | /// <returns>Возвращает параметры фигур принадлежащие определённому мастеру</returns> | ||
+ | public static List<string> GetGraphicParameters(string className, int partNumber) | ||
+ | |||
+ | /// </summary> | ||
+ | /// Получает значения графических параметров фигур определённого класса. | ||
+ | /// <param name="className">Имя класса</param> | ||
+ | /// <param name="partNumber">Номер текущего информационного фрагмента</param> | ||
+ | /// <returns>Возвращает коллекцию содержащую список массивов со значениями параметров</returns> | ||
+ | public static List<string[]> GetGraphicData(string className, int partNumber) | ||
+ | |||
+ | /// <summary> | ||
+ | /// Метод используется для освобождения ресурсов после окончания работы с плагином. | ||
+ | /// </summary> | ||
+ | public static void Close() | ||
+ | </code> | ||
+ | |||
+ | Подробнее о каждом методе можно узнать из исходного кода. Ссылки на скачивание архивов с исходными кодами плагинов, поставляемых с системой Business Studio, приведены в разделах по этим плагинам. Ссылки на разделы по конкретным плагинам приведены в конце данной статьи, в разделе [[ru/technical_manual/import_plugin#типы_плагинов|Типы плагинов]]. | ||
+ | |||
+ | Все методы обязательны, однако методы GetGraphicClasses, GetGraphicParameters и GetGraphic могут возвращать null, если в данном плагине нет графического импорта. | ||
+ | |||
+ | ===== Порядок создания нового пакета импорта ===== | ||
+ | |||
+ | Плагин импорта используется на этапе создания пакета импорта, читая перечень необходимых классов и параметров из файлов примера, что облегчает создание и настройку пакета импорта. | ||
+ | |||
+ | - При создании пакета вызывается GetPluginTitle от каждого установленного плагина, Business Studio получает имена доступных плагинов и предлагает выбрать конкретный. | ||
+ | - После выбора плагина вызывается метод Open и предлагается выбрать файлы, которые будут использоваться в качестве примера. | ||
+ | - Вызываются методы GetClasses, GetGraphicClasses и GetParameters. Формируется список классов в файле примера с параметрами и список графических классов. | ||
+ | - Пользователем настраиваются этапы импорта, трансляция классов и параметров. | ||
+ | - Настраивается графический импорт, если плагин его поддерживает, устанавливаются соответствия между графическим классами файла примера и элементами диаграмм Business Studio. | ||
+ | |||
+ | ===== Порядок выполнения пакета импорта через плагин ===== | ||
+ | |||
+ | После настройки пакета импорта можно использовать его как шаблон для многократной загрузки файлов импорта, используя правила трансляции, заданные в пакете. | ||
+ | |||
+ | - После выбора плагина вызывается метод Open и плагин предлагает выбрать файлы, которые будут обрабатываться. | ||
+ | - После открытия источника и перед чтением метод GetPartsCount определяет количество пакетов информации, с их помощью слишком большие данные разбиваются на части или происходит разбивка по файлам в случае выбора нескольких файлов для импорта. Решение на какие порции разбивать данные принимает плагин. | ||
+ | - Затем происходит чтение информации из файлов по порядку этапов в пакете импорта, сначала идёт объектный импорт, используемые классы -- GetParameters и GetData. На этом этапе создаются объекты и у них заполняются параметры. | ||
+ | - После объектного импорта, а иногда внутри на определённом этапе, вызывается графический импорт, если в пакете настроен графический импорт и задан набор соответствий в этапе. Используемые классы -- GetGraphicParameters, GetGraphicData. На этом этапе создаются диаграммы и фигуры. После того как фигуры были нарисованы, они связываются с объектами из базы данных. | ||
+ | - Импорт повторяется для каждого этапа Пакета импорта, пока не будут обработаны все выбранные файлы | ||
+ | - После окончания импорта вызывается метод Close, закрывает открытые файлы и освобождает память от используемых плагином ресурсов. | ||
+ | |||
+ | ===== Создание плагина и внедрение в систему Business Studio ===== | ||
+ | |||
+ | Для установки плагина необходимо скомпилировать проект(.sln) плагина, затем полученный файл dll разместить в подпапке Plugins папки, куда установлена Business Studio. Если требуется, чтобы плагин устанавливался автоматически при установке Business Studio, то плагин нужно разместить в папке Plugins дистрибутива. Подробнее см. [[ru/technical_manual/server_install/edit_distrib]]. | ||
+ | |||
+ | Затем в справочнике "Пакеты импорта" создать новый пакет по выбранному плагину и установить соответствия между классами внешними и классами Business Studio. Затем на этапе импорта структуры файла выбрать набор соответствий и указать соответствия между внешними графическими классами и Элементами диаграмм. Примеры пакетов можно взять по ссылкам ниже. | ||
+ | |||
+ | Если изменения будут вноситься в один из представленных с системой Business Studio плагинов, следует переименовать скомпилированную библиотеку (dll-файл), чтобы ваши наработки не были перезаписаны новой версией плагина из комплекта поставки программы. Пакеты импорта же необходимо скопировать и изменить у них параметр «Plugin», чтобы он соответствовал новому имени библиотеки. | ||
+ | |||
+ | ===== Типы плагинов ===== | ||
+ | |||
+ | *[[ru/technical_manual/import_plugin/plugin_visio]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [<contextnavigator>] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {(rater>id=ru_technical_manual_import_plugin|name=Плагины импорта|type=vote|trace=ip|headline=off)} |