在这个博客里,我们将在第一篇博客中引入的$batch OData功能的基础上,下载返利,使用Visual Basic for Applications(VBA)编写的宏,从Microsoft Excel将数据加载到SAP S/4HANA自定义业务对象(CBO)中。此博客将使用上一篇博客中的同一CBO上载数据。
此场景允许用户使用所需字段为CBO创建数据电子表格,然后单击按钮触发宏,该宏将使用VBA上传并在S/4HC中创建记录。
基本上,我们将使用VBA来创建与我们在第一篇博客《邮递员》中使用的负载相同的负载。在VBA中有许多方法可以完成此任务,这是一个示例。
启用宏的文件可以设置如下:
元数据选项卡
在此选项卡上,捕获将用于通过OData调用CBO的技术字段,即URL、CBO名称,和服务用户。
我还设置了逻辑,允许用户在一个OData调用中输入要处理的记录数(即每批记录数)。SAP建议每批不超过50条。在下面的示例中,如果我有38个字段,将有4个对CBO的更新调用(10,10,10,8) .
CBO数据选项卡
此选项卡包含字段名(与OData元数据中的显示方式完全匹配,包括区分大小写)和实际数据。
VBA代码
下一步是编写VBA代码以形成$batch请求。
VBA有三个主要部分。
UploadDataToCBO函数是主要函数确定批量数量,使用函数CBOPayload调用生成批量负载,然后调用postbodata向S/4HANA云系统提交批量请求
函数确定数字字段、行数、是否使用多个批量、向用户询问服务用户密码、调用批量负载并最终调用OData CBO API进行数据发布
此函数生成批量负载
在此函数中,请注意,教育大数据,大数据数据库,在发布数据之前,全国大数据中心,第一次调用获取x-csrf-token,全国大数据中心,然后是更新CBO的POST。
执行和结果
现在是执行代码的时候了。我在另一个选项卡中创建了一个控制表,其中包含上载数据和/或重置数据的按钮。单击"上载新数据"按钮将调用UploadDataToCBO功能。
输入服务密码。
最后一次确认您要上传数据
,然后在结果选项卡上我们看到每个批次的输出。如果有错误,有效负载记录在C列,您可以看到该批次的问题(例如,重复键)。
我们可以在S/4HC中看到数据
希望你觉得这个博客很有用。
祝你好运,马蒂