
业务场景:dep在应付单实体的提交,审核,保存等后台方法添加后置脚本,脚本中报错或给出校验不通过给出提示时,单据操作回滚,发票云相关反写没有回滚

问题原因:dep后置脚本的执行在所有的业务方法执行之后,此处执行操作报错后只能回滚应付单审核事务本身,而对发票云系统的反写是在异构系统中进行的数据操作,和应付单操作不属于同一事务,因此无法回滚;由于此原因存在,业务代码在实现时一般将发票云系统反写的逻辑放在业务方法的最后,尽可能保证反写发票云后不会再抛出异常导致事务回滚

解决方案:现场未使用发票云系统则毫无影响;若使用发票云系统,应尽量将扩展的校验逻辑写在前置脚本中或二开代码中写在标准方法调用之前;如必须写在后置脚本或方法调用后,则应该再校验不通过时针对该方法中反写发票云的操作调用该操作的反向反写;
应付单反写发票云工具类方法:
保存提交反写-com.kingdee.eas.fi.arap.util.invoice.IncomeInvoiceServerUtils#updateInvoiceInfoAndBotp
删除反写-com.kingdee.eas.fi.arap.util.invoice.IncomeInvoiceServerUtils#delInvoiceInfoAnd