Текущее время: Чт, фев 21 2019, 04:39

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Таблицы, где можно посмотреть состав BEX Query запроса
СообщениеДобавлено: Ср, янв 23 2019, 18:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 16:22
Сообщения: 153
Добрый день!

Есть задача описать в файле из чего состоит каждая строка в BEX Query запросе. Все бы ничего, но строк более 700.
Не хотелось бы вручную заходить в каждую и описывать.
Возможно есть какие-то системные таблицы, где можно как-то вычленить данную информацию?

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Таблицы, где можно посмотреть состав BEX Query запроса
СообщениеДобавлено: Чт, янв 24 2019, 00:05 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 488
Добрый день.

Описание элементов Bex-запроса и их взаимосвязей хранится в таблицах пакета RSZ.
Кроме того есть транзакция RSRTQ, в которой в "плоском" виде можно посмотреть настройки запроса и выгрузить их в файл.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таблицы, где можно посмотреть состав BEX Query запроса
СообщениеДобавлено: Чт, янв 24 2019, 13:51 
Ассистент
Ассистент

Зарегистрирован:
Ср, апр 02 2014, 19:03
Сообщения: 37
если конкретнее:

rsrrepdir - каталог запросов, в поле compid - технические имена запросов
rszeltxref - таблица со связями технических id, важны поля seltuid и teltuid
rszrange - собственно ограничения строки запроса
rszcalc - формулы
rszeltdir - каталог компонент репорта (интересно поле mapname)
rszelttxt - тексты компонент репорта

необходимо учитывать, что данные в таблице rszeltxref хранятся рекурсивно, то есть елемент из поля teltuid используется рекурсивно в поле eltuid
Для получения данных первого уровня рекурсии можно использовать подобный запрос

SELECT DISTINCT a~compid b~laytp d~eltuid x~txtlg d~iobjnm d~low e~mapname f~txtlg g~eltuid
INTO TABLE lt_query
FROM rsrrepdir AS a INNER JOIN rszeltxref AS b ON b~seltuid = a~compuid AND b~objvers = a~objvers
INNER JOIN rszeltxref AS c ON c~seltuid = b~teltuid AND c~objvers = b~objvers
INNER JOIN rszrange AS d ON d~eltuid = c~teltuid AND d~objvers = c~objvers
LEFT OUTER JOIN rszeltdir AS e ON e~eltuid = d~low AND e~objvers = d~objvers
LEFT OUTER JOIN rszelttxt AS f ON f~eltuid = d~low AND f~objvers = d~objvers AND f~langu = 'E'
LEFT OUTER JOIN rszcalc AS g ON d~eltuid = g~eltuid AND d~objvers = g~objvers AND g~stepnr = '001'
LEFT OUTER JOIN rszelttxt AS x ON x~eltuid = d~eltuid AND x~objvers = d~objvers AND x~langu = 'E'
WHERE
a~compid LIKE p_compid AND
b~laytp <> 'NIL' AND
b~laytp <> 'SHT' AND
b~laytp <> 'FLT' AND
a~objvers = 'A' AND
b~objvers = 'A' AND
c~objvers = 'A' AND
d~objvers = 'A'.

Второй уровень рекурсии:

SELECT DISTINCT a~compid c~laytp d~eltuid x~txtlg d~iobjnm d~low e~mapname f~txtlg g~eltuid
APPENDING TABLE lt_query
FROM rsrrepdir AS a INNER JOIN rszeltxref AS b ON b~seltuid = a~compuid AND b~objvers = a~objvers
INNER JOIN rszeltxref AS c ON c~seltuid = b~teltuid AND c~objvers = b~objvers
INNER JOIN rszeltxref AS c2 ON c2~seltuid = c~teltuid AND c2~objvers = c~objvers
INNER JOIN rszrange AS d ON d~eltuid = c2~teltuid AND d~objvers = c2~objvers
LEFT OUTER JOIN rszeltdir AS e ON e~eltuid = d~low AND e~objvers = d~objvers
LEFT OUTER JOIN rszelttxt AS f ON f~eltuid = d~low AND f~objvers = d~objvers AND f~langu = 'Е'
LEFT OUTER JOIN rszcalc AS g ON d~eltuid = g~eltuid AND d~objvers = g~objvers AND g~stepnr = '001'
LEFT OUTER JOIN rszelttxt AS x ON x~eltuid = d~eltuid AND x~objvers = d~objvers AND x~langu = 'Е'
WHERE
a~compid LIKE p_compid AND
c~laytp <> 'NIL' AND
c~laytp <> 'SHT' AND
c~laytp <> 'FLT' AND
a~objvers = 'A' AND
b~objvers = 'A' AND
c~objvers = 'A' AND
c2~objvers = 'A' AND
d~objvers = 'A'.

и так далее ...

Можно конечно красивее решить итерацией, но как-то руки до сих пор не дошли :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB