2

いくつかのクライアント(会社)があり、それぞれに別々のデータベースがあります。つまり、companyAにはdatabaseAがあり、CompanyBにはdatabaseBがあります...などです。たとえば、CompanyA、CompanyB ..etc は、「Reports」というソリューション フォルダーにアクセスできます。このフォルダーには、例: WeeklySales_report などのレポートのリストがあるため、ログイン ユーザーが companyA のユーザーである場合に、weeklySales_report で 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. 

それは不平を言っている<property name="datasourceNameFormat" value="<![CDATA[{0}-{1}]]>

このエラーの原因についてのアイデア、またはこれを行う他の方法はありますか ありがとう

4

1 に答える 1

1

あなたの方法についてはわかりませんが、動的なjndiを持つ可能性があります。xaction の変数に jndi を含めることができ、ターゲット データベースを区別するために 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 コンポーネントを使用する場合も同様です。

于 2013-02-18T15:32:43.350 に答える