栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

UIPATH 调用SAP BAPI

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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一下就好了

附上一个完整录入物料主数据的流程截图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号