Возникла потребность до проводки документа движения материала выполнить моделирование бух. проводок.
Способ 1Ставим точку останова тут
SAPMM07M
f-beleg_ergaenzen
CALL FUNCTION 'CKMV_AC_DOCUMENT_CREATE'
Смотрим структуры XACCIT[], XACCCR[]
Способ 2Можно вставить туда свой экран....

Я скопировал SAPMM07M в ZSAPMM07M
Создал транзакцию Z_MB01, Z_MB04, Z_MBST, Z_MB1B, Z_MB1A
Добавил эти транз в табл T158 , T158B
Вставил свой экран перед CALL FUNCTION 'CKMV_AC_DOCUMENT_CREATE'
MIGO, MB01 и др. при этом работают по-старому.
Работает.
* SAPMM07M
* f-beleg_ergaenzen
* { ЗЮ 2011-06-08 Моделирование проводки
DATA z_ucomm TYPE sy-ucomm.
DATA gt_tab TYPE zzs04114_94 OCCURS 0 WITH HEADER LINE.
DATA wa_tab TYPE zzs04114_94.
DATA wa_xaccit TYPE accit.
DATA wa_xacccr TYPE acccr.
LOOP AT xaccit INTO wa_xaccit.
CLEAR wa_tab.
MOVE-CORRESPONDING wa_xaccit TO wa_tab.
LOOP AT xacccr INTO wa_xacccr
WHERE awtyp = wa_xaccit-awtyp
AND posnr = wa_xaccit-posnr.
IF wa_xacccr-curtp = '00'. " USD
wa_tab-curtp00 = wa_xacccr-curtp.
wa_tab-waers00 = wa_xacccr-waers.
wa_tab-wrbtr00 = wa_xacccr-wrbtr.
wa_tab-wrbtrc00 = wa_xacccr-wrbtr.
CONDENSE wa_tab-wrbtrc00.
TRANSLATE wa_tab-wrbtrc00 USING '.,'.
ENDIF.
IF wa_xacccr-curtp = '10'. " RUB
wa_tab-curtp10 = wa_xacccr-curtp.
wa_tab-waers10 = wa_xacccr-waers.
wa_tab-wrbtr10 = wa_xacccr-wrbtr.
wa_tab-wrbtrc10 = wa_xacccr-wrbtr.
CONDENSE wa_tab-wrbtrc10.
TRANSLATE wa_tab-wrbtrc10 USING '.,'.
ENDIF.
ENDLOOP.
APPEND wa_tab TO gt_tab.
ENDLOOP. " xaccit
CALL FUNCTION 'ZZFM_MM_ZMIGO_SCR_9001'
IMPORTING
z_ucomm = z_ucomm
TABLES
gt_tab = gt_tab[].
IF z_ucomm <> 'Z_OK'.
SET SCREEN 0.
LEAVE SCREEN.
ENDIF.
* } ЗЮ 2011-06-08 Моделирование проводки
CALL FUNCTION 'CKMV_AC_DOCUMENT_CREATE'
EXPORTING
i_comp = component
TABLES
t_acchd = xacchd
t_accit = xaccit
t_acccr = xacccr
t_accit_ext = gt_accit_ext
CHANGING
needs_smbew_update = vw.




*----------------------------------------------------------------------*
***INCLUDE LZZGF_MM_ZMIGOO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_9001 output.
SET TITLEBAR '9001'.
SET PF-STATUS '9001'.
endmodule. " STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*& Module DISPLAY_OUTTAB OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module DISPLAY_OUTTAB output.
*
endmodule. " DISPLAY_OUTTAB OUTPUT
*&---------------------------------------------------------------------*
*& Module SET_CURSOR_9001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module SET_CURSOR_9001 output.
SET CURSOR FIELD 'Z_NO'.
endmodule. " SET_CURSOR_9001 OUTPUT
*&---------------------------------------------------------------------*
*& Module FCODE_9001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module FCODE_9001 input.
CASE ok-code.
WHEN 'Z_OK'.
9001_code = ok-code.
CLEAR ok-code.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'Z_NO'.
9001_code = ok-code.
CLEAR ok-code.
SET SCREEN 0.
LEAVE SCREEN.
WHEN OTHERS.
ENDCASE.
endmodule. " FCODE_9001 INPUT
*&---------------------------------------------------------------------*
*& Module EXIT_9001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module EXIT_9001 input.
CASE ok-code.
WHEN 'CANC' OR 'EXIT'.
CLEAR ok-code.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
*
endmodule. " EXIT_9001 INPUT