Я переехал на epotseluev.com ибо работать в blogspot категорически невозможно.
пятница, 9 марта 2018 г.
четверг, 8 марта 2018 г.
Не запускается диспетчер
Без всяких причин перестал запускаться диспетчер. Запускаю через mmc, все запускается, но gateway и диспетчер - в желтом статусе.
вторник, 6 марта 2018 г.
Как создать дерево источников данных в исходной системе (SAP ERP)
Если вы делаете экстракцию из SAP системы, то вам повезло, компания SAP заранее подготовила сотни источников данных, структурировала их, разбила по соответствующим областям (компонентам) и представила разработчику ввиде одного дерева с источниками. В этом дереве не трудно ориентироваться по модулям. Если вам нужны источники данных по недвижимости, ищите ветку 0RE (Real Estate). Если вам нужны источники данных по финансам, ищите ветку 0FI (FinancialAccounting). Области называются в соответствии с компонентами SAP, данные которых вы собираетесь получить. По сути это набор данных, которыми данная система SAP (ERP) готова делиться с какой-либо BW системой. Эту же структуру источников (ветку) вы видите со стороны BW, когда спрашиваете у исходной системы - какими данными она готова делиться (тиражируете мета-данные из ERP в BW).
Однако перед вами может стоять задача сделать экстракцию из объектов, разработанных вашими коллегами и не относящихся пока ни к какому компоненту.
Создание тестовых данных в исходной системе (SAP ERP)
Для изучения возможностей ABAP компания SAP подготовила пакет разработок S_NWDEMO_BASIS, который поставляется с Netweaver и входит в компонент SAP_BASIS.
Это означает, что вероятнее всего в вашей системе так же есть данный пакет и вы можете проводить свое обучение непосредственно в системе на тех же объектах, что описаны здесь.
Создание каталога инфообъектов
В вашей организации наверняка будет использоваться много инфообъектов для совершенно различных областей - одни инфообъекты необходимы для построения финансовой отчетности, другие необходимы для построения отчетности по логистике, третьи для HR, четвертые - для технических кубов (мониторинг системы, загрузки, контроль качества данных и т.д.).
Для группировки инфообъектов по бизнес потребностям инфообъекты необходимо сохранять в определенные каталоги. Какждый каталог инфообъектов присвоен той или иной инфообласти, что делает удобным их поиск.
Например, если вы строите модель данных для построения HR отчетности, в одной инфообласти HR вы найдете все необходимые кубы, DSO, витрины, а так же инфообъекты.
Часто может возникнуть потребность использования одного инфообъекта в различных, не связанных между собой, областях. Например, инфообъект "Место возникновения затрат" может использоваться не только в финансовой отчетности, но и в отчетности HR. SAP позволяет присвоить один инфообъект двум различны каталогам инфообъектов.
Так же бывает удобно использовать каталоги при создании каких-либо persistance объектов (например, кубов, DSO). Вы создаете куб и указываете системе, что он будет состоять из инфообъектов, находящихся в таком-то каталоге. Далее вам не нужно искать по системе все необходиые инфообъекты, вы просто перетаскиваете нужный из выбранного каталога в куб.
Существует два типа каталогов инфообъектов:
- Каталог признаков - содержит в себе только признаки
- Каталог показателей - содержит в себе только показатели
среда, 28 февраля 2018 г.
Генерация тестовых даных
Две интересных программы:
1. *CUBE*SAMPLE
Позволяет создавать mockup данные в провайдере. Использовать с осторожностью - при не правильных опциях система насоздает случайные SID в используемых признаках.
2. *ADSO*SAMPLE
То же самое, для ADSO. Позволяет в том числе генерить RECORDMODE, выставлять другую агрегацию. При создании записей с использованием существующих мастер-данных признаков - обратить внимание, будут использоваться только SID, у которых DATAFL = abap_true.
Удобно, если Reporting и DWH выполняют разные разработчики.
1. *CUBE*SAMPLE
Позволяет создавать mockup данные в провайдере. Использовать с осторожностью - при не правильных опциях система насоздает случайные SID в используемых признаках.
2. *ADSO*SAMPLE
То же самое, для ADSO. Позволяет в том числе генерить RECORDMODE, выставлять другую агрегацию. При создании записей с использованием существующих мастер-данных признаков - обратить внимание, будут использоваться только SID, у которых DATAFL = abap_true.
Удобно, если Reporting и DWH выполняют разные разработчики.
понедельник, 11 июля 2016 г.
RSOOFIELD
Интересная таблица RSOOFIELD - в ней можно скрыть поля источника данных исходной системы, так что BW при тиражировании не увидит их. Можно так же указать, имеет ли система получатель право делать выбор в инфопакете или нет
понедельник, 4 апреля 2016 г.
Статусы для объектов RE
Оказывается в варианте SPRO для решения RE-FX - RECACUST есть настройка для статусной схемы RE объектов. Статусы передаются стандартным источником и записываются в стандартные атрибуты признаков 0REBUILDING, 0REPROPERTY и т.д.
Найти можно в ветке: tcode RECACUST - Information System - SAP Business Information Warehouse - Status Concept - Maintain BW Status Object for User Status.
Тут же можно сгенерировать источник для текстов.
Найти можно в ветке: tcode RECACUST - Information System - SAP Business Information Warehouse - Status Concept - Maintain BW Status Object for User Status.
Тут же можно сгенерировать источник для текстов.
четверг, 5 ноября 2015 г.
Webi долго работает
Столкнулся с проблемой. BEx отчет отрабатывает за 8 секунд, Webi на нем отрабатывает 140 секунд.
Решал следующим образом:
1. Поставил трейс в ST01 на SQL. Не увидел ничего криминального
2. Поставил трейс в RSTT. Увидел, что большинство времени тратится на два FM:
- RSR_MDX_BXML_GET_INFO - получает информацию от bex
- RSR_MDX_BXML_GZIP_DATA - упаковывает запрос и передает неоднократно на сервер BObj
3. Зашел в STAD, увидел то же самое. Заметил, что Memory Used около 500 мб. Подумал, что наверно, большой объем данных передается из BEx в BO.
4. Обратил внимание, что в BEx отображается 1000 строк, а в сводке запроса Webi 14000 строк. Это означает, что настройка подавления нулей была проигнорирована стороной Webi, Query Designer предупреждал об этом
5. Создал несколько фильтров на стороне запроса Webi, скрывающий нулевые строки. В результате в отчет стало передаваться меньше данных.
6. Уменьшил количество фильтров до одного - спустил расчет фильтруемых значений в BEX - сократил в семь раз время выполнения.
6. Уменьшил количество фильтров до одного - спустил расчет фильтруемых значений в BEX - сократил в семь раз время выполнения.
понедельник, 19 октября 2015 г.
LOOP AT itab GROUP BY group
В трансформации удобно использовать конструкцию, если нужно прочитать содержимое в пределах семантической группы.
LOOP AT itab GROUP BY
( comp_code = result_fields-comp_code
busentity = result_fields-busentity
rebuilding = result_fields-rebuilding )
REFERENCE INTO DATA (group_ref).
LOOP AT group_ref ASSIGNING <result_fields>.
<...>
ENDLOOP
ENDLOOP.
Если есть записи:
comp_code busentity rebuilding cha1 cha2
1000 1001 1003 abc xyz
1000 1001 1003 qwe rty
1000 1001 1003 asd dfg
1000 1001 1004 zxc vbn
1000 1001 1004 yui opp
То в первом цикле мы упакуем в группу group_ref первые три записи, и пройдемся по ним,
во втором цикле упакуем следующие две записи и пройдемся по ним.
суббота, 17 октября 2015 г.
среда, 7 октября 2015 г.
Полезные ФМ
1. RSAU_READ_MASTER_DATA - чтение основных данных
2. *ADSO*SAMPLE, *CUBE*SAMPLE - генерация Mock up данных.
2. *ADSO*SAMPLE, *CUBE*SAMPLE - генерация Mock up данных.
вторник, 1 сентября 2015 г.
#TOREFRESH
Для того, чтобы избежать ошибки #TOREFRESH в ячейке webi отчета при добавлении какого-либо нового показателя на лист можно пойти на хитрость и в юниверс-дизайнере принудительно установить способ требуемой агрегации для показателя (меры). Обычно это SUM.
По умолчанию агрегация делегируется от источника - "БД делегирован".
Так же иногда помогает при #UNAVAILABLE
Не отображаются сведения в webi
Была такая проблема, которую никак не могу объяснить.
Имеем бекс на кубике. В кубике есть инфообъект. У него есть атрибут - "Дата создания".
Бекс вытягивает этот инфообъект и его атрибут, и отлично отображает.
Webi как известно, игнорирует атрибуты, которые мы выводим в бексе. Он видит абсолютно все атрибуты признака, поэтому в бексе их можно не выводить дополнительно. Но, отображает, к сожалению, не все. Например, в данном примере не отображает дату.
Атрибуты webi видит как "Сведения".
Проблема самоустранилась с переходом на 7.4 on HANA.
понедельник, 31 августа 2015 г.
пятница, 28 августа 2015 г.
DTP перестал забирать записи
Возникла странная ситуация на BI7.4 on HANA. Запросы загружались в PSA в нулевую таблицу /BIC/B000xxx000. Далее забирались вверх потоком. Через 16 минут они почему-то стали загружаться уже в первую таблицу /BIC/B000xxx001. Дельта DTP их по прежнему забирал, но передавал 0 записей.
Исправить удалось так:
1. Откатил все последние запросы из таблицы /BIC/B000xxx001
2. Убрал в DTP оптимизацию под HANA
3. Заново запустил DTP - процесс увидел записи
4. Снова включил оптимизацию под HANA
5. На всякий случай сделал полный откат запросов и загрузил их все. Подхватил из обоих таблиц.
четверг, 20 августа 2015 г.
Ошибка при активации DSO
В исходной ERP системе была одна запись из трех миллионов, в котором одно поле было, видимо, null.
При инициализации дельты эти три миллиона записей из PSA передавались в DSO и активировались там около 3х часов. В итоге на одной записи активация падала со словами что-то вроде "Can'not generate SID for object 'iOBJ' value ''". Соответственно даже зная объект, отловить эту некорректную запись было не возможно.
Коллега подсказал такой кусок кода в rule routine к этому объекту:
data: lv_char(60) type c.
lv_char = source_fields-iobj(60).
replace all occurrences of regex '[[:cntrl:]]' in lv_char with ''.
result = lv_char.
Что такое '[[:cntrl:]]' мне не понятно, но кривого значения как небывало.
суббота, 15 августа 2015 г.
Импорт объектов
При импорте запросов особенно часто возникают ошибки из-за отсутствия объектов в целевой системе. Я для себя выработал следующую стратегию:
- Разделяю все активируемые объекты на разные запросы, и импортирую их в следующем порядке:
- Инфопровайдеры
- ABAP
- Источники
- Инфопакеты
- Инфообъекты
- ETL - Трансформации, DTP, рутины
- Цепочки процессов
- BEx
- Перед импортом захожу в RS09. Транзакция показывает объекты в запросе с соответствующими иконками - визуально можно оценить все ли хватает
- Перед деблокированием копий жму Shift + F12 - Моделировать деблокирование.
- Захожу в "Связь с переносом", выбираю просмотр списком, выбираю нужный измененный объект. Как известно инструмент этот опасный, может захватить лишнего, поэтому отменяю весь выбор и вручную прощелкиваю объекты и расфасовываю их по разным запросам.
Такая последовательность действий очень хорошо позволяет снизить вероятность ошибок при импорте уже деблокированных запросов.
Неудачный импорт объекта ELEM
Часто бывает так, что при импорте запроса возникает ошибка с восьмеркой - объект ELEM такой то не импортирован. Без объяснения причин. Скорее всего это происходит, когда мы корректируем BEx запрос, в котором присутствуют некоторые объекты, созданные непосредственно на инфопровайдере, а не в запросе. При этом объект может находится в локальных объектах, либо не донесен до целевой системы по ландшафту. Поэтому при импорте объектов запроса в целевую систему TMS не пишет ошибок, однако на стадии активации BEx запроса выясняется что тот или иной объект отсутствует, поэтому активация query (объект REP) не возможна.
Понять какой именно объект отсутствует в целевой системе можно двумя способами. Посмотреть в таблице RSZELTDIR описание объекта, вспомнить в каком query он используется и добавить его в запрос на импорт, либо непосредственно найти через "Связь с переносом". Тип объекта (запрос, фильтр, показатель, расчетный показатель и т.д.) можно узнать из таблицы. Так же можно посмотреть в SE03, может быть он уже где то блокирован, поэтому не захватился при активации query.
Визуально заранее оценить целостность запроса на импорт к сожалению не возможно. При импорте двух-трех более менее сложных отчетов можно получить более двухсот объектов в запросе.
Визуально заранее оценить целостность запроса на импорт к сожалению не возможно. При импорте двух-трех более менее сложных отчетов можно получить более двухсот объектов в запросе.
Подписаться на:
Сообщения (Atom)
