通过OData Connector连接SAP S/4HANA系统消费OData服务

背景介绍

当今激烈的全球市场竞争要求企业必须快速创新、应对纷杂的业务变化,从而实现差异化。作为SAP的战略合作伙伴,Mendix可以帮助SAP用户迅速扩展S/4HANA等核心应用,提升企业级应用开发效率的同时大大节省资源投入。本文就以S/4HANA为例介绍如何通过Mendix提供的OData Connector连接本地部署的SAP系统并消费OData服务。

前提条件及注意事项

  1. S/4HANA本地部署的系统以及相应的登录信息
  2. 安装Mendix Studio Pro,版本建议:8.0.0 - 8.17.99
  3. 在Menidx Studio Pro中已创建应用程序
  4. OData Model Creator for SAP solutions可以帮助把SAP系统中已经建好的Data Model导入Mendix项目中的,官方文档中针对使用OData Model Creator for SAP Solutions有如下图所示的前提条件要求与提示:

结合使用的实际情况,这里总结两点提示:

【提示1】:为了顺利将生成的Module导入Mendix Studio Pro,请按照上述第2点建议,安装Mendix Studio Pro 8.0.0  - 8.17.99之间的版本,避免导入错误;

【提示2】:OData Model Creator for SAP solutions 仅支持OData版本2和3的SAP OData Gateway Services. OData 4 暂不支持。

S/4HANA系统发布OData Service

本文中所消费的OData 服务是针对S/4HANA系统中的自建数据表所发布的SAP Gateway OData服务。因SAP自开发不是本文重点,这里只做简单描述,详细开发过程可参考SAP相关文档。

  1. 事务代码SE11,创建销售订单头表,行项目表
  2. 事务代码SEGW - SAP Gateway Service Builder定义项目并关联数据模型,实现CRUD方法
  3. 事务代码 /IWFND/MAINT_SERVICE - Activate and Maintain Services注册SAPGateway OData服务,例如这里是:ZSO_CRUD_SRV
  4. 事务代码 /IWFND/GW_CLIENT - SAP Gateway Client测试所建的OData服务
  5. 查看OData服务元数据:浏览器中查看所定义的OData服务的元数据 

http://<hostname>:50000/sap/opu/odata/sap/ZSO_CRUD_SRV/$metadata,右键下载元数据保存在文件$metadata.xml,以备后续导入Mendix使用。

获取SAP中定义好的Data Model

OData Model Creator for SAP solutions根据SAP系统的元数据生成可以在Mendix里使用的数据模型。生成的模块后续可以导入Mendix Studio Pro在与SAP系统连接场景中使用。

1. 通过以下链接进入Mendix - SAP OData Service Wizard (mendixcloud.com)

2. 选择Manual方式,将之前下载的metadata XML文件上传,并点击继续,生成Schema。

3. 选中生成的Schema ZSO_CRUD_SRV,点击继续。

4. 查看并生成可导入Mendix的Data Model文件。

点击按钮“Generate.mpk”并下载生成ZSO_CRUD_TEST_SRV.mpk文件,建议将文件保存到项目的resources目录下(例如:“~\Documents\Mendix\SAPLaunchpad-main\resources”),方便之后使用。

具体步骤也可参考Mendix官方文档:https://docs.mendix.com/partners/sap/use-sap-odata-model-creator

 

在Mendix Studio Pro中使用OData Connector for SAP Solutions 模块

1. 下载OData Connector for SAP Solution组件

OData Connector for SAP Solution属于Mendix的拓展组件,需要到Mendix提供的通用组件仓库(APP Store)里下载后使用。                                                                 

进入Mendix Studio Pro 点击右上角图标,直接搜索关键字“OData”或在目录Categories->Connectors->SAP中找到组件“OData Connector for SAP solutions”。 

点击进入下载页面。

点击“Download/下载”按钮,相应组件就下载到了Mendix Studio Pro中放在目录APP Store modules下面: 

2. 导入生成的SAP Data Model模块文件

将第四部分生成的SAP Data Model模块文件ZSO_CRUD_TEST_SRV.mpk导入项目。

在项目根目录点击右键->选则“Import module package”。

在之前存放的目录中选择文件,导入。

导入时选择添加为新的模块。

导入后的模块将会显示在项目根目录的最下方,如下图所示:

可双击“Domain Model”查看在SAP系统中定义的数据模型;双击EntitySetNames查看相应的OData实体;常量ZSO_CRUD_SRV中存放了访问这个OData服务的URL:

3. 在APP中使用OData Connector

创建连接SAP系统的用户名密码

右键MyFirstModule -> Add other -> Constant添加常量,按如下方式分别添加用户名及密码。

创建微流获取销售订单信息

右键MyFirstModule->Add microflow…,此处命名为DS_GetSOHeaders,用于消费OData服务获取销售订单头表信息填充给销售订单页面进行展示。按照如下方式创建微流:

(1)Create request params

(2)Add basic authentication

维护好Request parameters,用户名及密码。

(3)Get List

Response type – ZSO_CRUD_SRV.Header

Destination – empty

Query – @ZSO_CRUD_SRV.ZSO_CRUD_SRV + '/' + toString(ZSO_CRUD_SRV.EntitySetNames.HeaderSet)

(这里的Query参数实际上就是拼接好的HTTP Request,拼接完成后的请求为:http://vhcals4hci.dummy.nodomain:50000/sap/opu/odata/sap/ZSO_CRUD_SRV/HeaderSet

Request parameters – $SAPRequestParams

Parent – empty

Result info – empty

Use return value – Yes

List name – ListofHeader

(4) 微流结束返回 ListofHeader

最终定义出来的微流如下所示:

创建销售订单展示页面并关联上述微流

创建一个新的页面,选择主从结构的布局,数据源关联刚才创建的微流。

调整布局,左边列举订单头表主要信息如:订单号,描述,选中后右边展示详细信息,编译运行后显示结果如下: 

总结

Mendix提供的连接器功能OData Connector for SAP solutions帮助与SAP系统无缝集成,从而消费SAP系统中定义的 OData服务,使得对SAP系统的扩展开发可以轻松在核心应用之外展开,这在降低解决方案复杂度的同时,减少了将来SAP系统升级可能面临的影响。

关于本文实现的更多详细信息也可参考官方文档:

https://docs.mendix.com/partners/sap/use-sap-odata-connector

https://docs.mendix.com/partners/sap/sap-odata-connector 

谢谢阅读!

 

 

猜你喜欢

转载自blog.csdn.net/Mendix/article/details/113859195