【问题标题】:How to fetch tables and columns from SAP BO universe Data Source?如何从 SAP BO Universe 数据源中获取表和列?
【发布时间】:2020-01-20 10:13:05
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

    标签: sap webi sap-bw


    【解决方案1】:

    你试过SAP BI Semantic Layer Java SDK API吗?它包含 getTables() 方法,似乎完全符合您的需要:

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

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

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

    1. 首先你应该get dataproviders 和他们的ID
    2. 然后你get query plan你的宇宙通过这个API

      GET /documents/<documentID>/dataproviders/<dataProviderID>/queryplan
      

    并接收所有 SQL 语句以及在此 Universe 中使用的表名和列

    <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>
    

    Here is 也是 RESTful API 的开发者指南。例如,可以这样做with PowerShell

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 2014-09-21
      相关资源
      最近更新 更多