修改SAP 预制会计凭证 BAPI PRELIMINARY_POSTING_DOC_WRITE
修改预制会计凭证
DATA:TVBKPF LIKE TABLE OF FVBKPF WITH HEADER LINE,
TVBSEC LIKE TABLE OF FVBSEC WITH HEADER LINE,
TVBSET LIKE TABLE OF FVBSET WITH HEADER LINE,
TVBSEG LIKE TABLE OF FVBSEG WITH HEADER LINE.
SELECT * into CORRESPONDING FIELDS OF TABLE TVBKPF FROM vbkpf WHERE ausbk = '1000' and bukrs = '1000' and belnr = '0100000045' and gjahr = '2018'.
SELECT * into CORRESPONDING FIELDS OF TABLE TVBsec FROM vbsec WHERE ausbk = '1000' and belnr = '0100000045' and gjahr = '2018'.
SELECT * into CORRESPONDING FIELDS OF TABLE TVBseg FROM vbsegs WHERE ausbk = '1000' and bukrs = '1000' and belnr = '0100000045' and gjahr = '2018'.
SELECT * into CORRESPONDING FIELDS OF TABLE TVBset FROM vbset WHERE ausbk = '1000' and belnr = '0100000045' and gjahr = '2018'.
LOOP AT TVBKPF.
TVBKPF-BKTXT = '23'.
TVBKPF-KZ = 'U'.
modify TVBKPF.
ENDLOOP.
LOOP AT TVBSEG.
TVBSEG-SGTXT = '123'.
TVBSEG-MENGE = '85'.
TVBSEG-KZ = 'U'.
"TVBSEG-BZALT = TVBSEG-BUZEI.
MODIFY TVBSEG.
ENDLOOP.
LOOP AT TVBSEC.
TVBSEC-KZ = 'U'.
MODIFY TVBSEC.
ENDLOOP.
LOOP AT TVBSEt.
TVBSEt-KZ = 'U'.
MODIFY TVBSEt.
ENDLOOP.
CALL FUNCTION 'PRELIMINARY_POSTING_DOC_WRITE'
EXPORTING
* I_UF05A =
I_BSTAT = 'V'
TABLES
T_VBKPF = TVBKPF
T_VBSEC = TVBSEC
T_VBSEG = TVBSEG
T_VBSET = TVBSET
* T_VACSPLT =
* T_VSPLTWT =
* EXCEPTIONS
* ABNORMAL_TERMINATION = 1
* INSERT_ERROR = 2
* UPDATE_ERROR = 3
* READ_ERROR = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
修改会计凭证文本
data :
lv_bktxt type mkpf-bktxt,
lv_awkey type bkpf-awkey,
ls_bkpf2 type bkpf,
lv_msg(255).
DATA: lt_bkdf TYPE TABLE OF bkdf,
lt_bkpf TYPE TABLE OF bkpf,
ls_bkpf TYPE bkpf,
lt_bsec TYPE TABLE OF bsec,
lt_bsed TYPE TABLE OF bsed,
lt_bseg TYPE TABLE OF bseg WITH HEADER LINE,
lt_bset TYPE TABLE OF bset.
ls_bkpf-mandt = sy-mandt.
ls_bkpf-bukrs = '1000'.
ls_bkpf-gjahr = '2018'.
ls_bkpf-belnr = '0100000008'.
ls_bkpf-bktxt = '123'.
APPEND ls_bkpf TO lt_bkpf.
lt_bseg-mandt = sy-mandt.
lt_bseg-bukrs = '1000'.
lt_bseg-gjahr = '2018'.
lt_bseg-belnr = '0100000008'.
lt_bseg-BUZEI = '001'.
lt_bseg-sgtxt = '223'.
APPEND lt_bseg.
CALL FUNCTION 'CHANGE_DOCUMENT'
TABLES
t_bkdf = lt_bkdf
t_bkpf = lt_bkpf
t_bsec = lt_bsec
t_bsed = lt_bsed
t_bseg = lt_bseg
t_bset = lt_bset
.
commit work and wait.