mybpm!
Скачать в формате: PDF pdf DOCX word

Общее описание

Общая структура модули отчетов

Отчеты логически (не физически) разделены на следующие категорий:

  1. Конструктор отчетов
  2. Создание/изменение витринных таблиц
  3. Заполнение витринных таблиц
  4. Materialized view
  5. Генерация отчетов

Конструктор отчетов

Данная категория отвечает за создание шаблона отчетов

Общая логика: создается черновик шаблона отчетов, внесутся изменения, и после применения создается KafkaReport

Какие интерфейсы используются:

1) ORDraftRegister

2) ORGroupRegister

3) OperativeReportRegister

Создание/изменение витринных таблиц

Данная категория отвечает за создание/изменение витринных таблиц

Витринные таблицы используются как база данных для materialized view

Общая логика: определенные консьюмеры слушают изменения KafkaBo и меняют структуру витринных таблиц

Какие интерфейсы используются:

1) ORStandTablesRegister

2) ORStandTablesWorker

3) ORStandTableDDLRegister

Какие консьюмеры используются:

1) OperativeReportStandTablesConsumer

Заполнение витринных таблиц

Данная категория отвечает за заполнение витринных таблиц

Общая логика: определенные консьюмеры слушают изменения KafkaBoi и заполняют витринные таблицы

Какие интерфейсы используются:

1) ORStandTablesRegister

2) ORFieldStrategy

Какие консьюмеры используются:

1) OperativeReportStandTablesConsumer

Materialized view

Данная категория отвечает за создание материализованной вьюшки и за актуальность ее данных

Общая логика: определенные консьюмеры слушают изменения KafkaReport и пересоздают (создают) материализованные вьюшки

Стратегия обновления данных (refresh): После пересоздания (создания) материализованной вьюшки refresh НЕ вызывается.

При первичном запросе на получение данных с вьюшки делается refresh (только если до этого не делался)

Информация о refresh-е (когда последний раз view рефрешился) хранится в ReportMetaInfoDto (коллекция в монго)

Данные во всех view обновляются каждые n минут.

n указывается в OperativeReportRefreshConfig.viewActualTime() (в zookeeper-е)

Какие интерфейсы используются:

1) ORMaterializedViewRegister

2) ORMaterializedViewCoRegister

3) ORRefreshRegister

Какие консьюмеры используются:

1) OperativeReportConsumer

На данный момент НЕ поддерживается:

1) CO (Составной объект)

Генерация отчетов

Данная категория отвечает за генерацию отчета (как для показа, так и в виде файла)

Общая логика: при генерации отчета идет запрос на materialized view и данные показываются в нужном формате (в виде preview или в виде файла)

Какие интерфейсы используются:

1) OperativeReportRegister

2) ORFileRegister

3) ORView