python连接sap并调用 SAP RFC接口

这篇具有很好参考价值的文章主要介绍了python连接sap并调用 SAP RFC接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

python在我们工作中的作用还是有很多的,尤其是在数据处理方面和自动化等等,可以说是无所不能,这篇文章来给大家介绍一下python如何连接sap并调用 SAP RFC接口。首先给大家简单介绍一下pyrfc这个包,pyrfc是Python语言的SAP Remote Function Call(RFC)库,用于连接SAP系统并执行函数模块。它提供了Python语言与SAP系统之间的桥梁,使得Python开发者可以在Python中方便地调用SAP的RFC函数模块,我们也可以配合django或者其他web框架实现一个简单OA系统实现与sap系统的集成。


提示:以下是本篇文章正文内容,下面案例可供参考

一、我们需要使用到那些工具?

  1.python的pyrfc包
  2.sap netweaver rfc 的 sdk

二、具体步骤

1.下载pyrfc包

  在终端中输入 pip install pyrfc -i https://pypi.mirrors.ustc.edu.cn/simple/
  这里笔者使用了中国科学技术大学的镜像源不然下载就会很慢


2.引入包

代码如下(示例):

import pyrfc

3.下载 netweaver rfc 的 sdk

  a.下载的方式有两种
    1.官网下载
      a. 一种是有sap账号权限的可以去官网中下载 下载链接
      b. 点击下方图片箭头的地方可以跳转对应下载页面首先会让你登录python连接sap,python,python,开发语言
    2.找现成的
      a.还有一种就是在百度中搜索找现成的下载
      b.这里我给大家也提供一个下载链接 https://pan.baidu.com/s/1HVX6syxZiWcfed-kb6CcFQ 提取码:afp7
      c.https://gitee.com/wwsheng009/nwrfcsdk 这里还有gitee的下载地方
    3.如果有sap权限的最好建议去官网下载最新版。


4.配置下载的SDK

  1.我们需要将下载的sdk文件中的bin目录和lib目录配置到环境变量中
python连接sap,python,python,开发语言
  2.这里需要注意的是配置这两个目录的环境变量不像我们配置python的环境变量哪样直接到系统变量的path新建,而是先要在系统变量中新建一个SAPNWRFC_HOME变量,变量值是到nwrfcsdk目录也就是bin或者lib的上级目录,再去系统变量path中依据我们刚才在系统变量新建的SAPNWRFC_HOME变量基础上再去新建bin变量和lib变量。具体原因稍后解释
    a.python连接sap,python,python,开发语言
    b.
python连接sap,python,python,开发语言

  3.为什么要这样配置?直接在path中配置lib bin目录的绝对路径不行吗?
    a.这个原因和pyrfc这个模块包的源码有关系,我们可以按住ctrl鼠标点击pyrfc这个包跳入源码界面。
python连接sap,python,python,开发语言
    b.我们可以看到这一行是依据SAPNWRFC_HOME系统变量引入了这个lib目录中的dll组件,所以我们配置环境变量的时候要像上面那样配置才可以成功使用此sdk。
python连接sap,python,python,开发语言
  4.注意如果这样配置完成之后跑代码出现加载模块包错误就重启电脑让环境变量重置然后再试一下,笔者亲测。


5.代码实现

  直接上源码后面再详细解释

import pyrfc

ASHOST = 'xx.xx.xx.xx'
CLIENT = 'xxx'
SYSNR = 'xx'
USER = 'xxxxxxx'
PASSWD = 'xxxxxxx'
# 创建链接Connection方法的参数 ashost=应用服务器 sysnr=实例编号 client=客户端 user=登录对应客户端的用户名 passwd=密码
conn = pyrfc.Connection(ashost=ASHOST, sysnr=SYSNR, client=CLIENT, user=USER, passwd=PASSWD)
# 使用call方法调用SAP BAPI:第一个参数是需要调用的函数模块,后面是bapi的参数,注意一定要用参数名=参数值的方式
# call方法的返回值是字典形式键值对是:{'ET_DATA':[],'DATA':[], 'FIELDS': [],'OPTIONS':[]}
result = conn.call("RFC_READ_TABLE", QUERY_TABLE='TCURR')
# print(result)
# 数据简单展示一下
for i in result['DATA']:
    print(i)

  代码运行效果
python连接sap,python,python,开发语言

  1.这里我们只是简单调用以及展示了一下,call方法还可以写些许参数,稍后详解。
    a.Connection方法的参数的参数如何查看
      1.我们可以在sap的登录界面右击登录条目点击属性即可查看 如图所示
python连接sap,python,python,开发语言
    b.call方法我们调用的是sap中的函数模块RFC_READ_TABLE方法,查看的是TCURR表。
      1.我们可以在sap中输入事务码se37去查找或者测试相应的函数模块,如图所示
python连接sap,python,python,开发语言
  2.这里的quer_table输入我们需要查询的表名,下方的option可以输入我们的查询条件等等。输入完了之后点击左上角的执行我们想要的数据就可以被取到,执行完必要点击下方数据展示的哪个图标才可以查看我们的数据。
  3.这里的option以及fields参数我们可以在代码中这样写
    a.

#示例1
options = [{'TEXT': "FCURR = 'USD'"}]
fields = ['FCURR']
#示例2
options = [{'TEXT': "FCURR EQ 'USD'"}]
fields = ['FCURR']
#示例3
options = [
    {'TEXT': "FCURR = 'USD'"} and
    {'TEXT': "TCURR = 'RMB'"}
]
fields = ['FCURR', 'TCURR']
#使用call方法并传入相应参数
result = conn.call("RFC_READ_TABLE", QUERY_TABLE='TCURR', OPTIONS=options, FIELDS=fields)

  4.示例1,2运行结果就是只取TCURR表中的FCURR字段并且FCURR字段还必须等于USD,示例2中的EQ就是等于的意思和示例1是一个意思,其中示例3需要注意一下,我看其他文章都是逗号分隔每个筛选条件,但是我试过了不行,在se37里面我发现是要用and连接在python这里我也试了一下确实是需要用and连接。
    a.示例1,2运行效果
python连接sap,python,python,开发语言
    b.示例3运行效果图片,这里只有一条是符合我们筛选条件的,我的pyrfc包版本是__version__ = “2.7.0”
python连接sap,python,python,开发语言
  5.这里再给大家附上一张abap OPTIONS筛选条件的一张表,以供大家参考。
python连接sap,python,python,开发语言


6.数据展示

   1.如果对打印格式有要求的大家可以去了解学习 python 中 tablib 这个包,这个包可以专门格式化数据的,打印出来的数据格式是比较规整的,如果是做web那么就自己写循环或者用前端框架,我们只需要处理成对应的数据格式传给前端就可以了。
   2.tablib 包数据处理效果展示
python连接sap,python,python,开发语言


总结

  以上就是今天要讲的内容,本文仅仅简单介绍了python如何去连接我们的sap并如何调用sap中的函数模块,大家也可以尝试着和web开发结合起来,也可以和处理excel的包openpyxl结合起来直接从表中取的我们的数据,再处理成我们想要的数据结果,等等,笔者也是刚开始写博客有格式看着不舒服,有说错或者不好的地方还请大家多多指教,如果觉得写的可以对您有帮助的话还麻烦点赞转发一下,也欢迎大家再评论区一起讨论,谢谢大家。感谢。文章来源地址https://www.toymoban.com/news/detail-646124.html

到了这里,关于python连接sap并调用 SAP RFC接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SAP ABAP】SAP Webservice & RESTful 接口服务发布教程

    关于 WebService 概念,这篇文章讲解的非常全面,可以移步阅读《SAP Web service》。 本想通过 RFC 来发布 ODATA 服务,奈何当前 SAP ECC 版本过低不支持,只好采用其他方式来发布服务,于是就尝试了下面这两种方法。 SE37,创建以下测试用 RFC 测试执行 RFC,得到的数据结果如下图:

    2024年02月02日
    浏览(42)
  • 【SAP】SAP 发布HTTP接口之完整的Restful 含( 含Token 验证)

    最近在工作中需要发布 http 接口,以供第三方系统调用,所以有了本博客,用来记录开发过程 网上有很多实现的方式都是通过 IF_HTTP_EXTENSION 接口实现的,这次用的方式不一样。 具体过程如下: 使用SE24创建一个类 ZLOCAL_CL_REST ,并且继承超类 CL_REST_HTTP_HANDLER 。 重构方法 IF_

    2024年02月13日
    浏览(64)
  • JAVA实现SAP接口

    环境spring-boot+maven 1.maven依赖 2.配置文件 application.yml 3.在项目resources目录下创建lib文件夹并放置如下文件 4.测试方法(以下代码放main方法里执行一样) 以上 方法名、参数、内表参数、返回参数、返回内表参数 皆为甲方文档中定义,我们只需要传值和取值即可 5.正式环境运行

    2024年02月10日
    浏览(27)
  • SAP集成技术(二)接口库

    目前还没有一个集中的地方能找到全部SAP接口,它们分散在几个不同的地方。 本文链接:https://www.cnblogs.com/hhelibeb/p/17843509.html 内容部分来自《SAP Interface Management Guide》,部分来自SAP官方网站。 大部分接口、特别是新接口由SAP API Business Hub发布,内容分为以下类别: Applicati

    2024年02月05日
    浏览(61)
  • SAP ABAP调用Http/Https方式实例

    注意: 1.url必须带\\\"http://\\\"或者“https://”。 2. http_client-propertytype_redirect = http_client-co_disabled .这一行是设置是否允许重定向,是为“co_enabled”,否为“co_disabled”。 3. 可能出现的错误 404 Hostname Unknow,是因为服务器未配置该url的dns 4. 可能出现的错误 401 refused,可能是被防火墙

    2024年02月07日
    浏览(55)
  • SAP集成技术(三)接口管理的挑战

    接口管理不是一个新概念,在云应用出现之前,就有接口管理问题,和混合场景相比,不同应用间的集成更为常见。经典的问题包括:哪个工具是我的使用场景中的正确选择?如何操作我的集成平台?如何设计组织?以及如何保护、监控和控制集成? 本文链接:https://www.cn

    2024年02月05日
    浏览(41)
  • SAP ABAP 使用SICF发布HTTP API接口

    一、SE24创建类: Z_HCX_HTTP 1、创建类: 2、切换到接口(interface)页签,输入IF_HTTP_EXTENSION ,回车。切换到方法(method)页签,双击IF_HTTP_EXTENSION~HANDLE_REQUEST进入代码编辑界面。   3、在 IF_HTTP_EXTENSION~HANDLE_REQUEST 方法中编写代码: (注:文末附另一种写法) 二、使用事务码 

    2024年02月11日
    浏览(46)
  • BTP连接cloud connector中配置的SAP

    登录地址 登录之后可以看到我们已经配置成功的后端系统SAP。 从cloud connector中获取location ID ,然后在BTP中配置Destination 选择目标标签页,点击‘新建目标’,如下图: 新建连接 暂时不知道错误原因 创建目标-HTTP 新建目标: WebIDEUsage:odata_gen,odata_abap,dev_abap,ui5_execute_abap

    2024年04月28日
    浏览(24)
  • SAP 开发环境搭建入门

    自2006年毕业之后一直从事企业管理软件的开发与维护工作,期间经历了Windows Forms, ASP.NET Web Forms, WPF, ASP.NET MVC, AngularJS TypeScript等技术阶段。工作几年后有幸运进入一家规范化的ERP软件开发公司,接触并深入了解ERP这个行业。代码量从几千上万行的程序,直线上升到维护数百万

    2024年02月08日
    浏览(37)
  • SAP 调取http的x-www-form-urlencoded形式的接口

    一、了解下x-www-form-urlencoded形式对于SAP来说有啥区别 简单来说, 1.raw格式就是标准的json格式:{“Name”:“John Smith”,“Age”: 23} 2.x-www格式是要转化一下的:Name=John+SmithAge=23 字段与字段相互连接要用 符号,空格用 + 连接。所以说当你的关键参数里面带有这些特殊符号时,就

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包