目录
一、问题描述
因定义总账连接中的汇总过程未配置导致明细账分类凭证(/BA1/HFSPD)和临时总账凭证(/BA1/HFGPD)的链接表(/BA1/HFGLC)中缺失了数据,因此子账到总账的查询报表无法查出这部分数据,但是使用FB03单独查询缺失了/BA1/HFGLC数据的总账凭证,点击最上方导航栏的凭证环境->原始凭证是可以查询到明细分类账日记账分录的。
二、需求
补全账到总账的查询报表查询不到的部分数据
三、程序调整
1.研究标准功能
对FB03查询出凭证后最上方导航栏的凭证环境->原始凭证功能进行DEBUG,以及使用ST05等功能进行协助,最后发现了当连接表(/BA1/HFGLC)缺失数据后标准功能会从以下表中进行关联取数:
表名 | 描述 |
/BA1/HFSPD | 明细分类账凭证 |
/BA1/HFGPD | 临时总账凭证 |
/BA1/BR_GLC_STAT | 总帐连接的状态管理 |
/BA1/FC_PCD_RUN | 过程 |
ACDOCA | 通用日记帐分录行项目 |
连接表(/BA1/HFGLC)未缺失数据时,关联以下表:
表名 | 描述 |
/BA1/HFSPD | 明细分类账凭证 |
/BA1/HFGLC | 链接表 |
ACDOCA | 通用日记帐分录行项目 |
2.SQL逻辑
缺失数据取数逻辑:
SELECT DISTINCT
t2~/ba1/c551gent,
t1~/bal/c55bukrs AS bukrs,.
t1~/ba1/c55postd AS budat,
t1~/ba1/c55docnum,
t2~/ba1/c55docnum AS /ba1/c55docngl,
t2~/ba1/c55accsy,
t3~belnr
FROM /ba1/hfspd AS t1
INNER JOIN /ba1/hfgpd AS t2
ON t1~/1ba/zbank = t2~/1ba/zbank
AND t1~/1ba/zchan = t2~/1ba/zchan
AND t1~/1ba/zdist = t2~/1ba/zdist
AND t1~/1ba/zfund = t2~/1ba/zfund
AND t1~/1ba/zgroup = t2~/1ba/zgroup
AND t1~/1ba/zinv = t2~/1ba/zinv
AND t1~/1ba/zplan = t2~/1ba/zplan
AND t1~/1ba/zportf = t2~/1ba/zportf
AND t1~/1ba/zrank = t2 /1ba/zrank
AND t1~/1ba/zrein = t2~/1ba/zrein
AND t1 /ba1/c35btsrc = t2 /ba1/c35btsrc
AND t1~/ba1/c35revind = t2 /ba1/c35revind
AND t1 /ba1/c55accsy = t2~/ba1/c55accsy
AND t1~/ba1/c55blart = t2~/ba1/c55blart
AND t1~/ba1/c55bukrs = t2~/ba1/c55bukrs
AND t1~/ba1/c55coarea = t2~/ba1/c55coarea
AND t1~/ba1/c55cocntr = t2~/ba1/c55cocntr
AND t1~/ba1/c55comp = t2~/ba1/c55comp
AND t1~/ba1/c55docdat = t2~/ba1/c55docdat
AND t1~/ba1/c55invind = t2~/ba1/c55invind
AND t1~/ba1/c55lgent = t2~/ba1/c55lgent
AND t1~/ba1/c55pbukrs = t2~/ba1/c55pbukrs
AND t1~/ba1/c55pcomp = t2~/ba1/c55pcomp
AND t1~/ba1/c55postd = t2~/ba1/c55postd
AND t1~/ba1/c55prcsct = t2~/ba1/c55prcsct
AND t1~/bal/c55resind = t2~/bal/c55resind
AND t1~/ba1/c55year = t2~/ba1/c55year
AND t1~/ba1/c55yper = t2~/ba1/c55yper
AND t1~/ba1/c80bussg = t2~/ba1/c80bussg
AND t1~/bal/c80pbussg = t2~/ba1/c80pbussg
AND t1~/ba1/cp0partpc = t2~/ba1/cp0partpc
AND t1~/ba1/cp0prfctr = t2~/ba1/cp0prfctr
AND t1~/ba1/ichrt_accts = t2~/ba1/ichrt_accts
AND t1~/ba1/igl_account = t2~/ba1/igl_account
AND t1~/ba1/obj_curr = t2~/ba1/obj_curr
AND t1~/bic/zacbckty = t2~/bic/zacbckty
AND t1~/bic/zsousysid = t2~/bic/zsousysid
INNER JOIN /ba1/br_glc_stat AS t4
ON t2~/ba1/c55docnum = t4~/ba1/c55docnum
INNER JOIN /ba1/fc_pcd_run AS t5
ON t4~/ba1/c77runid = t5~run_id
AND t1~/ba1/cr0tstmp BETWEEN t5~ts_low AND t5~ts_high
LEFT JOIN acdoca AS t3
ON t2~/ba1/c55docnum = concat( t3~awref,t3~aworg )
WHERE t1~/ba1/c55bukrs IN @s_lgent
AND t1~/ba1/c55postd IN @s_postd
AND t1~/ba1/c55accsy IN @s_accsy
AND t1~/ba1/c55docnum IN @s_docno
AND t2 /ba1/igl_account NE '9999999999'
APPENDING TABLE @DATA(lt_hfspd)
未缺失数据取数逻辑:
SELECT DISTINCT
t2~/ba1/c551gent,
t1~/bal/c55bukrs AS bukrs,.
t1~/ba1/c55postd AS budat,
t1~/ba1/c55docnum,
t2~/ba1/c55docngl,
t2~/ba1/c55accsy,
t3~belnr
FROM /ba1/hfspd AS t1
INNER JOIN /ba1/hfglc AS t2
ON t1~/ba1/c55postd = t2~/ba1/c55postd
AND t1~/ba1/c55lgent = t2~/ba1/c55lgent
AND t1 /ba1/c55accsy = t2~/ba1/c55accsy
AND t1~/ba1/c55docnum = t2~/ba1/c55docnum
LEFT JOIN acdoca AS t3
ON t2~/ba1/c55docngl = concat( t3~awref,t3~aworg )
WHERE t1~/ba1/c55bukrs IN @s_lgent
AND t1~/ba1/c55postd IN @s_postd
AND t1~/ba1/c55accsy IN @s_accsy
AND t2~/ba1/c55docnum IN @s_docno
APPENDING TABLE @DATA(lt_hfspd)
注意:当配置正确时,/BA1/HFGLC存在值,则/BA1/FC_PCD_RUN中时戳不会存在ts_low和ts_high,即不能只用缺失数据的逻辑查整个项目数据。
四:补充
定义总账连接配置路径:
SPRO->SAP用户化实施指南->金融产品明细分类账->明细分类账会计->基本设置->总账集成->定义总账连接