[SAP ABAP] - Custome Change FI Document

*&---------------------------------------------------------------------*
*& Report  YO_CC_TEST12
*&
*&---------------------------------------------------------------------*
*& Module : FI
*&
*&---------------------------------------------------------------------*

REPORT  yo_cc_test12.

TABLES bkpfbseg.

DATA gi_bkdf LIKE STANDARD TABLE OF bkdf WITH HEADER LINE,
       gi_bkpf LIKE STANDARD TABLE OF bkpf WITH HEADER LINE,
       gi_bsec LIKE STANDARD TABLE OF bsec WITH HEADER LINE,
       gi_bsed LIKE STANDARD TABLE OF bsed WITH HEADER LINE,
       gi_bseg LIKE STANDARD TABLE OF bseg WITH HEADER LINE,
       gi_bset LIKE STANDARD TABLE OF bset WITH HEADER LINE.

PARAMETERS pa_bukrs  LIKE bkpf-bukrs DEFAULT '5600',
             pa_gjahr  LIKE bkpf-gjahr DEFAULT '2013',
             pa_fk1   LIKE bseg-fkber DEFAULT 'Z008',
             pa_fk2   LIKE bseg-fkber DEFAULT 'Z004'.

SELECT-OPTIONS so_belnr FOR bkpf-belnr DEFAULT '4900000009'.

START-OF-SELECTION.

  SELECT INTO TABLE gi_bkpf
  FROM bkpf
  WHERE bukrs pa_bukrs AND
        belnr IN so_belnr AND
        gjahr pa_gjahr.

  IF LINESgi_bkpf 0.

    SELECT INTO TABLE gi_bseg
    FROM bseg
      FOR ALL ENTRIES IN gi_bkpf
    WHERE bukrs gi_bkpf-bukrs AND
          belnr gi_bkpf-belnr AND
          gjahr gi_bkpf-gjahr.

    DELETE gi_bseg WHERE NOT fkber pa_fk1.

    IF LINESgi_bseg 0.
      LOOP AT gi_bseg.
        gi_bseg-fkber pa_fk2.
        gi_bseg-fkber_long pa_fk2.
        MODIFY gi_bseg.
      ENDLOOP.

      CALL FUNCTION 'CHANGE_DOCUMENT'
        TABLES
          t_bkdf gi_bkdf
          t_bkpf gi_bkpf
          t_bsec gi_bsec
          t_bsed gi_bsed
          t_bseg gi_bseg
          t_bset gi_bset.

      IF sy-subrc EQ 0.
        WRITE/1 'Success'.
      ELSE.
        WRITE/1 'Failed'.
      ENDIF.
    ELSE.
      WRITE/1 'Failed'.
    ENDIF.
  ENDIF.

Comments