通过python和postman调用WebApi给单据上传附件原创
金蝶云社区-碎银几两
碎银几两
3人赞赏了该文章 114次浏览 未经作者许可,禁止转载编辑于2023年11月09日 17:33:13

【业务场景】

通过WebApi给单据上传附件。

下面会介绍怎么通过python和postman调用webapi。


【开发教程及示例】

一、操作步骤

  1. 如何设置单据菜单栏上的附件功能,在审核后仍然可以使用?

        在附件菜单控制里面把锁定的勾选去掉即可。


2. 通过python上传附件代码示例

import requests
import json
import os
import base64  

api_cookies = {}

''' 
账号登录 
acctID: 账套Id,从管理中心数据库查询获得, 参考查询:select FDATACENTERID from T_BAS_DATACENTER
username:用户名
password:密码
url:登录接口地址
'''
def login(acctID, username, password, url):    
    payload = {
        'acctID': acctID,
        'username': username,
        'password': password,
        'lcid': '2052'
    }
    response = requests.request("POST", url, data=payload)
    global api_cookies
    api_cookies = response.cookies
    print('登录接口返回值:')
    print(response.text)

def file_to_base64(file_path):  
    with open(file_path, 'rb') as f:  
        return base64.b64encode(f.read()).decode()

'''
上传附件
file_path:附件文件完整路径
form_id:要上传附件的业务对象标识
bill_no:单据编号
inter_id:要上传附件的业务对象单据表主键值
url:上传附件接口地址
'''
def upload_attachment(file_path, form_id, bill_no, inter_id, url):
    filename = os.path.basename(file_path)
    send_byte = file_to_base64(file_path)
    payload = json.dumps({
      "data": {
        "fileName": filename,
        "FormId": form_id,
        "InterId": inter_id,
        "BillNO": bill_no,
        "isLast": True,
        "fileId": "",
        "sendByte": send_byte
      }
    })
    headers = {
      'Content-Type': 'application/json'
    }
    s = requests.Session()
    s.cookies = api_cookies
    response = s.request("POST", url, headers=headers, data=payload)

    print('上传附件接口返回值:')
    print(response.text)

if __name__ == '__main__':
    # 请根据需要修改下面方法的参数
    login('账套id', '用户名', '密码', "https://云星空域名/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc")
    upload_attachment(R"E:\金蝶云星空WebAPI接口说明书_V6.0.docx", 'bos_FileTest', '1', '100003',"https://云星空域名/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.AttachmentUpLoad.common.kdsvc")



3. 使用postman上传附件

打开postman,解压下面的文件后导入

上传文件和附件接口示例.postman_collection.json.zip

修改请求信息



作者:cyoukon

来源:金蝶云社区

原文链接:https://vip.kingdee.com/article/510094920061839616?productLineId=1&isKnowledge=2

著作权归作者所有。未经允许禁止转载,如需转载请联系作者获得授权。


赞 3