В первом случае не передаются данные в поле RAIFP2-ANLN1 и RAIFP2-ANLN2. Во втором случае не происходит нажатие кнопки MULT и появление экранной таблицы. Вот код:
Code:
IF lv_line = 1.
READ TABLE lt_anla INTO ls_anla INDEX 1.
FREE gt_bdc.
PERFORM bdc_row USING:
'X' 'SAPLSPO4' '0300', "заполняем БЕ
' ' 'SVALD-VALUE' pa_bukrs,
' ' 'BDC_OKCODE' '=FURT'," Ок
'X' 'SAPLAMDP' '0100',
'X' 'SAPLAMDP' '0300',
' ' 'RAIFP2-ANLN1' ls_anla-anln1,
' ' 'RAIFP2-ANLN2' ls_anla-anln2.
' ' 'BDC_OKCODE' ''.
CALL TRANSACTION 'ABAVN'
USING gt_bdc
MODE gc_mode
MESSAGES INTO bdc_tab.
ELSE.
LOOP AT lt_anla into ls_anla.
MOVE-CORRESPONDING ls_anla TO ls_1022.
INSERT INTO ztaa_bus1022 VALUES ls_1022.
ENDLOOP.
FREE gt_bdc.
ls_anla-anln1 = ''.
FREE gt_bdc.
PERFORM bdc_row USING:
'X' 'SAPLSPO4' '0300', "заполняем БЕ
' ' 'SVALD-VALUE' pa_bukrs,
' ' 'BDC_OKCODE' ''," Ок
'X' 'SAPLAMDP' '0100',
' ' 'RAIFP2-ANLN1' ' ',
'X' 'SAPLAMDP' '0100',
' ' 'BDC_OKCODE' '=MULT'," Несколько основных средств
'X' 'SAPLAMDP' '0201'.
CALL TRANSACTION 'ABAVN'
USING gt_bdc
MODE gc_mode
MESSAGES INTO bdc_tab.
ENDIF.
*&---------------------------------------------------------------------*
*& Form bdc_row
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_DYNBEGIN text
* -->P_1 text
* -->P_2 text
*----------------------------------------------------------------------*
FORM bdc_row USING p_dynbegin p_1 p_2.
IF p_dynbegin = gc_x.
CLEAR gt_bdc.
gt_bdc-program = p_1.
gt_bdc-dynpro = p_2.
gt_bdc-dynbegin = gc_x.
APPEND gt_bdc.
ELSE.
CLEAR gt_bdc.
gt_bdc-fnam = p_1.
gt_bdc-fval = p_2.
APPEND gt_bdc.
ENDIF.
ENDFORM.
Пономарев Артем: пользуйтесь тегом code, пожалуйста.