Различия

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

Ссылка на это сравнение

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)}
Driven by DokuWiki