Обзор возможностей нового объекта конфигурации «Поток» в Micromine Geobank 2023.5

Егор Кудряшов, старший технический специалист, Micromine Geobank

25 мая 2023 года состоялся релиз новой версии Micromine Geobank 2023.5, центральным нововведением которой стало добавление нового типа объектов конфигурации под названием «Поток». Условно статья разделена на две смысловые части. В первой описаны логические составляющие Micromine Geobank и приводится краткий обзор предшественника «Потока» под названием «Формы». Во второй содержится обзор возможностей и сценариев задач, решение которых стало доступно благодаря текущему обновлению.

Компания Micromine является разработчиком программных продуктов для горно-геологического сектора промышленности и покрывает его потребности в программном обеспечении на всем этапе производства. Одним из ее продуктов является Micromine Geobank. Это программное обеспечение представляет из себя систему управления информацией, разработанную специально для хранения горно-геологических данных. Иными словами, это система управления горно-геологическими данными, которая умеет решать все основные задачи, связанные с хранением, взаимодействием и передачей данных, а также имеет набор профессиональных инструментов для работы именно с горно-геологическими данными.

Данное программное обеспечение состоит из двух взаимосвязанных частей: модели данных и графического интерфейса по взаимодействию с хранящимися в ней данными.

Модель данных состоит из двух баз данных — конфигурационной (КБД) и основной (ОБД). Они работают в паре и поставляются вместе с Micromine Geobank. КБД хранит техническую информацию об объектах конфигурации (Объекты) — неделимых сущностях, каждая из которых описывает конкретные способы и правила взаимодействия с данными при помощи уникального для каждой группы сущностей инструментария. ОБД хранит сами данные, при помощи которых (технические данные) и с которыми (горно-геологические данные) взаимодействуют объекты из КБД. С горно-геологическими данными все просто — это те данные, хранение и взаимодействие с которыми подразумевается и должно быть обеспечено (такие как месторождения, выработки, описание выработок, опробование, результаты лабораторных исследований, геологическое описание и прочее). Технические данные, строго говоря, это инструкции и справочники, с помощью которых выполняются какие-либо действия (которые инициируются из Объектов) с горно-геологическими данными.

Графический интерфейс — то, что подразумевается под Micromine Geobank, когда о нем говорят. Это нативное программное обеспечение, предоставляющее удобный графический интерфейс для настройки конфигурации и взаимодействия с данными (техническими и горно-геологическими). Возможное взаимодействие с данными определяется настройкой конфигурации. Под настройкой конфигурации понимается комплекс действий по первоначальной подготовке продукта для использования в производстве и по поддержке актуальности решаемых продуктом задач и целостности данных, с которыми он работает. Человек, в полной мере обладающий знаниями по настройке конфигурации, называется администратором Micromine Geobank (Администратор). Именно этот человек обладает полными правами по настройке Объектов. Все остальные люди, именуемые пользователями Miromine Geobank (Пользователи), могут работать только с настроенными для них Администратором Объектами, да и то не со всеми, а только с теми, доступ к которым был предоставлен все тем же Администратором.

Micromine Geobank содержит 18 групп Объектов (рисунок 1). Семь из них применяются только для настройки конфигурации Администратором, остальные 11 предназначены для создания 31 типа Объектов. Каждый из Объектов представляет из себя инструмент для выполнения конкретной задачи, которая ограничивается возможностями конкретного Объекта и правилами, которые были заданы для него Администратором. Рассмотрим на примере работу Объекта «Импорт», который является частью группы Объектов «Передача данных». С его помощью производится настройка такого действия, как импорт данных в ОБД. Инструментарий Объекта содержит несколько вариантов того, как это может быть сделано: откуда будет загружаться файл, какое расширение он должен иметь, в какие таблицы ОБД будут загружаться данные из этого файла и прочее. Все это определяет Администратор. После создания настроенного Объекта «Импорт» Администратор присваивает ему уникальное имя, по которому к нему можно будет обращаться, и делает его доступным для использования конкретному Пользователю или группе Пользователей. Пользователи с помощью этого Объекта могут загружать данные только тем способом, который для них определил Администратор.

micromine-01-678x534
Рисунок 1. Список объектов конфигурации Micromine Geobank

Наличие большого количества разнообразных инструментов позволяет Администратору создавать Объекты практически под любые сценарии использования. Но что если опытному Администратору, работающему с огромной, сложной базой данных, становится «тесно» в рамках имеющейся функциональности? Что если он видит, как можно оптимизировать некоторые процессы, но имеющейся функциональности ему уже мало? Можно подождать выхода новой версии Micromine Geobank и получить в свое распоряжение новые инструменты. А можно сделать их самому.

Начиная с Micromine Geobank версии 2021 Администраторам стал доступен особенный тип Объектов под названием «Формы». На этапе настройки этот Объект представляет из себя интегрированную в Micromine Geobank среду разработки пользовательских графических интерфейсов. Есть форма (или взаимосвязанный набор форм, по желанию Администратора), есть набор элементов, который можно разместить на этой форме (кнопки, переключатели, вкладки, поля для ввода и редактирования данных, таблицы и прочее). Действия, выполняемые при работе с добавленными на форму элементами, программируются при помощи скриптов, написанных на языке программирования Python. В каждый Объект по умолчанию включен минимальный набор библиотек кода на языке Python, который при желании можно расширить, подключив необходимые библиотеки к нужному Объекту. На этапе работы этот Объект ведет себя точно так же, как и любой другой Объект Micromine Geobank. Различие только в том, что для этого Объекта Администратор сам определил структуру формы, элементы, размещенные на ней, и выполняемые с их помощью действия. Таким образом, у Администратора появился инструмент, с помощью которого можно решить огромное количество самых разнообразных прикладных задач, и сделать это именно так, как это видит главный проектировщик такого типа Объектов — Администратор. Но любые возможности накладывают свои обязательства: чем функциональней и сложнее становятся Объекты, тем большим количеством знаний должен обладать Администратор для эффективной работы с ними. В данном случае, помимо понимания структуры ОБД и умения работы с инструментами для создания и настройки стандартных Объектов, Администратору понадобится навык работы с языком программирования Python и понимание принципов построения пользовательских графических интерфейсов. Также необходимо абсолютное понимание бизнес-процесса, решение которого должно быть реализовано. Со стороны Пользователей работа с «Формами» не потребует никаких дополнительных навыков, им будет достаточно только инструкции от Администратора с описанием того, «когда надо нажимать на какие кнопки» и «к чему это приведет».

Со временем использование «Форм» выявило несколько особенностей проектирования, которые осложняли работу Администраторов с ними и не могли быть исправлены из-за технических ограничений. Основные из них — это отсутствие автодополнения кода и невозможность обращения к ОБД «напрямую». Первая особенность заключалась в сложности написания кода скриптов. Библиотеки кода для любых языков программирования состоят из огромного количества полей, методов, объектов и прочего. Запомнить точные наименования для всего сложно. Современные среды разработки предлагают механизм автодополнения кода — стоит только написать несколько первых букв объекта разработки, и на выбор будут предложены все подходящие объекты разработки. Остается или сократить предоставленный список путем указания дополнительных символов для поиска, или прокрутить его и выбрать нужный объект. В «Формах» этого нет. Обходным решением служит использование сторонних сред разработки, ориентированных для написания кода на языке программирования Python: написание кода производится в них, после чего код копируется и вставляется в «Форму». Минусом данного решения является то, что для создания «Формы» требуется использование стороннего программного обеспечения. Вторая особенность заключается в том, что для взаимодействия с объектами ОБД изнутри «Форм» требуется создание «промежуточного» Объекта под названием «Набор данных», который служит для выбора объекта ОБД, с которым планируется взаимодействие. Его необходимо подключать к «Форме». Для «Набора данных» нельзя написать свой запрос — можно выбрать только конечные объекты ОБД, такие как таблица, представление или табличная функция. Обходным решением служит использование для неизменяемых запросов — представлений ОБД, а для параметризированных запросов — табличных функций ОБД.

Избавиться от этих особенностей проектирования на «Формах» в частности и многократно расширить количество инструментов для решения еще большего количества прикладных задач в общем позволил новый тип Объектов под названием «Поток».

micromine-02-678x605
Рисунок 2. Внешний вид интегрированной среды для разработки Объектов конфигурации «Поток»

Объекты «Потока», с точки зрения их разработки Администратором, представляют из себя обновленную среду разработки пользовательских графических интерфейсов (рисунок 2), которая также состоит из одной или нескольких взаимосвязанных форм и набора элементов, которые можно разместить на этих формах, но для написания кода теперь используется один из двух языков программирования на выбор — C# или Visual Basic. Это позволяет использовать все возможности экосистемы .NET для решения прикладных задач в Geobank. Создание пользовательских графических интерфейсов теперь больше походит на полноценное объектно ориентированное программирование, чем на написание линейных макросов. С точки зрения Пользователей процесс взаимодействия с «Потоком» мало чем отличается от взаимодействия с «Формой» или любыми другими Объектами Micromine Geobank (рисунок 3).

micromine-03-678x367
Рисунок 3. Внешний вид выполняемого Объекта конфигурации «Поток», созданного Администратором

Что же мы имеем? В разы большее количество инструментов с невообразимым количеством их настроек, разбираться в которых Администратору придется ценой еще большого количества времени? Чтобы ответить на этот вопрос, разберем, какой функциональностью «Поток» обладает на данный момент.

В каждом «Потоке» по умолчанию присутствуют подключенные библиотеки кода для взаимодействия с Micromine Geobank (элементы и конструкторы, которые позволяют в графическом режиме настроить работоспособность необходимой функциональности). С их помощью можно организовать обращение к уже существующим Объектам; получить доступ к таблицам, представлениям, хранимым процедурам ОБД или написать запрос на получение данных или на выполнение действия вручную; отобразить эти данные в виде формы или в табличном виде; настроить навигацию между ними; организовать подстановку данных из существующих справочников в виде выбора нужного значения из выпадающего списка. Решение более сложных задач подразумевает написание программного кода. Для более комфортного выполнения этой задачи присутствует механизм автодополнения кода и возможность подключать любые внешние библиотеки кода, которых для экосистемы .NET существует достаточное количество и которые предоставляют решения для самых разных прикладных задач, начиная от организации двусторонней связи ОБД с внешними базами данных и заканчивая проектированием графических визуализаций по горно-геологическим выработкам.

Получается, что наиболее востребованные задачи при помощи «Потока» сейчас можно выполнить быстрее и проще, чем при помощи «Форм» ранее. Вдобавок к этому «Поток» позволяет развивать и расширять полученные таким образом решения при помощи ручного, «точечного» программирования, которое остается доступным всегда, но не является обязательным.

Из всего вышесказанного можно сделать своеобразный вывод. «Поток» — это Объект, который позволяет сделать все то, для чего ранее использовались «Формы», но в более кратчайшие сроки и без снижения производительности. Истинная же мощь этого инструмента может быть оценена при разработке сложных, комплексных решений опытными Администраторами с достаточными знаниями в разработке графических пользовательских интерфейсов на таких языках программирования, как Visual Basic и C#.

Для конечного потребителя Micromine Geobank появление «Потока» означает появление возможностей для реализации задач, решить которые в Micromine Geobank ранее можно было только обходным путем или было невозможно вовсе.

Также следует отметить, что «Поток» является частью базовой конфигурации лицензии с модулем «Ядро», а значит, запуск Объектов «Потока» доступен всем Пользователям Micromine Geobank. Конфигурирование же всех Объектов, включая Объекты «Потока», доступно только Администраторам Micromine Geobank.

Поделиться статьёй
Понравилась статья? Подпишитесь на рассылку