保存API引入问题排查指南
1 前言
本文档适用解决以下问题:
保存操作API会触发什么事件?
保存操作API,若API传了某个字段的值,但实际单据里为空或者其他值。
2 保存操作API触发事件
保存操作API属于数据引入,类似在页面上直接点保存按钮,引入时会触发以下事件:
2.1 保存按钮的操作插件或者配置的校验规则
2.2 单据表单或者单据体分录的业务规则
2.3 表单插件里的initImportData、beforeImportData、afterImportData方法;
2.4 API是否绑定了扩展插件
2.5 若在V2版本的保存操作API中,配置了参数firePropChanged为true,那么在更新数据时,会触发表单插件的值更新propertyChanged事件。
3 字段引入后,单据里字段却为空或者其他值时
首先有一个确定的前提,开放平台OpenAPI不会对原入参进行任何干预,已知保存操作API会触发的事件,那么建议按以下方法排查。
保存按钮的操作插件或者配置的校验规则 —— 查看是否跟引入的字段有关处理逻辑,或直接先禁用掉。
单据表单或者单据体分录的业务规则 —— 查看是否跟引入的字段有关处理逻辑,或直接先禁用掉。
表单插件里的initImportData、beforeImportData、afterImportData方法 —— 查看是否跟引入的字段有关处理逻辑或可先配置保存参数is_importinit为false,此时不会触发这三个引入方法(适用版本BOS V6.0.1),再进行调用API。
触发表单插件的值更新propertyChanged事件 —— 查看是否配置了保存参数firePropChanged为true。
API绑定了扩展插件 —— 查看是否跟引入的字段有关处理逻辑,或直接先禁用掉。
若在API引入时会触发的插件里对某个字段进行了赋值,表单页面可以正常触发赋值,但API引入时不生效,此时建议本地调试下,是否在赋值前方法就已经返回了。
查看表单该字段是否有对应的数据库字段。
通过字段的**字段标识**查看传的字段是否正确,避免**同名**的字段引入。
若该表单已经被扩展,那么扩展后的表单按上述方法都排查一遍。
4 代码里区分API的保存引入还是表单页面的保存引入
通过上下文RequestContext.get().getClient()判断是否为api。
RequestContext.get().getClient().equals("api");
保存API引入问题排查指南
本文2024-09-23 00:54:11发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142484.html