• ABAP FB05 清账函数:POSTING_INTERFACE_CLEARING


    清账相关事物代码: FB05

    相关函数:POSTING_INTERFACE_START
                      POSTING_INTERFACE_CLEARING

    1. DATA: LT_BLNTAB TYPE STANDARD TABLE OF BLNTAB.
    2. DATA: LS_BLNTAB TYPE BLNTAB.
    3. DATA: LT_FTCLEAR TYPE STANDARD TABLE OF FTCLEAR.
    4. DATA: LS_FTCLEAR TYPE FTCLEAR.
    5. DATA: LT_FTPOST TYPE STANDARD TABLE OF FTPOST.
    6. DATA: LS_FTPOST TYPE FTPOST.
    7. DATA: LT_FTTAX TYPE STANDARD TABLE OF FTTAX.
    8. DATA: LS_FTTAX TYPE FTTAX.
    9. DATA: LT_GROUP TYPE STANDARD TABLE OF TY_DATA.
    10. DATA: LS_GROUP TYPE TY_DATA.
    11. DATA: LV_MODE TYPE CHAR01.
    12. DATA: LV_BLART TYPE BLART.
    13. DATA: LV_SUBRC TYPE SY-SUBRC .
    14. DATA: LV_MESSAGE TYPE STRING.
    15. DEFINE POPULATE_FTPOST.
    16. CLEAR LS_FTPOST.
    17. LS_FTPOST-STYPE = &1.
    18. LS_FTPOST-COUNT = &2.
    19. LS_FTPOST-FNAM = &3.
    20. LS_FTPOST-FVAL = &4.
    21. APPEND LS_FTPOST TO LT_FTPOST.
    22. END-OF-DEFINITION.
    23. SORT LT_GROUP BY GROUP.
    24. DELETE ADJACENT DUPLICATES FROM LT_GROUP COMPARING GROUP.
    25. LOOP AT LT_GROUP INTO LS_GROUP.
    26. READ TABLE GT_DATA INTO GS_DATA
    27. WITH KEY GROUP = LS_GROUP-GROUP
    28. ICON = ICON_RED_LIGHT.
    29. IF SY-SUBRC = 0.
    30. CONTINUE.
    31. ENDIF.
    32. CLEAR:LT_BLNTAB,LT_FTCLEAR,LT_FTPOST,LT_FTTAX,LV_MESSAGE.
    33. POPULATE_FTPOST: 'K' 1 'BKPF-BUKRS' LS_GROUP-BUKRS, "Company code
    34. 'K' 1 'BKPF-BLART' 'DR', "凭证类型
    35. 'K' 1 'BKPF-BLDAT' LS_GROUP-BUDAT, "凭证中的凭证日期
    36. 'K' 1 'BKPF-BUDAT' LS_GROUP-BUDAT, "凭证中的过帐日期
    37. 'K' 1 'BKPF-WAERS' LS_GROUP-WAERS. "货币码
    38. LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND GROUP = LS_GROUP-GROUP.
    39. CLEAR LS_FTCLEAR.
    40. LS_FTCLEAR-AGKOA = 'D'.
    41. LS_FTCLEAR-AGUMS = 'D'.
    42. LS_FTCLEAR-AGKON = GS_DATA-KUNNR.
    43. LS_FTCLEAR-AGBUK = GS_DATA-BUKRS.
    44. LS_FTCLEAR-XNOPS = 'X'.
    45. LS_FTCLEAR-SELFD = 'SGTXT'.
    46. LS_FTCLEAR-SELVON = GS_DATA-SGTXT.
    47. APPEND LS_FTCLEAR TO LT_FTCLEAR.
    48. ENDLOOP.
    49. CALL FUNCTION 'POSTING_INTERFACE_START'
    50. EXPORTING
    51. I_CLIENT = SY-MANDT
    52. I_FUNCTION = 'C'
    53. I_MODE = LV_MODE
    54. I_KEEP = 'X'
    55. I_UPDATE = 'S'
    56. I_USER = SY-UNAME.
    57. "AUSGZAHL 付款
    58. "EINGZAHL 收款
    59. "GUTSCHRI 贷方凭证
    60. "UMBUCHNG 转帐并清帐
    61. CALL FUNCTION 'POSTING_INTERFACE_CLEARING'
    62. EXPORTING
    63. I_AUGLV = 'EINGZAHL' "具体选择参见上述参数说明
    64. I_TCODE = 'FB05'
    65. I_SGFUNCT = 'C'
    66. IMPORTING
    67. E_MSGID = SY-MSGID
    68. E_MSGNO = SY-MSGNO
    69. E_MSGTY = SY-MSGTY
    70. E_MSGV1 = SY-MSGV1
    71. E_MSGV2 = SY-MSGV2
    72. E_MSGV3 = SY-MSGV3
    73. E_MSGV4 = SY-MSGV4
    74. E_SUBRC = LV_SUBRC
    75. TABLES
    76. T_BLNTAB = LT_BLNTAB
    77. T_FTCLEAR = LT_FTCLEAR
    78. T_FTPOST = LT_FTPOST
    79. T_FTTAX = LT_FTTAX
    80. EXCEPTIONS
    81. CLEARING_PROCEDURE_INVALID = 1
    82. CLEARING_PROCEDURE_MISSING = 2
    83. TABLE_T041A_EMPTY = 3
    84. TRANSACTION_CODE_INVALID = 4
    85. AMOUNT_FORMAT_ERROR = 5
    86. TOO_MANY_LINE_ITEMS = 6
    87. COMPANY_CODE_INVALID = 7
    88. SCREEN_NOT_FOUND = 8
    89. NO_AUTHORIZATION = 9
    90. OTHERS = 10.
    91. IF SY-SUBRC <> 0 OR LT_BLNTAB IS INITIAL .
    92. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    93. * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    94. CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    95. EXPORTING
    96. MSGID = SY-MSGID
    97. MSGNR = SY-MSGNO
    98. MSGV1 = SY-MSGV1
    99. MSGV2 = SY-MSGV2
    100. MSGV3 = SY-MSGV3
    101. MSGV4 = SY-MSGV4
    102. IMPORTING
    103. MESSAGE_TEXT_OUTPUT = LV_MESSAGE.
    104. ENDIF.
    105. IF LT_BLNTAB IS NOT INITIAL AND LV_MESSAGE IS INITIAL .
    106. READ TABLE LT_BLNTAB INTO LS_BLNTAB INDEX 1.
    107. LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND GROUP = LS_GROUP-GROUP..
    108. GS_DATA-BELNR1 = LS_BLNTAB-BELNR.
    109. GS_DATA-ICON = ICON_GREEN_LIGHT.
    110. MODIFY GT_DATA FROM GS_DATA.
    111. ENDLOOP.
    112. ELSE.
    113. LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND GROUP = LS_GROUP-GROUP..
    114. GS_DATA-ICON = ICON_RED_LIGHT.
    115. GS_DATA-MSG = LV_MESSAGE.
    116. MODIFY GT_DATA FROM GS_DATA.
    117. ENDLOOP.
    118. ENDIF.
    119. CALL FUNCTION 'POSTING_INTERFACE_END'
    120. EXPORTING
    121. I_BDCIMMED = 'X'
    122. EXCEPTIONS
    123. SESSION_NOT_PROCESSABLE = 1
    124. OTHERS = 2.
    125. ENDLOOP.

  • 相关阅读:
    51单片机实验:数码管动态显示00-99
    机器学习从入门到放弃:硬train一发手写数字识别
    Spark SQL 结构化数据文件处理
    零基础学SQL(六、数据的增删改查简单语句)
    为了元宇宙,Facebook下周要改名了?
    初学Vue(全家桶)-第16天(vue2):插槽
    NR Modulation 5
    工具及方法 - 在线流程图描画
    【LeetCode 热题 HOT 100】1、两数之和
    炫酷HTML蜘蛛侠登录页面
  • 原文地址:https://blog.csdn.net/IamRunjiang/article/details/132716016