ABAP FB05 清账函数:POSTING_INTERFACE_CLEARING

清账相关事物代码: FB05

相关函数:POSTING_INTERFACE_START
                  POSTING_INTERFACE_CLEARING



  DATA: LT_BLNTAB  TYPE STANDARD TABLE OF BLNTAB.
  DATA: LS_BLNTAB  TYPE BLNTAB.
  DATA: LT_FTCLEAR TYPE STANDARD TABLE OF FTCLEAR.
  DATA: LS_FTCLEAR TYPE FTCLEAR.
  DATA: LT_FTPOST  TYPE STANDARD TABLE OF FTPOST.
  DATA: LS_FTPOST  TYPE FTPOST.
  DATA: LT_FTTAX   TYPE STANDARD TABLE OF FTTAX.
  DATA: LS_FTTAX   TYPE FTTAX.

  DATA: LT_GROUP   TYPE STANDARD TABLE OF TY_DATA.
  DATA: LS_GROUP   TYPE TY_DATA.
  DATA: LV_MODE    TYPE CHAR01.
  DATA: LV_BLART   TYPE BLART.
  DATA: LV_SUBRC   TYPE SY-SUBRC .
  DATA: LV_MESSAGE TYPE STRING.



  DEFINE POPULATE_FTPOST.
    CLEAR LS_FTPOST.
    LS_FTPOST-STYPE = &1.
    LS_FTPOST-COUNT = &2.
    LS_FTPOST-FNAM  = &3.
    LS_FTPOST-FVAL  = &4.
    APPEND LS_FTPOST TO LT_FTPOST.
  END-OF-DEFINITION.
 SORT LT_GROUP BY GROUP.
  DELETE ADJACENT DUPLICATES FROM LT_GROUP COMPARING GROUP.

  LOOP AT LT_GROUP INTO LS_GROUP.
    READ TABLE GT_DATA INTO GS_DATA
    WITH KEY  GROUP  = LS_GROUP-GROUP
              ICON   = ICON_RED_LIGHT.
    IF SY-SUBRC = 0.
      CONTINUE.
    ENDIF.
    CLEAR:LT_BLNTAB,LT_FTCLEAR,LT_FTPOST,LT_FTTAX,LV_MESSAGE.

    POPULATE_FTPOST:   'K' 1 'BKPF-BUKRS' LS_GROUP-BUKRS, "Company code
                   'K' 1 'BKPF-BLART' 'DR',               "凭证类型
                   'K' 1 'BKPF-BLDAT' LS_GROUP-BUDAT,     "凭证中的凭证日期
                   'K' 1 'BKPF-BUDAT' LS_GROUP-BUDAT,     "凭证中的过帐日期
                   'K' 1 'BKPF-WAERS' LS_GROUP-WAERS.     "货币码

    LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND GROUP  = LS_GROUP-GROUP.
      CLEAR LS_FTCLEAR.
      LS_FTCLEAR-AGKOA = 'D'.
      LS_FTCLEAR-AGUMS = 'D'.
      LS_FTCLEAR-AGKON = GS_DATA-KUNNR.
      LS_FTCLEAR-AGBUK = GS_DATA-BUKRS.
      LS_FTCLEAR-XNOPS = 'X'.
      LS_FTCLEAR-SELFD = 'SGTXT'.
      LS_FTCLEAR-SELVON = GS_DATA-SGTXT.
      APPEND LS_FTCLEAR TO LT_FTCLEAR.

    ENDLOOP.


    CALL FUNCTION 'POSTING_INTERFACE_START'
      EXPORTING
        I_CLIENT   = SY-MANDT
        I_FUNCTION = 'C'
        I_MODE     = LV_MODE
        I_KEEP     = 'X'
        I_UPDATE   = 'S'
        I_USER     = SY-UNAME.

"AUSGZAHL	付款
"EINGZAHL	收款
"GUTSCHRI	贷方凭证
"UMBUCHNG	转帐并清帐
    CALL FUNCTION 'POSTING_INTERFACE_CLEARING'
      EXPORTING
        I_AUGLV                    = 'EINGZAHL'   "具体选择参见上述参数说明
        I_TCODE                    = 'FB05'
        I_SGFUNCT                  = 'C'
      IMPORTING
        E_MSGID                    = SY-MSGID
        E_MSGNO                    = SY-MSGNO
        E_MSGTY                    = SY-MSGTY
        E_MSGV1                    = SY-MSGV1
        E_MSGV2                    = SY-MSGV2
        E_MSGV3                    = SY-MSGV3
        E_MSGV4                    = SY-MSGV4
        E_SUBRC                    = LV_SUBRC
      TABLES
        T_BLNTAB                   = LT_BLNTAB
        T_FTCLEAR                  = LT_FTCLEAR
        T_FTPOST                   = LT_FTPOST
        T_FTTAX                    = LT_FTTAX
      EXCEPTIONS
        CLEARING_PROCEDURE_INVALID = 1
        CLEARING_PROCEDURE_MISSING = 2
        TABLE_T041A_EMPTY          = 3
        TRANSACTION_CODE_INVALID   = 4
        AMOUNT_FORMAT_ERROR        = 5
        TOO_MANY_LINE_ITEMS        = 6
        COMPANY_CODE_INVALID       = 7
        SCREEN_NOT_FOUND           = 8
        NO_AUTHORIZATION           = 9
        OTHERS                     = 10.
    IF SY-SUBRC <> 0 OR LT_BLNTAB IS INITIAL .
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      CALL FUNCTION 'MESSAGE_TEXT_BUILD'
        EXPORTING
          MSGID               = SY-MSGID
          MSGNR               = SY-MSGNO
          MSGV1               = SY-MSGV1
          MSGV2               = SY-MSGV2
          MSGV3               = SY-MSGV3
          MSGV4               = SY-MSGV4
        IMPORTING
          MESSAGE_TEXT_OUTPUT = LV_MESSAGE.

    ENDIF.

    IF LT_BLNTAB IS NOT INITIAL AND LV_MESSAGE IS INITIAL .
      READ TABLE LT_BLNTAB INTO LS_BLNTAB INDEX 1.
      LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND GROUP  = LS_GROUP-GROUP..
        GS_DATA-BELNR1 = LS_BLNTAB-BELNR.
        GS_DATA-ICON = ICON_GREEN_LIGHT.
        MODIFY GT_DATA FROM GS_DATA.
      ENDLOOP.
    ELSE.
      LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND GROUP  = LS_GROUP-GROUP..
        GS_DATA-ICON = ICON_RED_LIGHT.
        GS_DATA-MSG  = LV_MESSAGE.
        MODIFY GT_DATA FROM GS_DATA.
      ENDLOOP.
    ENDIF.

    CALL FUNCTION 'POSTING_INTERFACE_END'
      EXPORTING
        I_BDCIMMED              = 'X'
      EXCEPTIONS
        SESSION_NOT_PROCESSABLE = 1
        OTHERS                  = 2.

  ENDLOOP.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
POSTING_INTERFACE_CLEARING是一个函数,用于进行标准清账操作。它封装了BDC录屏的功能。\[3\]在使用该函数时,如果传入参数ITEM,则必须传入公司代码、记账码和科目。根据你提供的引用内容,你的问题是关于批量创建清账凭证时参照码3的问题。你希望每个参照码3对应一张凭证,但实际上清账凭证创建成功后,参照码3一直沿用了模板中的第一个值。你进行了排查并确认了传参数据的正确性,并清空了相应的内表。然后你尝试使用了free memory来清空ABAP内存变量,并成功解决了问题。然而,你想知道使用free memory会有什么影响。 #### 引用[.reference_title] - *1* [SAP-ABAP-清账函数BAPI使用POSTING_INTERFACE_CLEARING,应付暂估外币清账程序](https://blog.csdn.net/Qunending/article/details/124666847)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [清账函数POSTING_INTERFACE_CLEARING的应用](https://blog.csdn.net/wangshaoqiang022/article/details/90234375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值