Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Общие сведения

В разделе рассматривается работа с инструментом восстановления базовых компонентов виджетов (далее – базовый компонент).

В модуле Dashboard предусмотрено 15 типов базовых компонентов:

  1. Линейчатая диаграмма (ECharts);
  2. Древовидная диаграмма (ECharts);
  3. Спидометр;
  4. Точечная диаграмма (ECharts);
  5. Паутина (ECharts);
  6. Прогресс-бар (ECharts);
  7. Круговая диаграмма (ECharts);
  8. Карта OSM;
  9. Линейная диаграмма (ECharts);
  10. План/Факт;
  11. Комбинированная диаграмма;
  12. Столбчатая диаграмма (ECharts)
  13. Числовой индикатор.
  14. Таблица.
  15. Сводная таблица.

Особенность базовых компонентов в том, что они автоматически обновляются при обновлении приложения, если приложение содержит более свежие версии компонентов, а также всегда могут быть восстановлены из специального хранилища приложения.

Восстановление базового компонента может потребоваться в случае удаления компонента или загрузки вместо него пользовательского компонента, что тоже приводит к удалению базового компонента.

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

Для работы с инструментом восстановления потребуется:

  • доступ к командной строке операционной системы хоста приложения;
  • программа для работы с СУБД PostgreSQL.

Подготовка

Необходимые приготовления для работы с инструментом восстановления.

  1. В операционной системе хоста приложения откройте контейнер сервиса dashboard.

    В командной строке выполните:

    Блок кода
    languagebash
    docker ps | grep dashboard


    В ответе скопируйте идентификатор контейнера сервиса, например, копируем «63ed8b133e1f» из строки:

    Блок кода
    languagebash
    63ed8b133e1f   /platform/backend/service/dashboard:stage-dbe8b637


    В командной строке выполните:

    Блок кода
    languagebash
    docker exec -it идентификатор_контейнера_сервиса bash

    где идентификатор_контейнера_сервиса – скопированный выше идентификатор. В нашем примере – «63ed8b133e1f».

    В ответе вы должны увидеть командную строку оболочки контейнера. В нашем примере:

    Блок кода
    languagebash
    root@63ed8b133e1f:/#

  2. В программе для работы с СУБД PostgreSQL подключитесь к СУБД приложения.

    Для подключения используйте указанные параметры postgresql из файла docker-compose.yml для вашего приложения PDTN:

    • Port: postgresql: ports;

    • Username: postgresql: environment: POSTGRES_USER;

    • Password: postgresql: environment: POSTGRES_PASSWORD;

  3. Подключившись к СУБД, откройте редактор запросов для БД platform_dashboard.

Восстановление удаленного базового компонента с заменой пользовательского компонента

При таком восстановлении базовый компонент заменяет указанный пользовательский компонент.

Примечание
titleОбратите внимание!
  • При замене пользовательского компонента базовым права доступа, настроенные для этого пользовательского компонента, сбрасываются.
  • Поля компонентов должны соответствовать, иначе для виджетов, которые использовали замененный компонент, будет возвращаться ошибка «Колонка датасета отсутствует».
  1. Найдите отсутствующие базовые компоненты и установленные пользовательские компоненты.

    В редакторе запросов выполните:

    Блок кода
    languagesql
    SELECT default_component_key, id, name, is_default_component, default_component_ref, file_name
    	FROM public.component 
            FULL OUTER JOIN public.default_components_ref ON component.default_component_ref=default_components_ref.default_component_key


    Если какой-либо из базовых компонентов не установлен в приложении, то для значения ключа такого компонента из колонки default_component_key будут отсутствовать значения (NULL) в остальных колонках, а для установленных пользовательских компонентов, наоборот, будут отсутствовать значения в колонке default_component_key. Например:

    Scroll Title
    title-alignmentcenter
    titleКомпонент с типом bar-echarts (строка 1) не установлен, а компонент с ID = 16 (строка 16) пользовательский


    Соответствие ключей типам базовых компонентов см. в таблице ниже.

    КлючТип компонента
    polymatica-dashboards-tn/treediagram-echarts
    Древовидная диаграмма (ECharts)
    polymatica-dashboards-tn/speedometer-echarts
    Спидометр
    polymatica-dashboards-tn/scatter-echarts
    Точечная диаграмма (ECharts)
    polymatica-dashboards-tn/radar-echarts
    Паутина (ECharts)
    polymatica-dashboards-tn/progress-bar
    Прогресс-бар (ECharts)
    polymatica-dashboards-tn/pie-basic-echarts
    Круговая диаграмма (ECharts)
    polymatica-dashboards-tn/map
    Карта OSM
    polymatica-dashboards-tn/linear-basic-echarts
    Линейная диаграмма (ECharts)
    polymatica-dashboards-tn/indicator-plan-fact
    План/Факт
    polymatica-dashboards-tn/combo-linear-column-echarts
    Комбинированная диаграмма
    polymatica-dashboards-tn/column-basic-echarts
    Столбчатая диаграмма (ECharts)
    polymatica-dashboards-tn/bar-echarts
    Линейчатая диаграмма (ECharts)
    polymatica-dashboards-tn/numeric-indicator
    Числовой индикатор
    polymatica-dashboards-tn/table
    Таблица
    polymatica-dashboards-tn/pivot-table
    Сводная таблица

  2. Скопируйте из колонки default_component_key значение ключа отсутствующего базового компонента. В примере копируем значение polymatica-dashboards-tn/bar-echarts.

  3. Восстановите отсутствующий базовый компонент с заменой пользовательского компонента.

    В командной строке оболочки контейнера выполните:

    Блок кода
    languagebash
    /usr/bin/polymatica-platform-dashboards restore-default-component скопированное_значение --overwrite-component-id=идентификатор_пользовательского_компонента

    где скопированное_значение – значение ключа отсутствующего компонента, в нашем примере – «polymatica-dashboards-tn/bar-echarts.»;
          идентификатор_пользовательского_компонента – идентификатор компонента, который заменяется на базовый компонент, в нашем примере – 16.

    По выполнении команды последним выведенным сообщением должно быть:

    Блок кода
    languagetext
    logLevel=info message="Default component скопированное_значение restore complete

    где скопированное_значение – значение ключа восстанавливаемого компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»

  4. Проверьте, что базовый компонент установлен с заменой пользовательского компонента.

    В редакторе запросов выполните запрос из шага 1. Убедитесь, что значению ключа восстанавливаемого компонента из колонки default_component_key соответствует идентификатор компонента, который заменяли на базовый.

    Scroll Title
    title-alignmentcenter
    titleКомпонент с идентификатором ID = 16 стал базовым

    Подсказка
    titleОбратите внимание!

    Для восстановленного базового компонента в колонке file_name и на интерфейсе приложения отображается название архива, который был использован для установки пользовательского компонента, но скачивается архив базового компонента.


    На этом шаге базовый компонент восстановлен.

Восстановление удаленного базового компонента без замены

  1. Найдите отсутствующие базовые компоненты.

    В редакторе запросов выполните:

    Блок кода
    languagesql
    SELECT default_component_key, id, name, is_default_component, default_component_ref, file_name
    	FROM public.component 
            RIGHT JOIN public.default_components_ref ON component.default_component_ref=default_components_ref.default_component_key


    Если какой-либо из базовых компонентов не установлен в приложении, то для значения ключа такого компонента из колонки
    default_component_key будут отсутствовать значения (NULL) в остальных колонках. Например:

    Scroll Title
    title-alignmentcenter
    titleКомпонент с типом bar-echarts (строка 1) не установлен


    Соответствие ключей типам базовых компонентов см. в таблице ниже.

    КлючТип компонента
    polymatica-dashboards-tn/treediagram-echarts
    Древовидная диаграмма (ECharts)
    polymatica-dashboards-tn/speedometer-echarts
    Спидометр
    polymatica-dashboards-tn/scatter-echarts
    Точечная диаграмма (ECharts)
    polymatica-dashboards-tn/radar-echarts
    Паутина (ECharts)
    polymatica-dashboards-tn/progress-bar
    Прогресс-бар (ECharts)
    polymatica-dashboards-tn/pie-basic-echarts
    Круговая диаграмма (ECharts)
    polymatica-dashboards-tn/map
    Карта OSM
    polymatica-dashboards-tn/linear-basic-echarts
    Линейная диаграмма (ECharts)
    polymatica-dashboards-tn/indicator-plan-fact
    План/Факт
    polymatica-dashboards-tn/combo-linear-column-echarts
    Комбинированная диаграмма
    polymatica-dashboards-tn/column-basic-echarts
    Столбчатая диаграмма (ECharts)
    polymatica-dashboards-tn/bar-echarts
    Линейчатая диаграмма (ECharts)
    polymatica-dashboards-tn/numeric-indicator
    Числовой индикатор
    polymatica-dashboards-tn/table
    Таблица
    polymatica-dashboards-tn/pivot-table
    Сводная таблица

  2. Скопируйте из колонки default_component_key значение ключа отсутствующего базового компонента. В примере копируем значение polymatica-dashboards-tn/bar-echarts.

  3. Восстановите отсутствующий базовый компонент.

    В командной строке оболочки контейнера выполните:

    Блок кода
    languagebash
    /usr/bin/polymatica-platform-dashboards restore-default-component скопированное_значение

    где скопированное_значение – значение ключа отсутствующего компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»

    По выполнении команды последним выведенным сообщением должно быть:

    Блок кода
    languagetext
    logLevel=info message="Default component скопированное_значение restore complete

    где скопированное_значение – значение ключа восстанавливаемого компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»

  4. Проверьте, что базовый компонент установлен.

    В редакторе запросов выполните запрос из шага 1. Убедитесь, что для значения ключа восстанавливаемого компонента из колонки default_component_key присутствуют значения (не NULL) в других колонках.

    На этом шаге базовый компонент восстановлен.

Восстановление компонента в виджете, когда компонент удален

Если компонент, который использовался в виджете, был удален из приложения, в предпросмотре такого виджета отображается ошибка «Компонент удален». Связь виджета с компонентом теряется при удалении компонента и не восстанавливается автоматически. Поэтому необходимо восстановить компонент вручную.


Scroll Title
title-alignmentcenter
titleКомпонент удален

Примечание
titleОбратите внимание!
Поля восстанавливаемого компонента должны соответствовать полям удаленного компонента, иначе для виджета будет возвращена ошибка «Колонка датасета отсутствует».
  1. Найдите виджеты с удаленным компонентом.

    В редакторе запросов выполните:

    Блок кода
    languagesql
    SELECT id, name, component_id
    	FROM public.widget
    		WHERE component_id IS null


    Если виджеты без компонента есть в приложении, запрос вернет их список. Вам могут потребоваться идентификаторы виджетов из колонки id (см. шаг 3b).

  2. Найдите компонент виджета, который требуется использовать для виджета с удаленным компонентом.

    В редакторе запросов выполните:

    Блок кода
    languagesql
    SELECT id, name
    	FROM public.component


    Вам требуется идентификатор компонента из колонки id.

  3. Обновите поля виджетов с удаленным компонентом, выбрав один из следующих вариантов.

    1. В этом варианте запрос задаст один компонент для всех виджетов с удаленным компонентом.

      В редакторе запросов выполните:

      Блок кода
      languagesql
      UPDATE public.widget
      	SET component_id = идентификатор_компонента
      		WHERE component_id IS null

      где идентификатор_компонента – идентификатор компонента из шага 2.

    2. В этом варианте запрос задаст компонент для указанного виджета с удаленным компонентом.
      Обращайте внимание на ответ к запросу: он может быть «UPDATE 0», например, если указан идентификатор виджета, для которого компонент уже задан.

      В редакторе запросов выполните:

      Блок кода
      languagesql
      UPDATE public.widget
      	SET component_id = идентификатор_компонента
      		WHERE id = идентификатор_виджета AND component_id IS null

      где идентификатор_компонента – идентификатор компонента из шага 2;
            идентификатор_виджета – идентификатор_виджета из шага 1.


  4. Проверьте, что компоненты для виджетов заданы.

    В редакторе запросов выполните запрос из шага 1. Убедитесь, что запрос не возвращает списка виджетов.

    На этом шаге восстановление компонента виджета завершено. Проверьте успешность восстановления через предпросмотр виджета.

Easy Heading Macro
headingIndent0
expandOptiondisable-expand-collapse
navigationTitleОглавление
wrapNavigationTexttrue