单据转换.常见问题.启用新网控仍出现反写覆盖问题

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

单据转换.常见问题.启用新网控仍出现反写覆盖问题

【场景】启用新网控仍出现反写覆盖问题 ![image.webp](/download/01007b0fce82070e4e7b8859f708e81b923a.webp) 【背景知识】历史版本的反写网控和新版的反写网控实现 [业务流.案例.并发反写的实践和变通方案](https://wenku.my7c.com/article/407587269290352384?productLineId=1) 【新版反写网控】 <1>唯一约束控制 在实现新版网控时,是按照反写规则进行控制(物理表t_bf_networkctrl),通过业务对象+反写规则id+单据内码做唯一约束控制; <2>无法判断是否同一个操作导致,因此设计为不支持锁重入; 在代码块中,当启用了事务,先调用保存操作,而后调用审核操作时,审核操作不会再对保存时的反写规则进行网络控制,避免大事务内的操作,审核被保存所冲突; ```csharp --伪代码,无法判断审核操作与保存有关,当且仅当记录下事务ID时能够跟踪 --但是星空的事务嵌套非常复杂,所以没有这样的设计 using (KDTransactionScope scope = new KDTransactionScope(TransactionScopeOption.RequiresNew)) { var saveResult = BusinessDataServiceHelper.Save(this.Context, billBusinessInfo, billObjs); if(saveResult.IsSuccess): var auditResult = BusinessDataServiceHelper.Audit(this.Context,meta.BusinessInfo,pkArray,auditOption); scope.Complete(); } ``` 【原理】 由于设计的审核操作不会创建保存的反写网控,但实际上审核操作依然会计算保存时的反写,所以还是存在数据并发反写覆盖的原因 【数据准备】生产入库单反写生产订单,标准产品的反写规则(也可以通过Profiler监控) <1>验证保存操作,会创建新版网控 ![image.webp](/download/01009865fd64b44b49c7bf80ca168e3ccbfe.webp) ![image.webp](/download/01000e1cb22bfbcd4124bb3edba9c030eba1.webp) <2>验证审核操作,不会创建新版网控 ![image.webp](/download/0100ccafd95bcb0a47db92839463f961c415.webp) ![image.webp](/download/0100561c6c3ee41e4b9d902c7dc3041dd631.webp) 【问题原因】生产入库单反写生产订单,反写关联操作是保存,但是反写满足条件是单据状态为审核 ![image.webp](/download/01006b81ff7f4cd64dd7b308fd0daf99cfd3.webp) ![image.webp](/download/01000c9d7c4740e441839bf00fe6c07745df.webp) 【解决方案】 <1>避免在审核操作时,还需要反写保存的数据 反写规则中减少保存时不满足条件,审核的时候满足条件的数据反写逻辑 <2>无法控制反写规则的设计,那么增加一个关联审核操作的反写,确保审核时对应源单被网控控制 a)生产订单和生产入库单明细,均增加一个文本字段,用作反写 b)配置审核操作的反写规则,反写文本字段 c)反写规则启用新网控 ![image.webp](/download/0100944dbaa471424a1782abf535b1ceba31.webp) 【效果】审核时,会有新网控控制 ![image.webp](/download/0100806f56e418f64e098a979076aeef1212.webp) ![image.webp](/download/010033dcd69b0a6841c69d8430259dc62b6f.webp)

单据转换.常见问题.启用新网控仍出现反写覆盖问题

【场景】启用新网控仍出现反写覆盖问题![image.webp](/download/01007b0fce82070e4e7b8859f708e81b923a.webp)【背景知识】历史版本的反写网...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息