#不引用金蝶组件的方法
from datetime import date
import requests
import json
Login ="https://你的服务器地址/K3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc"#登录连接
url = "https://你的服务器地址/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc"#单据查询连接
headers = {'Content-Type': 'application/json'} # 这是常见的设置,表示发送的数据是JSON格式
# 发送POST请求并传递数据
session = requests.Session()#创建Session对象
Logindata = {"AcctID":"数据中心ID","UserName":"用户名","Password":"密码","Lcid":"2052"}#登录的JSON请求参数,固定格式,数据中心ID、 用户名、 密码 、自己填写
Josn={"data":{"FormId":"SAL_SaleOrder",
"FieldKeys":"FBillNo,FDocumentStatus,FMaterialId.Fnumber,FQty",
"FilterString":"FCloseStatus='A' and FDocumentStatus in ('D')",
"OrderString":"","TopRowCount":0,"StartRow":0,"Limit":50,"SubSystemId":""}}#查询的JSON请求数据,例如:这里使用的销售订单查询,你也可以是即时库存的请求参数
response = session.post(Login, Logindata)#发送登录
login_data=response.json()#获取登录结果
loginStatus=login_data["LoginResultType"]#获取登录状态
if loginStatus ==1:#成功登录
response = session.post(url, headers=headers,data=json.dumps(Josn))#发送查询
data = response.json()#获取查询结果
count=len(data)#获取查询总行数
print("序号","单据编号","单据状态","物料编码","销售数量")
for i in range(count):#循环打印
print(i,data[i])
else:
print("登录失败,没有查询到数据")
##################################################################################
创建Python项目前如果安装VS2022的时候,没有预装,就需要先安装Python
运行:"C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" 也可运行默认地址打开安装程序
点击 启动 就可以执行:
支持断点调试
注意,默认需要你自己安装request 跟json 库,安装后必须重启电脑
运行方式也可以通过CMD命令执行,这样就当作中间件,可以做一些其他的定时任务或者数据同步
##################################################################################
#引用金蝶组件的方法
如果要使用金蝶标准SDK组件 from k3cloud_webapi_sdk.main import K3CloudApiSdk
在项目--右键--打开此处的命令提示符
然后安装金蝶sdk组件
下载并安装k3cloud_webapi_sdk
使用pip安装指令格式:pip install {后缀为.whl的SDK包文件的本地完整目录}
例如:
pip install F:\Python\kingdee.cdp.webapi.sdk-8.0.4-py3-none-any.whl
官方sdk下载连接
https://openapi.open.kingdee.com/ApiSdkCenter
#以下是调用金蝶组件简单示例
#!/usr/bin/python
# -*- coding:GBK -*-
import json
from k3cloud_webapi_sdk.main import K3CloudApiSdk
import time
import unittest
import logging
api_sdk = K3CloudApiSdk()
api_sdk.InitConfig('账套id', '第三方登录用户名', 'app_id,', 'app_secret')#注意,公有云不需要传ServerUrl,私有云要
#单据查询接口-即时库存
print(api_sdk.ExecuteBillQuery(
{
"FormId": "STK_Inventory",
"FieldKeys": "FMaterialid.FNumber",
"FilterString": "",
"OrderString": "",
"TopRowCount": 0,
"StartRow": 0,
"Limit": 100,
"SubSystemId": ""
}))
运行