SAP BO ユニバース セマンティック レイヤーの REST API を使用して、特定のユニバースのフォルダーを取得できます。
ここで、ユニバースのデータ ソースの下からメイン テーブルを取得する必要があります。これには SAP の COM SDK を使用する必要があることがわかりましたが、現在は廃止されているとのことです。
上記のものを SAP BO から Java アプリケーションにフェッチする可能性はありますか?
前もって感謝します。
SAP BI Semantic Layer Java SDK APIを試しましたか? 必要なことを正確に行うように見えるgetTables()メソッドが含まれています。
「テーブル」包含参照リストの値を返します。リストの内容はテーブル型です。これは双方向であり、その反対は「データ ファンデーション」です。これは、データ ファンデーションのテーブル名のリストを表します。
戻り値: 「テーブル」包含参照リストの値。
Webi を使用している場合は、RESTful Webi API を使用してデータ プロバイダー情報を取得できます。あなたの場合、データプロバイダーはユニバースです。
次に、この API によってユニバースのクエリ プランを取得します。
GET /documents/<documentID>/dataproviders/<dataProviderID>/queryplan
このユニバースで使用されたテーブル名と列とともにすべての SQL ステートメントを受け取ります。
<queryplan custom="false" editable="true">
<union>
<fullOuterJoin>
<statement index="1">SELECT 'FY' || to_char(SALES.invoice_date,'yy'),
count(distinct SALES.inv_id) FROM SALES GROUP BY 'FY' ||
to_char(SALES.invoice_date,'yy')</statement>
<statement index="2">SELECT 'FY' || to_char(SALES.invoice_date,'yy'),
sum(INVOICE_LINE.nb_guests) FROM SALES, INVOICE_LINE, SERVICE_LINE,
SERVICE WHERE (SALES.INV_ID=INVOICE_LINE.INV_ID) AND
(INVOICE_LINE.SERVICE_ID=SERVICE.SERVICE_ID) AND
(SERVICE.SL_ID=SERVICE_LINE.SL_ID) AND
(SERVICE_LINE.service_line ='Accommodation')
GROUP BY 'FY' || to_char(SALES.invoice_date,'yy')</statement>
</fullOuterJoin>
<fullOuterJoin>
<statement index="3">...</statement>
<statement index="4">...</statement>
</fullOuterJoin>
<intersect>
<fullOuterJoin>
<statement index="5">...</statement>
<statement index="6">...</statement>
</fullOuterJoin>
<fullOuterJoin>
<statement index="7">...</statement>
<statement index="8">...</statement>
</fullOuterJoin>
<minus>
<fullOuterJoin>
<statement index="9">...</statement>
<statement index="10">...</statement>
</fullOuterJoin>
<fullOuterJoin>
<statement index="11">...</statement>
<statement index="12">...</statement>
</fullOuterJoin>
</minus>
</intersect>
</union>
</queryplan>
RESTful API の開発者ガイドもここにあります。たとえば、これはPowerShellで実行できます。