Excel External Tables: Relational Definitions

Архитектура решения

Данное решение основывается на технологии доступа к данным к внешним таблицам из Microft Excel с использованием Oracle Ole.DB. Для управления параметрами выгружаемого отчета используется программный код, написанный на языке программирования VBA. Архитектурно данное решение выглядит следующим образом:

Получение списка отчетов.

Для управления списком отчетов используются две служебные таблицы

  • XX_EXCEL_REPORT_PARAM в ней хранится информация описывающая имя отчета, дату создания , команды формирования выборки данных
  • XX_EXCEL_REPORT_USER эта таблица используется для пользовательской детализации отчетов.

Ниже представлено описание используемых полей таблиц.

Таблица. Описание полей XX_EXCEL_REPORT_PARAM

Имя поля Тип Описание
ReportID NUMBER Уникальный номер отчета
ReportNUMBER NUMBER Используется для упорядочивания списка отчетов
ReportSQLBODY VARCHAR2 Тело отчета (набор SQL команд)
ReportDESCRIPTIONS VARCHAR2 Название отчета
ReportNOTES VARCHAR2 Технические детали реализации
IsLIVE NUMBER Используется для фильтрации отчетов в разработке
ReportEXCELLIST VARCHAR2 Не используется
TIMECREATION TIMESTAMP Дата создания отчета

Таблица. Описание полей XX_EXCEL_REPORT_USER

Имя поля Тип Описание
UserID VARCHAR2 Системное имя пользователя
ReportID NUMBER Уникальный номер отчета
SQLWhere VARCHAR2 Пользовательские параметры отчета
SQLOrder VARCHAR2 Не используется
SQLERROR VARCHAR2 Ошибки при последнем запуске
LASTTIMECREATION TIMESTAMP Время (длительность) последнего запуска
EXECUTIONTIME VARCHAR2 Время работы при последнем запуске

Управление связанными отчетами

Для того, что бы управлять связанными отчетами, используется две дополнительные таблицы XX_EXCEL_REPORT_LINK_REPORTS и XX_EXCEL_REPORT_LINK_PARAM. Ниже описание используемых полей :

Таблица. Описание полей XX_EXCEL_REPORT_LINK_REPORTS

Имя поля Тип Описание
ReportID NUMBER Номер отчета, к которому будут прикреплены связанные отчеты
LinkReportID NUMBER Код связанного отчета

Таблица. Описание полей XX_EXCEL_REPORT_LINK_REPORTS

Имя поля Тип Описание
LinkReportID NUMBER Уникальный код связанного отчета
ReportID NUMBER Уникальный код основного отчета, который будет использоваться для определения тела запроса.
LinkNumber NUMBER Используется для упорядочивания списка отчетов
LinkWhereClause VARCHAR2 Шаблон для формирования контекстного запроса
LinkDescriptions VARCHAR2 Название отчета
LinkNotes VARCHAR2 Технические детали реализации
IsLive NUMBER Используется для фильтрации отчетов в разработке
TIMECREATION TIMESTAMP Дата создания отчета

Логирование пользовательских действий

Для логирования пользовательских действий используется таблица XX_EXCEL_REPORT_AUDIT. Ее структура описана ниже

Таблица. Описание полей XX_EXCEL_REPORT_AUDIT

Имя поля Тип Описание
TIMECREATION TIMESTAMP Дата создания записи
USERID VARCHAR2 Системное имя пользователя
REPORTID NUMBER Уникальный номер отчета
REPORTSQLBODY VARCHAR2 Тело отчета (набор SQL команд) со всеми параметрами
EXECUTIONTIME VARCHAR2 Время (длительность) работы
SQLERROR VARCHAR2 Ошибки при запуске