Code:
PARAMETER:
  p_bukrs TYPE bkpf-bukrs OBLIGATORY,
  p_belnr TYPE bkpf-belnr OBLIGATORY,
  p_gjahr TYPE bkpf-gjahr OBLIGATORY.
DATA:
  gs_bkpf TYPE bkpf,
  gv_buzei TYPE bseg-buzei,
  gt_accchg TYPE TABLE OF accchg,
  gs_accchg TYPE accchg.
SELECT SINGLE * FROM bkpf INTO gs_bkpf
  WHERE bukrs = p_bukrs
    AND belnr = p_belnr
    AND gjahr = p_gjahr.
SELECT SINGLE buzei FROM bseg INTO gv_buzei
  WHERE bukrs = p_bukrs
    AND belnr = p_belnr
    AND gjahr = p_gjahr
    AND koart IN ('D', 'K').
IF sy-subrc IS INITIAL OR gs_bkpf-awtyp = 'VBRK'.
  CLEAR gs_accchg.
  gs_accchg-fdname = 'BKTXT'.
  gs_accchg-newval = 'Test'.
  APPEND gs_accchg TO gt_accchg.
  CLEAR gs_accchg.
  gs_accchg-fdname = 'XBLNR'.
  gs_accchg-newval = 'Test'.
  APPEND gs_accchg TO gt_accchg.
  CALL FUNCTION 'FI_DOCUMENT_CHANGE'
    EXPORTING
      i_awtyp              = gs_bkpf-awtyp
      i_awref              = gs_bkpf-awkey+00(10)
      i_aworg              = gs_bkpf-awkey+10(10)
      i_buzei              = gv_buzei
    TABLES
      t_accchg             = gt_accchg
    EXCEPTIONS
      no_reference         = 1
      no_document          = 2
      many_documents       = 3
      wrong_input          = 4
      overwrite_creditcard = 5
      OTHERS               = 6.
ENDIF.
Как-то так, но что-то мне подсказывает, что лучше пакетник сделать.