Файлы-процессы, динамическая работа с формами и многое другое в Simple UI. Ноябрь 2021
Новый виток развития платформы дает новые возможности — теперь самостоятельными могут быть не только конфигурации, но и отдельные процессы в виде файлов, как «excel» или подобные форматы, только заточенные под оборудование, с питоном, VR и прочими плюшками. А предыдущий перевод конфигурации на JSON дает возможность динамически менять формы экранов и вообще все в конфигурации, включая обработчики. Статья — приложение к основной статье по Simple UI https://infostart.ru/public/1153616/
- Описание
- Подробнее
Описание
Динамическое изменение/генерация экранной формы.
Вся конфигурация, и экран не исключение, представляет из себя JSON-объект, поэтому можно динамически (т.е. не постоянно, а только на момент вызова) менять содержимое экрана – добавлять кнопки поля ввода и т.д., просто изменяя JSON-структуру экрана. Нет необходимости в каких-то специальных методах – только JSON. Также экран может быть полностью пустой и генерироваться полностью в «При открытии». Это не так удобно, как в конструкторе, но в некоторых случаях (например добавить кнопку в зависимости от условия) это сделать проще чем рисовать отдельную форму. Также, может быть, неких элемент наследования – взяли форму, что то убрали, что то добавили не меняя исходную форму.
JSON можно формировать любым способом – заготовить заранее варианты, менять существующий. Для применения конечного варианта используется команда setJSONScreen В качестве параметра передается JSON-структура

Командой getJSONScreen в переменную JSONScreen можно запросить исходную структуру текущего экрана. Это удобно когда нужно чтото поменять – например убрать какие то элементы
В демо базе, в конфигурации «Примеры элементов 5» есть пример динамического добавления кнопок. Тут сначала читается JSON-структура экрана, а потом копируется одна кнопка и делается 5 кнопок и применяется:
Динамическое изменение конфигурации на лету
Можно менять конфигурацию динамически, то есть на время вызова до следующего считывания – добавлять или убирать процессы, заменять обработчики, формы – полностью все что есть (включая например пример из предыдущего абзаца). То есть конфигурация будет работать с вашими изменениями до тех пор, пока не загрузится из источника. Но дело в том, что изменения можно устанавливать и «При запуске», таким образом изменения будут столько сколько нужно. Это может быть полезным для того чтобы к примеру отключить из меню какие то процессы, не доступные пользователю.
Команды:
getJSONConfiguration — считывает в переменную _configuration текущую конфигурацию
setJSONConfiguration — применяет измененную конфигурацию немедленно.
Файлы-процессы .suip
Платформа Simple UI поддерживает разные варианты хранения и транспортировки данных – в SQL устройства, в NoSQL устройства, в документах и непосредственно на сервере при он-лайн варианте работы (хранение) и различные виды запросов, он-лайн команды, обмен файлами, документами (транспорт). Сейчас добавляется новый вид хранения/транспортировки – «файлы-процессы». Это текстовый файл, состоящий из JSON-строки который включает в себя все необходимое для работы:
• Структуру процесса, со всеми обработчиками и т.д.
• Данные процесса, которыми он может пользоваться и менять, записываю туда же – в файл
• Необходимую информацию для отображения внутри системы – дата последнего изменения, обложка и т.д.
То есть данные и механизмы ввода и обработки данных инкапсулированы в одном объекте.

Таким образом – это как бы самостоятельная мини-конфигурация сразу с данными и всем необходимым в виде suip-файла которую можно послать получателю, который не имеет доступа к вашему веб-сервису и каки либо других настроек, а просто может открыть, поработать и закрыть файл сохраним в свою очередь свои данные и отправить пользуясь инфраструктурой своего устройства. Это можно сравнить с Excel с макросами или PDF-формами и чем то подобным, но с возможностями Simple UI – работа с оборудованием, питоном, дополненной реальностью, AI-штуками и т.д.
Использование существующей инфраструктуры хранения и доставки – это главное удобство такой архитектуры. Например можно использовать мессенджеры или почту где помимо самого suip-файла может быть в произвольном виде описаны пояснения по работе процесса, получена обратная связь
Файлы можно передавать различными способами – как через Интернет, так и например через Bluetooth, при этом не надо пробрасывать вебсервис основной системы наружу.
Работа с suip-файлами
В файлы процессы можно паковать как обычный процесс (с экранами) так и ActiveCV процесс
Регламентируется наличие двух обязательных объектов в корне JSON:
"SimpleUIProcess" – структура процесса
«data» — все данные
Пример файла-процесса:

