Вот так вроде работает
Code:
DATA: lt_anlb LIKE TABLE OF anlb WITH HEADER LINE
,ls_anla TYPE anla
,ls_anlb TYPE anlb
,lt_anlc LIKE TABLE OF anlc WITH HEADER LINE
,lt_anep LIKE TABLE OF anep WITH HEADER LINE
,lt_anea LIKE TABLE OF anea WITH HEADER LINE
,lt_anek LIKE TABLE OF anek WITH HEADER LINE
,lt_anfm LIKE TABLE OF anfm WITH HEADER LINE
,lt_anlz TYPE STANDARD TABLE OF anlz
.
SELECT * FROM anlb INTO TABLE lt_anlb
WHERE bukrs = i_anla-bukrs
AND anln1 = i_anla-anln1
AND anln2 = i_anla-anln2
* and afabe = i_afabe
.
SELECT * FROM anlc INTO TABLE lt_anlc
WHERE bukrs = i_anla-bukrs
AND anln1 = i_anla-anln1
AND anln2 = i_anla-anln2
* and afabe = i_afabe
AND gjahr = i_gjahr.
et_anlc[] = lt_anlc[].
IF sy-subrc <> 0.
CALL FUNCTION 'FIAA_DEPR_RECALCULATE'
EXPORTING
i_bukrs = i_anla-bukrs
i_anln1 = i_anla-anln1
i_anln2 = i_anla-anln2
i_gjahr = i_gjahr
TABLES
t_anlz = lt_anlz
t_anlb = lt_anlb
t_anlc = lt_anlc
t_anep = lt_anep
t_anea = lt_anea
t_anfm = lt_anfm
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
RETURN.
ENDIF.
et_anlc[] = lt_anlc[].
ls_anlb-lgjan = i_gjahr.
MODIFY lt_anlb FROM ls_anlb TRANSPORTING lgjan WHERE afabe = i_afabe.
ENDIF.
SELECT SINGLE * FROM anla INTO ls_anla
WHERE bukrs = i_anla-bukrs
AND anln1 = i_anla-anln1
AND anln2 = i_anla-anln2.
CHECK sy-subrc = 0.
SELECT * FROM anep INTO TABLE lt_anep
WHERE bukrs = i_anla-bukrs
AND anln1 = i_anla-anln1
AND anln2 = i_anla-anln2
* and afabe = i_afabe
AND gjahr = i_gjahr.
SELECT * FROM anea INTO TABLE lt_anea
WHERE bukrs = i_anla-bukrs
AND anln1 = i_anla-anln1
AND anln2 = i_anla-anln2
* and afabe = i_afabe
AND gjahr = i_gjahr.
SELECT * FROM anek INTO TABLE lt_anek
WHERE bukrs = i_anla-bukrs
AND anln1 = i_anla-anln1
AND anln2 = i_anla-anln2
AND gjahr = i_gjahr.
DATA: lv_gjahr TYPE gjahr.
lv_gjahr = i_gjahr.
CALL FUNCTION 'AM_SHOW_POST_DEPR'
EXPORTING
i_anla = ls_anla
i_afabe = i_afabe
i_gjahr = lv_gjahr
i_simu = i_simu
TABLES
t_dpost = t_dpost
t_anlb = lt_anlb
t_anlc = lt_anlc
t_anep = lt_anep
t_anea = lt_anea
t_anek = lt_anek
* T_ANFM =
EXCEPTIONS
not_found = 1
differences_posted_afa = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.