在Microsoft Power BI中将SAP Business One ServiceLayer用作OData-Feed

2020-08-23 06:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨社区 我们正在尝试将SAP ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨社区

我们正在尝试将SAP B1 SL​​用作Microsoft Power BI中的OData-Feed。 当加载像Northwind这样的示例OData-Service时,一切都会按预期进行。

我们尝试将ServiceLayer与基本身份验证一起使用。

使用oData v4(b1s/v2)会给我们带来错误,使用oData v2(b1s/v1)会给我们提供结构(当使用b1s/v1/$ metadata作为端点时)

您是否知道我们必须如何设置oData Feed才能使其正常工作?

3条回答
DafaDDDa
2020-08-23 06:51

嗨曼纽尔 ,

根据 PowerBI文档关于OData.Feed(),

 OData.Feed(serviceUri为文本,可选标头为可为空的记录,可选选项为任意)
 从uri serviceUri返回OData服务提供的OData提要表... 

serviceUri,这里应该是目标端点(例如/b1s/v2/Orders for Sales Order),而不是/b1s/v2/$ metadata,它会在您的回复中以xml格式返回服务层的元数据。

关于SL的OData版本

b1s/v1:OData v3
b1s/v2:OData v4

建议使用b1s/v2,它支持通过基本身份验证访问对象端点,而无需显式登录,如下所示 。

例如,您要使用Power BI分析销售订单,

ServiceUri:https:///b1s/v2/Orders

基本身份验证:

用户:{" CompanyDB":" "," UserName":" "}}
密码:<您的B1用户密码>

注意:为了获得更好的性能,您应该指定唯一必需的字段$ select = ...并使用$ filter = ...进行过滤。使用$ apply = groupby((),aggregate())进行汇总 HANA和o上的结果 只需将汇总结果(而不是所有原始记录)返回到报告工具中,以获取过多的http流量,就应该确定数据馈送的方式以进行查询分析。 我不是PowerBI的专家,我不确定PowerBI是否可以接受汇总结果。


此外,语义层(所有B1模型的CalcView与OLAP相同) 建议使用多维数据集进行业务分析,可以通过服务层进行访问,因此,对于上面的订单分析示例,建议您通过服务层使用语义层(SalesAnalysisQuery)。 您可以在此博客

步骤1:通过B1菜单->管理->设置->常规-> SAP HANA模型管理将查询CalcView公开到服务层 ,找到" SAP HANA模型包1"的目标查询视图,然后选中"暴露服务层"复选框。 例如,对于销售订单分析,我们可以使用" SalesAnalysisQuery"(可用于所有销售单据分析)

第2步:通过PowerBI查询语义层SalesAnalysisQuery。例如,下面的示例关于通过2019财年发布月分析销售订单。您可以替换查询名称和 字段。 可以通过https://{{SL_HOST}}/b1s/v2/sml.svc/

ServiceUri:

 https://{{  SL_HOST}}/b1s/v2/sml.svc/SalesAnalysisQuery?$ apply = groupby((PostingMonth),aggregate(NetSalesAmountLC,总和为NetSalesAmountLC,GrossProfitLC,总和为GrossProfitLC))&$ top = 20&$ filter =(PostingYear eq'  2019')和DocumentTypeGroup eq'Order'&$ orderby = PostingMonth desc 

基本身份验证:

用户:{" CompanyDB":" "," UserName":" "}

密码:<您的B1用户密码>

在这里,您可以看到它如何与Postman(还只是另一个http客户端)一起工作。

< p>

Yatsea的问候

一周热门 更多>