DATA:BEGIN OF gt_list OCCURS 0,
kappl LIKE a304-kappl,
kschl LIKE a304-kschl,
vkorg LIKE a304-vkorg,
vtweg LIKE a304-vtweg,
matnr LIKE a304-matnr,
kfrst LIKE a304-kfrst,
datbi LIKE a304-datbi,
datab LIKE a304-datab,
kbstat LIKE a304-kbstat,
knumh LIKE a304-knumh,
newmt LIKE ztmm022-newmt,
icon(4) TYPE c,
msgtx(50) TYPE c,
sel TYPE c,
ensel TYPE c,
field_style TYPE lvc_t_styl,
END OF gt_list.
FORM frm_upload_a304 USING value(ps_i_tabindex) LIKE sy-tabix
value(pc_i_fieldname) TYPE slis_fieldname
CHANGING
value(l_subrc) LIKE sy-subrc
value(l_msgtx) TYPE msgtx.
CLEAR:l_subrc,l_msgtx,g_lines.
g_lines = lines( gt_list ).
IF g_lines IS INITIAL.
l_subrc = 4.
l_msgtx = 'No records in the list.'.
RETURN.
ENDIF.
READ TABLE gt_list WITH KEY sel = 'X'.
IF sy-subrc <> 0.
l_subrc = 4.
l_msgtx = 'Please select at least one'.
RETURN.
ENDIF.
FIELD-SYMBOLS:<f_list> LIKE LINE OF gt_list.
DATA:
lt_konp LIKE STANDARD TABLE OF konp WITH HEADER LINE.
DATA:
ls_kmein LIKE konp-kmein.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_konp
FROM konp
FOR ALL ENTRIES IN gt_list
WHERE knumh = gt_list-knumh.
SORT lt_konp BY knumh.
LOOP AT gt_list ASSIGNING <f_list> WHERE sel = 'X'.
g_tabix = sy-tabix.
CALL FUNCTION 'ZFM_SHOW_PROGRESSBAR'
EXPORTING
text = 'Converting...'
curr_num = g_tabix
total_num = g_lines.
READ TABLE lt_konp WITH KEY knumh = <f_list>-knumh BINARY SEARCH.
IF sy-subrc <> 0.
<f_list>-msgtx = 'Condition item is not exist!'.
<f_list>-icon = icon_led_red.
CONTINUE.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input = lt_konp-kmein
language = sy-langu
IMPORTING
output = ls_kmein.
REFRESH bdc_tab.
PERFORM frm_create_bdctab USING:
'X' 'SAPMV13A' '0100',
' ' 'RV13A-KSCHL' 'PR00',
' ' 'BDC_OKCODE' '/00',
'X' 'SAPLV14A' '0100',
' ' 'BDC_OKCODE' '/00',
' ' 'RV130-SELKZ(01)' ' ',
' ' 'RV130-SELKZ(03)' 'X',
'X' 'SAPMV13A' '1304',
' ' 'KOMG-VKORG' <f_list>-vkorg,
' ' 'KOMG-VTWEG' <f_list>-vtweg,
' ' 'KOMG-MATNR(01)' <f_list>-newmt,
' ' 'KONP-KBETR(01)' lt_konp-kbetr,
' ' 'KONP-KONWA(01)' lt_konp-konwa,
' ' 'KONP-KPEIN(01)' lt_konp-kpein,
' ' 'KONP-KMEIN(01)' ls_kmein,
' ' 'RV13A-KRECH(01)' lt_konp-krech,
' ' 'RV13A-DATAB(01)' <f_list>-datab,
' ' 'RV13A-DATBI(01)' <f_list>-datbi,
' ' 'KONP-VALTG(01)' lt_konp-valtg,
' ' 'BDC_OKCODE' '/00',
'X' 'SAPMV13A' '1304',
' ' 'BDC_OKCODE' '=SICH'.
CALL TRANSACTION 'VK11' USING bdc_tab MODE 'P' UPDATE 'S'
MESSAGES INTO mesgitab.
READ TABLE mesgitab WITH KEY msgtyp = 'E'.
IF sy-subrc = 0.
<f_list>-icon = icon_led_red.
<f_list>-msgtx = 'Error'.
ELSE.
CLEAR: <f_list>-sel,<f_list>-ensel.
<f_list>-icon = icon_led_green.
<f_list>-msgtx = 'Successful'.
ENDIF.
ENDLOOP.
ENDFORM.