UIPATH 调用SAP BAPI

先吐槽一下,官网上面虽然有一部分关于uipath使用控件调用bapi的文档说明,但介绍的真的真的太少了,连一个示例都舍不得给一下,我尽量在这篇博客里面写详细一点

这个视频是我从YouTube扒过来的,关于uipath 调用SAP BAPI的教学视频,感觉讲的挺详细的,如果下面的博客看了还不怎么清楚可以看看这个视频https://www.bilibili.com/video/BV1g64y1h7RF/

UIPATH 中使用SAP BAPI教程

当然,还是礼貌性的给每一步一个官网文档的链接,有兴趣的可以看看

前提环境

关于“SAP BAPI 活动包”
按官方文档所说,首先需要一些必要的前提环境

安装该活动包之前,必须先安装 SAP Connector for Microsoft .NET 3.0 (NCo 3.0) 的 32 位 (x86) .NET 4.0 版本。该连接器还需使用 Microsoft C++ 运行时 DLL 10.0 版(已包含在 Microsoft Visual C++ 2010 可再发行组件包中)

资源我上传到百度网盘上面了:
SAP Connector for Microsoft .NET 3.0 (x86) 提取码:SELE
Microsoft C++ Runtime DLL 10.0 版 提取码:SELE


又上传到了gitee上,百度网盘好像一定要下载客户端才能下,流氓软件!!!
下面是gitee的下载传送门
SAP Connector for Microsoft .NET 3.0 (x86)
Microsoft C++ Runtime DLL 10.0 版


其中第一个资源安装的时候有一点需要注意的地方,其他的都正常下一步就OK

请注意,SAP Connector for Microsoft 必须安装在 Windows 全局程序集缓存 (GAC) 中才能正常运行。为此,请在安装 SAP 连接器期间选择相应选项。
在这里插入图片描述

生成 SAP BAPI 工作流

首先需要添加依赖:UiPath.SAP.BAPI.Activities
在这里插入图片描述
如果你碰见了如下问题:

无法安装以下包: UiPath.SAP.BAPI.Activities 2.2.0
未能加载文件或程序集“sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyTo

检查你的第一步环境有没有问题,我当时出错的原因是SAP Connector for Microsoft .NET 3.0装的版本是x64,重新安装x86的就好了

安装依赖的时候注意查看版本,如果你用的是2.0以下的版本,那么文档如下
v2.0.0 以下版本
如果是2.0以上的版本,文档如下
SAP 应用程序作用域
调用 SAP BAPI

下面的介绍基于2.0,会介绍到一些bapi调用时变量的处理

SAP应用程序范围

按部就班的来,先拖入一个【SAP应用程序范围】控件
在这里插入图片描述
配置一下属性,配置完成要测试连接,连接成功说明参数正确无误,再点击右方的【Copy To Robot Configuration】按钮,复制参数到机器人程序中
在这里插入图片描述
密码是不会从刚刚的位置复制过来的,需要自己写一个SecureString类型的参数赋值过去,我是从Windows凭证中拿的账密
在这里插入图片描述

调用BAPI

调用bapi需拖动【调用SAP BAPI】的控件到上述的【SAP应用程序范围】工作流中,下面以创建物料主数据的BAPI:BAPI_MATERIAL_SAVEDATA作为本次的示例
在这里插入图片描述
在搜索框输入需要调用的bapi名称,点击搜索后就能出来结果
带*号的是必输内容,控件会自动把必输内容带出来,非必输默认不出现
在这里插入图片描述
非必输参数需要点击上一步右上角的【添加参数】添加,不需要点搜索按钮就能筛选出来,需要添加的参数要记得在右边打上勾勾
在这里插入图片描述
可以看到这些参数,SAP当中的内表被映射成了DataRow类型,而Structure类型被映射成了DataRow类型,官方文档的说法如下:

BAPI 中所有具有“Table”类型的参数均会映射到“DataTable”参数,而 BAPI 中所有具有“Structure”类型的参数均会映射到“DataRow”参数。所有其他参数均会映射到基本数据类型。
在这里插入图片描述

如果我们需要传递一个Structure类型的参数过去,那么我们就需要构建一个DataRow类型的参数
以bapi中的headdata作为例子提供一个方法
首先构建一个数据表【DataTable】,数据表表头的命名和BAPI中结构的变量名一致,只填入我们希望传递的参数,再将数据表第一行分配给一个【DataRow】类型的变量,这样就完成了结构类型的转换,剩下的就是在调用bapi的时候把这个【DataRow】类型的变量作为参数传递过去
在这里插入图片描述
对于内表类型的参数,直接建立一个【DataTable】类型的数据表在里面填数据就好了,只要保证表头的名称跟sap中的表头变量名保持一致就能够匹配上
在这里插入图片描述
其他基本类型正常传递就好了,大部分能以string类型传输,比如unit类型就可以用string类型传
如果最后调用了bapi没有效果,看一看是不是没有commit,没有的话commit一下就好了
在这里插入图片描述
附上一个完整录入物料主数据的流程截图
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值