MB11 BDC upload issue

hi experts.
I am using a BDC-UPLOAD program for MB11 but there is one error during an upload.
Here is a procedure which i am following:
I have created an upload file, which is tab-delimited format. In which such information exists:
01.12.2008 12.12.2008 561 d920 m920 536319000 1 PC 100
Now when i am uploading this file using movement type P61 or 561 a same error occurs:
Formatting error in the field MSEG-EXBWR ; see next message
Make an entry in all required fields and this is a required field, its a currency type field but i have even checked it by replacing it into char & num.
Is there any standard upload program for STOCK UPLOAD using MB11?  If there is any one who can send me a solution.
thanks in advance.
Regards,
Yahya Shoaib.

Hi,
For Stock upload I prefer creation of a program by calling Function Module BAPI_GOODSMVT_CREATE. When you use BAPI, as it is being function module you need not do the recording as well. You can test the BAPI also manually in SE37. This simulation helps in passing the data in the feed file. You may contact your ABAPer for creating a program using this  BAPI. You can input the feed file in similar fashion that of BDC

Similar Messages

  • Error during MB11 bdc-upload

    hi experts.
    I am using a BDC-UPLOAD program for MB11 but there is one error during an upload.
    Here is a procedure which i am following:
    I have created an upload file, which is tab-delimited format. In which such information exists:
    01.12.2008 12.12.2008 561 d920 m920 536319000 1 PC 100
    Now when i am uploading this file using movement type P61 or 561 a same error occurs:
    Formatting error in the field MSEG-EXBWR ; see next message
    Make an entry in all required fields and this is a required field, its a currency type field but i have even checked it by replacing it into char & num.
    Is there any standard upload program for STOCK UPLOAD using MB11? If there is any one who can send me a solution.
    thanks in advance.
    Regards,
    Yahya Shoaib.

    OK...I think you have declared the internal table field for that value same as the standard table right??
    Now, create a variable with char and then move the value to that char variable and then pass it to the subroutines...
    Ex:
    loop at itab into wa.
    var1 = wa-amount
    perform bdc_field using mseg-exwbr var1.
    endloop.
    Now, I think it will pick up the value.
    VIshwa.

  • BDC upload problem in hr master

    Hi,
    we are facing a problem in BDC upload for hr master tcode pa40.
    we want to stop bdc after 2 screens only and not process further screens. how to do this?
    please help
    Thanks.

    Hi,
    If you are using Session Mode :
    After 2nd screen's is porcessed Use \BEND in the ok code field of BDC TABLE.
    This will work,
    Regards,
    Gurpreet.

  • BDC upload program for inoftypes 14 and 168

    Hi All,
    I am uploading IT 14 and 168 through a single BDC program. i am opening the bdc session using
    BDC_OPEN_GROUP before bdc recording. my requirement is to upload IT 168 only when uploading
    of IT 14 is successful. For this i am using the message table of the first upload(for IT14). if the message
    type is 'S'(success) then i am uploading IT168 else i am moving it to an error internal table. Please suugest
    wthr this logic is fine. Also where should i call BDC_CLOSE_GROUP. currently i am calling it after the
    PERFORM for upload of infotype 168 but it is giving error "unable to open BDC_CLOSE_GROUP".
    Can anyone suggest me the solution through some sample code.
    i am attaching here my code for your reference.
    REPORT  ZUSAHR_IN_BN_E_014_168  NO STANDARD PAGE HEADING
                            LINE-COUNT 65 LINE-SIZE 132.
    *=======================================================================
    TYPE-POOLS
    *=======================================================================
    TYPE-POOLS: slis,
                truxs.
    *=======================================================================
    TABLES
    *=======================================================================
    TABLES: pernr.
    *=======================================================================
    INFOTYPES
    *=======================================================================
    INFOTYPES: 0000,                                    "Action
               0014,                                    "Recurring payement/deductions
               0168.                                    "Insurance plan
    *=======================================================================
    TYPES
    *=======================================================================
    TYPES : BEGIN OF t_0014_0168,
             num(20) type c,         "Number
             actcode(1) type c,      "action code
             lgart LIKE p0014-lgart, "Wage Type
            betrg LIKE q0014-betrg, "Amount
             betrg(14) type c, "Amount
             bplan LIKE p0168-bplan, "Benefit plan
             bcovr like p0168-bcovr, "Insurance Option
            END OF t_0014_0168,
            BEGIN OF t_pernr,
              pernr LIKE p0002-pernr,  "personnel number
              perid like p0002-perid,  "SSN
            END OF t_pernr,
            BEGIN OF errmsg,
              pernr LIKE p0014-pernr,  "personnel number
              messg(85),              " message text
            END OF errmsg,
            BEGIN OF succmsg,
              pernr LIKE p0014-pernr,  "personnel number
             messg(85),              " message text
            END OF succmsg.
    *=======================================================================
    INTERNAL TABLES
    *=======================================================================
    DATA : i_itab TYPE STANDARD TABLE OF t_0014_0168,
           i_pernr TYPE STANDARD TABLE OF t_pernr,
           i_bdcitab TYPE STANDARD TABLE OF bdcdata ,
           i_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll,
           i_errmsg TYPE STANDARD TABLE OF errmsg,
           i_succmsg TYPE STANDARD TABLE OF succmsg.
    *=======================================================================
    RANGES
    *=======================================================================
    *=======================================================================
    DATA DECLARATION
    *=======================================================================
    DATA : messg(85).
    *=======================================================================
    GLOBAL WORKAREAS
    *=======================================================================
    DATA : wa_itab TYPE t_0014_0168,
           wa_pernr TYPE t_pernr,
           wa_bdcitab TYPE bdcdata ,
           wa_bdcmsgcoll TYPE bdcmsgcoll,
           wa_errmsg TYPE errmsg,
           wa_succmsg TYPE succmsg.
    *=======================================================================
    GLOBAL VARIABLES
    *=======================================================================
    DATA : g_n1 TYPE sy-dbcnt.
    *=======================================================================
    GLOBAL CONSTANTS
    *=======================================================================
    DATA : g_x TYPE c VALUE 'X',
           g_asc    TYPE char10 VALUE 'ASC',
           g_xls(3) TYPE c VALUE 'XLS',
           g_f TYPE c VALUE 'F',
           g_1 TYPE c VALUE '1',
           g_0 TYPE c VALUE '0',
           g_u TYPE c VALUE 'U',
           g_int(3) TYPE c VALUE 'INT',
           g_raw(3) TYPE c VALUE 'RAW',
           G_A(1) TYPE C VALUE 'A',
           G_C(1) TYPE C VALUE 'C',
           G_D(1) TYPE C VALUE 'D'.
    *=======================================================================
    SELECTION-SCREEN
    *=======================================================================
    *Block for Additional selection
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS : p_check TYPE char1 DEFAULT 'X', "check box for test run
                 p_file1 TYPE  rlgrap-filename OBLIGATORY, " upload file
                 p_file2 TYPE rlgrap-filename OBLIGATORY, " succ emp
                 p_file3 TYPE rlgrap-filename OBLIGATORY. " err emp
    SELECTION-SCREEN END OF BLOCK b1.
    *=======================================================================
    AT SELECTION-SCREEN
    *=======================================================================
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
      PERFORM sub_file_intake.
    *=======================================================================
    START-OF-SELECTION
    *=======================================================================
    START-OF-SELECTION.
      PERFORM sub_data_upload.
      PERFORM GET_PERNR_SSN.
    *=======================================================================
    END-OF-SELECTION
    *=======================================================================
    END-OF-SELECTION.
    *> upload the data using BDC
      PERFORM sub_bdc_upload.
    *> To display the contents of the input file for test run
      IF p_check = space.
        PERFORM sub_output.
      ELSE.
    *> To display in the messages after uploading the input file
        PERFORM sub_output_messages.
      ENDIF.
    *&      Form  sub_file_intake
          F4 on filename to accept file
    -->  p1        text
    <--  p2        text
    FORM sub_file_intake .
    To provide F4 Functionality for file path
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          program_name  = syst-repid
        CHANGING
          file_name     = p_file1
        EXCEPTIONS
          mask_too_long = 1
          OTHERS        = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " sub_file_intake
    *&      Form  SUB_DATA_UPLOAD
           Upload the input file and perform the checkings.
    -->  p1        text
    <--  p2        text
    FORM SUB_DATA_UPLOAD .
    *> local variable for filename
      DATA : l_file1 TYPE string.
    *> assign value for file1.
      l_file1 = p_file1.
    *> function to upload the input file
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = l_file1
          filetype                = g_asc
          has_field_separator     = g_x
        TABLES
          data_tab                = i_itab
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          OTHERS                  = 17.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " SUB_DATA_UPLOAD
    *&      Form  sub_output
          if program is on test run mode then display records
    FORM sub_output .
    *> Count the number of employee to be processed
      CLEAR g_n1.
      DESCRIBE TABLE i_itab LINES g_n1.
      IF g_n1 NE 0.
    *> if program is in test run mode then display
        LOOP AT i_itab INTO wa_itab.
          WRITE: / wa_itab-num,
                   wa_itab-lgart,
                   wa_itab-betrg,
                   wa_itab-bplan,
                   wa_itab-bcovr.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " sub_output
    *&      Form  sub_bdc_upload
          bdc upload
    FORM sub_bdc_upload .
    *> Count the number of employee to be processed
      CLEAR g_n1.
      DESCRIBE TABLE i_itab LINES g_n1.
      IF g_n1 NE 0.
        PERFORM sub_open_group.
        PERFORM sub_bdc_sessions.
       PERFORM sub_close_group.
      ELSE.
        MESSAGE e003(zmsg) WITH text-021.
      ENDIF.
    ENDFORM.                    " sub_bdc_upload
    *&      Form  sub_open_group
          bdc_open_group
    FORM sub_open_group .
    *> group name
      DATA : c_group LIKE apqi-groupid .
      c_group = text-001.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          client              = sy-mandt
          group               = c_group
          holddate            = sy-datum
          keep                = g_x
          user                = sy-uname
          prog                = sy-cprog
        EXCEPTIONS
          client_invalid      = 1
          destination_invalid = 2
          group_invalid       = 3
          group_is_locked     = 4
          holddate_invalid    = 5
          internal_error      = 6
          queue_error         = 7
          running             = 8
          system_lock_error   = 9
          user_invalid        = 10
          OTHERS              = 11.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " sub_open_group
    *&      Form  sub_close_group
          Close the BDC Session
    FORM sub_close_group .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          not_open    = 1
          queue_error = 2
          OTHERS      = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " sub_close_group
    *&      Form  sub_bdc_sessions
          BDC Sessions
    FORM sub_bdc_sessions .
    *> Local Constants
      DATA: l_ctumode LIKE ctu_params-dismode VALUE 'A',
            l_cupdate LIKE ctu_params-updmode VALUE 'S',
            l_startdate(10) type c,
            l_enddate(10) type c,
            l_tcode(4) TYPE c VALUE 'PA30',
            l_info(2) TYPE c VALUE '14'.
      LOOP AT i_itab INTO wa_itab.
        perform bdc_dynpro      using 'SAPMP50A' '1000'.
       IF  wa_itab-actcode = G_A.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=INS'.
       ELSEIF  wa_itab-actcode = G_D.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=DEL'.
       ELSEIF  wa_itab-actcode = G_C.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=MOD'.
       ENDIF.
        perform bdc_field       using 'RP50G-PERNR' wa_itab-num.
        perform bdc_field       using 'RP50G-TIMR6'
                                      'X'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RP50G-CHOIC'.
        perform bdc_field       using 'RP50G-CHOIC' l_info.
        perform bdc_dynpro      using 'MP001400' '2010'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'Q0014-BETRG'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'P0014-BEGDA'
                                      '03/18/2008'.
        perform bdc_field       using 'P0014-ENDDA'
                                      '12/31/9999'.
        perform bdc_field       using 'P0014-LGART' wa_itab-lgart.
       perform bdc_field       using 'Q0014-BETRG' wa_itab-betrg.
        perform bdc_field       using 'Q0014-BETRG'
                                       wa_itab-betrg.
                                     '               248'.
       perform bdc_field       using 'P0014-BETRG' wa_itab-betrg.
        perform bdc_field       using 'P0014-WAERS'
                                      'USD'.
        perform bdc_dynpro      using 'MP001400' '2010'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0014-BEGDA'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0014-BEGDA'
                                      '03/18/2008'.
        perform bdc_field       using 'P0014-ENDDA'
                                      '12/31/9999'.
       perform bdc_field       using 'P0014-LGART' wa_itab-lgart.
       perform bdc_field       using 'Q0014-BETRG' wa_itab-betrg.
       perform bdc_field       using 'P0014-BETRG' wa_itab-betrg.
        perform bdc_field       using 'P0014-WAERS'
                                      'USD'.
    *>  refresh the message tab
        REFRESH i_bdcmsgcoll.
        CALL TRANSACTION l_tcode USING i_bdcitab
                         MODE   l_ctumode
                         UPDATE l_cupdate
                         MESSAGES INTO i_bdcmsgcoll.
    *>  refresh the bdc data tab
        REFRESH i_bdcitab.
    *>  store the message for this pernr
        PERFORM sub_build_messages.
      ENDLOOP.
    ENDFORM.                    " sub_bdc_sessions
           Start new screen                                              *
    FORM bdc_dynpro USING program dynpro.
      CLEAR wa_bdcitab.
      wa_bdcitab-program  = program.
      wa_bdcitab-dynpro   = dynpro.
      wa_bdcitab-dynbegin = g_x.
      APPEND wa_bdcitab TO i_bdcitab.
    ENDFORM.                    "BDC_DYNPRO
           Insert field                                                  *
    FORM bdc_field USING fnam fval.
      IF fval <> space.
        CLEAR wa_bdcitab.
        wa_bdcitab-fnam = fnam.
        wa_bdcitab-fval = fval.
        APPEND wa_bdcitab TO i_bdcitab.
      ENDIF.
    ENDFORM.                    "BDC_FIELD
    *&      Form  sub_build_messages
          Generate the messages
    FORM sub_build_messages .
    *> Local Constants
      DATA : l_s TYPE c VALUE 'S'.
      LOOP AT i_bdcmsgcoll INTO wa_bdcmsgcoll.
    *> generate the message
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            msgid               = wa_bdcmsgcoll-msgid
            msgnr               = wa_bdcmsgcoll-msgnr
            msgv1               = wa_bdcmsgcoll-msgv1
            msgv2               = wa_bdcmsgcoll-msgv2
            msgv3               = wa_bdcmsgcoll-msgv3
            msgv4               = wa_bdcmsgcoll-msgv4
          IMPORTING
            message_text_output = messg
          EXCEPTIONS
            OTHERS              = 1.
        IF sy-subrc EQ 0.
    *> if message type is 'S' then store in successful table
          IF wa_bdcmsgcoll-msgtyp = l_s.
            MOVE wa_itab-num TO wa_succmsg-pernr.
            MOVE messg TO wa_succmsg-messg.
            APPEND wa_succmsg TO i_succmsg.
            CLEAR wa_succmsg.
            PERFORM BDC_UPLOAD_168.
          ELSE.
    *> if message type is 'E' then store in error table
            MOVE wa_itab-num TO wa_errmsg-pernr.
            MOVE messg TO wa_errmsg-messg.
            APPEND wa_errmsg TO i_errmsg.
            CLEAR wa_errmsg.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " sub_build_messages
    *&      Form  sub_output_messages
          text
    -->  p1        text
    <--  p2        text
    FORM sub_output_messages .
      IF p_check = g_x.
    *> clear the count
        CLEAR g_n1.
    *> count the number of successful employees
        DESCRIBE TABLE i_succmsg LINES g_n1.
        IF g_n1 <> 0 .
    *> download success file
          PERFORM sub_succ_file.
    *> display the successful employees
          WRITE :/ text-002.
          LOOP AT i_succmsg INTO wa_succmsg.
            WRITE:/ wa_succmsg-pernr, wa_succmsg-messg.
          ENDLOOP.
        ENDIF.
    *> clear the count
        CLEAR g_n1.
    *> count the number of error employees
        DESCRIBE TABLE i_errmsg LINES g_n1.
        IF g_n1 <> 0 .
    *> download error file
          PERFORM sub_err_file.
    *> display the error employees
          WRITE :/ text-003.
          LOOP AT i_errmsg INTO wa_errmsg.
            WRITE:/ wa_errmsg-pernr,wa_errmsg-messg.
          ENDLOOP.
        ENDIF.
      ENDIF.
    ENDFORM.                   " sub_output_messages
    *&      Form  SUB_SUCC_FILE
          text
    -->  p1        text
    <--  p2        text
    FORM sub_succ_file .
    *> local variable for filename
      DATA : l_file1 TYPE string.
    *> assign value for file1.
      l_file1 = p_file2.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename                = l_file1
          filetype                = g_asc
        TABLES
          data_tab                = i_succmsg
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          OTHERS                  = 22.
      IF sy-subrc EQ 0.
        MESSAGE s003(zmsg) WITH text-006.
      ENDIF.
    ENDFORM.                    " SUB_SUCC_FILE
    *&      Form  SUB_ERR_FILE
          text
    -->  p1        text
    <--  p2        text
    FORM sub_err_file .
    *> local variable for filename
      DATA : l_file1 TYPE string.
    *> assign value for file1.
      l_file1 = p_file3.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename                = l_file1
          filetype                = g_asc
        TABLES
          data_tab                = i_errmsg
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          OTHERS                  = 22.
      IF sy-subrc EQ 0.
        MESSAGE s003(zmsg) WITH text-007.
      ENDIF.
    ENDFORM.                    " SUB_ERR_FILE
    *&      Form  GET_PERNR_SSN
          text
    -->  p1        text
    <--  p2        text
    FORM GET_PERNR_SSN .
      data : l_cnt type i.
      describe table i_itab lines l_cnt.
      if l_cnt ge 0.
        SELECT PERNR PERID FROM PA0002 INTO table i_pernr
               FOR ALL ENTRIES IN i_itab
               WHERE PERID EQ i_itab-num.
        IF SY-SUBRC EQ 0.
          PERFORM MODIFY_TABLE.
        ENDIF.
      endif.
    ENDFORM.                    " GET_PERNR_SSN
    *&      Form  MODIFY_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM MODIFY_TABLE .
      LOOP AT i_itab INTO wa_itab.
        READ TABLE i_pernr INTO wa_pernr WITH KEY perid = wa_itab-num.
        IF SY-SUBRC EQ 0.
          MOVE WA_PERNR-PERNR TO WA_ITAB-NUM.
          MODIFY i_itab FROM wa_itab.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " MODIFY_TABLE
    *&      Form  BDC_UPLOAD_168
          text
    -->  p1        text
    <--  p2        text
    FORM BDC_UPLOAD_168 .
    PERFORM sub_open_group.
      PERFORM sub_bdc_sessions_168.
      PERFORM sub_close_group.
    ENDFORM.                    " BDC_UPLOAD_168
    *&      Form  SUB_BDC_SESSIONS_168
          text
    -->  p1        text
    <--  p2        text
    FORM SUB_BDC_SESSIONS_168 .
      DATA: l_ctumode LIKE ctu_params-dismode VALUE 'A',
             l_cupdate LIKE ctu_params-updmode VALUE 'S',
             l_sdate(10) type c,
             l_edate(10) type c,
             l_tcode(4) TYPE c VALUE 'PA30',
             l_info(3) TYPE c VALUE '168'.
      LOOP AT i_itab INTO wa_itab.
        perform bdc_dynpro      using 'SAPMP50A' '1000'.
        IF  wa_itab-actcode = G_A.
          perform bdc_field       using 'BDC_OKCODE'
                                        '=INS'.
        ELSEIF  wa_itab-actcode = G_D.
          perform bdc_field       using 'BDC_OKCODE'
                                        '=DEL'.
        ELSEIF  wa_itab-actcode = G_C.
          perform bdc_field       using 'BDC_OKCODE'
                                        '=MOD'.
        ENDIF.
        perform bdc_field       using 'RP50G-PERNR' wa_itab-num.
        perform bdc_field       using 'RP50G-TIMR6'
                                      'X'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RP50G-CHOIC'.
        perform bdc_field       using 'RP50G-CHOIC' l_info.
        perform bdc_dynpro      using 'MP016800' '2000'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'P0168-BEGDA'
                                      '03/18/2008'.
        perform bdc_field       using 'P0168-ENDDA'
                                      '12/31/9999'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0168-BCOVR'.
        perform bdc_field       using 'P0168-BPLAN' wa_itab-bplan.
        perform bdc_field       using 'P0168-BCOVR' wa_itab-bcovr.
        perform bdc_field       using 'Q0168-CSTDT'
                                      '03/18/2008'.
        perform bdc_field       using 'Q0168-EEPER'
                                      '2'.
        perform bdc_field       using 'P0168-PERIO'
                                      '2'.
        perform bdc_dynpro      using 'MP016800' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0168-BEGDA'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0168-BEGDA'
                                      '03/18/2008'.
        perform bdc_field       using 'P0168-ENDDA'
                                      '12/31/9999'.
        perform bdc_field       using 'P0168-BPLAN' wa_itab-bplan.
        perform bdc_field       using 'P0168-BCOVR' wa_itab-bcovr.
        perform bdc_field       using 'Q0168-CSTDT'
                                      '03/18/2008'.
        perform bdc_field       using 'Q0168-EEPER'
                                      '2'.
    *>  refresh the message tab
        REFRESH i_bdcmsgcoll.
        CALL TRANSACTION l_tcode USING i_bdcitab
                         MODE   l_ctumode
                         UPDATE l_cupdate
                         MESSAGES INTO i_bdcmsgcoll.
    *>  refresh the bdc data tab
        REFRESH i_bdcitab.
    *>  store the message for this pernr
        PERFORM sub_build_messages_168.
      ENDLOOP.
    ENDFORM.                    " SUB_BDC_SESSIONS_168
    *&      Form  SUB_BUILD_MESSAGES_168
          text
    -->  p1        text
    <--  p2        text
    FORM SUB_BUILD_MESSAGES_168 .
    *> Local Constants
      DATA : l_s TYPE c VALUE 'S'.
      LOOP AT i_bdcmsgcoll INTO wa_bdcmsgcoll.
    *> generate the message
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            msgid               = wa_bdcmsgcoll-msgid
            msgnr               = wa_bdcmsgcoll-msgnr
            msgv1               = wa_bdcmsgcoll-msgv1
            msgv2               = wa_bdcmsgcoll-msgv2
            msgv3               = wa_bdcmsgcoll-msgv3
            msgv4               = wa_bdcmsgcoll-msgv4
          IMPORTING
            message_text_output = messg
          EXCEPTIONS
            OTHERS              = 1.
        IF sy-subrc EQ 0.
    *> if message type is 'S' then store in successful table
          IF wa_bdcmsgcoll-msgtyp = l_s.
            MOVE wa_itab-num TO wa_succmsg-pernr.
            MOVE messg TO wa_succmsg-messg.
            APPEND wa_succmsg TO i_succmsg.
            CLEAR wa_succmsg.
          ELSE.
    *> if message type is 'E' then store in error table
            MOVE wa_itab-num TO wa_errmsg-pernr.
            MOVE messg TO wa_errmsg-messg.
            APPEND wa_errmsg TO i_errmsg.
            CLEAR wa_errmsg.
          ENDIF.
        ENDIF.
      ENDLOOP.
    Many thanks in advance!!!!
    Rupesh

    For the IDOC perspective, you can uses CREMAS.
    For the mass maintenance you still have XK99 (which also uses CREMAS internally)
    True there is NO BAPI
    For the BDC and the table control. Well this is not really true.
    In batchinput, instead of maintaining the rows by there Number, you should select it at the first position.
    OK-CODE /06 will open a selection screen SAPMF02K 2324. The result of the selection screen goes to the first line of the table control.
    Of course this works only in BDC
    reward points if helpful
    Edited by: Alain Bacchi  on Jun 18, 2008 8:48 AM

  • Step-by-step BDC upload

    can u send me the step by step process for a BDC program
    i had given a excel sheet with field names and length .....that is to be uploaded
    it is material master(MM01)
    thanks in advance

    Hi,
    for the bdc upload
    step1. go to the Transaction SHDb and create a new recording for the transaction MM01 and save the recording.
    step 2: from the same transaction select the recording and go the program.
    Note: if you have ur file in presentation server insted  of open dataset use gui_upload.
    make the needed necessary changes in the coding.
    i've attached the sample coding, keep that as reference and do according to your need.
    REPORT zmm01_bdc
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    INCLUDE bdcrecx1.
    DATA: dataset(132) TYPE c.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    DATA: BEGIN OF record,
    data element: MATNR
            matnr_001(018),
    data element: MBRSH
            mbrsh_002(001),
    data element: MTART
            mtart_003(004),
    data element: XFELD
            kzsel_01_004(001),
    data element: XFELD
            kzsel_02_005(001),
    data element: MATNR
            matnr_006(018),
    data element: MBRSH
            mbrsh_007(001),
    data element: MTART
            mtart_008(004),
    data element: XFELD
            kzsel_01_009(001),
    data element: XFELD
            kzsel_02_010(001),
    data element: MAKTX
            maktx_011(040),
    data element: MEINS
            meins_012(003),
    data element: MATKL
            matkl_013(009),
    data element: MTPOS_MARA
            mtpos_mara_014(004),
    data element: MAKTX
            maktx_015(040),
          END OF record.
    DATA l_lines TYPE i .
    DATA it_record LIKE TABLE OF record WITH HEADER LINE .
    DATA wa_record LIKE record .
    End generated data section ***
    START-OF-SELECTION.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      ='C:\MM01_FILE.TXT'
         filetype                      = 'ASC'
         has_field_separator           = '#'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          data_tab                      = it_record
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      PERFORM open_dataset USING dataset.
      PERFORM open_group.
      DO.
        READ DATASET dataset INTO record.
        IF sy-subrc <> 0. EXIT. ENDIF.
        LOOP AT it_record INTO wa_record.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '0060'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RMMG1-MTART'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'RMMG1-MATNR'
                                        record-matnr_001.
          PERFORM bdc_field       USING 'RMMG1-MBRSH'
                                        record-mbrsh_002.
          PERFORM bdc_field       USING 'RMMG1-MTART'
                                        record-mtart_003.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '0070'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MSICHTAUSW-DYTXT(02)'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ENTR'.
          PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(01)'
                                        record-kzsel_01_004.
          PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(02)'
                                        record-kzsel_02_005.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '0060'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RMMG1-MATNR'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'RMMG1-MATNR'
                                        record-matnr_006.
          PERFORM bdc_field       USING 'RMMG1-MBRSH'
                                        record-mbrsh_007.
          PERFORM bdc_field       USING 'RMMG1-MTART'
                                        record-mtart_008.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '0070'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MSICHTAUSW-DYTXT(02)'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ENTR'.
          PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(01)'
                                        record-kzsel_01_009.
          PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(02)'
                                        record-kzsel_02_010.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        record-maktx_011.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARA-MATKL'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        record-meins_012.
          PERFORM bdc_field       USING 'MARA-MATKL'
                                        record-matkl_013.
          PERFORM bdc_field       USING 'MARA-MTPOS_MARA'
                                        record-mtpos_mara_014.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MAKT-MAKTX'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        record-maktx_015.
          PERFORM bdc_dynpro      USING 'SAPLSPO1' '0300'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=YES'.
          PERFORM bdc_transaction USING 'MM01'.
    ENDDO.
      PERFORM close_group.
      PERFORM close_dataset USING dataset.

  • Uploading issues to other providers than .mac

    has anyone had uploading issues to other providers than .mac??

    can the names of the pages have spaces in them, or do
    i have to change both the file name and the name of
    the page?
    As the note says, some servers will let you upload files with spaces in their names, and some will not. Names without spaces will always work.
    In iWeb, the name you give to a site or page is the same as the name of the folder or file associated with it. So to avoid spaces in folder or file names, you need to omit them in the site and page names, or replace by hyphen or underscore.

  • Error in BDC upload

    Hi,
    I am facing a problem in BDC upload for hr master data tcode pa40.
    I want to stop bdc after 3 screens and i dont want to processforthe remaining screens.
    Can anyone help me onthis?
    Thanks in advance.

    Hi Anil,
    I am regret to you becz i could nt tell thanks because i am full busy of my work.
    Thanks a lot.
    I have checked with your valuable logic. Now I am processing BDC upto two screens.
    Regards,
    Sreekanth

  • BDC Uploading  - Organisation structure position error

    Hi Gurus,
    When we are uploading Master data through BDC its uploading in pa30 but its not updating positions in organization structure (PPOM_OLD - TCODE) . we cant find the holder under the position though we have upload the data and clear see the data in pa30 for that position.
    when we are doing Action manually its updating the position. ofcourse its common too.
    My question is why its not updaing the holder to the position when we are doing BDC upload
    Any thoughts and suggestions.
    Regards,
    Ravi
    Edited by: ravi Kumar on Jun 17, 2010 12:02 PM

    First try this.
    1. Execute RHINTE00 for one person
    Selection screen
    tick CREATE RELATIONSHIPS and CREATE HOLDER RELATIONSHIPS ONLY.
    Remove the TEST tick and run.
    First try for one person only then you can run it for others.
    cheers
    Ajay

  • MFBF bdc upload ERROR

    hie gurus , can anyone help me , i have created a bdc upload for transaction MFBF  repetitive manufacturing backflush
    , when i upload a material with multiple production version i get an error , production version for material could not be
    determined. initially its supposed to give a pop up window that allows me to select the production version, in the bdc recording so the pop window is not being called in the program for some reason i have not modified the recording
    in anyway this is straight from sm35 recording to my z program :
    perform bdc_dynpro      using 'SAPLBARM' '0800'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=GOON'.
    perform bdc_field       using 'RM61B-RB_BAUGR'
                                  'X'.
    perform bdc_field       using 'RM61B-BUDAT'
                                  '06.06.2011'.
    perform bdc_field       using 'RM61B-BLDAT'
                                  '06.06.2011'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RM61B-MATNR'.
    perform bdc_field       using 'RM61B-MATNR'
                                  '900-03-000'.
    perform bdc_field       using 'RM61B-WERKS'
                                  '1200'.
    perform bdc_field       using 'RM61B-ERFMG'
                                  '1111'.
    error screen not being called
    perform bdc_dynpro      using 'SAPLBARM' '0160'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MKAL-VERID(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=GOON'.
    perform bdc_field       using 'RM61B-SELEK(02)'
                                  'X'.

    Hi Daniel,
    Please check the BAPIs available in Function group 2127 if you can use any. That way you do not have to manipulate the screens in BDC.
    Regards,
    Shyam

  • How to send email after bdc upload done?

    Hi Experts,
    How do we send an email after the bdc upload program run successfully. I want to send email to the users saying the material upload successfully message with the material details.
    How can i do it? Is there any way to trigger a mail after calling the bdc upload part?
    Please help me on this.
    Thanks in advance.
    Regards,
    Rashika.

    Hi,
    After the BDC has run. check if sy-subrc is zero or not.
    IF sy-subrc EQ 0.
            COMMIT WORK.
    and in this IF statement use the following code:
        wa_receivers-receiver = so_malid-low.
        wa_receivers-rec_id = so_malid-low.
        wa_receivers-rec_type = 'U'.
        wa_receivers-com_type = 'INT'.
        wa_receivers-notif_del = 'X'.
        wa_receivers-notif_ndel = 'X'.
        APPEND wa_receivers TO gi_receivers.
        CLEAR wa_receivers.
    Populate the subject/generic message attributes
      wa_doc_data-obj_langu = sy-langu.
      wa_doc_data-obj_name = lc_obj_name.
      wa_doc_data-obj_descr = 'Find Inactive PU/DU'(001).
      wa_doc_data-sensitivty = lc_sensitivity.
    Describe the body of the message
      wa_message = '<html><head>'.
      APPEND wa_message TO gi_messages.
      wa_message = '<style type="text/css">'.
      APPEND wa_message TO gi_messages.
      wa_message = lc_style_content.
      APPEND wa_message TO gi_messages.
      wa_message = lc_style_content1.
      APPEND wa_message TO gi_messages.
      wa_message = '</style></head>'.
      APPEND wa_message TO gi_messages.
      wa_message = '<body>'.
      APPEND wa_message TO gi_messages.
      wa_message = 'Hi,<BR><BR>'(002).
      APPEND wa_message TO gi_messages.
    CONCATENATE(' Updation successful')
        '.<BR><BR>'
        INTO wa_message SEPARATED BY space.
        APPEND wa_message TO gi_messages.
    DATA: lv_tab_lines TYPE i VALUE 255.
      CLEAR gi_packing_list.
      REFRESH gi_packing_list.
      wa_packing_list-transf_bin = space.
      wa_packing_list-head_start = 1.
      wa_packing_list-head_num = 0.
      wa_packing_list-body_start = 1.
      DESCRIBE TABLE gi_messages LINES lv_tab_lines.
      READ TABLE gi_messages INDEX lv_tab_lines INTO wa_message.
      wa_doc_data-doc_size = ( lv_tab_lines - 1 ) * 255 + STRLEN( wa_message ).
      APPEND wa_message TO gi_messages.
      DESCRIBE TABLE gi_messages LINES wa_packing_list-body_num.
      wa_packing_list-doc_type = 'HTM'.
      wa_packing_list-doc_size = lv_tab_lines * 255.
      APPEND wa_packing_list TO gi_packing_list.
      CLEAR wa_packing_list.
    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          document_data              = wa_doc_data
          sender_address             = gc_sender_address
          sender_address_type        = gc_sender_address_type
          commit_work                = 'X'
        TABLES
          packing_list               = gi_packing_list
          contents_txt               = gi_messages
          receivers                  = gi_receivers.
    Regards,
    Rajesh Kumar

  • LR 4/4.1RC and flickr uploading issues - resolved?

    Have the uploading issues between LR 4/4.1RC and flickr been resolved?  Waiting on upgrading from LR3, but the forum reports from unhappy flickr users wanting to "downgrade' are making me nervous.  Should I wait, just upgrade to 4.0 and leave the RC alone for now?  

    An update ...
    I have discovered that RC2 publishing does seem to be working (for me) but Flickr or LR seems to be objecting ("Invalid at the top level of the document") to specific images possibly relating to the contents of the caption field.
    I narrowed down the failure to just one image ... removed its caption... it published, I put the caption back on - "Invalid ..." error came back.
    FYI and not sure if relevant - I sometimes put http links in my caption fields.
    I would have come back with a more comprehensive test, but it now appears that LR will not communicate with Flickr at all, now saying it cannot contact the Flickr service, so I cannot investigate further yet.
    I know a little off the wall here ... but is it conceivable that Flickr itself has locked me out due to "erroneous" or suspicious content?     I have never had problems with LR talking to Flickr before today and publishing to SmugMug is still working fine.  

  • Need Navigation about BDC Upload (Diagramitacal way)

    Need Navigation about BDC Upload (Diagramitacal way) for easy understand.

    Hi
    file:///C:/Documents%20and%20Settings/nnelapat/Desktop/New%20Microsoft%20PowerPoint%20Presentation.ppt#259,4,Slide 4
    <b>Reward if usefull</b>

  • Issue in BDC upload

    Hi experts,
    I have a problem in my BDC Call transaction method, am getting the below error when i upload the price. My internal table having the value, but when i pass into fval that time there is no value comming, while uploading its giving this error.
    field konp-kbetr(1) input value is longer than screen field
    anyone having soln, please help me out.
    Mohana

    Hi,
    Try Condense that Field Fval.
    FORM populate_data  USING    value(p_fieldname)
                                 value(p_fieldval).
      CLEAR fs_bdcdata.
      fs_bdcdata-fnam = p_fieldname.
      fs_bdcdata-fval = p_fieldval.
      CONDENSE fs_bdcdata-fval.
      APPEND fs_bdcdata TO t_bdcdata.
    ENDFORM.                             
    Hope this is helpful.
    Thanks
    Kalyan

  • 0015 info type BDC upload program work normal for one and slow for other?

    Hi... Experts
    We have created custom BDC tp update infotype 0015 for our employees. It use to work normal initial. recently , We observed for the HR Team who use to upload this is working / update happening very slow. To isolate this , we have given that BDC authorization to another user, for that user it works fine,
    For Example
    For HR User (HRUSER1) currently file contains 130 records will take 1200 seconds
    For New user (HRNEWUSER1) same will will take only 45 seconds to complete.
    What could be the reason??
    Authroizations are same even we tried SAP_ALL for user who is getting problem,
    Any HR specific parameters variants got stored / freezed and many be leading to this issue.
    please do let us know if any ides u have to fix it.
    Rgds

    Amosha...Good Day
    Thanks for your reply. If i am not wrong it is all belongs to seetings to specific host.
    As advised we found the size is same in GUI Alt+F12 --> Options -> Local Data Settings.; But i was unlucky the problem continues.
    The same set users let them login from any host the behaviour same .
    I believe it is some thing / HR Selection option got saved ??//some thing saved out and it is checking continuiously some thing..
    Similar Problem we had for some other like PA20 was normal to one with the same authroizations i had anotheer user and when he executes PA20 it is slow and was soved like below.
    PA20 - Transactions have very long runtimes
    just giving hint / any thing else we need to check in HR Master
    Thanks
    Edited by: B Jyothi on Jun 15, 2009 10:26 PM

  • Reg BDC Upload prog

    Hi Experts,
    I have one issue in my BDC program, this prog is upload Journal entry. my Journal entry file name is like "378040". its number. its a cost center. now client requirement is different they want in front of the file added four zeros(0000). so now my file name is 0000378040. so how can i added 0000 in front of the file????
    Can u give me suggetion.
    Vishal.

    I believe I did. What are you looking for? Is this what you need:
    REPORT ztest MESSAGE-ID 00.
    DATA: kostl TYPE csks-kostl VALUE '378040',
          kostl_bdc(10).
    WRITE: /001 'Input:  ', kostl.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = kostl
      IMPORTING
        output = kostl_bdc.
    WRITE: /001 'Output: ', kostl_bdc.
    Rob
    Edited by: Rob Burbank on Jan 7, 2008 4:05 PM

Maybe you are looking for