1

我可以通过使用 SAP BO Universe 语义层的 REST API 来获取特定 Universe 的文件夹。

现在我需要从 Universe 的数据源下面获取主表。我发现应该为此使用 SAP 的 COM SDK,但是他们说它现在已被弃用。

是否有可能将上述内容从 SAP BO 获取到我的 Java 应用程序?

提前致谢。

4

1 回答 1

0

您是否尝试过 SAP BI 语义层 Java SDK API?它包含getTables()方法,该方法似乎完全符合您的需要:

返回“表”包含引用列表的值。列表内容是表格类型。它是双向的,它的对立面是“数据基础”。这表示数据基础的表名列表。

返回: 'Tables' 包含引用列表的值。

如果你有 Webi,你可以通过 RESTful Webi API 获取数据提供者信息。在您的情况下,数据提供者是宇宙。

  1. 首先,您应该获取数据提供者及其 ID
  2. 然后您通过此 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来完成。

于 2020-01-20T13:19:19.023 回答