Plank написал:
В программе RFEBBU10 есть perform interpret_n2p, там сидят алгоритмы интерпретации, можно посмотреть, что там происходит. Еще есть экзит, тр. CMOD -> Enhancement FEB00001 -> Components -> FM EXIT_RFEBBU10_001 -> Include ZXF01U01.
В программе RFEBBU10 не нашел perform interpret_n2p.
В Include ZXF01U01, не очень много чего:
*&---------------------------------------------------------------------*
*& Include ZXF01U01
*&---------------------------------------------------------------------*
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_FEBEP) LIKE FEBEP STRUCTURE FEBEP
*" VALUE(I_FEBKO) LIKE FEBKO STRUCTURE FEBKO
*" VALUE(I_TESTRUN) TYPE XFLAG
*" EXPORTING
*" VALUE(E_FEBEP) LIKE FEBEP STRUCTURE FEBEP
*" VALUE(E_FEBKO) LIKE FEBKO STRUCTURE FEBKO
*" VALUE(E_MSGTEXT) LIKE FEBMKA-MESSG
*" VALUE(E_MSGTYP) LIKE FEBMKA-MSTYP
*" VALUE(E_UPDATE) LIKE FEBMKA-MSTYP
*" TABLES
*" T_FEBCL STRUCTURE FEBCL
*" T_FEBRE STRUCTURE FEBRE
*"----------------------------------------------------------------------
DATA: l_id LIKE THEAD-TDID,
l_lang LIKE THEAD-TDSPRAS,
l_obj LIKE THEAD-TDOBJECT,
l_name LIKE THEAD-TDNAME,
l_lifnr LIKE fpayp-gpa2r,
l_kunnr LIKE fpayp-gpa2r,
l_temp_text(400),
l_title LIKE adrc-title,
l_pyord LIKE pyordh-pyord,
l_vgint LIKE febep-vgint,
l_upd_flag(1).
DATA: it_lines LIKE TABLE OF TLINE,
wa_heder LIKE THEAD,
wa_adrc LIKE adrc,
wa_lfa1 LIKE lfa1,
wa_kna1 LIKE kna1,
wa_lines LIKE TLINE.
DATA: wa_febcl LIKE t_febcl,
wa_febre LIKE t_febre,
wa_febep_addon LIKE ZFEBEP_ADDON.
E_FEBEP = I_FEBEP.
* Метка для работы событий OpenFI
IF I_FEBEP-B1APP IS INITIAL.
E_FEBEP-B1APP = 'FI-FI'.
ENDIF.
* Завод
IF NOT I_FEBEP-GSBER IS INITIAL.
E_FEBEP-ZZWERKS = I_FEBEP-GSBER.
ENDIF.
* наименование контрагента
IF NOT I_FEBEP-AVKON IS INITIAL.
CASE I_FEBEP-AVKOA.
WHEN 'K'.
l_id = '0010'.
l_lang = 'RU'.
l_obj = 'LFA1'.
l_name = I_FEBEP-AVKON.
WHEN 'D'.
l_id = '0010'.
l_lang = 'RU'.
l_obj = 'KNA1'.
l_name = I_FEBEP-AVKON.
ENDCASE.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = l_id
LANGUAGE = l_lang
NAME = l_name
OBJECT = l_obj
TABLES
LINES = it_lines
EXCEPTIONS
OTHERS = 8
.
IF SY-SUBRC = 0.
CASE I_FEBEP-AVKOA.
WHEN 'K'.
SELECT SINGLE * INTO wa_lfa1
FROM lfa1
WHERE lifnr = l_name.
SELECT SINGLE * INTO wa_adrc
FROM adrc
WHERE addrnumber = wa_lfa1-adrnr.
E_FEBEP-ZZLIFNR = I_FEBEP-AVKON.
WHEN 'D'.
SELECT SINGLE * INTO wa_kna1
FROM kna1
WHERE kunnr = l_name.
SELECT SINGLE * INTO wa_adrc
FROM adrc
WHERE addrnumber = wa_kna1-adrnr.
E_FEBEP-ZZKUNNR = I_FEBEP-AVKON.
ENDCASE.
l_title = wa_adrc-title.
SELECT SINGLE title_medi INTO l_temp_text
FROM tsad3t
WHERE langu = 'RU'
AND title = l_title.
SHIFT l_temp_text LEFT DELETING LEADING SPACE.
LOOP AT it_lines INTO wa_lines.
CONCATENATE l_temp_text wa_lines-tdline
INTO l_temp_text
SEPARATED BY SPACE.
ENDLOOP.
SHIFT l_temp_text LEFT DELETING LEADING SPACE.
E_FEBEP-FNAM1 = l_temp_text.
E_FEBEP-ZZKOART = I_FEBEP-AVKOA.
ENDIF.
ENDIF.
* платежное поручение
DATA: l_pyord_len TYPE I.
IF I_FEBEP-VGINT = '2001'.
CALL FUNCTION 'Z_BS_PYORD_SEARCH'
EXPORTING
I_FEBEP = i_febep
I_FEBKO = i_febko
IMPORTING
E_PYORD = l_pyord
E_FEBCL_UPDATE = l_upd_flag
E_VGINT = l_vgint
TABLES
T_FEBCL = t_febcl
T_FEBRE = t_febre
EXCEPTIONS
NOT_FOUND = 1
* OTHERS = 2
.
IF SY-SUBRC = 0.
MOVE: sy-mandt TO wa_febcl-mandt,
i_febep-kukey TO wa_febcl-kukey,
i_febep-esnum TO wa_febcl-esnum,
'1' TO wa_febcl-csnum,
'PYORD' TO wa_febcl-selfd,
l_pyord TO wa_febcl-selvon.
APPEND wa_febcl TO t_febcl.
IF NOT l_vgint IS INITIAL.
MOVE l_vgint TO E_FEBEP-VGINT.
ENDIF.
ELSE.
MOVE '2000' TO E_FEBEP-VGINT.
ENDIF.
ENDIF.
*ставим операцию 1000 по инкассации, если не заполнен номер АЗС.
*Тем самым заставляем бухгалтеров думать и проставлять контировку
*ручками при проводке документа.
IF E_FEBEP-VGINT = '1008'.
IF E_FEBEP-GSBER IS INITIAL.
MOVE '1000' TO E_FEBEP-VGINT.
ENDIF.
ENDIF.
* Для Сбербанка. Поскольку дерево DMEE по нескольким расч. счетам не работает
*логика присвоения авт. операций прописана тут.
*CASE i_febko-absnd(9).
* WHEN '044222222' OR '047777777' OR '044444444'.
** Комиссия банка
* IF i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888'.
*
* MOVE '2002' TO E_FEBEP-VGINT.
* ENDIF.
** НДС с коммисии
* IF i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888'.
* MOVE '2014' TO E_FEBEP-VGINT.
* ENDIF.
** Перечисление
* IF i_febep-pakto = '888888888888888888'.
* MOVE '2003' TO E_FEBEP-VGINT.
* ENDIF.
* IF i_febep-pakto = '888888888888888888' OR
* i_febep-pakto = '888888888888888888'.
* MOVE '2009' TO E_FEBEP-VGINT.
* ENDIF.
*
*ENDCASE.
* Контировки
SELECT SINGLE * INTO WA_FEBEP_ADDON
FROM ZFEBEP_ADDON
WHERE KUKEY = I_FEBEP-KUKEY
AND ESNUM = I_FEBEP-ESNUM.
IF SY-SUBRC = 0.
IF NOT WA_FEBEP_ADDON-ZZHKONT IS INITIAL.
E_FEBEP-ZZHKONT = WA_FEBEP_ADDON-ZZHKONT.
ENDIF.
IF NOT WA_FEBEP_ADDON-ZZZUONR IS INITIAL.
E_FEBEP-ZZZUONR = WA_FEBEP_ADDON-ZZZUONR.
ENDIF.
IF NOT WA_FEBEP_ADDON-ZZMWSKZ IS INITIAL.
E_FEBEP-ZZMWSKZ = WA_FEBEP_ADDON-ZZMWSKZ.
ENDIF.
IF NOT WA_FEBEP_ADDON-ZZWERKS IS INITIAL.
E_FEBEP-ZZWERKS = WA_FEBEP_ADDON-ZZWERKS.
ENDIF.
IF NOT WA_FEBEP_ADDON-ZZZUMSK IS INITIAL.
E_FEBEP-ZZZUMSK = WA_FEBEP_ADDON-ZZZUMSK.
ENDIF.
ENDIF.
MOVE 'X' TO E_UPDATE.