Copy Condition Records(BDC)

来源:互联网 发布:淘宝天天看直播间 编辑:程序博客网 时间:2024/05/16 06:53
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_styleTYPE 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.

0 0