Меню

Об одной технологии работы с длинными текстами в SAP BW, BI-IP

|

В сообщении описывается технология хранения в 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

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

Войти

Обсуждения Количество комментариев5

Комментарий от  

Илья Муковоз

  |  08 апреля 2015, 18:36

Более красивое решение: SAP BW - BusinessDocumentService (BDS).

Комментарий от  

Виктор Долгов

  |  22 апреля 2015, 01:59

В текущей версии SAP BW 7.4 это уже не актуально.
Приведенное решение считаю сложным, т.к. в свое время делал проще.
В "куб верхнего уровня"(на котором строил отчет) добавлял N-ое количество аналитик с текстами по 60 символов, а на VBA производил "сборку" и "разборку" текстов.
Как минимум, отпадает необходимость в вызове ФМ из VBA.
С моей т.з. вызывать ФМ в цикле VBA не самое лучшее решение.
Насколько я помню, подобные рабочие книги и без этого отрабатывали не слишком быстро.

Комментарий от  

Валерий Булевич

  |  22 апреля 2015, 12:28

Более красивое решение: SAP BW - BusinessDocumentService (BDS).

Илья, поясни - предлагаемый тобой BDS обеспечит требуемую функциональность - работу с длинными текстовыми данными непосредственно в рабочих книгах (просмотр/редактирование)?

Комментарий от  

Алексей Рыбин

  |  23 апреля 2015, 12:41

В текущей версии SAP BW 7.4 это уже не актуально.
Приведенное решение считаю сложным, т.к. в свое время делал проще.
В "куб верхнего уровня"(на котором строил отчет) добавлял N-ое количество аналитик с текстами по 60 символов, а на VBA производил "сборку" и "разборку" текстов.
Как минимум, отпадает необходимость в вызове ФМ из VBA.
С моей т.з. вызывать ФМ в цикле VBA не самое лучшее решение.
Насколько я помню, подобные рабочие книги и без этого отрабатывали не слишком быстро.

Добрый день! Обсуждаемая технология, конечно, унаследована от давно известной нарезки на сегменты по 60, но, в свою очередь, дает возможность:
1)Вводить и редактировать тексты в BI-IP
2)Оперировать текстами неограниченной длины
В BW7.4 длина текста ограничена 1333-тью знаками (картинка ниже). Количество аналитик в DSO также ограничено.

Комментарий от  

Александр Злобин

  |  14 мая 2015, 11:58

Так 7.4 же поддерживает длинные тексты и ввод комментариев в формы BI-IP.
Такой подход не применим для Analysis for Office - оттуда не вызвать RFC