前言
前面两篇文章介绍了SAP端OData服务的创建,本文将用Python来介绍Client端如何来调用OData服务,其它开发语言可同理参考。
方法一
使用requests库,访问OData服务URL
import requestsimport json
session = requests.Session()session.auth = ('用户名', '密码')
#查询单公司print("查询单公司", "=" * 100)SERVICE_URL = '''http://xxxxxxx/sap/opu/odata/SAP/ZTEST_ODATA_SRV_02/CompanySet('1000')?$format=json'''response = session.get(SERVICE_URL)# 获取请求的结果status_code = response.status_code # 获取响应的状态码content = response.text # 获取响应的内容if status_code == 200: item = json.loads(content)["d"] print(item["Bukrs"], item["Butxt"])
#查询单公司下所有工厂print("查询单公司下所有工厂", "=" * 100)SERVICE_URL = '''http://xxxxxxxxx/sap/opu/odata/SAP/ZTEST_ODATA_SRV_02/CompanySet('1000')/CompanyToPlantNav?$format=json'''response = session.get(SERVICE_URL)# 获取请求的结果status_code = response.status_code # 获取响应的状态码content = response.text # 获取响应的内容if status_code == 200: for item in json.loads(content)["d"]["results"]: print(item["Bukrs"], item["Werks"],item["Name1"])
结果如下
方法二
使用requests&pyodata库,直接pip安装,文档可见https://pyodata.readthedocs.io/en/latest/usage/querying.html
import requestsimport pyodata
SERVICE_URL = '''http://xxxxxxx/sap/opu/odata/SAP/ZDATA_PLANT_SRV'''
结果如下