WHY BDC for infotypes?

Hi Gurus!
Was wondering when is it obligatory to use BDC instead of function module to upload data?
Aint it so that this function module HR_INFOTYPE_OPERATION works fine even when the infotype is enhanced?
Reward points for good answers.
Regards

Hi,
Sometimes BDC is required instead of FM 'HR_INFOTYPE_OPERATION', cause the infotype might be using some other include infotypes or strucutres for maintaining the data. for examples :
1. Infotype 25(Appraisals), the data is stored in some other tables hence the above FM will not work.
2.Infotype 0045(Loans) stored the payment details in IT 78 which cannot be update simultaneoulsy along with IT 0045,you need to call above FM twice for both IT 45 & IT 78, incase any one gives error you need to again call the same FM for deletion.
In all case where data is stored in different table rather than corresponing infotype table,I doubt the above FM will work. Hope this justifies.
Regards,
Dadarao.

Similar Messages

  • HR ABAP How to Write BDC For Infotype 0586

    Hi Experts
    Can Any One tell me how to write BDC for Infotype 0586  and also 585.
    If we enter into the maintaining Screen, the lines in the Screen will dynamically changing depending on the values.
    When I am doing recording , If I press page down after entering values in top lines, the lines are changing and the records are not updating Correctly.
    I need to write BDC to Create Change.
    Can any one please help me in this regard?
    Thanks in Advance.
    Regards
    Avinash.

    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://www.google.co.in/search?hl=en&q=SAPBDCtable+control&meta=
    http://www.sap-basis-abap.com/abap/handling-table-control-in-bdc.htm
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm

  • Bdc for infotype 581

    hi
    I have to do bdc for infotype 581. The manual senario for this is after entering data in 581 and if i click save button it will save the data and it will go to infotype 8 screen.  There it will populate the hra and value in wagetype and amount automatically. i will save that too.
    but when i did this in bdc, after entering the data in 581 and clicking the save button it is not going to infotype 8 screen.
    how can i store that hra in infotype 8 for that particular PERNR.
    pls send the solutions for this
    thanks in advance to all who will help

    Hi,
    When you are using BDC it will skip infotype 8. You should again upload infotype 8 for HRA.
    Regards,
    Ramu N.

  • Bdc for infotype 583

    Hi,
    I am trying to record a BDC for Infotype 0583 .
    During manual creation , i am taken to the Infortpe 8 screen from the infotype 583 screen.
    While recording through SHDB this is not happening. I am not taken to the Infotype 8 screen at all. The recording stops at the infotyp 0583 screen itself ,after I press the save buton.
    Need some help guys.....
    Regards,
    Salish

    check this sample program
    https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&pageid=13160
    Regards
    prabhu

  • BDC  for infotype 591??

    HI
    Can any1 send me BDC for infotype 591..had trouble with table control!!
    Points will b suitably rewarded!!
    Regards
    Gunjan

    Hi Gunajn,
    I am not connected to SAP now .. but this program should be fairly simple.. Use the function module GUI_UPLOAD or the other available OO methods to get your EXECL file into an internal table. loop at this table fill the p0591 record structure first say
          p0591-pernr         = itab-pernr.
          p0591-infty         = '0591'.
          p0591-begda         = itab-begda.
          p0591-endda         = itab-endda.
    and so on fill up whatvevr fields you want, and then update infotype 0591 using std function module
          call function 'HR_INFOTYPE_OPERATION'
            exporting
              infty         = '0591'
              number        = itab-pernr
              record        = p0591
              validityend   = p0591-endda
              validitybegin = p0591-begda
              operation     = 'INS'
              tclas         = 'A'
            importing
              return        = rec_return.
    the structure rec_return will help you trap errors if any. Start on these lines and paste your code if you still have issues. Your issue will sure be resolved on this forum.
    Regards,
    Suresh Datti.
    Message was edited by: Suresh Datti

  • Error in BDC for Infotype 0589

    Hi friends,
                     I have developed a BDC program for Infotype 0589.  After executing the program to upload data from file, I am getting error message: Field Q0589-ANZHL(7) input value is longer than screen field
    Here I am adding my  Sample code also.
    REPORT  ZTEST_0589.
    PARAMETERS :
      p_file TYPE rlgrap-filename.         " Accepts File Name
    *" Type declarations...................................................
    TYPES :
      BEGIN OF type_s_it0589,
        pernr   TYPE rp50g-pernr,          " Personnel Number
        inftyp  TYPE rp50g-choic,          " Infotype
        begda   TYPE p0589-begda,          " Begin Date
        endda   TYPE p0589-endda,          " End Date                                   
        lga01   TYPE q0589-lgart,           
        betrg01 TYPE q0589-betrg,         
        anzhl01 TYPE q0589-anzhl,         
        lga02   TYPE q0589-lgart,           
        betrg02 TYPE q0589-betrg,         
        anzhl02 TYPE q0589-anzhl,         
        lga03   TYPE q0589-lgart,           
        betrg03 TYPE q0589-betrg,         
        anzhl03 TYPE q0589-anzhl,         
        lga04   TYPE q0589-lgart,           
        betrg04 TYPE q0589-betrg,         
        anzhl04 TYPE q0589-anzhl,         
        lga05   TYPE q0589-lgart,           
        betrg05 TYPE q0589-betrg,         
        anzhl05 TYPE q0589-anzhl,        
        lga06   TYPE q0589-lgart,           
        betrg06 TYPE q0589-betrg,         
        anzhl06 TYPE q0589-anzhl,         
        lga07   TYPE q0589-lgart,           
        betrg07 TYPE q0589-betrg,         
        anzhl07 TYPE q0589-anzhl,         
        lga08   TYPE q0589-lgart,           
        betrg08 TYPE q0589-betrg,         
        anzhl08 TYPE q0589-anzhl,          
      END OF type_s_it0589.
    Work variables                                                   
    DATA:
      w_file      TYPE string,             " File Name
      w_betrg(50) TYPE c,                  " Proposed Contribution
      w_anzhl(50) TYPE c,                  " Actual Contribution
      w_count(2)  TYPE n,                  " Counter
      w_year(4)   TYPE n,                  " Year
      w_month(2)  TYPE n,                  " Month
      w_day(2)    TYPE n,                  " Day
      w_date(10)  TYPE c,                  " Date
      w_wage(50)   TYPE c,                  " wage
      w_waget(50)   TYPE c,                 " wage type
      w_curr(12)  TYPE c,                  " Currency
      w_tabrows LIKE sy-srows VALUE 7,     " Table Control rows
      w_update TYPE i,                     " Number of Updated Records
      w_failed TYPE i,                     " Number of Failed Records
      w_0589_lines TYPE i,                 " Number of Records in File
      w_text TYPE string.                  " CheckBox for considering
    " Actual Contributions
    Structure to hold File Data                                         *
    DATA :
      fs_it0589 TYPE type_s_it0589.
    Structure to hold Batch input: New table field structure            *
    DATA :
    fs_bdcdata TYPE bdcdata.
    Structure to hold Messages in the SAP System                        *
    DATA :
      fs_messages TYPE bdcmsgcoll.
    Structure to hold Personnel Number, Message Type & Message Text     *
    DATA:
      BEGIN OF fs_log,
        pernr   TYPE rp50g-pernr,
        msgtxt(200) TYPE c,
        msgtyp TYPE c,
      END OF fs_log.
    Structure to hold Parameter string for runtime of CALL TRANSACTION  *
    DATA :
      fs_opt TYPE ctu_params.
    Internal Table to hold File Data                                    *
    DATA :
      t_it0589 LIKE
      STANDARD TABLE
            OF fs_it0589.
    Internal Table to hold Batch input: New table field structure       *
    DATA :
      t_bdcdata TYPE
       STANDARD TABLE
             OF bdcdata.
    Internal Table to hold Messages in the SAP System                   *
    DATA:
      t_messages TYPE TABLE OF bdcmsgcoll.
    Internal Table to hold Personnel Number, Message Type & Message Text*
    DATA:
       t_log LIKE
    STANDARD TABLE
          OF fs_log.
    FORM validate .
      IF p_file IS INITIAL.
        MESSAGE e005(zvalid).
      ENDIF.                               " IF P_FILE IS INITIAL.
      MOVE p_file TO w_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = w_file
          filetype                = 'ASC'
          has_field_separator     = 'X'
          dat_mode                = 'X'
        TABLES
          data_tab                = t_it0589
        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 NE 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      IF t_it0589 IS INITIAL.
        MESSAGE e006(zvalid).
      ENDIF.                               " IF T_IT0589 IS INITIAL
    ENDFORM.                               " FORM VALIDATE
    FORM f4_help .
      CALL FUNCTION 'F4_FILENAME'
        IMPORTING
          file_name = p_file.
    ENDFORM.                               " FORM F4_HELP
    *&      Form  FILL_BDCDATA
    FORM fill_bdcdata .
      DESCRIBE TABLE t_it0589 LINES w_0589_lines.
      LOOP AT t_it0589 INTO fs_it0589.
        REFRESH t_bdcdata.
        REFRESH t_messages.
        PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.
        PERFORM bdc_field USING 'RP50G-PERNR'
                                fs_it0589-pernr.
        w_year = fs_it0589-begda+0(4).
        w_month = fs_it0589-begda+4(2).
        w_day = fs_it0589-begda+6(2).
        CONCATENATE w_day w_month w_year INTO w_date
                                 SEPARATED BY '.'.
        PERFORM bdc_field USING 'RP50G-BEGDA'
                                w_date.
        w_year = fs_it0589-endda+0(4).
        w_month = fs_it0589-endda+4(2).
        w_day = fs_it0589-endda+6(2).
        CONCATENATE w_day w_month w_year INTO w_date
                                 SEPARATED BY '.'.
        PERFORM bdc_field USING 'RP50G-ENDDA'
                                w_date.
        PERFORM bdc_field USING 'RP50G-CHOIC'
                                fs_it0589-inftyp.
        PERFORM bdc_field USING 'BDC_OKCODE'
                                '/00'.
        PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.
        PERFORM bdc_field USING 'BDC_OKCODE'
                                '=INS'.
        PERFORM bdc_dynpro USING 'MP058900' '2000'.
    1st Row...............................................................
        ADD 1 TO w_count.
        MOVE fs_it0589-lga01 TO w_wage.
        PERFORM bdc_field USING 'Q0589-LGART(01)'
                                w_wage.
        MOVE fs_it0589-betrg01 TO w_curr.
        PERFORM bdc_field USING 'Q0589-BETRG(01)'
                                w_curr.
        MOVE fs_it0589-anzhl01 TO w_curr.
        PERFORM bdc_field USING 'Q0589-ANZHL(01)'
                                w_curr.
    2nd Row...............................................................
    3rd Row...............................................................
    4th Row...............................................................
    5th Row...............................................................
    6th Row...............................................................
        ADD 1 TO w_count.
        IF w_count > w_tabrows .
          w_count = 1.
          PERFORM bdc_field USING 'BDC_OKCODE'
                                  'P+' .
          PERFORM bdc_dynpro USING 'MP058900' '2000'.
        ENDIF.                             " IF W_COUNT > W_TABROWS
        MOVE fs_it0589-lga06 TO w_curr.
        CONCATENATE 'Q0589-LGART(' w_count ')' INTO w_wage.
        PERFORM bdc_field USING w_wage
                                w_curr.
        MOVE fs_it0589-betrg06 TO w_curr.
        CONCATENATE 'Q0589-BETRG(' w_count ')' INTO w_betrg.
        PERFORM bdc_field USING w_betrg
                                w_curr.
        MOVE fs_it0589-anzhl06 TO w_curr.
        CONCATENATE 'Q0589-ANZHL(' w_count ')' INTO w_anzhl.
        PERFORM bdc_field USING w_anzhl
                                w_curr.
    7th Row...............................................................
        ADD 1 TO w_count.
        IF w_count > w_tabrows .
          w_count = 1.
          PERFORM bdc_field USING 'BDC_OKCODE'
                                  'P+' .
          PERFORM bdc_dynpro USING 'MP058900' '2000'.
        ENDIF.                             " IF W_COUNT > W_TABROWS
        MOVE fs_it0589-lga07 TO w_curr.
        CONCATENATE 'Q0589-LGART(' w_count ')' INTO w_wage.
        PERFORM bdc_field USING w_wage
                                w_curr.
        MOVE fs_it0589-betrg07 TO w_curr.
        CONCATENATE 'Q0589-BETRG(' w_count ')' INTO w_betrg.
        PERFORM bdc_field USING w_betrg
                                w_curr.
        MOVE fs_it0589-anzhl07 TO w_curr.
        CONCATENATE 'Q0589-ANZHL(' w_count ')' INTO w_anzhl.
        PERFORM bdc_field USING w_anzhl
                                w_curr.
    *- -- Same upto 15 rows.......
    Save..................................................................
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=UPD'.
    Back..................................................................
        PERFORM bdc_dynpro USING 'MP058900' '2000'.
        PERFORM bdc_field  USING 'BDC_OKCODE'
                                 '/EBCK'.
        w_count = 0.
        CALL TRANSACTION 'PA30'  USING t_bdcdata
                               OPTIONS FROM fs_opt
                              MESSAGES INTO t_messages.
        LOOP AT t_messages INTO fs_messages.
          CALL FUNCTION 'FORMAT_MESSAGE'
            EXPORTING
              id        = fs_messages-msgid
              lang      = sy-langu
              no        = fs_messages-msgnr
              v1        = fs_messages-msgv1
              v2        = fs_messages-msgv2
              v3        = fs_messages-msgv3
              v4        = fs_messages-msgv4
            IMPORTING
              msg       = fs_log-msgtxt
            EXCEPTIONS
              not_found = 1
              OTHERS    = 2.
          IF sy-subrc NE 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.                           " IF SY-SUBRC NE 0
          MOVE fs_it0589-pernr TO fs_log-pernr.
          MOVE fs_messages-msgtyp TO fs_log-msgtyp.
          APPEND fs_log TO t_log.
          CLEAR fs_log.
          IF fs_messages-msgtyp EQ 'S'
         AND fs_messages-msgnr  EQ '102'.
            ADD 1 TO w_update.
          ELSEIF fs_messages-msgtyp EQ 'S'
             AND fs_messages-msgnr  EQ '015'
              OR fs_messages-msgtyp EQ 'E'.
            ADD 1 TO w_failed.
          ENDIF.                           " IF FS_MESSAGES-MSGTYP EQ 'S'
        ENDLOOP.                           " LOOP AT T_MESSAGES
      ENDLOOP.                             " LOOP AT T_IT0585
      WRITE :/ 'Number of Records Fetched from file'(001),
             50   w_0589_lines COLOR 1,
             / 'Number of Records Updated into the database'(002),
             50    w_update COLOR 1,
             / 'Number of Records Failed to update into database'(003),
             50   w_failed COLOR 6 .
      SKIP 3.
      WRITE :/ 'Detailed Log.....'(004).
      SKIP 1.
      LOOP AT t_log INTO fs_log.
        AT NEW pernr.
          WRITE :/  fs_log-pernr COLOR 1.
        ENDAT.                             " AT NEW PERNR
        IF fs_log-msgtyp = 'E'.
          WRITE :15  fs_log-msgtxt COLOR 6 INVERSE ON.
        ELSE.
          WRITE :15  fs_log-msgtxt.
        ENDIF.                             " IF FS_LOG-MSGTYP = 'E'
      ENDLOOP.                             " LOOP AT T_LOG INTO FS_LOG
    ENDFORM.                               " FORM FILL_BDCDATA
    *&      Form  BDC_DYNPRO
    This subroutine starts new screen                                    *
    There are no interface parameters to be passed to this subroutine.  *
    FORM bdc_dynpro USING program dynpro.
      CLEAR fs_bdcdata.
      fs_bdcdata-program  = program.
      fs_bdcdata-dynpro   = dynpro.
      fs_bdcdata-dynbegin = 'X'.
      APPEND fs_bdcdata TO t_bdcdata.
    ENDFORM.                               " FORM BDC_DYNPRO
    *&      Form  BDC_FIELD
    This subroutine inserts field                                        *
    There are no interface parameters to be passed to this subroutine.  *
    FORM bdc_field USING fnam fval.
      CLEAR fs_bdcdata.
      fs_bdcdata-fnam = fnam.
      fs_bdcdata-fval = fval.
      APPEND fs_bdcdata TO t_bdcdata.
    ENDFORM.                               " FORM BDC_FIELD
    Thanks,
    Ziad khan

    Hi Amit,
               Thaks for reply. Amit, I am new to ABAP-HR so i dont know how to use FM "HR_MAINTAIN_MASTERDATA".
    Can u please explain in detail.
    Thanks
    Ziad

  • Can any body tell me how to upload data for infotype 2011

    hi gurus,
    please tell me hw to create the bdc for infotype 2011.

    Go to SHDB and record the Tcode PA30 with Infotype 2011.
    ~BiSu

  • Maintain texts for Infotype 0019 via ABAP.

    Hi,
      The issue is related to maintaining texts for Infotype 0019. I have a program below. The main problem is I am facing is for some records it inserts text in Infotype (0019) but for some it does not. Can anyone suggest why so or a way to resolve this problem ???
    REPORT  ytbctest009.
    TABLES: pernr, pcl1.
    INFOTYPES: 0019.
    DATA:  key LIKE pskey.
    DATA: BEGIN OF ptext OCCURS 200.
    DATA:   line(72).
    DATA: END OF ptext.
    SELECTION-SCREEN BEGIN OF BLOCK abc WITH FRAME TITLE text-001.
    PARAMETERS:               p_pernr LIKE pernr-pernr.
    SELECTION-SCREEN END OF BLOCK abc.
    ptext-line = 'TEST 1'.
    APPEND ptext.
    ptext-line = 'Test 2'.
    APPEND ptext.
    ptext-line = 'Test 3'.
    APPEND ptext.
    rp-read-infotype p_pernr 0019 0019 '18000101' '99991231'.
    SORT p0019 DESCENDING.
    READ TABLE p0019 INDEX 1.
    p0019-itxex = 'X'.
    MOVE-CORRESPONDING p0019 TO key .
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        infty         = '0019'
        number        = p_pernr
        validityend   = p0019-endda
        validitybegin = p0019-begda
        record        = p0019
        operation     = 'MOD'.
    EXPORT ptext TO DATABASE pcl1(tx) ID key. 
    Thanks in advance.

    Hi Rajashree,
    I hope , below code will solve the problem.
    <b>Main Code</b>
    FUNCTION zhr_mustus_update_it0019.
    *"*"Local interface:
    *"  IMPORTING
    *"     VALUE(IM_PERNR) TYPE  P0019-PERNR OPTIONAL
    *"     VALUE(IM_USRID) TYPE  PA0105-USRID OPTIONAL
    *"     VALUE(IM_SUBTY) TYPE  P0019-SUBTY
    *"     VALUE(IM_TERMN) TYPE  P0019-TERMN OPTIONAL
    *"     VALUE(IM_MNDAT) TYPE  P0019-MNDAT OPTIONAL
    *"     VALUE(IM_BVMRK) TYPE  P0019-BVMRK OPTIONAL
    *"     VALUE(IM_TEXT) TYPE  CHAR30 OPTIONAL
    *"  EXPORTING
    *"     VALUE(EX_RETURN_MESSAGE) TYPE  STRING
    *"     VALUE(EX_MESSAGE_ID) TYPE  ARBGB
    *"     VALUE(EX_MESSAGE_NUMBER) TYPE  MSGNR
    *"  EXCEPTIONS
    *"      SYSTEM_FAILURE
    *"      COMMUNICATION_FAILURE
      REFRESH bdcdata.
      REFRESH it_bdc_message.
    * Validations
      PERFORM validations USING im_usrid im_subty im_mndat
                       CHANGING im_pernr
                                g_task_date
                                g_rem_date.
    * Return message
      MOVE:
        g_message TO ex_return_message,
        'ZMSGHR'  TO ex_message_id,
        g_msgno   TO ex_message_number.
    * If there any error don't process
      CHECK ex_return_message IS INITIAL.
    * If reminder date is missing then its creation
      IF im_mndat IS INITIAL.
    * Fill BDC for PA30 Creation
        PERFORM fill_bdc_for_creation USING im_pernr
                                            im_subty
                                            im_text
                                            g_task_date
                                            g_rem_date.
      ELSE.
    * Its a change, Fill BDC for PA30 change
        PERFORM fill_bdc_for_change USING im_pernr
                                          im_subty
                                          im_termn
                                          im_bvmrk
                                          im_text.
      ENDIF.
    * Call transaction PA30
      PERFORM bdc_call_transaction.
    * Return message
      MOVE:
        g_message TO ex_return_message,
        g_msgid   TO ex_message_id,
        g_msgno   TO ex_message_number.
    ENDFUNCTION.
    <b>All Above Subroutines,</b>
    *& Form  Validations
    *  Validations for MUS/TUS
    *      -->U_USRID      User id for TUS
    *      -->U_SUBTY      Subtype 10 - MUS, 11 - TUS
    *      -->U_MNDAT      Reminder date
    *      <--PERNR        Person for MUS
    *      <--U_TASK_DATE  Task date
    *      <--U_REM_DATE   Reminder date
    FORM validations USING u_usrid     LIKE pa0105-usrid
                           u_subty     LIKE p0019-subty
                           u_mndat     LIKE p0019-mndat
                  CHANGING u_pernr     LIKE p0019-pernr
                           u_task_date LIKE sy-datum
                           u_rem_date  LIKE sy-datum.
      DATA:
        BEGIN OF it_tmp_0019 OCCURS 0,
         termn LIKE pa0019-termn,
        END OF it_tmp_0019.
      CLEAR g_message.
    * Validations for MUS
      IF u_subty EQ c_subty_10.
        MOVE sy-datum TO u_task_date.
        IF u_pernr IS INITIAL.
    * Person number is missing
          MOVE:
            text-001 TO g_message,
            '003' TO g_msgno.
        ELSEIF u_mndat IS INITIAL.
    * Its creation, check if there is already a open item
          SELECT pernr
            FROM pa0019
            INTO u_pernr
           WHERE pernr EQ u_pernr
             AND subty EQ u_subty
             AND bvmrk NE '2'.
            EXIT.
          ENDSELECT.
          IF sy-subrc EQ 0.
    * Throw an error if there is already a open item
            MOVE:
              text-006 TO g_message,
              '004'    TO g_msgno.
          ENDIF.
        ENDIF.
      ENDIF.
    * Validations for TUS
      IF u_subty EQ c_subty_11.
        IF u_usrid IS INITIAL
       AND u_pernr IS INITIAL.
    * User/Person number is missing
          MOVE:
            text-002 TO g_message,
            '005'    TO g_msgno.
        ELSEIF NOT u_usrid IS INITIAL.
          SELECT pernr
            FROM pa0105
            INTO u_pernr
           WHERE usrid EQ u_usrid.
          ENDSELECT.
          IF u_pernr IS INITIAL.
    * Person number is missing
            MOVE:
              text-001 TO g_message,
              '006' TO g_msgno.
          ENDIF.
        ENDIF.
        IF g_message IS INITIAL.
          SELECT termn
            FROM pa0019
            INTO TABLE it_tmp_0019
           WHERE pernr EQ u_pernr
             AND subty EQ u_subty
             AND bvmrk NE '2'.
          READ TABLE it_tmp_0019 WITH KEY termn = sy-datum.
    * There is no open task for today
          IF sy-subrc NE 0.
            MOVE sy-datum TO u_task_date.
          ELSE.
    * There is a open task for today, new task should be created next
    * available date and reminder date is yesterday's date
            SORT it_tmp_0019 DESCENDING.
            READ TABLE it_tmp_0019 INDEX 1.
            u_task_date = it_tmp_0019-termn + 1.
            u_rem_date = sy-datum - 1.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    "VALIDATIONS
    *& Form  Fill_bdc_for_creation
    *  BDC data for creation , Transaction PA30
    *      -->U_PERNR      Person
    *      -->U_SUBTY      Subty MUS - 10, TUS - 11
    *      -->U_TEXT       Text
    *      -->U_TASK_DATE  Task date
    *      -->U_REM_DATE  Task date
    FORM fill_bdc_for_creation USING u_pernr LIKE p0019-pernr
                                     u_subty LIKE p0019-subty
                                     u_text  TYPE char30
                                     u_task_date LIKE sy-datum
                                     u_rem_date  LIKE sy-datum.
    * Scree1
      DATA:
        l_task_date(10),
        l_rem_date(10).
    * Use system date as Task date
      WRITE:
        u_task_date TO l_task_date,
        u_rem_date TO l_rem_date.
      PERFORM bdc_dynpro      USING 'SAPMP50A' '1000'.
      PERFORM bdc_field       USING 'RP50G-PERNR'
                                    u_pernr.
      PERFORM bdc_field       USING 'RP50G-CHOIC'
                                    '0019'.
      PERFORM bdc_field       USING 'RP50G-SUBTY'
                                    u_subty.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=INS'.
    * Screen2
      PERFORM bdc_dynpro      USING 'MP001900' '2000'.
      PERFORM bdc_field       USING 'P0019-TMART'
                                    u_subty.
      PERFORM bdc_field       USING 'P0019-TERMN'
                                     l_task_date.
      IF NOT u_rem_date IS INITIAL.
        PERFORM bdc_field       USING 'P0019-MNDAT'
                                       l_rem_date.
      ENDIF.
      PERFORM bdc_field       USING 'RP50M-TEXT1'
                                    u_text.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM bdc_dynpro      USING 'MP001900' '2000'.
      PERFORM bdc_field       USING 'P0019-TMART'
                                    u_subty.
      PERFORM bdc_field       USING 'P0019-TERMN'
                                     l_task_date.
      IF NOT u_rem_date IS INITIAL.
        PERFORM bdc_field       USING 'P0019-MNDAT'
                                       l_rem_date.
      ENDIF.
      PERFORM bdc_field       USING 'RP50M-TEXT1'
                                    u_text.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=UPD'.
    ENDFORM.                    "fill_bdc_for_creation
    *& Form  fill_bdc_for_change
    *  BDC data for change , Transaction PA30
    *      -->U_PERNR    Person
    *      -->U_SUBTY    subtype MUS - 10 , TUS - 11
    *      -->U_MNDAT    Reminder date
    *      -->U_BVMRK    Status
    *      -->U_TEXT     Text
    FORM fill_bdc_for_change USING   u_pernr LIKE p0019-pernr
                                     u_subty LIKE p0019-subty
                                     u_termn LIKE p0019-termn
                                     u_bvmrk LIKE p0019-bvmrk
                                     u_text  TYPE char30.
    * Scree1
      DATA l_termn_date(10).
      WRITE u_termn TO l_termn_date.
      PERFORM bdc_dynpro      USING 'SAPMP50A' '1000'.
      PERFORM bdc_field       USING 'RP50G-PERNR'
                                    u_pernr.
      PERFORM bdc_field       USING 'RP50G-CHOIC'
                                    '0019'.
      PERFORM bdc_field       USING 'RP50G-SUBTY'
                                    u_subty.
      PERFORM bdc_field       USING 'RP50G-BEGDA'
                                    l_termn_date.
      PERFORM bdc_field       USING 'RP50G-ENDDA'
                                    l_termn_date.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=MOD'.
    * Screen2
      PERFORM bdc_dynpro      USING 'MP001900' '2000'.
      PERFORM bdc_field       USING 'P0019-TMART'
                                    u_subty.
      PERFORM bdc_field       USING 'P0019-TERMN'
                                     l_termn_date.
      PERFORM bdc_field       USING 'RP50M-TEXT1'
                                    u_text.
      PERFORM bdc_field       USING 'P0019-BVMRK'
                                    u_bvmrk.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=UPD'.
    ENDFORM.                    "fill_bdc_for_change
    FORM bdc_call_transaction.
      DATA:
        l_mode(1) TYPE c VALUE 'N',
        l_lines   TYPE i,
        l_msgvar1 LIKE balm-msgv1,
        l_msgvar2 LIKE balm-msgv2,
        l_msgvar3 LIKE balm-msgv3,
        l_msgvar4 LIKE balm-msgv4.
      CALL TRANSACTION 'PA30'  USING bdcdata  MODE l_mode
                               MESSAGES INTO it_bdc_message.
    * Get last message
      DESCRIBE TABLE it_bdc_message LINES l_lines.
      READ TABLE it_bdc_message INDEX l_lines.
      MOVE:
        it_bdc_message-msgid TO g_msgid,
        it_bdc_message-msgnr TO g_msgno,
        it_bdc_message-msgv1 TO l_msgvar1,
        it_bdc_message-msgv2 TO l_msgvar2,
        it_bdc_message-msgv3 TO l_msgvar3,
        it_bdc_message-msgv4 TO l_msgvar4.
    * Prepare message
      CALL FUNCTION 'MESSAGE_PREPARE'
        EXPORTING
          language               = sy-langu
          msg_id                 = g_msgid
          msg_no                 = g_msgno
          msg_var1               = l_msgvar1
          msg_var2               = l_msgvar2
          msg_var3               = l_msgvar3
          msg_var4               = l_msgvar4
        IMPORTING
          msg_text               = g_message
        EXCEPTIONS
          function_not_completed = 1
          message_not_found      = 2
          OTHERS                 = 3.
      IF sy-subrc <> 0.
        MOVE text-005 TO g_message.
      ENDIF.
    ENDFORM.                    "BDC_FIELD
    *        Start new screen                                              *
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
    *        Insert field                                                  *
    FORM bdc_field USING fnam fval.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDFORM.                    "BDC_FIELD
    Cheers.
    Santosh.

  • User Exit and BDC for ME22N

    Hello All,
    A code has been written in the User exit for Tcode ME22N, Which sets the indicator on PO line item. This has been done by modifying the standard itab POT by using field symbols, because the fields to be modified are shown in display mode in the tcode ME22N and cannot be done in BDC. See the below code in user exit ZXM06U43.
    DATA char(50) VALUE '(SAPLMEPO)POT[]'.
    CLEAR wa_ind.
        FIELD-SYMBOLS <f1> TYPE ANY.
    Move memory of internal table POT to field symbol f1.
        ASSIGN (char) TO <f1>.
    Move content of f1 to internal table i_ind
        i_ind[] = <f1> .
        LOOP AT i_ind INTO wa_ind.
          IF wa_ind-pstyp = '9'.            " Service PO - item category
    IF PO Line item has History per Purchasing Document as 'D'
    Set indicators on, for the line item.
            CLEAR v_cnt.
            SELECT COUNT( * ) INTO v_cnt FROM ent5100
                                         WHERE ebeln = wa_ind-ebeln
                                           AND ebelp = wa_ind-ebelp
                                           AND bewtp = 'D'.
            IF sy-subrc = 0.
              wa_ind-wepos = 'X'.            " Set Goods Receipt Indicator
              wa_ind-webre = 'X'.            " Set GR-based IV Indicator
              wa_ind-lebre = 'X'.            " Set Srv-based IV Indicator
            ELSE.
    *End of addition SAP-20070910104025 - SL36 - D01K963369
              wa_ind-wepos = ' '.            " Clear Goods Receipt Indicator
              wa_ind-webre = ' '.            " Clear GR-based IV Indicator
              wa_ind-lebre = ' '.            " Clear Srv-based IV Indicator
              wa_ind-xersy = ' '.            " Clear ERS Indicator
            ENDIF.                                           
            MODIFY i_ind FROM wa_ind INDEX sy-tabix.
          ENDIF.
        ENDLOOP.
        <f1> = i_ind[].
      ENDIF.          
    ENDIF.
    This code is in production and has been working fine.
    The requirnment is now to make this indicator work for all the Purchase order before this code has been written in the Exit. For this my functional suggests that to write a separate program using BDC for PO change and jus add a period/dot  in the short text and save it. The code has been written, the user exit and the above code is getting triggrred values are updated in internal table correctly.
    However the flags was not set or cleared when seen in the tcode ME22N . This works fine if the tcode me22n is run directly and not working in BDC.
    I have tried with ME22 without enjoy transaction in BDC changing the POT Program to SAPMM06E. It does not work.
    Please help me as why it is not uodating in the table when using BDC.
    Thanks in Advance.
    Senthil Kumar

    Hi All,
    Any luck on this??
    Thanks

  • BDC for MIGO for GR OutBound Delivery( A01 & R05 ) from Movement Type 107 to 109

    Hi,
    I am stuck with a very typical situation need all your expertise and advices for a solution.
    We are basically trying to create change the movement type from 107 to 109 through MIGO.
    I have made a BDC recording for MIGO ( because we would like to track each delivery specifically under shipment , I know that there is a BAPI which is there to do this but it works fine if we do the shipment with Purchase Order as input which dont want in that manner )
    Process:
    1. Creating Production Order
    2. Creating Purchase Order
    3. Creating STO
    4. Deliveries
    5. PGI for Deliveries
    6. Shipment for group of outbound Deliveries
    I have created a z program where i am passing shipment number in the selection screen.
    Then it would take all the deliveries for that shipment and pass each delivery to MIGO and process it and change the status from 107 to 109.
    Interesting part here is, the code works absolutely perfect only from my ID. But when I test from other ID it is not executing, so to check where is the problem I have added mess_tab to the CALL TRANSACTION to capture what message is been populated for my ID comparing with others
    Message Captured on Others ID's:
    MSGID: 00
    MSGNR: 344
    MSGV1: SAPLMIGO
    MSGV2: 1300
    Message Captured on MY ID:
    MSGID: MIGO
    MSGNR: 012
    MSGV1: 5000005802
    MSGV2: (empty)
    This is the problem this program is executing only on MY ID, rest all ID's it is not processing.
    We have cross verified with security and basis regarding any authorization issues but nothing came up.
    Please help me what could be the issue ( WHY it is processing successfully for my and WHY NOT for other ID's)
    Below is the main code :
    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'                     " Converting Date format to DD/MM/YYYY
         EXPORTING
           DATE_INTERNAL            = sy-datum
         IMPORTING
           DATE_EXTERNAL            = lv_date_external
         EXCEPTIONS
           DATE_INTERNAL_IS_INVALID = 1
           OTHERS                   = 2.
           IF SY-SUBRC <> 0.                                     "#EC NEEDED
    * Implement suitable error handling here
           ENDIF.
    *   Validating input shipment number with database table VTTP
           SELECT VTTP~TKNUM
                  VTTP~TPNUM
                  VTTP~VBELN
             FROM VTTP INNER JOIN VTTK
             ON VTTP~TKNUM = VTTK~TKNUM
             INTO TABLE IT_VTTP
             WHERE VTTK~TKNUM = P_TKNUM
               AND VTTK~STDIS = 'X'.
           IF sy-subrc = 0.
    *   Validating all deliveries having same Delivery type or not
             SELECT * FROM likp INTO TABLE it_likp FOR ALL ENTRIES IN it_vttp WHERE vbeln = it_vttp-vbeln
                                                                                AND vbtyp = 'J'.
             IF sy-subrc = 0.
               CLEAR lv_lines.
               LOOP AT it_likp INTO wa_likp.
                 REFRESH:it_vbfa,BDCDATA.
    *   Validating if Delivery Type = 109 (GR already done), or Delivery Type = 107 (must process for GR )
                 SELECT * FROM vbfa INTO TABLE it_vbfa WHERE vbelv = wa_likp-vbeln
    *                                                AND vbtyp_v = 'J'
                                                         AND bwart = '109'.
                 IF sy-subrc = 0.
                   lv_flag1 = 'X'.
                 ELSE.
                   SELECT * FROM vbfa INTO TABLE it_vbfa WHERE vbelv = wa_likp-vbeln
    *                                                  AND vbtyp_v = 'J'
                                                           AND bwart = '107'.
                   IF sy-subrc NE 0.
                     MESSAGE 'No Deliveries with Movement Type "107" ' TYPE 'I'.
                   ELSE.
                     lv_flag2 = 'X'.
                     lv_lines = lv_lines + 1.
    **  BDC for MIGO
                     perform bdc_dynpro      using 'SAPLMIGO' '0001'.
                     perform bdc_field       using 'BDC_OKCODE'
                                                   '=OK_GO'.
                     perform bdc_field       using 'GODYNPRO-ACTION'
                                                   'A01'.
                     perform bdc_field       using 'GODYNPRO-REFDOC'
                                                   'R05'.
                     perform bdc_field       using 'GODEFAULT_TV-BWART'
                                                   '109'.
                     perform bdc_field       using 'BDC_CURSOR'
                                                   'GODYNPRO-OUTBOUND_DELIVERY'.
                     perform bdc_field       using 'GODYNPRO-OUTBOUND_DELIVERY'
                                                   wa_likp-vbeln. "'80019574'.
                     perform bdc_field       using 'GOHEAD-BLDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-BUDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-WEVER'
                                                   '1'.
                     perform bdc_dynpro      using 'SAPLMIGO' '0001'.
                     perform bdc_field       using 'BDC_OKCODE'
                                                   '=OK_POST1'.
                     perform bdc_field       using 'GODEFAULT_TV-BWART'
                                                   '109'.
                     perform bdc_field       using 'GOHEAD-BLDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-LFSNR'
                                                   wa_likp-vbeln. "'0080019574'.
                     perform bdc_field       using 'GOHEAD-BUDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-WEVER'
                                                   '1'.
                     perform bdc_field       using 'GODYNPRO-DETAIL_ZEILE'
                                                   '   1'.
                     perform bdc_field       using 'GOITEM-ERFME'
                                                   'EA'.
                     perform bdc_field       using 'GOITEM-ERFMG'
                                                   '1'.
                     perform bdc_field       using 'GOITEM-LSMNG'
                                                   '1'.
                     perform bdc_field       using 'GOITEM-LSMEH'
                                                   'EA'.
                     perform bdc_field       using 'GOITEM-MIGO_ELIKZ'
                                                   '1'.
                     perform bdc_field       using 'GOITEM-BWART'
                                                   '109'.
                     perform bdc_field       using 'GOITEM-LGOBE'
                                                   'RX Cross-docking'.
                     perform bdc_field       using 'BDC_CURSOR'
                                                   'GODYNPRO-DETAIL_TAKE'.
                     perform bdc_field       using 'GODYNPRO-DETAIL_TAKE'
                                                   'X'.
                     PERFORM bdc_dynpro      USING 'SAPLMIGO' '1300'.
                     PERFORM bdc_field       USING 'BDC_CURSOR'
                                                   'G_TIP_DONT_SHOW_AGAIN'.
                     PERFORM bdc_field       USING 'BDC_OKCODE'
                                                   '=OK_TIP_GO'.
                     PERFORM bdc_field       USING 'G_TIP_DONT_SHOW_AGAIN'
                                                   'X'.
    *& Avoid unncessary screens to populate while processing background.
                     LV_OPTIONS-DISMODE = 'N'.
                     LV_OPTIONS-UPDMODE = 'S'.
                     LV_OPTIONS-NOBINPT = 'X'.
                     CALL TRANSACTION 'MIGO' USING BDCDATA  OPTIONS FROM LV_OPTIONS MESSAGES INTO IT_MESSTAB1 .
                     WAIT UP TO 1 SECONDS.
                     DELETE IT_MESSTAB1 WHERE MSGTYP NE 'E'.
                     IF IT_MESSTAB1[] IS NOT INITIAL.
                       APPEND LINES OF IT_MESSTAB1 TO IT_MESSTAB.
                     ENDIF.
                   ENDIF.
                 ENDIF.
               ENDLOOP.
             ENDIF.
           ELSE.
             MESSAGE 'Shipment Number does not exists Or not Planned' TYPE 'E'.
           ENDIF.
         ELSE.
           MESSAGE 'Please insert Shipment Number' TYPE 'E'.
         ENDIF.
         IF lv_flag1 = 'X' AND lv_flag2 = 'X'.
           MESSAGE 'This shipment is processed with an inconsistent goods receipt' TYPE 'I'.
         ELSEIF lv_flag1 = 'X'.
           MESSAGE 'Shipment already been processed for these deliveries' TYPE 'I'.
         ELSEIF lv_flag2 = 'X'.
           lv_lines1 = lv_lines.
           CONDENSE lv_lines1 NO-GAPS .
           CONCATENATE lv_lines1 'Goods Receipt are posted for the shipment '
                  INTO lv_message SEPARATED BY space.
           MESSAGE  lv_message TYPE 'I'.
         ENDIF.
    * Display Messages from Message TAB.
         DELETE ADJACENT DUPLICATES FROM IT_MESSTAB.
         DATA:lv_msg TYPE string.
         LOOP AT IT_MESSTAB INTO WA_MESSTAB.
           CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
               ID        = WA_MESSTAB-MSGID
               NO        = WA_MESSTAB-MSGNR
               V1        = WA_MESSTAB-MSGV1
               V2        = WA_MESSTAB-MSGV2
               V3        = WA_MESSTAB-MSGV3
               V4        = WA_MESSTAB-MSGV4
             IMPORTING
               MSG       = lv_msg
             EXCEPTIONS
               NOT_FOUND = 1
               OTHERS    = 2.
           IF sy-subrc <> 0.
    * Implement suitable error handling here
           ENDIF.
           WRITE:/ lv_msg.
         ENDLOOP.
    *        Start new screen                                              *
       FORM BDC_DYNPRO USING PROGRAM DYNPRO.                 "#EC PF_NO_TYPE
         CLEAR BDCDATA.
         BDCDATA-PROGRAM  = PROGRAM.
         BDCDATA-DYNPRO   = DYNPRO.
         BDCDATA-DYNBEGIN = 'X'.
         APPEND BDCDATA.
       ENDFORM.
    *        Insert field                                                  *
       FORM BDC_FIELD USING FNAM FVAL.                       "#EC PF_NO_TYPE
         CLEAR BDCDATA.
         BDCDATA-FNAM = FNAM.
         BDCDATA-FVAL = FVAL.
         APPEND BDCDATA.
       ENDFORM.
    Thanks,
    Srini

    Hi Rob,
    Thanks for quick reply.
    I have checked the NOTE : 304122
    But there in the NOTE it says ( " BAPI, BAPI_GOODSMVT_CANCEL, BAPI_GOODSMVT_CREATE, CNTL_ERROR" )
    These BAPI's work perfectly for (purchase order as input type), but here out type is ( A01 & R05 ) we are giving DELIVERY NUMBER as input to MIGO.
    So for this scenario we cannot use those BAPI's mentioned in the NOTE.
    Also as stated earlier in the message interesting part is
    "The code works absolutely perfect only from my ID. But when I test from other ID it is not executing. Code is working exactly as expected ONLY to my ID. When i try to execute the same code from another's ID it is not working"
    So what do you think might be the issue?

  • Problem with uploading data from excel using BDC for tcode f-02

    Hi All,
    I am uploading data from excel using BDC for tcode f-02. The problem here is, while recording, the values of some fields are recording twice. I dont know why it's happening so. But if I run my abap program, I have to give those fields twice in my excel sheet. Otherwise data does not upload. But it is not the feasible way. We must give those fields once in excel. Please tell me, how I can solve the issue.
    With regards,
    Rosaline.

    Hi,
      in BDC each and every action is recording. If your press enter in same screen that also recorded once aging may be this is your case repeating field values will appear. we can solve the problem for repeat fields like below.
    suppose in your excel having repeated field X1 X2 X3 the X2 contains repeated field X3 means delete the X3 field.
    Now In your itab having X1 and X2 fields. While in the LOOP the ITAB pass the X2 field to repeated the fields.
    LOOP at ITAB to WA.
    CLEAR bdcdata_wa.
    bdcdata_wa-fnam = 'BDC_CURSOR'.
    bdcdata_wa-fval = 'RM08M-EBELN'.
    APPEND bdcdata_wa TO bdcdata_tab.
    CLEAR bdcdata_wa.
    bdcdata_wa-fnam = 'INVFO-BLDAT'.
    bdcdata_wa-fval = wa-X2." 1st time pass the X2 fields
    APPEND bdcdata_wa TO bdcdata_tab.
    CLEAR bdcdata_wa.
    bdcdata_wa-fnam = 'INVFO-BLDAT'.
    bdcdata_wa-fval = wa-X2." pass the same value to repeated field
    APPEND bdcdata_wa TO bdcdata_tab.
    Endloop.
    Hope you can understand.
    Regards,
    Dhina..

  • Program does BDC for transaction F-52 or f-53

    Hi GuruI am functional person and working with a developer in a program . The program does BDC for transaction F-52 or f-53 . I am uploading a file ,so that the program picks it and o either F-52 or F-53 based on condition. When i try to upload the program with mulitple record ,i am getting the message difference is too large to clear . If i execute the same program without doing any changes again i can see few more records getting posted . when i do next time remaining records are posted . Insted of getting posted in one ,I have to execute the program more than once .can any one help me out why this is happening

    i think you should ask  your programmer to use transaction SM35 to process the BDC in foreground mode (first changing the mode to A). I would think you will see what's going wrong then. There are a few transactions that look different in foreground mode than in background and you will see where the difference is if you use this method to process

  • Problem in BDC FOR uploading more than 1 insep. typ in QM view for MM01

    Hi,
    I had made a BDC in which i am trying to upload the data for the QM view which is being extended in it but the problem is when the program reaches the to QM view it is only able to upload only 1 inspection Type which is working fine but when there is more than 1 it gives error that its QM View has already maintained.  Please provide me guiddlines how to solve this problem .
    Here's is the link to the code which i am trying to modify:-
    http://docs.google.com/Edit?id=dngp529_2fxwgmrgg
    Edited by: ricx .s on Apr 16, 2009 2:30 PM

    hi,
    But is it not possible that while creating the insepction type for the first it should simultaneously take the value of 2nd inspection type .
    see,ina bdc of qp01 or ca01 we can insert the values at the screen but why can't we do d same in the bdc of mm01,
    I had made a bdc for tcode MM02 in which i am able to upload  the data but in that there is a problem that some of the materials have the Quality managmnt View at position no. 11 or 13 of the screen.
    here's is d link for the code of the program :-
    http://docs.google.com/Doc?id=dngp529_3wcgnjdf3
    plzz provide me guidelines how to solve it    .
    Edited by: ricx .s on Apr 17, 2009 9:26 AM
    Edited by: ricx .s on Apr 17, 2009 10:56 AM

  • Problem in BDC for MM02

    Hi,
    I am working on a BDC for the tcode MM02 in which i have to insert the Inspection Type in the Quality Managment View of materials. i had executed the code which was working fine,but when i executed it ,it remains on the same screen where the after specifying on the file path. I dont know why it is happening ,plzz provide me guidelines for solving this problem.

    report ZMM02 no standard page heading line-size 255.
    include bdcrecx1.
    DATA: BEGIN OF ZVBM OCCURS 0,
           MATNR(18) TYPE C,
           BRGEW(16) TYPE C,
           NTGEW(16) TYPE C,
    END OF ZVBM.
    start-of-selection.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      CODEPAGE                      = ' '
       FILENAME                      = 'c:\vijay.txt'
       FILETYPE                      = 'DAT'
      HEADLEN                       = ' '
      LINE_EXIT                     = ' '
      TRUNCLEN                      = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      DAT_D_FORMAT                  = ' '
    IMPORTING
      FILELENGTH                    =
      TABLES
        DATA_TAB                      = ZVBM
    EXCEPTIONS
      CONVERSION_ERROR              = 1
      FILE_OPEN_ERROR               = 2
      FILE_READ_ERROR               = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      OTHERS                        = 10
    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_group.
    LOOP AT ZVBM.
    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'
                                  zvbm-matnr.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  'VIJAY3'.
    perform bdc_field       using 'MARA-MEINS'
                                  'KG'.
    perform bdc_field       using 'MARA-MATKL'
                                  '01'.
    perform bdc_field       using 'MARA-SPART'
                                  '01'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-NTGEW'.
    perform bdc_field       using 'MARA-BRGEW'
                                  zvbm-brgew.
    perform bdc_field       using 'MARA-GEWEI'
                                  'KG'.
    perform bdc_field       using 'MARA-NTGEW'
                                  zvbm-ntgew.
    perform bdc_transaction using 'MM02'.
    ENDLOOP.
    perform close_group.

  • Problem in BDC for MIRO.....................

    Hi friends,
    I am using BDC for MIRO....In screen number 6220 where POs and items are to filled in table control where i need to fill 100 records... When i am using page down option during recording it is capturing function code as /OO .But while running BDC program this function code /OO is becoming ineffective..means page down is not happening when '/OO'  is executed....can anybody help me out in what can be done in solving the problem...
    Regards.

    Hi Raju,
    But our requirement is to to do the recording only till all the items are filled in the pop up screen..As no page-down button is available in the screen...i guess that is why page-down activity done from key-board is not working fine......Any suggestions from ur side........
    Regards.

Maybe you are looking for