2013-02-13 2 views
2

у нас есть несколько клиентов (компаний), у каждого из которых есть отдельная база данных, т.е. у компании есть база данныхA, у CompanyB есть база данных B ... и т. Д., Поэтому я хочу, чтобы в пользовательской консоли pentaho все эти компании используют один и тот же отчет, но с другой datasoruce, например Компания CompanyA, CompanyB..etc будет иметь доступ к папке с решениями, называемой «Отчеты», в этой папке есть список отчетов, например, еженедельный файл Sales_report, поэтому я хочу, чтобы еженедельная версияSales_report использовала CompanyA базы данных, когда loged в пользователе из CompanyA и использовать базу данных CompanyB, когда вошедший в пользователе из companyB,арендатор-источник данных в pentaho BI

я попытался this, но я получаю эту ошибку

XmlBeanDefinitionStoreException: Line 67 in XML document from file [C:\pentaho2 
biserver-ce\pentaho-solutions\system\pentahoObjects.spring.xml] is invalid; nes 
ed exception is org.xml.sax.SAXParseException; lineNumber: 67; columnNumber: 50 
The value of attribute "value" associated with an element type "property" must 
not contain the '<' character. 

он жалуется на <property name="datasourceNameFormat" value="<![CDATA[{0}-{1}]]>

каких-либо идеи по какой причине этой ошибки, или есть ли другой способ сделать это Благодаря

ответ

1

Я не уверен, о своем пути, но есть просто возможность иметь динамический jndi. Вы можете иметь jndi в переменной в xaction и можете использовать его в xaction для различения целевой базы данных.

<inputs> 
<JNDDDI type="string"> 
    <sources> 
    <request>JNDDDI</request> 
    </sources> 
    <default-value><![CDATA[jndi_database1]]></default-value> 
</JNDDDI> 

....

<action-definition> 
<component-name>SQLLookupRule</component-name> 
<action-type>hourly</action-type> 
<action-inputs> 
    <JNDDDI type="string"/> 
</action-inputs> 
<action-outputs> 
    <prepared_component type="sql-query"/> 
</action-outputs> 
<component-definition> 
    <jndi>{JNDDDI}</jndi> 
    <query><![CDATA[select ...from ...]]></query> 
    <live><![CDATA[true]]></live> 
</component-definition> 

И то же самое, если вы используете JasperReport компонент.

+0

Где я могу получить документацию или статью о том, как это сделать? Я новичок, я пробовал передавать JNDI с помощью Xaction, но я предполагаю, что нужно указать SQL (select statement) в xaction и подать результат запроса в отчет, что делать, если отчеты создаются с использованием метаданных datasource? могу ли я передать JNDI в метаданные с помощью xaction? – wonde

+1

Как я могу реализовать те же самые вещи для отчета CDE ref нажмите здесь [ссылка] (http://stackoverflow.com/questions/20041600/pentaho-cde-report-change-data-according-to-user-login) – Yogesh