DS:Конвертация агрегированных данных
Данный материал описывает внешний модуль DS:Конвертация агрегированных данных.
Ожидаемый результат: пользователь понимает, как подготовить XLS с правилами замены, запустить модуль и интерпретировать сообщения в логе.
Введение
Section titled “Введение”Внешний модуль DS:Конвертация агрегированных данных (библиотека StandardModules.dll) массово заменяет базовые типы (base-type) у объектов IOS в выбранном Application проекта alpha.DevStudio по правилам из XLS-файла.
Типичный сценарий: при агрегировании сигналов нужно переназначить base-type у целевых узлов дерева IOS, не меняя структуру вручную в DevStudio.
Внешний вид модуля в Uniplant Atomix
Section titled “Внешний вид модуля в Uniplant Atomix”
Карточка внешнего модуля «DS:Конвертация агрегированных данных» в Uniplant Atomix
Настройка
Section titled “Настройка”Настройки модуля
Section titled “Настройки модуля”| Параметр | Назначение |
|---|---|
| Путь к файлу замен | XLS с правилами замены. Без этого пути модуль не запустится. |
| Имя листа | Лист в XLS с правилами. По умолчанию — Types. |
В настройках Uniplant Atomix должен быть выбран целевой IOS Application (тот же принцип, что и для DS:Назначение базовых типов и Карт атрибутов).
Структура правил в XLS
Section titled “Структура правил в XLS”Каждая строка листа задаёт одно правило замены:
| Столбец | Обязательность | Назначение |
|---|---|---|
SearchType | да | Текущее значение base-type, которое нужно найти |
ReplaceType | да | Новое значение base-type, которое будет проставлено |
Prefix | нет | Префикс к имени последнего сегмента пути при поиске целевого объекта |
Postfix | нет | Постфикс к имени последнего сегмента пути при поиске целевого объекта |
Если в строке нет SearchType или ReplaceType, строка пропускается с предупреждением в логе.
Алгоритм работы
Section titled “Алгоритм работы”1. Загрузка правил
Модуль читает XLS по пути и имени листа из настроек. Если путь не задан, файл или лист не найден, лист пуст — модуль завершается с ошибкой, проект не сохраняется.
2. Подготовка DevStudio
Открывается выбранный проект DevStudio и IOS Application. Если Application не найден — ошибка «Не найден выбранный Application (IosAPP)», работа останавливается.
3. Обработка каждой строки правила
- В Application ищутся все объекты с
base-type, равнымSearchType. В лог пишется их количество. Если найдено 0 — переход к следующей строке. - Для каждого найденного «исходного» объекта строится целевой путь: к последнему сегменту полного пути добавляются
PrefixиPostfix(если заданы). - По новому пути ищется объект-цель в Application:
- найден — попадает в список целей;
- не найден — путь фиксируется как пропущенный, в конце обработки строки выводится агрегированное предупреждение.
- Для каждой цели проверяется наличие
ReplaceTypeв библиотеках DevStudio:- тип не найден — ошибка в логе,
base-typeу объекта не меняется; - у цели уже стоит
base-type = ReplaceType— пропуск с сообщением «Без изменений»; - тип найден и отличается от текущего — у цели проставляется новый
base-type.
- тип не найден — ошибка в логе,
4. Итог по строке
В логе отображается сводка вида: «Поиск: ’…’ → Замена: ’…’. Исходных: N, Целей: M, Обновлено: K, Пропущено: L». Список ненайденных целевых путей выводится отдельным предупреждением.
5. Сохранение
При успешном завершении всех строк проект DevStudio сохраняется на диск.
Типовые сообщения в логе
Section titled “Типовые сообщения в логе”| Ситуация | Поведение |
|---|---|
| Не задан путь к XLS | Ошибка «Не удалось определить путь к источнику», проект не сохраняется |
| Нет листа или данных | Ошибка «нет данных или отсутствует лист …», модуль завершается |
| Не найден IOS Application | Остановка с ошибкой |
Не найден ReplaceType в библиотеках | Ошибка по объекту, замена для него не выполняется |
| Целевой путь не найден | Предупреждение, остальные цели обрабатываются |
| Исключение при работе | Проект DevStudio не сохраняется |