WebApi.常见问题.值更新和实体服务规则的区别

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

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本质上就是模拟前端录...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息