我可以通过使用 SAP BO Universe 语义层的 REST API 来获取特定 Universe 的文件夹。
现在我需要从 Universe 的数据源下面获取主表。我发现应该为此使用 SAP 的 COM SDK,但是他们说它现在已被弃用。
是否有可能将上述内容从 SAP BO 获取到我的 Java 应用程序?
提前致谢。
您是否尝试过 SAP BI 语义层 Java SDK API?它包含getTables()方法,该方法似乎完全符合您的需要:
返回“表”包含引用列表的值。列表内容是表格类型。它是双向的,它的对立面是“数据基础”。这表示数据基础的表名列表。
返回: 'Tables' 包含引用列表的值。
如果你有 Webi,你可以通过 RESTful Webi API 获取数据提供者信息。在您的情况下,数据提供者是宇宙。
然后您通过此 API 获取您的 Universe 的查询计划
GET /documents/<documentID>/dataproviders/<dataProviderID>/queryplan
并接收在此 Universe 中使用的所有 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来完成。