轻流 x 金蝶云星空
应用场景
通过轻流应用表单实现与金蝶云星空进行对接
目前接口支持:
- 暂存:draft :不会触发金蝶数据校验
- 保存:save :会触发金蝶的数据校验,保存失败
- 提交:submit:提交数据
- 审核:audit :审批
- 反审核:un_audit
- 查看:view:查看单条数据详细信息
- 下推:push:下推数据
- 单据查询:executeBillQuery :返回某一张表单的所有数据(可筛选)
- 财务报表查询:getSysReportData:查询金蝶财务报表数据
以下图为例:

与金蝶的大致交互路径:

ps:
公有云环境下,连接金蝶需要确保所连接的金蝶可以在外网环境下访问,否则无法进行连接。
私有化环境下,需要部署对应的连接器,然后根据运维提供的访问地址进行对接金蝶。
落地方案

图文/视频演示
帮助文档
一、进行第三方登录授权操作
具体金蝶授权文档:
需要获取到的参数:
- dcId:数据中心ID(帐套ID)
- appId:应用ID
- appSecret:应用密钥
- username:集成用户
- serverUrl:k3cloud服务地址,需要后缀/k3cloud,公有云8.1版本以上可以不用传值即可
- lcId:默认值2052
具体位置可以看下方两张图:


二、获取access_token
请求头(Header)
| 参数 | 是否必填 | 说明 |
|---|---|---|
| accessToken | 是 | 企业版客户需要试用请联系轻流技术支持申请token,试用token可以调用500次接口购买企业版客户,首次有10000次使用额度,后续使用完可联系客户成功人员进行增购。专有云/私有化客户,运维会单独提供token进行使用。 |
三、查询金蝶的单据数据
-
接口说明:用户调用金蝶各种类型的单据查询接口
-
接口地址:
-
公有云接口地址:https://connect.oalite.com/api/k3cloudApi/executeBillQuery
-
私有化/专有云接口地址:https://xxxx.xxxx.xxx/k3cloudApi/executeBillQuery
-
请求方式:POST
-
请求头(Header):accessToken
-
请求体(body):
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
| params | object | ||
| formId | 是 | string | 业务对象表单Id |
| fieldKeys | 是 | string | 需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录)注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId) |
| filterString | 是 | string | 过滤条件,如:"FDATE>='2022-10-01' AND (FStatus='4' OR FStatus='3')" |
| orderString | 是 | string | 排序字段,字符串类型(非必录) |
| topRowCount | 是 | int | 返回总行数,整型(非必录),默认为0 |
| startRow | 是 | int | 开始行索引,整型(非必录),默认为0 |
| limit | 是 | int | 最大行数,整型,默认为0,不能超过10000(非必录) |
| userInfo | object | 用户信息 | |
| dcId | 是 | string | 数据中心ID(账套ID) |
| appId | 是 | string | 应用ID |
| appSecret | 是 | string | 应用密钥 |
| username | 是 | string | 集成用户 |
| serverUrl | 是 | string | k3cloud服务地址,需要后缀/k3cloud |
| lcId | 是 | int | 默认值2052 |
- 请求示例:
curl --location 'https://connect.oalite.com/api/k3cloudApi/executeBillQuery' \
--header 'accessToken: 5276e36e1a2340ff86592****' \
--header 'Content-Type: application/json' \
--data '{
"params": {
"formId": "PRD_MO",
"filterString": "FDATE>='2022-10-01' AND (FStatus='4' OR FStatus='3')",
"filedKeys": "FStatus,FBillNo,FBillType.FName,FDate,FDocumentStatus.FCaption,FWorkShopID0,FPrdOrgId.FName,FPlannerId,FWorkGroupId,FDescription,FQty",
"limit": 0,
"startRow": 0,
"topRowCount": 0,
"orderString": ""
},
"userInfo":{
"dcId":"20180*****3818",
"appId":"218084_5Y7I78HH7vn/X*******TcWsnJ",
"appSecret":"f413f4ab7dd34b0e8f97944****862d",
"username":"qingliu",
"serverUrl":"https://haohai.ik3cloud.com/k3cloud",
"lcId":2052
}
}'
- 响应示例
{
"errCode": 0,
"data": [
{
"FBillNo": "SCYL2022111669",
"FPickedQty": 0.0,
"FMustQty": 0.0,
"FEntity_Link_FSBillId": "",
"FMaterialID2.FNumber": "10.03.02.341",
"FEntity_FEntryId": 131754,
"FMOBillNO": "SCDD2022111040",
"FMOEntryID": 102404,
"FLot": 0,
"FMoEntrySeq1": 1,
"FOptQueue": "0",
"FSaleOrderEntryId": 0,
"FOperID": 10,
"FWorkShopID": 170850,
"FSaleOrderId": 0,
"FReplaceGroup": 1,
"FMoBillNo1": "SCDD2022111040",
"FMaterialModel": "Horn-X2 Pro V1.6 3.2kg 无logo",
"FBOMID.FName": "12.04.01.006",
"FID": 102309,
"FMaterialId": 326879,
"FParentOwnerTypeId": "BD_OwnerOrg",
"FMaterialModel1": "192.6*157*78mm AL6061 减重 供应商代码",
"FReqSrc": " ",
"FSupplyType.FCaption": "",
"FParentOwnerId.FNumber": "100",
"FMaterialID.FNumber": "12.04.01.006",
"FMaterialName": "Pro V1.6 3.2kg",
"FUnitID2": 109434,
"FSALEORDERNO": " ",
"FEntity_Link_FSId": "",
"FMoId": 102015,
"FSaleOrderEntrySeq": 0,
"FMaterialType.FCaption": "标准件"
},
{
"FBillNo": "SCYL2022111669",
"FPickedQty": 0.0,
"FMustQty": 70.0,
"FEntity_Link_FSBillId": "",
"FMaterialID2.FNumber": "10.03.02.294",
"FEntity_FEntryId": 131755,
"FMOBillNO": "SCDD2022111040",
"FMOEntryID": 102404,
"FLot": 0,
"FMoEntrySeq1": 1,
"FOptQueue": "0",
"FSaleOrderEntryId": 0,
"FOperID": 10,
"FWorkShopID": 170850,
"FSaleOrderId": 0,
"FReplaceGroup": 1,
"FMoBillNo1": "SCDD2022111040",
"FMaterialModel": "Horn-X2 Pro V1.6 3.2kg 无logo",
"FBOMID.FName": "12.04.01.006",
"FID": 102309,
"FMaterialId": 326879,
"FParentOwnerTypeId": "BD_OwnerOrg",
"FMaterialModel1": "192.6*157*78mm AL6061 减重",
"FReqSrc": " ",
"FSupplyType.FCaption": "",
"FParentOwnerId.FNumber": "100",
"FMaterialID.FNumber": "12.04.01.006",
"FMaterialName": "Pro V1.6 3.2kg",
"FUnitID2": 109434,
"FSALEORDERNO": " ",
"FEntity_Link_FSId": "",
"FMoId": 102015,
"FSaleOrderEntrySeq": 0,
"FMaterialType.FCaption": "替代件"
},
{
"FBillNo": "SCYL2022111669",
"FPickedQty": 0.0,
"FMustQty": 0.0,
"FEntity_Link_FSBillId": "",
"FMaterialID2.FNumber": "10.03.02.342",
"FEntity_FEntryId": 131756,
"FMOBillNO": "SCDD2022111040",
"FMOEntryID": 102404,
"FLot": 0,
"FMoEntrySeq1": 1,
"FOptQueue": "0",
"FSaleOrderEntryId": 0,
"FOperID": 10,
"FWorkShopID": 170850,
"FSaleOrderId": 0,
"FReplaceGroup": 2,
"FMoBillNo1": "SCDD2022111040",
"FMaterialModel": "Horn-X2 Pro V1.6 3.2kg 无logo",
"FBOMID.FName": "12.04.01.006",
"FID": 102309,
"FMaterialId": 326879,
"FParentOwnerTypeId": "BD_OwnerOrg",
"FMaterialModel1": "183*157*48mm AL6061 减重 供应商代码",
"FReqSrc": " ",
"FSupplyType.FCaption": "",
"FParentOwnerId.FNumber": "100",
"FMaterialID.FNumber": "12.04.01.006",
"FMaterialName": "Pro V1.6 3.2kg",
"FUnitID2": 109434,
"FSALEORDERNO": " ",
"FEntity_Link_FSId": "",
"FMoId": 102015,
"FSaleOrderEntrySeq": 0,
"FMaterialType.FCaption": "标准件"
}
],
"errMsg": null
}
注意:对于获取金蝶单据数据,如果想要将数据获取到表格中,就使用q-linker获取。如果想要将数据存放在应用中,就使用Q source主动进行获取。具体场景看具体使用。这里是以QS主动为例
1、postman测试
- 具体先在postman测试成功之后,再将具体配置移至到轻流中

2、QS主动配置获取单据数据
- 表单设计具体接收返回的参数内容,这里简单举例获取单据数据中的FBillNo、FBillTypeID.FName

- 轻流QS主动配置信息
- QS主动说明:https://help.qingflow.com/help-docs?type=qingCode&docId=392ae32f64245c50001bc7f07deaee9e&parentId=






3、实际效果
- 这里我点击手动运行,看下具体效果,其中申请人会默认以管理员身份
四、保存/暂存金蝶表单数据
-
接口说明:用户调用金蝶保存/暂存接口进行表单数据保存
-
接口地址:
-
公有云接口地址:https://connect.oalite.com/api/k3cloudApi/save(draft)
-
私有化/专有云接口地址:https://xxxx.xxxx.xxx/k3cloudApi/save(draft)
-
请求方式:POST
-
请求头(Header):accessToken
-
请求体(body):
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
| params | 是 | object | |
| formId | 是 | string | 业务对象表单Id |
| data | 是 | object | |
| ...... | 具体保存/暂存传参,查阅金蝶对应接口文档https://openapi.open.kingdee.com/ApiDoc?operateId=916006752541657090 | ||
| userInfo | object | 用户信息 | |
| dcId | 是 | string | 数据中心ID(账套ID) |
| appId | 是 | string | 应用ID |
| appSecret | 是 | string | 应用密钥 |
| username | 是 | string | 集成用户 |
| serverUrl | 是 | string | k3cloud服务地址,需要后缀/k3cloud |
| lcId | 是 | int | 默认值2052 |
- 请求示例
注意:金蝶中的基本字段对应轻流表格外字段,金蝶所有明细字段都需要放在轻流的表格内
{
"params":{
"formId":"PRD_FeedMtrl",
"data":{
"Model":{
"FID":0,
"FBillType":{
"FNUMBER":"SCBLD01_SYS"
},
"FDate":"2022-12-06 00:00:00",
"FStockOrgId":{
"FNumber":"100"
},
"FPrdOrgId":{
"FNumber":"100"
},
"FOwnerTypeId0":"BD_OwnerOrg",
"FEntity":[
{
"FParentMaterialId":{
"FNumber":"13.01.07.001"
},
"FReserveType":"1",
"FBaseStockActualQty":22,
"FMaterialId":{
"FNumber":"10.02.01.012"
},
"FUnitID":{
"FNumber":"ge"
},
"FAppQty":22,
"FActualQty":22,
"FStockId":{
"FNumber":".001"
},
"FStockStatusId":{
"FNumber":"KCZT01_SYS"
},
"FMoBillNo":"SCDD2022121070",
"FMoEntryId":102452,
"FOwnerTypeId":"BD_OwnerOrg",
"FStockAppQty":22,
"FStockActualQty":22,
"FMoId":102052,
"FMoEntrySeq":1,
"FBaseAppQty":22,
"FPPBomBillNo":"SCYL2022121706",
"FBaseUnitId":{
"FNumber":"ge"
},
"FStockUnitId":{
"FNumber":"ge"
},
"FEntryWorkShopId":{
"FNumber":"BM000003"
},
"FBaseActualQty":22,
"FOwnerId":{
"FNumber":"100"
},
"FEntrySrcInterId":102351,
"FEntrySrcBillType":"PRD_PPBOM",
"FEntrySrcBillNo":"SCYL2022121706",
"FParentOwnerTypeId":"BD_OwnerOrg",
"FParentOwnerId":{
"FNumber":"100"
}
}
]
}
}
},
"userInfo":{
"dcId":"20210222142620903",
"appId":"237748_249MRwvG3lrZ0VyG1d1qQzwI6I4X7qru",
"appSecret":"122b38c24b3f444fb39e2cc3ac204897",
"username":"轻流",
"serverUrl":"https://benewake.test.ik3cloud.com/k3cloud",
"lcId":2052
}
}
- 响应内容
{
"errCode": 0,
"data": {
"result": {
"id": "100341",
"responseStatus": {
"errorCode": null,
"errors": [],
"successEntitys": [
{
"dindex": 0,
"number": "SCBL00000292",
"billNo": null,
"id": "100341"
}
],
"isSuccess": true
}
},
"successfully": true
},
"errMsg": null
}
对于推送数据,主要使用的是轻流的webhook功能,所以这里就以上述做个简单配置
1、webhook配置保存金蝶表单数据
- 表单设计,这里只做简单配置演示,具体推送字段需要根据具体需求做判断




2、实际效果
完成配置后,点击保存发布后,后续发起表单数据,就会触发webhook,进行金蝶表单数据的保存操作
