1、报错信息。
2、原因剖析。
异常的单据转换的配置如下图所示,将单据体的费用承担部门携带到了下游收款单的源单明细上。
收款单上游的其他应收单是QTYSD00000002,但是报错提示的单号是QTYSD00000003。
因为系统是使用其他应收单的单据头来核销,故会用全流程表里记录的其他应单的内码(明细内码)去匹配其他应收单的单据头的内码,就会匹配到其他的单据(如下图所示)。匹配情况可能有以下三种:
a. 匹配到的单据的金额大于欲审核的收款单的金额,则收款单能够审核成功,且二者会核销(但此时核销的是错乱的)。
b. 若匹配到的单据的金额小于欲审核的收款单的金额,则收款单审核不了,或报错,如第一部分报错信息所示。
c. 若匹配不到单据,则收款单能够审核成功,但是审核后不会自动核销。
由于以上原因,其他应收单下推收款单,不支持携带明细页签的字段。
3、建议解决方法。
3.1 收款单已审核。
针对已经审核的收款单,可以将其他应收单和收款单的核销记录(T_AR_RECMACTHLOG的FISJOINMATCH字段)改成手工核销,然后从核销记录中反核销掉这部分数据,再将其他应收单和收款单做手工匹配核销,以使核销关系能够一一对应。参考脚本如下:
select t1.FISJOINMATCH,t1.FID --update t1.FISJOINMATCH=0 from T_AR_RECMACTHLOG t1 left join T_AR_RECMACTHLOGENTRY t2 on t2.fid=t1.fid and t2.FSOURCEFROMID='AR_RECEIVEBILL' where t2.FSRCBILLNO in ( select a.FBILLNO from T_AR_RECEIVEBILL a left join T_AR_RECEIVEBILLSRCENTRY c on c.fid=a.fid inner join T_AR_RECEIVEBILLSRCENTRY_LK d on d.FENTRYID=c.FENTRYID and d.FSTABLENAME like 'T_AR_OtherRecAble%' where d.FSBILLID<>d.FSID )
3.2 收款单未审核。
若考虑升级到PT-146884 [7.7.0.202108]或更高版本,从7.7.0.202108版本已经开始支持使用其他应收单明细下推收款单或收款退款单。升级后的其他应收单单据头添加了【按费用项目明细收款】字段,如勾选此字段,则是使用用明细下推的单据转换,可以在按明细收款的单据转换中配置需要的字段携带关系。
若不考虑升级,则需要先修改单据转换,将自定义字段添加在其他应收单的单据头,然后重新下推收款单,将需要携带的字段从单据头向收款单携带。
推荐阅读