3

テーブルと列を持つ Webi レポートのメタデータ情報を読み取る必要があります。いくつかの Webi レポートのメタデータ情報を読み取ることができますが、結合 Webi レポートとユニオン Webi レポートの場合、メタデータ データ情報を読み取ることができません。この種のレポートではクエリ null が取得されます。

メタデータを読み取る方法を教えてください。

コード:

String query="SELECT * FROM CI_INFOOBJECTS WHERE SI_KIND in('WEBI') AND SI_INSTANCE = 0 AND SI_ANCESTOR = 23";

sessionMgr = CrystalEnterprise.getSessionMgr();
enterpriseSession = sessionMgr.logon(username,password,ip,"secEnterprise");
reportEngines = (ReportEngines) enterpriseSession.getService("ReportEngines");
ReportEngine wiRepEngine(ReportEngine)reportEngines.getService(
    ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
IInfoStore infoStore = (IInfoStore) enterpriseSession.getService("InfoStore");


IInfoObjects infoObjects = (IInfoObjects) infoStore.query(query);
System.out.println(infoObjects.size());

for (int i =0; i<infoObjects.size(); i++)
{
    IInfoObject report = (IInfoObject)infoObjects.get(i);
    widoc = wiRepEngine.openDocument(report.getID());
    providers = (DataProviders) widoc.getDataProviders();
    for(int prov=0; prov<providers.getCount(); prov++)
    {
        DataProvider providername = providers.getItem(0);
        DataSource datasource= providername.getDataSource();
        String universename=datasource.getName();
        Query providetgetQuery=providername.getQuery();
        System.out.println("Query:-"+providername.getQuery());
        for(int k=0; k<providetgetQuery.getResultObjectCount(); k++)
        {
            providerQueryChild=providetgetQuery.getResultObject(k);
            System.out.println("Columns:-"+providerQueryChild);
            TreeNode providerQueryparent=providerQueryChild.getParent();
            System.out.println("Tables:-"+providerQueryparent);
        }
    }
}
4

1 に答える 1

2

BO 3.1:

その代わり:

Query providetgetQuery=providername.getQuery();

これを試して:

Query providetgetQuery;
if (providername.hasCombinedQueries()) {
    providetgetQuery = (Query) providername.getCombinedQueries().getQueryNodeAt(0);
} else {
    providetgetQuery = providername.getQuery();
}

BO 4.0 では:

現在、レポート SDK のこの部分は利用できません。利用可能なものを見てください: http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_rebean_omd.pdf

BO 4.1 で利用できるはずです: http://scn.sap.com/community/bi-platform/blog/2012/11/18/what-is-coming-in-businessobjects-bi41-customer-validation-asug-ウェブキャスト

于 2013-05-09T08:59:59.080 に答える