Добрый день. Идет апгрейд системы. С 5.0 до 6.0. Есть в прошлой версии проверка: Предпосылка: СсылочнОперация = 'BKPF' AND ( Операция = 'ZUK' OR Операция = 'ZUD' ) Проверка: Ban multi-line doc. with tax-positions & different PAOBJNR В новой версии она не работает Смотрел ноту 1737519, в итоге в ставили необходимый код из ноты в код и сейчас провека выглядит следующим образоом: *----------------------------------------------------------------------* * Safin * check positions of multi-line FI-document with tax positions *----------------------------------------------------------------------* FORM u905 USING b_result. *----- TYPES: tbseg LIKE TABLE OF bseg. DATA: ls_bseg TYPE bseg, lt_bseg TYPE tbseg, BEGIN OF it_pos OCCURS 10, hkont LIKE bseg-hkont, txgrp LIKE bseg-txgrp, paobjnr LIKE bseg-paobjnr, buzei LIKE bseg-buzei, END OF it_pos, it_tmp LIKE it_pos OCCURS 0 WITH HEADER LINE, BEGIN OF it_ce4 OCCURS 0, ce4key LIKE ce41000_acct-ce4key, END OF it_ce4.
FIELD-SYMBOLS: <fs> TYPE tbseg. *----- * break safin. b_result = b_true.
ASSIGN ('(SAPMF05A)XBSEG[]') TO <fs>. CHECK sy-subrc = 0.
READ TABLE <fs> WITH KEY ktosl = 'ZUK' TRANSPORTING NO FIELDS. IF sy-subrc <> 0. READ TABLE <fs> WITH KEY ktosl = 'ZUD' TRANSPORTING NO FIELDS. ENDIF. CHECK sy-subrc = 0. "Есть налоговые позиции ZUK или ZUD
REFRESH: it_pos, it_tmp. LOOP AT <fs> INTO ls_bseg WHERE buzid = ''. it_pos-hkont = ls_bseg-hkont. it_pos-txgrp = ls_bseg-txgrp. it_pos-paobjnr = ls_bseg-paobjnr. it_pos-buzei = ls_bseg-buzei. APPEND it_pos. ENDLOOP.
types: Y_S_CE4 LIKE CE41000, Y_T_CE4 TYPE Y_S_CE4 OCCURS 0. data: l_erkrs like tkeb-erkrs, lt_obj_tab TYPE Y_T_CE4," type standard table of ce41000_acct. wa_obj_tab like LINE OF lt_obj_tab.
clear lt_obj_tab[].
l_erkrs = '1000'.
SORT it_pos BY hkont txgrp. LOOP AT it_pos.
APPEND it_pos TO it_tmp. AT END OF txgrp.
clear wa_obj_tab. clear lt_obj_tab[]. wa_obj_tab-AKTBO = 'X'. if it_tmp-paobjnr co '1234567890'. wa_obj_tab-PAOBJNR = it_tmp-paobjnr. endif. wa_obj_tab-pasubnr = '0001'. APPEND wa_obj_tab TO lt_obj_tab.
CALL FUNCTION 'RKE_GET_CRITERIA_FOR_ACCTNR' EXPORTING I_ERKRS = l_erkrs TABLES OBJECT_TABLE = lt_obj_tab .
SELECT DISTINCT ce4key INTO TABLE it_ce4 FROM ce41000_acct FOR ALL ENTRIES IN it_tmp WHERE aktbo = 'X' AND paobjnr = it_tmp-paobjnr AND pasubnr = '0001'.
IF lines( lt_obj_tab ) > 1." > 1. b_result = b_false. UNASSIGN <fs>. EXIT. ENDIF. REFRESH it_tmp. ENDAT. ENDLOOP. UNASSIGN <fs>. ENDFORM. Подскажите, что сделать, чтобы в новой версии заработало.
|
|