WebApi.常见问题.值更新和实体服务规则的区别
【场景】webapi 值更新和实体服务的区别,如果没有搞清楚更新逻辑,那么很容易会导致单据数据丢失
【省流结论】
webapi本质上就是模拟前端录入,只要你传了对应字段,其效果就等同于一次前端请求。
只要json中包含对应字段,就会触发值更新事件;
json中包含对应字段,且对应字段的值有变更,才会触发实体服务规则
【前置背景】
[BOS.常见问题.值更新和实体服务 针对值没有变化时的区别](https://vip.kingdee.com/article/584392729446979584)
【值更新和实体服务规则 效果演示】
(0)值更新事件,不管值是否变更,都会执行
录屏中分别为四步,json如下:
```json
-- 0 新建保存单据,有组织和物料;
"Model": {
"FID": 0,
"FBillNo": "testbill 101",
"FOrgId_DataChanged": {
"FNumber": "101"
},
"FMaterial_DataChanged": {
"FNUMBER": "1.01.001"
}
}
-- 1 使用内码和组织修改,物料被清空;(修改组织,触发值更新)
"Model": {
"FID": 100028,
"FOrgId_DataChanged": {
"FNumber": "102"
}
}
-- 2 补充录入物料;
"Model": {
"FID": 100028,
"FOrgId_DataChanged": {
"FNumber": "102"
},
"FMaterial_DataChanged": {
"FNUMBER": "0.0000.01"
}
}
-- 3 使用内码和组织修改,其中组织不变,物料被清空;(组织不变,触发值更新)
"Model": {
"FID": 100028,
"FOrgId_DataChanged": {
"FNumber": "102"
}
}
```
![20240531 1530.webp](/download/0100792607af1bf64507b1c0e9cfa774c95e.webp)
(1)实体服务规则,只有值变化时才会执行
```json
-- 0 新建保存单据,有组织和物料;
"Model": {
"FID": 0,
"FBillNo": "testbill 202",
"FOrgId_EntityService": {
"FNumber": "101"
},
"FMaterial_EntityService": {
"FNUMBER": "1.01.001"
}
}
-- 1 使用内码和组织修改,物料被清空;(修改组织,触发实体服务规则)
"Model": {
"FID": 100029,
"FOrgId_EntityService": {
"FNumber": "102"
}
}
-- 2 补充录入物料;
"Model": {
"FID": 100029,
"FOrgId_EntityService": {
"FNumber": "102"
},
"FMaterial_EntityService": {
"FNUMBER": "0.0000.01"
}
}
-- 3 使用内码和组织修改,其中组织不变,物料保留;(组织不变,触发值更新)
"Model": {
"FID": 100029,
"FOrgId_EntityService": {
"FNumber": "102"
}
}
```
![20240531 1541.webp](/download/01003989acd1a3cb4f7189b914204a8577d4.webp)
【结论】
(1)第三方系统中,最好仅将修改的值传给星空;而没有修改的值不要同步到星空;
避免星空可能出现修改导致的第三方系统和星空不一致,且最终被第三方系统覆盖的场景。
(2)如果无法做到将仅修改值传给星空,那么需要第三方系统和星空数据一致,且确保使用正确的字段更新逻辑(值更新、实体服务),避免导致出现字段被清空的逻辑
WebApi.常见问题.值更新和实体服务规则的区别
【场景】webapi 值更新和实体服务的区别,如果没有搞清楚更新逻辑,那么很容易会导致单据数据丢失【省流结论】webapi本质上就是模拟前端录...
点击下载文档
本文2024-09-23 04:10:40发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163632.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章