FM:CHANGE_DOCUMENT

data: lt_bkpf type table of bkpf with header line,
      lt_bseg type table of bseg with header line,
      lt_bkdf type table of bkdf with header line,
      lt_bsec type table of bsec with header line,
      lt_bset type table of bset with header line,
      lt_bsed type table of bsed with header line,
      lt_bseg2 type table of bseg with header line.
SELECT * FROM bkpf INTO TABLE lt_bkpf
 WHERE bukrs = p_bukrs
   AND belnr in s_belnr
   AND gjahr = p_gjahr.
SELECT * FROM bseg INTO TABLE lt_bseg
  WHERE bukrs = p_bukrs
    AND belnr in s_belnr
    AND gjahr = p_gjahr.
LOOP AT lt_bseg.
  lt_bseg-sgtxt = 'Test change document'.
  MODIFY lt_bseg INDEX sy-tabix transporting sgtxt.
ENDLOOP.
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
  EXCEPTIONS
    others = 1.
IF sy-subrc <> 0.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT = 'X'.
ENDIF.