EXCEL导入/ALV批量数据执行想把有问题得数据报出来不想加到每行里面
可以调用消息函数:RSCRMBW_DISPLAY_BAPIRET2
例如:代码
DATA: lt_message TYPE TABLE OF bapiret2,
ls_message TYPE bapiret2.
*从第四行开始为数据行
LOOP AT lt_intern INTO ls_intern WHERE row >= 4.
CLEAR gs_alv_02.
*用列号匹配内表字段
ASSIGN COMPONENT ls_intern-col OF STRUCTURE gs_upload_02 TO <lfs_value_data>.
IF sy-subrc = 0.
DESCRIBE FIELD <lfs_value_data> LENGTH lv_length_data IN CHARACTER MODE.
lv_length_excel = strlen( ls_intern-value ).
IF lv_length_data >= lv_length_excel.
<lfs_value_data> = ls_intern-value.
ELSE.
lv_check_false = abap_true.
CLEAR ls_message.
ls_message-type = 'E'.
ls_message-id = '00'.
ls_message-number = '001'.
ls_message-message = '第' && ls_intern-row && '行' &&
'第' && ls_intern-col && '列' && '数据超出长度'.
APPEND ls_message TO lt_message.
ENDIF.
ENDIF.
AT END OF row.
APPEND gs_upload_02 TO gt_upload_02.
CLEAR gs_upload_02.
ENDAT.
ENDLOOP.
*整理excel内表数据至alv
IF lv_check_false IS INITIAL.
LOOP AT gt_upload_02 INTO DATA(ls_upload_02).
CLEAR gs_alv_02.
MOVE-CORRESPONDING ls_upload_02 TO gs_alv_02.
gs_alv_02-kunnr = |{ gs_alv_02-kunnr ALPHA = IN }|.
gs_alv_02-icon_traffic = '@EB@'.
APPEND gs_alv_02 TO gt_alv_02.
CLEAR: ls_upload_02.
ENDLOOP.
ELSE.
CALL FUNCTION 'RSCRMBW_DISPLAY_BAPIRET2'
TABLES
it_return = lt_message.
STOP.
ENDIF.