如何从 SAP BO Universe 数据源中获取表和列?

Posted

技术标签:

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

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

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

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

提前致谢。

【问题讨论】:

【参考方案1】:

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

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

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

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

    首先你应该get dataproviders 和他们的ID

    然后你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。

【讨论】:

以上是关于如何从 SAP BO Universe 数据源中获取表和列?的主要内容,如果未能解决你的问题,请参考以下文章

SAP中BW和BO有啥区别?

SAP中BW和BO有啥区别

SAP BI/Bo前景怎么样啊,请资深顾问们帮忙分析下哈,小弟在这里谢谢了。。。

SAP BO Information design tool②

在使用 SAP BO WEBI 4.2 SP3 的 sql 中使用 @Prompt

sap设置alv报表清单格式