Skip to content

DS:Конвертация агрегированных данных

Данный материал описывает внешний модуль DS:Конвертация агрегированных данных.

Ожидаемый результат: пользователь понимает, как подготовить XLS с правилами замены, запустить модуль и интерпретировать сообщения в логе.

Внешний модуль DS:Конвертация агрегированных данных (библиотека StandardModules.dll) массово заменяет базовые типы (base-type) у объектов IOS в выбранном Application проекта alpha.DevStudio по правилам из XLS-файла.

Типичный сценарий: при агрегировании сигналов нужно переназначить base-type у целевых узлов дерева IOS, не меняя структуру вручную в DevStudio.

Внешний вид модуля в Uniplant Atomix

Section titled “Внешний вид модуля в Uniplant Atomix”

Внешний вид модуля DS:Конвертация агрегированных данных в Uniplant Atomix

Карточка внешнего модуля «DS:Конвертация агрегированных данных» в Uniplant Atomix

ПараметрНазначение
Путь к файлу заменXLS с правилами замены. Без этого пути модуль не запустится.
Имя листаЛист в XLS с правилами. По умолчанию — Types.

В настройках Uniplant Atomix должен быть выбран целевой IOS Application (тот же принцип, что и для DS:Назначение базовых типов и Карт атрибутов).

Каждая строка листа задаёт одно правило замены:

СтолбецОбязательностьНазначение
SearchTypeдаТекущее значение base-type, которое нужно найти
ReplaceTypeдаНовое значение base-type, которое будет проставлено
PrefixнетПрефикс к имени последнего сегмента пути при поиске целевого объекта
PostfixнетПостфикс к имени последнего сегмента пути при поиске целевого объекта

Если в строке нет SearchType или ReplaceType, строка пропускается с предупреждением в логе.

1. Загрузка правил
Модуль читает XLS по пути и имени листа из настроек. Если путь не задан, файл или лист не найден, лист пуст — модуль завершается с ошибкой, проект не сохраняется.

2. Подготовка DevStudio
Открывается выбранный проект DevStudio и IOS Application. Если Application не найден — ошибка «Не найден выбранный Application (IosAPP)», работа останавливается.

3. Обработка каждой строки правила

  1. В Application ищутся все объекты с base-type, равным SearchType. В лог пишется их количество. Если найдено 0 — переход к следующей строке.
  2. Для каждого найденного «исходного» объекта строится целевой путь: к последнему сегменту полного пути добавляются Prefix и Postfix (если заданы).
  3. По новому пути ищется объект-цель в Application:
    • найден — попадает в список целей;
    • не найден — путь фиксируется как пропущенный, в конце обработки строки выводится агрегированное предупреждение.
  4. Для каждой цели проверяется наличие ReplaceType в библиотеках DevStudio:
    • тип не найден — ошибка в логе, base-type у объекта не меняется;
    • у цели уже стоит base-type = ReplaceType — пропуск с сообщением «Без изменений»;
    • тип найден и отличается от текущего — у цели проставляется новый base-type.

4. Итог по строке
В логе отображается сводка вида: «Поиск: ’…’ → Замена: ’…’. Исходных: N, Целей: M, Обновлено: K, Пропущено: L». Список ненайденных целевых путей выводится отдельным предупреждением.

5. Сохранение
При успешном завершении всех строк проект DevStudio сохраняется на диск.

Типовые сообщения в логе

Section titled “Типовые сообщения в логе”
СитуацияПоведение
Не задан путь к XLSОшибка «Не удалось определить путь к источнику», проект не сохраняется
Нет листа или данныхОшибка «нет данных или отсутствует лист …», модуль завершается
Не найден IOS ApplicationОстановка с ошибкой
Не найден ReplaceType в библиотекахОшибка по объекту, замена для него не выполняется
Целевой путь не найденПредупреждение, остальные цели обрабатываются
Исключение при работеПроект DevStudio не сохраняется