深入理解WebAPI工作原理及示例分析
1. WebAPI的工作原理
WebAPI的核心在于模拟录单过程。通过传入的Json数据包,逐一填充对应字段值,触发相关事件、实体服务和插件逻辑。构造完成后调用Save接口(提交、审核),并执行相应的操作校验和逻辑。
参考链接:
2. WebAPI示例与自测
登录Cloud系统,导航至基础管理 -> 动态服务定义 -> WebAPI 或直接搜索WebAPI关键字。

3. 特殊参数及常见问题
常见问题1:Json字段值保存失败
分析:
- 字段值不合法。测试方法:手动录入Json中的值。
- 字段顺序不正确导致覆盖。调整顺序即可。
- 插件或其他逻辑影响字段值。使用插件调试DataChange事件和保存事件。
常见问题2:销售套件业务仅第一行成功
原因:参数IsEntryBatchFill需设置为False,因为套件父项物料依赖前置字段产品类型,不适用批量填充。
常见问题3:负库存提示
原因:由于WebAPI无法支持交互弹出界面,需要设置参数InterationFlags为"STK_InvCheckResult"。
其他可能的交互校验忽略标识:
预计可发量检查: Sal_ExpectQtyCheckDetail
最低限价检查: SAL_DOWNPRICECHECK
允许负库存: STK_InvCheckResult
价格来源检查: SAL_CHECKPRICESOURCEFB
常见问题4:自动建立上下游关联关系
解决方案:WebAPI保存接口实现上下游关联
常见问题5:未购买模块提示
原因分析:某些单据需要购买相关模块才能使用。解决方案是根据已购买模块设置SubSystemId参数。例如,销售管理子系统ID为23。
常见问题6:物料不合法导致分录行缺失
原因分析: 未启用IsVerifyBaseDataField参数导致不会校验基础资料合法性。开启该参数可以进行校验,但会影响性能。此外,由于大部分单据BOS设置分录属性为关键字段,因此物料未录入时会被自动删除。
常见问题7:修改保存单据Json构造
修改保存单据无需构造复杂字段,只需提供FID和FEntryId以及需要修改的字段:
{
"NeedUpDateFields": [],
"NeedReturnFields": [],
"IsDeleteEntry": "True",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "True",
"Model": {
"FID": "188888",
"FSaleOrderEntry": [
{"FEntryId": "255555", "FQty": "3"}
]
}
}
4. WebAPI对接性能优化建议
优化点1: 精简Json构造,仅保留必要字段,例如单位、计价单位、税率等自动携带的字段无需构造。
优化点2: 避免触发取价服务和取折扣服务。如果Json中已有价格,则无需触发这些耗时操作。
5. 超高性能大数据量对接方案与建议
大数据量对接建议步骤:
- 将第三方数据对接到ERP中间表,中间表仅包含简单字段及状态字段。
- 数据分批通过执行计划对接,通过ERP执行计划插件进行少量多次处理。
Copyright Notice
The article "深入理解WebAPI工作原理及示例分析" is original content owned by 广东轻亿云软件科技有限公司. Reposting, quoting, copying or mirroring is strictly prohibited without written authorization. Please contact us for authorization and credit the author and source (including the original link) prominently.