* Выравниванием получившиеся документы
CALL FUNCTION 'POSTING_INTERFACE_START'
EXPORTING
i_function = 'C'
i_mode = md_mode
EXCEPTIONS
OTHERS = 0.
* Header
ls_ftpost-stype = 'K'. "header indicator
ls_ftpost-count = 1.
ls_ftpost-fnam = 'BKPF-BLDAT'.
WRITE l_datum TO ls_ftpost-fval DD/MM/YYYY.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BLART'.
ls_ftpost-fval = 'KA'.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BUKRS'.
ls_ftpost-fval = -bukrs.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BUDAT'.
WRITE l_datum TO ls_ftpost-fval DD/MM/YYYY.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-WAERS'.
ls_ftpost-fval = -unitpriceunit.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-XBLNR'.
ls_ftpost-fval = -recntxtold(16).
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BKTXT'.
ls_ftpost-fval = -recntxtold.
APPEND ls_ftpost TO lt_ftpost.
* Items for clearing
ls_ftclear-agkoa = 'K'.
ls_ftclear-agkon = -partner.
ls_ftclear-agbuk = -bukrs.
ls_ftclear-xnops = 'X'.
ls_ftclear-agums = ' '.
ls_ftclear-selfd = 'BELNR'.
ls_ftclear-selvon = ls_bkpf_key_1-belnr.
ls_ftclear-selvon+10 = ls_bkpf_key_1-gjahr.
ls_ftclear-selvon+14 = '001'. "BELNR/GJAHR/BUZEI
CONDENSE ls_ftclear-selvon NO-GAPS.
APPEND ls_ftclear TO lt_ftclear.
ls_ftclear-selvon = ls_bkpf_key_2-belnr.
ls_ftclear-selvon+10 = ls_bkpf_key_2-gjahr.
ls_ftclear-selvon+14 = '001'. "BELNR/GJAHR/BUZEI
CONDENSE ls_ftclear-selvon NO-GAPS.
APPEND ls_ftclear TO lt_ftclear.
CALL FUNCTION 'POSTING_INTERFACE_CLEARING'
EXPORTING
i_auglv = 'UMBUCHNG'
i_tcode = 'FB05'
IMPORTING
e_msgid = l_msgid
e_msgno = l_msgno
e_msgty = l_msgty
e_msgv1 = l_msgv1
e_msgv2 = l_msgv2
e_msgv3 = l_msgv3
e_msgv4 = l_msgv4
e_subrc = l_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 AND l_subrc = 0.
-status = mc_stat_good.
LOOP AT lt_blntab INTO ls_blntab.
ls_items-bukrs = ls_blntab-bukrs.
ls_items-lifnr = -partner.
ls_items-zuonr = -recnnr.
ls_items-flowtype = -flowtype.
ls_items-taxcode = -taxcode.
ls_items-belnr = ls_blntab-belnr.
ls_items-gjahr = ls_blntab-gjahr.
COLLECT ls_items INTO mt_items.
ENDLOOP.
ELSE.
IF sy-subrc <> 0.
es_message-msgty = sy-msgty.
es_message-msgid = sy-msgid.
es_message-msgno = sy-msgno.
es_message-msgv1 = sy-msgv1.
es_message-msgv2 = sy-msgv2.
es_message-msgv3 = sy-msgv3.
es_message-msgv4 = sy-msgv4.
ELSE.
es_message-msgty = l_msgty.
es_message-msgid = l_msgid.
es_message-msgno = l_msgno.
es_message-msgv1 = l_msgv1.
es_message-msgv2 = l_msgv2.
es_message-msgv3 = l_msgv3.
es_message-msgv4 = l_msgv4.
ENDIF.
ENDIF.
* Другой пример
AUGLV EINGZAHL
TCODE FB05
FTPOST[]
1 K 001 BKPF-BLDAT 25.05.2012
2 K 001 BKPF-BLART KZ
3 K 001 BKPF-BUKRS 0700
4 K 001 BKPF-BUDAT 25.05.2012
5 K 001 BKPF-WAERS EUR
6 K 001 BKPF-XBLNR GPB1 EURC 12525
7 K 001 BKPF-BKTXT 0000053400001
8 K 001 RF05A-AUGTX Поступление валюты. Договор пос
9 P 001 BSEG-BSCHL 40
10 P 001 BSEG-HKONT 5212011021
11 P 001 BSEG-WRBTR 2.500,00
12 P 001 BSEG-VALUT 25.05.2012
13 P 001 BSEG-ZUONR 0000053400001EUR
14 P 001 BSEG-SGTXT Поступление валюты. Договор пос
FTCLEAR[]
1 K 0005000011 0700 C BELNR 1500000021
2 K 0005000011 0700 C BELNR 1500000023
Комментариев нет:
Отправить комментарий