银行对帐单对帐报告SAP

问题描述

我被要求在SAP中创建银行对帐单分析。要求如下:

  1. 选择银行总帐帐户在日期范围内的所有变动
  2. 查找清算过帐
  3. 递归地追溯随后的清算,直到找到损益表或未清算过帐。

该报告应包含步骤3中的记录列表。

示例: 已付债权人发票

  1. 银行对帐单 借记银行付款清算帐户/贷记银行帐户
  2. 付款建议 借方债权人帐户/贷方银行付款清算帐户
  3. 凭证发票 借方成本损益帐户,增值税帐户/贷方债权人帐户

已收到债务人发票付款

  1. 银行对帐单 借记银行帐户/贷方债务人付款清算帐户
  2. 债务人清算 借方债务人清算帐户/贷方债务人帐户
  3. 债务人发票 借方债务人帐户/贷方损益收入帐户+增值税帐户

我可以从字段BSISHKONT的表BLDAT中按银行GL代码获取所有银行对帐单。

然后使用上一个查询中的AUGBLAUGDTBSAS使用表BELNR的清算凭证(GJAHRBUZEI)过帐

然后再次使用先前查询中的BELNRGJAHR(不包括清算文件)从BSAS重新获得发票文件(BUZEIAUGBLAUGDT

最后,使用BELNRGJAHRBUZEI(不包括债务人帐户)从表BSEG提取发票上的损益和增值税案

我的代码在上述简单情况下也能正常工作。但是,如果在首付,信用卡,银行手续费等更复杂的情况下,我总是会丢失一些记录,或者陷入无休止的循环。

通过查看表BSEG,我发现了另外两个字段AUGGJAGZEI,它们以某种方式关联了已清除文档的行。但是我无法确定逻辑。

例如,我在BSEG表中有以下记录:

+-------+------------+-------+------------+------------+-------+-------+-------+-------+-----------+----------+
| GJAHR |   BELNR    | ZUONR |   AUGDT    |   AUGBL    | KOART | AUGGJ | AGZEI | SHKZG |   DBRTR   |  WRBTR   |
+-------+------------+-------+------------+------------+-------+-------+-------+-------+-----------+----------+
|  2015 |  200000383 |     1 | 07.01.2015 |  200000383 | S     |  2015 |     1 | H     | 37.928,55 | 1.363,89 |
|  2015 |  200000383 |     2 | 07.01.2015 |  200000383 | S     |  2015 |     4 | S     | 37.670,64 | 1.363,89 |
|  2015 |  200000383 |     3 |            |            | S     |       |     0 | S     |    148,80 |     0,00 |
|  2015 |  200000383 |     4 |            |            | S     |       |     0 | S     |    109,11 |     0,00 |
|  2015 | 3100000583 |     1 | 07.01.2015 |  200000383 | S     |  2015 |     1 | S     | 51.522,00 | 1.860,00 |
|  2015 | 3100000583 |     2 |            |            | S     |       |     0 | H     | 51.522,00 |
|  2015 | 3100000585 |     1 | 07.01.2015 |  200000383 | S     |  2015 |     1 | S     | 37.779,75 | 1.363,89 |
|  2015 | 3100000585 |     2 |            |            | S     |       |     0 | H     | 37.779,89 |
|  2015 | 6000000227 |     1 | 07.01.2015 | 6000000227 | K     |  2015 |     2 | S     | 51.373,20 | 1.860,00 |
|  2015 | 6000000227 |     2 | 07.01.2015 |  200000383 | S     |  2015 |     1 | H     | 51.373,00 |
|  2015 | 6000000228 |     1 | 07.01.2015 | 6000000228 | K     |  2015 |     2 | S     | 37.670,89 |
|  2015 | 6000000228 |     2 | 07.01.2015 |  200000383 | S     |  2015 |     4 | H     | 37.670,89 |
+-------+------------+-------+------------+------------+-------+-------+-------+-------+-----------+----------+

以及BSAS表中的后续内容

+------------+-----------+-------+------------+-------+-------+-----------+----------+
|   AUGDT    |   AUGBL   | GJAHR |   BELNR    | ZUONR | SHKZG |   DMBTR   |  WRBTR   |
+------------+-----------+-------+------------+-------+-------+-----------+----------+
| 07.01.2015 | 200000383 |  2015 |  200000383 |     1 | H     | 37.928,89 |
| 07.01.2015 | 200000383 |  2015 |  200000383 |     2 | S     | 37.670,89 |
| 07.01.2015 | 200000383 |  2015 | 3100000583 |     1 | S     | 51.522,00 |
| 07.01.2015 | 200000383 |  2015 | 3100000585 |     1 | S     | 37.779,89 |
| 07.01.2015 | 200000383 |  2015 | 6000000227 |     2 | H     | 51.373,00 |
| 07.01.2015 | 200000383 |  2015 | 6000000228 |     2 | H     | 37.670,89 |
+------------+-----------+-------+------------+-------+-------+-----------+----------+

2015/3100000585/2行(GJAHR/BELNR/BUZEI)是银行对帐单过帐。目标过帐为2015/6000000227/1-自动付款,`2015/200000383/3'-汇率差异。

我通过了解会计逻辑并比较DMBTR和WRBTR来了解目标过帐。但是我无法找到如何以编程方式找到链接。

如果我使用前面描述的简单算法,则会从2015/3100000583/1得到BSEG来抵消银行对帐单。然后从AUGBL的同一行中200000383 BSEG。在具有键BSASAUGDT的表AUGBL中,不包括原始行2015/3100000583/1,我得到了上面第二个表中的所有行-即5条记录,包括2015/3100000585/12015/6000000228/2实现了不同的付款。

我可以尝试以某种方式排除发布2015/60000002282/2,因为它具有不同的AGZEI = 4而不是1。但是如何在将2015/200000383/4都保持为2015/200000383/3的同时排除AGZEI呢?{p}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...