如何确定BKPF/BSEG表中的凭证是否为清算凭证

2020-09-01 12:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在对程序进行性能优化,并且它...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在对程序进行性能优化,并且它对BSAS进行了查询。 根据此查询,开发人员正在从BSAS中选择​​带有公司代码和文件编号(BSAS-AUGBL)的文件,以检查输入文件是否为清算文件。

此查询非常慢。 我可以将HKONT添加到查询中以略微改善查询。
查询的命中率仍为1%(意味着100个文档,一个文档是一个清算文档)。 我想知道是否有更简单的方法来识别输入文档是否正在清除文档。

6条回答
木偶小白
2020-09-01 13:30
确定要使用的所有文档 此FI凭证编号作为清算凭证

 选择bsas〜bukrs bsas〜augbl bsas〜gjahr bsas〜belnr bsas〜buzei bsas〜shkzg bsas〜dmbtr bsas〜hkont bkpf〜awkey
 进入表it_clear
 来自bsas INNER JOIN bkpf
 在bsas〜bukrs = bkpf〜bukrs和
 bsas〜belnr = bkpf〜belnr与
 bsas〜gjahr = bkpf〜gjahr
 其中bsas〜bukrs = v_bukrs和bsas〜augbl = v_belnr。

 如果sy-subrc <> 0。
 选择bsad〜bukrs bsad〜augbl bsad〜gjahr bsad〜belnr bsad〜buzei bsad〜shkzg bsad〜dmbtr bsad〜hkont bkpf〜awkey
 进入表it_clear
 从bsad内部联接bkpf
 在bsad〜bukrs = bkpf〜bukrs和
 bsad〜belnr = bkpf〜belnr与
 bsad〜gjahr = bkpf〜gjahr
 其中bsad〜bukrs = v_bukrs和bsad〜augbl = v_belnr。
 万一。

 

Eli,谢谢您的回复。 该程序相当老,上面的查询占用了90%以上的执行时间。

程序具有以下步骤

1)从BSIS/BSAS和BSID/BSAD中提取数据

2)对于所选的每个记录(来自上表的提示),执行以上查询。 BSAS查询需要将近2秒钟

如果我将HKONT添加到查询中,则性能确实可以提高到0.1秒(相比之下为2秒)。 我只是想知道是否还有其他方法可以根据文档类型或其他因素确定文档是否为"正在清除"文档。

一周热门 更多>