NCC直接查询和参照查询的结果不一致通过spr日志解决问题罗嘉1、引言有些产品的操作问题,从前台很难发现问题原因。但是通过spr日志确能很快的发现和解决问题。2、应用场景及问题描述客户反馈单据管理节点里,通过查询按钮,直接查询付款单D32022082200001181,查询不到记录。但是应付单参照参照付款单时就能查询到对应的付款单。3、解决方案1)分析Spr日志录制单据管理查询付款单的spr日志,以及应付单参照查询付款单的spr日志。可以将对应的查询语句进行对比,找到问题原因。为了更易于找到语句,在查询的时候,加上单据编码,之后搜索的时候就能方便找语句。以下是相关日志文件,付款单无法找到单据标号为D32022082200001181的单据.html付款单直接查询:SELECTDISTINCTap_paybill.pk_paybill,ap_paybill.billdate,ap_paybill.billnoFROMap_paybillap_paybillWHERE(ap_paybill.pk_org='0001A110000000003JGC'AND(ap_paybill.billdate>='2022-01-0100:00:00'andap_paybill.billdate<='2023-12-3123:59:59')ANDap_paybill.billnolike'%D32022082200001181%')ANDap_paybill.billstatus<>9ANDap_paybill.isinit='N'ANDap_paybill.pk_group='0001A110000000000C53'ANDap_paybill.dr=0ORDERBYap_paybill.billdate,ap_paybill.billno应付单参照付款单生成单据.html应付单参照查询:select(ap_payitem.pk_payitem)fromap_payitemwherepausetransact='N'andmoney_bal!=0andoccupationmny!=0andpk_paybillin(selectdistinct(ap_paybill.pk_paybill)fromap_paybillap_paybillwhere(ap_paybill.pk_org='0001A110000000003JGC'AND(ap_paybill.billdate>='2022-01-0100:00:00'andap_paybill.billdate<='2022-12-3123:59:59'))andap_paybill.dr=0andap_paybill.effectstatus=10andnvl(ap_paybill.saga_frozen,0)=0andap_paybill.pk_group='0001A110000000000C53')对比这两个语句,看看付款单管理查询不到单据,是因为哪个条件。对比就会发现,应付单管理查询的spr日志语句多了两个where条件。ap_paybill.billstatus<>9未确认ANDap_paybill.isinit='N'期初标志ap_paybill.isinit是期初标志,=N代表付款单管理查询时,不包含期初单据。ap_paybill.billstatus是单据标志。<>9代表付款单查询时,不包含未确认的单据。之后有条件可以在sql中逐个删掉这两个where语句查询,看看查询结果。2)解决方案知道原因后,解决方案就很简单。在付款期初节点,能查询到相关单据。出现该问题的原因就是单据是期初单据,不能在单据管理里直接查询到。