Список всех доменов и источников данных, используемых в доменах в Jaspersoft

#jasper-reports #jaspersoft-studio

#jasper-отчеты #jaspersoft-studio

Вопрос:

Как я могу перечислить все домены и источники данных, используемые в доменах в Jaspersoft.

я имею в виду, что у меня есть разные домены, такие как домены аудита, домен клиента и т.д. Есть ли какой-либо способ получить все домены с таблицами (источниками данных), используемыми в этих доменах в jaspersoft?

У меня около 20 доменов, и вручную переход к каждому домену и перечислению таблиц занимает много времени, поэтому мне нужна помощь!

Ответ №1:

я не нашел хорошего способа (я уверен, что вы можете покопаться в базе данных), один из способов получить это — экспортировать домены, и это экспортируется в хороший аккуратный XML-файл. Поскольку мы используем только источники JDBC, нам нужно только искать теги «jdbcTable» и «jdbcQuery», чтобы увидеть, какой домен использует, это все во второй 1/2 части xml. если вы используете другие источники данных, вам может потребоваться просмотреть xml, чтобы увидеть, как Jasper ссылается на них в XML.

 <?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.jaspersoft.com/2007/SL/XMLSchema" version="1.0">
   <resources>
     <jdbcTable id="" datasourceId="" tableName="">  
     <jdbcQuery id="" datasourceId="">  
         <query>  select * from table <query>
  

Ответ №2:

Приведенное ниже решение предназначено для определения представлений Adhoc, которые зависят от доменов, но я полагаю, что вы могли бы реализовать аналогичное решение с доменами, которые зависят от источников данных.

В домене я создал производную таблицу [AdhocViewName]. Запрос для этого домена:

     SELECT   a.id               as AdhocID,     
             r.label            as AdhocLabel,      
             a.reportDataSource as AdhocDataSourceID,   
             t.AdhocDataSourceLabel 

    FROM   (SELECT id    as AdhocDataSourceID, 
                   label as AdhocDataSourceLabel 
    FROM public.jiresource       
    ) as t     

        INNER JOIN public.jiadhocdataview a ON a.reportDataSource = t.AdhocDataSourceID     
        INNER JOIN public.jiresource      r ON a.id = r.id
  

Примечания:

  • несмотря на то, что таблицы отображаются с подчеркиванием (public_jiresource, запрос сработал только путем замены «.» (public.jiresource).
  • по какой-то причине jasper не нравится, когда вы используете скобки; например, a.id [AdhocID], поэтому я использовал a.id как AdhocID.

Когда вы извлекаете производную таблицу в специальное представление,

  • создайте таблицу
  • фильтр с resourcetype является одним из SemanticLayerDataSource, AdhocDataView
  • Столбцы: метка ресурса, uri
  • Группы: adhocdatasourcelabel