В сообщении описывается технология хранения в SAP BW текстов неограниченной длины, их ввода через формы SAP BI-IP и отображения в отчетах SAP BEx. Данная технология успешно апробирована для средств SAP BW/BEx/BI-IP/SBOP Dashboards.

В сообщении описывается технология хранения в SAP BW текстов неограниченной длины, их ввода через формы SAP BI-IP  и отображения в отчетах SAP BEx. Данная технология успешно апробирована для средств SAP BW/BEx/BI-IP/SBOP Dashboards.

1.     Предпосылки

Пользователи форм SAP BI-IP нередко задают вопрос о возможности ввода (с последующим отображением) текстовых комментариев к введенным числовым значениям. В стандартном инструментарии SAP BI (BW/BI-IP/BEx) отсутствуют средства для хранения и отображения текстов длиннее 60-ти символов, а для ввода текстов средств вовсе нет. Предлагаемая технология обходит описанные ограничения.

2.     Решение

Решение в основе опирается на документы (27) и (28).

Решение включает следующие элементы:

  • Data Store Object (DSO) прямой записи для хранения текстов в привязке к ключам;
  • Форма Excel или BI-IP с VBA-расширением, позволяющая вводить и сохранять длинные тексты;
  • Функциональный модуль, вызываемый из VBA-расширения для записи длинного текста в DSO;
  • Запрос BEx, извлекающий текст по ключам из  DSO, и VBA-расширение, соединяющее фрагменты текста в одно целое.

Порядок действий, лежащий в основе решения, следующий:

  • Трансформировать длинный текст в упорядоченный, потенциально неограниченный, список строк длины до 60 символов каждая;
  • Привязать список к составному ключу;
  • Записать список в DSO;
  • При считывании данных соединить элементы списка в целый текст.

Ниже подробно рассматриваются элементы и процесс решения.

Data Store Object для записи длинного текста

Data Store Object (Рисунок 1) для записи длинного текста должен иметь:

  • Тип «прямая запись» п.1.;
  • Ключевое текстовое поле (в рассматриваемом примере – ZKEY) для хранения составного ключа в RAW-формате, п.2.;
  • Ключевое числовое поле (в рассматриваемом примере – ZKEY2) с номером подстроки исходного текста, п.3.;
  • Обычные ключевые поля (в рассматриваемом примере – 0CALDAY, ZBUKRS) для соединения с другими провайдерами и для отображения данных в запросах, п.4.;
  • Поле данных (в рассматриваемом примере – ZTXT0) для хранения подстроки исходного текста, п.5. ;
  • Обычные поля данных, п.6. .

Рисунок 1 Структура Data Store Object для записи длинного текста

Форма Excel или BI-IP

Это может быть произвольный документ Excel, как например (Рисунок 2) , или форма планирования BI-IP, как например (Рисунок 3).

Рисунок 2 Пример произвольной Excel-формы ввода

Рисунок 3 Форма BI-IP с функцией загрузки текстовых комментариев к отдельным позициям

VBA-расширение

VBA-расширение (Рисунок 4) вызывает функциональный модуль, управляющий записью в DSO, при этом:

  • Перед записью текста полезно выполнить функцию Application.WorksheetFunction.Clean(s) - для удаления «специальных» символов (с кодами от 0 до 31), не вполне допустимых в SAP BW;
  • Как результат, в DSO (Рисунок 5) появляется ряд записей, отвечающих отдельным строкам длинного текста, суммарная длина текста при этом теоретически не ограничена;
  • Технология допускает запись не только текстов, но и обычных показателей.

Рисунок 4 Пример  VBA-кода для записи в DSO

Рисунок 5 Результат записи в DSO

Функциональный модуль

Взаимодействие с DSO обеспечивает специальный функциональный модуль (ФМ), при этом:

  • Автоматизируется манипуляция (запись/удаление) данными DSO по протоколу RFC;
  • Обеспечивается возможность записи в DSO текстов длиной более 60 символов и любой дополнительной информации;
  • Исходный текст преобразуется в упорядоченную последовательность

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти