Плагины импорта
Введение
Плагин импорта позволяет прочесть информацию из внешней системы и преобразовать его к виду, понятному механизму импорта Business Studio1). Пользователю также необходимо настроить пакет импорта, который настраивает правила трансляции данных, полученных плагином, в данные Business Studio. Пользователь может разработать плагин самостоятельно, используя в качестве примера исходный код плагинов, идущих в комплекте Business Studio.
Интерфейс плагина
Плагин представляет собой скомпилированную библиотеку, которая реализует необходимые методы, которые использует механизм импорта Business Studio. Краткое описание этих методов см. ниже.
Методы
/// </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()
Подробнее о каждом методе можно узнать из исходного кода. Ссылки на скачивание архивов с исходными кодами плагинов, поставляемых с системой Business Studio, приведены в разделах по этим плагинам. Ссылки на разделы по конкретным плагинам приведены в конце данной статьи, в разделе Типы плагинов.
Все методы обязательны, однако методы 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. Затем на этапе импорта структуры файла выбрать набор соответствий и указать соответствия между внешними графическими классами и Элементами диаграмм. Примеры пакетов можно взять по ссылкам ниже.
Если изменения будут вноситься в один из представленных с системой Business Studio плагинов, следует переименовать скомпилированную библиотеку (dll-файл), чтобы ваши наработки не были перезаписаны новой версией плагина из комплекта поставки программы. Пакеты импорта же необходимо скопировать и изменить у них параметр «Plugin», чтобы он соответствовал новому имени библиотеки.