python调用SAP_RFC函数研究
背景
由于本职工作的原因,会经常用到SAP的function。
SAP的remote函数本身,支持外部调用。可以通过sap封装webservice,供外部系统调用;也可以适配sap的应用系统自己调用。
之前外部系统调用SAP的时候,经常做Microsoft BizTalk连接SAP RFC调用的实例。因为BizTalk本身拥有适配sap的adapter,配置起来很方便。
一直想试着python语音是否有第三方库可以实现rfc的调用,前几天搜了下发现有这个pyrfc的库,所以就搞一搞测试一下。
环境安装
官方参考文档:Installation — pyrfc 2.0.2 documentation
因为我用的mac,所以安装操作都是macOS:
其中用到了2个SAP官网的下载文件,需要用到SAP企业账号才可以下载。
- 第三步的RFC SDK:
Download the 7.50 version of the SAP NetWeaver RFC SDK - 第五步的uchar.h文件。
整体按照安装指引操作,还蛮顺利的。
测试验证
Pyrfc项目里,提供了一些demo程序,我用了clientPrintDescription这支测试连通性,这个是打印rfc描述的程序,不实际调用rfc函数,只是打印函数结构,用来测试很安全。
PyRFC/clientPrintDescription.py at main · SAP/PyRFC · GitHub
这个测试后面会再写一篇介绍,因为程序脚本使用了configparser配置解析库。这个之前没搞过,所以单独又学习了一下。
补充问题
我在连接测试的时候,执行遇到了这个报错:
后来在朋友帮助指出下,是因为环境变量DYLD_LIBRARY_PATH没有设置到lib,增加一条环境变量记录。
然后问题就解决了。