pentaho BI中的租户感知数据源

pentaho BI中的租户感知数据源,pentaho,Pentaho,我们有几个客户(公司),每个客户都有单独的数据库,即companyA有数据库a,CompanyB有数据库B…等等,所以我想实现的是,在pentaho用户控制台中,所有这些公司使用相同的报告,但使用不同的数据源,例如 CompanyA,CompanyB..etc将有权访问该文件夹中名为“Reports”的解决方案文件夹 报告列表,例如weeklySales_报告,因此我希望weeklySales_报告在登录用户来自CompanyA时使用CompanyA的数据库,在登录用户来自CompanyB时使用

我们有几个客户(公司),每个客户都有单独的数据库,即companyA有数据库a,CompanyB有数据库B…等等,所以我想实现的是,在pentaho用户控制台中,所有这些公司使用相同的报告,但使用不同的数据源,例如 CompanyA,CompanyB..etc将有权访问该文件夹中名为“Reports”的解决方案文件夹 报告列表,例如weeklySales_报告,因此我希望weeklySales_报告在登录用户来自CompanyA时使用CompanyA的数据库,在登录用户来自CompanyB时使用CompanyB的数据库

我试过了,但是我犯了这个错误

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. 
XmlBeanDefinitionStoreException:文件[C:\pentaho2]中XML文档的第67行
biserver ce\pentaho solutions\system\pentahoObjects.spring.xml]无效;nes
ed异常为org.xml.sax.saxpasseeption;行号:67;栏目号:50
与元素类型“property”关联的属性“value”的值必须为

不包含“我不确定您的方式,但是有可能使用动态jndi。您可以在xaction的变量中使用jndi,并在xaction中使用它来区分目标数据库

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

JNDDDI


SQLLookupRule
每小时
{JNDDDI}


如果您使用JasperReport组件,情况也是一样。

在哪里可以获得关于如何实现这一点的文档或wiki文章?我是一个新手,我尝试使用Xaction传递JNDI,但我想必须在Xaction中指定SQL(select语句),并将查询结果提供给报表,如果报表是使用元数据数据源创建的呢?我可以使用xaction将JNDI传递给元数据吗?我如何为CDE report ref实现相同的功能单击此处
<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>