Abap 银行对账单对账报告(SAP)

Abap 银行对账单对账报告(SAP),abap,sap-erp,sap-r3,Abap,Sap Erp,Sap R3,我被要求在SAP中创建银行对账单分析。要求如下: 选择日期范围内银行总账账户上的所有变动 查找清算公告 递归地追溯后续清算,直到发现损益表或未清算过账 报告应包括步骤3中的记录列表 例如: 已付款债权人发票 银行对账单 借方银行付款结算账户/贷方银行账户 付款建议 借方债权人账户/贷方银行付款清算账户 债权人发票 借方成本损益账户、增值税账户/贷方账户 已收到债务人发票的付款 银行对账单 借方银行账户/贷方债务人付款清算账户 债务人清算 借方清算账户/贷方借方账户 债务人发票 借方账户/贷方损益

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

  • 选择日期范围内银行总账账户上的所有变动
  • 查找清算公告
  • 递归地追溯后续清算,直到发现损益表或未清算过账
  • 报告应包括步骤3中的记录列表

    例如: 已付款债权人发票

  • 银行对账单 借方银行付款结算账户/贷方银行账户
  • 付款建议 借方债权人账户/贷方银行付款清算账户
  • 债权人发票 借方成本损益账户、增值税账户/贷方账户
  • 已收到债务人发票的付款

  • 银行对账单 借方银行账户/贷方债务人付款清算账户
  • 债务人清算 借方清算账户/贷方借方账户
  • 债务人发票 借方账户/贷方损益收入账户+增值税账户
  • 我可以从字段
    HKONT
    BLDAT
    上的表
    BSIS
    中按银行总账代码获取所有银行对账单

    然后使用上一次查询中的
    BELNR
    GJAHR
    BUZEI
    从表
    BSAS
    过账清算凭证(
    AUGBL
    AUGDT

    然后使用上一次查询中的
    AUGBL
    AUGDT
    再次从BSAS获取发票凭证(
    BELNR
    GJAHR
    BUZEI

    最后,使用表BSEG中的
    BELNR
    GJAHR
    BUZEI
    (不包括债务人账户)在发票上计算损益和增值税

    我的代码可以很好地处理上述简单场景。但如果有更复杂的场景,比如首期付款、信用卡、银行手续费等,我总是会丢失一些记录,或者最终陷入无休止的循环

    通过查看表
    BSEG
    ,我找到了另外两个字段
    AUGGJ
    AGZEI
    ,它们以某种方式关联了已清除文档的行。但我无法确定其中的逻辑

    例如,我在
    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 | 1.860,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,75 | 1.363,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,20 | 1.860,00 |
    |  2015 | 6000000228 |     1 | 07.01.2015 | 6000000228 | K     |  2015 |     2 | S     | 37.670,64 | 1.363,89 |
    |  2015 | 6000000228 |     2 | 07.01.2015 |  200000383 | S     |  2015 |     4 | H     | 37.670,64 | 1.363,89 |
    +-------+------------+-------+------------+------------+-------+-------+-------+-------+-----------+----------+
    
    以及
    BSAS
    表中的以下内容

    +------------+-----------+-------+------------+-------+-------+-----------+----------+
    |   AUGDT    |   AUGBL   | GJAHR |   BELNR    | ZUONR | SHKZG |   DMBTR   |  WRBTR   |
    +------------+-----------+-------+------------+-------+-------+-----------+----------+
    | 07.01.2015 | 200000383 |  2015 |  200000383 |     1 | H     | 37.928,55 | 1.363,89 |
    | 07.01.2015 | 200000383 |  2015 |  200000383 |     2 | S     | 37.670,64 | 1.363,89 |
    | 07.01.2015 | 200000383 |  2015 | 3100000583 |     1 | S     | 51.522,00 | 1.860,00 |
    | 07.01.2015 | 200000383 |  2015 | 3100000585 |     1 | S     | 37.779,75 | 1.363,89 |
    | 07.01.2015 | 200000383 |  2015 | 6000000227 |     2 | H     | 51.373,20 | 1.860,00 |
    | 07.01.2015 | 200000383 |  2015 | 6000000228 |     2 | H     | 37.670,64 | 1.363,89 |
    +------------+-----------+-------+------------+-------+-------+-----------+----------+
    
    2015/3100000585/2
    GJAHR/BELNR/BUZEI
    )是银行对账单过账。目标记账为
    2015/6000000227/1
    -自动支付和'2015/200000383/3'-汇率差异

    我通过了解会计逻辑和比较DMBTR和WRBTR了解目标过账。但我无法发现如何找到链接程序

    如果我使用前面描述的简单算法,我会从
    BSEG
    抵消银行对账单中得到
    2015/3100000583/1
    。然后从
    BSEG
    中的同一行中选择
    AUGBL
    200000383
    。在表
    BSAS
    中,键为
    AUGDT
    AUGBL
    不包括原始行
    2015/3100000583/1
    我得到了上面第二个表中的所有行,即5条记录,包括
    2015/3100000585/1
    2015/6000000228/2
    ,用于不同的付款


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

    所以,向我们展示您迄今为止编写的代码,并概述您面临的确切问题。你的问题太宽泛了