Mk01 BDC

urgent
any body out there - I would like to create vendors via MK01 (with a bdc).
I manage to create the vendors but the e-mail field does not populate.  If I view the vendor via mk03 the field does not display.  I checked tables adrc/adr6 and lfa1 - no email adress - but on lfa1 there is a unique adrnr. 
If I go to MK02 and update the email manually it does display on MK03 and also on ADR6
can somebody please help me - please please please

Your first screen should look like:
     'X' 'SAPMF02K'     '0107',         "Create Vendor: Initial Screen
      ' ' 'RF02K-BUKRS'             'CCCC',
      ' ' 'RF02K-KTOKK'             'ACGP',
      ' ' 'USE_ZAV'                 'X'.                 " <====
Rob

Similar Messages

  • How can we update mk01 with BDC call transaction method

    can any one send the sample code for upload of MK01 using call transaction method.
    its urgent..

    Use the following code.
    *& Report  ZMK01_VA01                                                  *
    REPORT  Z_MK01                              .
    SOURCE INTERNAL TABLE
    DATA: BEGIN OF T_SOURCE OCCURS 0,
            LIFNR TYPE LIFNR,
            EKORG TYPE EKORG,
            KTOKK TYPE KTOKK,
            NAME1 TYPE NAME1,
            SORTL TYPE SORTL,
            LAND1 TYPE LAND1,
            WAERS TYPE WAERS,
          END OF T_SOURCE.
    *DATA: E_MESSAGE TYPE C.
    ERROR MESSAGE TABLE
    DATA: T_ERRORMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    TARGET TABLE LIKE BDCDATA
    DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    TO UPLOAD DATA FROM LEGACY SYSTEM
          CALL FUNCTION 'WS_UPLOAD'
      EXPORTING
            CODEPAGE                      = ' '
             FILENAME                      = 'D:\MK01.TXT'
             FILETYPE                      = 'DAT'
          IMPORTING
            FILELENGTH                    =
            TABLES
              data_tab                      = T_SOURCE
           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
             NO_AUTHORITY                  = 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.
    TRANSFERING DATA FROM INTERNAL SOURCE TABLE TO TARGET TABLE
    LOOP AT T_SOURCE.
    REFRESH BDCDATA.
    perform bdc_dynpro      using 'SAPMF02K' '0107'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  T_SOURCE-LIFNR.
    perform bdc_field       using 'RF02K-EKORG'
                                  T_SOURCE-EKORG.
    perform bdc_field       using 'RF02K-KTOKK'
                                  T_SOURCE-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-LAND1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-NAME1'
                                  T_SOURCE-NAME1.
    perform bdc_field       using 'LFA1-SORTL'
                                  T_SOURCE-SORTL.
    perform bdc_field       using 'LFA1-LAND1'
                                  T_SOURCE-LAND1.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0310'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFM1-WAERS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFM1-WAERS'
                                  T_SOURCE-WAERS.
    perform bdc_dynpro      using 'SAPMF02K' '0320'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    CALL TRANSACTION 'MK01' USING BDCDATA MODE 'A' MESSAGES INTO T_ERRORMSG.
    ENDLOOP.
    LOOP AT T_ERRORMSG.
    WRITE:/ 'MESSAGE TYPE',T_ERRORMSG-MSGTYP,
             'FIELDNAME WERE ERROR OCCURED', T_ERRORMSG-FLDNAME.
    *CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
      ID              = T_ERRORMSG-MSGID
      LANG            = SY-LANGU
      NO              = T_ERRORMSG-MSGNR
      V1              = T_ERRORMSG-MSGV1
      V2              = T_ERRORMSG-MSGV2
      V3              = T_ERRORMSG-MSGV3
      V4              = T_ERRORMSG-MSGV4
    IMPORTING
      MSG             = E_MESSAGE
    EXCEPTIONS
      NOT_FOUND       = 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.
    *WRITE:/ E_MESSAGE.
    ENDLOOP.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> SPACE.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.
    With Regards
    K Srinivas

  • Faq's IN BDC

    Hi All,
    I have a favour from all of you, I want to know what are the type of questions that would be asked in interview if I put these objects
    Reports :
    Created Material Master report for existing stock details.
    Created Material Master report for various storage locations.
    BDC        :
    Migrated legacy data from Non SAP to SAP using SE11 transaction.               
    Migrated legacy data using MK01 transaction.
    LSMW        :
         Migrated legacy data using MM01 transaction.
    Reports
    Generated a report to print the purchase order details of goods received with purchase order number.
    Generated a program to create a report which calculates the material cost, it selects all the material issued for the entered service order number from stock.
    Sap Scripts
    Worked on Modifying the predefined Sap Script for Distributing Customer Billing.
    Smart Forms
    Worked on creating Job requisition form.
    Reports:
       Developed a ALV Grid Interactive report to evaluate the Vendor performance for a specified purchase organization in a particular period.
         Generated a ALV grid interactive report that displays the Material numbers and
          corresponding Maintenance status in the basic list and upon selection of a particular 
          material no it gives the detailed information of that material no in two different levels.
    BDC:
    Interface to upload change the sales order for open sales order and partial sales order         using the transaction VA02 through batch input method.
    SAP Scripts :
       Modified the Order layout set with slight changes in the terms and conditions, date  
           format.
       Changes made to the invoice layout set as per the client requirement
    i would very much indebted to each and everyone whoever is helping to secure a job in ABAP..
    Thanking u in advance...
    srinivas
    u can also mail me @ [email protected]

    repots:
    have you created any reports,
    what are the kinds of reports,
    what are the sequence of events come in reports,
    which method you used for report,
    do you know about alv. 
    bdc:
    what are the types of bdc.
    how you collect the messages in bdc.
    what are the functiona modules in bdc
    sap scripts/smart forms:
    what is the difference between these two.
    what are the functiona modules used in sap script.
    how you call the samrt form in your program.
    what is the t code for smart form and sap script.
    how you define the paragraph formats in sap scripts.

  • What is the exact way of doing BDC ?????

    I know when the input is minimal we have to use CALL TRANSACTION method in BDC and when we have batch of input files we have to use BDC Recording.
    My question is what is the exact way of doing BDC.
    Could any one please tell me the exact way of doing BDC Recording Process.
    I appreciate your help.
    Thanks for your Time.
    Shiv.

    Hello Sivaramu,
    Call transcation can handle only one Trasaction(Tcode).
    Session method can handle multiple transcations.  
    Before getting started with the Recording process...we have to know the transcation code. We do recording to record the screen number, screen values,  Button values(OK codes) ...etc
    For example...while recording we create a record using some t-code (Say MM01) ...Now, we will create a materail master record using the Recording process.
    Let us see the process of recoding a single record with MM01 using SHDB(A tool used to record the details of T-code)
    Go through these steps for recording by using SHDB.
    How to use recording :
    Go to SHDB
    --> Click on New Recording
    --> Provide any name in Recording , For ex: Z_CHAITU
    --> Provide the Transaction name as “MM01”
    --> Select the update mode as Synchrounous or Asynchrounus method
    --> Click on Start Recording button.
    --> It will display MM01 screen….type the appropriate
    information in it.
    --> Type the Material no as : 4567E (Any no, But there should b 1 Character in it)
    --> Type Checmical Industry in INDUSTRY SECTOR
    --> Type COUPONS in MATERIAL TYPE
    --> Now click on Select Views button.
    --> Select BASIC DATA 1
    --> Click on Ok button
    --> Under Basic data tab under Material, it will display the Material number.
    --> Type the short description and “Provide EA as Base Unit Of Measure”
    --> CLICK ON BACK AND IT WILL ASK U TO SAVE THE DATA, CLICK ON YES
    --> Again click on Back, it will ask if u wish to save the changes to record entries.
    -> Click on Yes
    --> Now, u will be in Initial screen
    --> Select the record and Click on Program button
    --> Now, provide any program name
    --> Now, select ‘Transfer from recording’
    --> Click on Tick mark
    --> Give some short description
    --> Type as Executable
    --> Click on Source Code button
    --> Automatically the code will appear in SE 38 program.
    U can try these steps with any T-code by knowing the Mandatory fields in it.
    ---> *Now by following all the above steps ur done with the recording process to create a single record in MAterail master (MM01).  Now, we use the same recording process and put this recording under Loop in report program.*
    So that, it will follow the same steps automatically to create materail master records from the flat file. If you have 10 records in flat file(Note pad) then it will do the same process for 10 times to upload 10 records from the flat file using the recoding process that we have done by using the SHDB
    If you want then i will provide you with the sample program to upload the data for MK01 using Call transcation and Session method.
    Call transcation method for MK01:
    U can try these steps with any T-code by knowing the Mandatory fields in it.
    & TITLE  : BDC FOR MK01
    *& DESCR  : UPLOAD THE DATA THROUGH FLAT FILE
    *& TRANSPORT : DOLK901203
    *& VERSION : V1
    *& DATE  :  17th , JAN , 2008
    report Z24_BDC_MK01
           no standard page heading line-size 255.
    *& DECLARATIONS OF STRUCTURE FOR MK01
    TYPES : BEGIN OF TY_MK01 ,
             KTOKK TYPE RF02K-KTOKK ,
             NAME1 TYPE LFA1-NAME1 ,
             SORTL TYPE LFA1-SORTL ,
             PSTLZ TYPE LFA1-PSTLZ ,
             LAND1 TYPE LFA1-LAND1 ,
             END OF TY_MK01 .
    *& DECLARATION OF INTERNAL TABLE
    DATA : T_MK01 TYPE STANDARD TABLE OF TY_MK01 INITIAL SIZE 0 ,
           T_BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0 ,
           T_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL INITIAL SIZE 0 ,
           T_ERROR TYPE STANDARD TABLE OF TY_MK01 INITIAL SIZE 0 ,
    *& DECLARATION OF WORK AREA
           W_MK01 TYPE TY_MK01 ,
           W_BDCDATA TYPE BDCDATA ,
           W_BDCMSGCOLL TYPE BDCMSGCOLL .
    *& DECLARATION OF SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME .
    PARAMETERS : P_FILE TYPE FILENAME .
    SELECTION-SCREEN END OF BLOCK B1 .
    *& DECLARATION OF START-OF-SELECTION
    START-OF-SELECTION .
    PERFORM SUB_UPLOAD_DATA .
    PERFORM SUB_POPULATE_BDC .
    PERFORM SUB_ERROR_REC .
    *include bdcrecx1.
    *&      Form  SUB_UPLOAD_DATA
          text
    form SUB_UPLOAD_DATA .
    DATA  : L_FILE TYPE STRING .
         L_FILE = P_FILE .
    CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
         filename                      = L_FILE
         HAS_FIELD_SEPARATOR           = 'X'
       tables
         data_tab                      = T_MK01 .
    endform.                    " SUB_UPLOAD_DATA
    *&      Form  SUB_POPULATE_BDC
          text
    form SUB_POPULATE_BDC .
    LOOP AT T_MK01 INTO W_MK01 .
    DATA : L_MSG TYPE STRING .
    REFRESH T_BDCDATA .
    perform bdc_dynpro      using 'SAPMF02K' '0107'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-KTOKK'
                                   W_MK01-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-LAND1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-NAME1'
                                   W_MK01-NAME1.
    perform bdc_field       using 'LFA1-SORTL'
                                   W_MK01-SORTL.
    perform bdc_field       using 'LFA1-PSTLZ'
                                   W_MK01-PSTLZ.
    perform bdc_field       using 'LFA1-LAND1'
                                   W_MK01-LAND1.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    CALL TRANSACTION 'MK01' USING T_BDCDATA MODE 'N' MESSAGES INTO T_BDCMSGCOLL .
    IF SY-SUBRC <> 0 .
    APPEND W_MK01 TO T_ERROR .
    ENDIF .
    CLEAR W_BDCMSGCOLL .
    READ TABLE T_BDCMSGCOLL INTO W_BDCMSGCOLL INDEX 1 .
    CLEAR L_MSG .
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
       ID              = W_BDCMSGCOLL-MSGID
       LANG            = SY-LANGU
       NO              = W_BDCMSGCOLL-MSGNR
       V1              = W_BDCMSGCOLL-MSGV1
       V2              = W_BDCMSGCOLL-MSGV2
       V3              = W_BDCMSGCOLL-MSGV3
       V4              = W_BDCMSGCOLL-MSGV4
    IMPORTING
       MSG             = L_MSG
    EXCEPTIONS
       NOT_FOUND       = 1
       OTHERS          = 2
    IF sy-subrc = 0.
    WRITE : / 'MESSAGE FOR ' , W_MK01-KTOKK ,'-------' , L_MSG .
    ENDIF.
    ENDLOOP .
    endform.                    " SUB_POPULATE_BDC
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR W_BDCDATA.
      W_BDCDATA-PROGRAM  = PROGRAM.
      W_BDCDATA-DYNPRO   = DYNPRO.
      W_BDCDATA-DYNBEGIN = 'X'.
      APPEND W_BDCDATA TO T_BDCDATA .
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
        CLEAR W_BDCDATA.
        W_BDCDATA-FNAM = FNAM.
        W_BDCDATA-FVAL = FVAL.
        APPEND W_BDCDATA TO T_BDCDATA .
    ENDFORM.
    *&      Form  SUB_ERROR_REC
          text
    -->  p1        text
    <--  p2        text
    form SUB_ERROR_REC .
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename                        = 'C:/ERRORS OF MK01.TXT'
       WRITE_FIELD_SEPARATOR           = 'X'
      tables
        data_tab                        = T_ERROR .
    endform.                    " SUB_ERROR_REC
    Session Method for MK01:
    *& PURPOSE : This BDC report is used to upload all the vendor master
    *&           data in to SAP using SESSION METHOD with handling the errors
    report Y035_SESSION_METHOD
           no standard page heading line-size 255.
    *& Structure declaration
    *Structure Declaration for source internal table
    TYPES : BEGIN OF TY_UPLOAD,
              LIFNR TYPE RF02K-LIFNR,
              EKORG TYPE RF02K-EKORG,
              KTOKK TYPE RF02K-KTOKK,
              NAME1 TYPE LFA1-NAME1,
              SORTL TYPE LFA1-SORTL,
              LAND1 TYPE LFA1-LAND1,
              SPRAS TYPE LFA1-SPRAS,
              WAERS TYPE LFM1-WAERS,
            END OF TY_UPLOAD.
    *& Internal Table declaration
    *Internal Table Declaration for source table
    DATA : T_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD INITIAL SIZE 0,
    *Internal Table Declaration for bdcdata
           T_BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0,
    *Internal table declaration for BDCMSGCOLL (To handle the errors)
           T_BDCMSG TYPE STANDARD TABLE OF BDCMSGCOLL,
    *Internal table declaration for reprocess the errors
           T_ERRORS TYPE STANDARD TABLE OF TY_UPLOAD INITIAL SIZE 0,
    *& Workarea declaration
    *Work area delaration for source table
           W_UPLOAD TYPE TY_UPLOAD,
    *Work area delaration for bdcdata
           W_BDCDATA TYPE BDCDATA,
    *Work area delaration for BDCMSGCOLL
           W_BDCMSG TYPE BDCMSGCOLL.
    *& Selection screen declaration
    *Selection Screen declaration
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    PARAMETERS : P_FLNAME TYPE FILENAME.
    SELECTION-SCREEN END OF BLOCK B1.
    *& Start of selection declaration
    *Start of selection declaration
    START-OF-SELECTION.
    *Upload the data
    PERFORM SUB_UPLOAD_DATA.
    *Populate the BDC data
    PERFORM SUB_POPULATE_BDC.
    *Process the error records
    PERFORM SUB_ERROR_RECORD.
    *include bdcrecx1.
    *&      Form  SUB_UPLOAD_DATA
          This subroutine is used to upload the data
    FORM SUB_UPLOAD_DATA .
    DATA : L_FLNAME TYPE STRING.
    L_FLNAME = P_FLNAME.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = L_FLNAME
      FILETYPE                      = 'ASC'
        HAS_FIELD_SEPARATOR           = 'X'
      TABLES
        DATA_TAB                      = T_UPLOAD.
    ENDFORM.                    " SUB_UPLOAD_DATA
    *&      Form  SUB_POPULATE_BDC
          This subroutine is used to populate the BDC data
    FORM SUB_POPULATE_BDC .
    DATA : L_MSG TYPE STRING.
    *To oper a sesion in SE35
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
       CLIENT                    = SY-MANDT
       GROUP                     = 'MAMA_SESSION'
       USER                      = SY-UNAME
       KEEP                      = 'X'
       HOLDDATE                 = '20080129'
       PROG                      = SY-CPROG.
    LOOP AT T_UPLOAD INTO W_UPLOAD.
    REFRESH T_BDCDATA.
    perform bdc_dynpro      using 'SAPMF02K'         '0107'.
    perform bdc_field       using 'BDC_CURSOR'       'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'       '/00'.
    perform bdc_field       using 'RF02K-LIFNR'      W_UPLOAD-LIFNR.
    perform bdc_field       using 'RF02K-EKORG'      W_UPLOAD-EKORG.
    perform bdc_field       using 'RF02K-KTOKK'      W_UPLOAD-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K'         '0110'.
    perform bdc_field       using 'BDC_CURSOR'       'LFA1-SPRAS'.
    perform bdc_field       using 'BDC_OKCODE'       '/00'.
    perform bdc_field       using 'LFA1-NAME1'       W_UPLOAD-NAME1.
    perform bdc_field       using 'LFA1-SORTL'       W_UPLOAD-SORTL.
    perform bdc_field       using 'LFA1-LAND1'       W_UPLOAD-LAND1.
    perform bdc_field       using 'LFA1-SPRAS'       W_UPLOAD-SPRAS.
    perform bdc_dynpro      using 'SAPMF02K'         '0120'.
    perform bdc_field       using 'BDC_CURSOR'       'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'       '/00'.
    perform bdc_dynpro      using 'SAPMF02K'         '0310'.
    perform bdc_field       using 'BDC_CURSOR'       'LFM1-WAERS'.
    perform bdc_field       using 'BDC_OKCODE'       '/00'.
    perform bdc_field       using 'LFM1-WAERS'       W_UPLOAD-WAERS.
    perform bdc_dynpro      using 'SAPMF02K'         '0320'.
    perform bdc_field       using 'BDC_CURSOR'       'RF02K-LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'       '=ENTR'.
    perform bdc_dynpro      using 'SAPLSPO1'         '0300'.
    perform bdc_field       using 'BDC_OKCODE'       '=YES'.
    *Transfer data to the session
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
       TCODE                  = 'MK01'
      TABLES
        dynprotab              = T_BDCDATA.
    ENDLOOP.
    *To close the session
    CALL FUNCTION 'BDC_CLOSE_GROUP'.
    ENDFORM.                    " SUB_POPULATE_BDC
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR W_BDCDATA.
      W_BDCDATA-PROGRAM  = PROGRAM.
      W_BDCDATA-DYNPRO   = DYNPRO.
      W_BDCDATA-DYNBEGIN = 'X'.
      APPEND W_BDCDATA TO T_BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
        CLEAR W_BDCDATA.
        W_BDCDATA-FNAM = FNAM.
        W_BDCDATA-FVAL = FVAL.
        APPEND W_BDCDATA TO T_BDCDATA.
    ENDFORM.
    *&      Form  SUB_ERROR_RECORD
         This subroutine is used to process the error records
             in to a file T_ERRORS
    FORM SUB_ERROR_RECORD .
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        FILENAME                        = 'C:\MAMA_ERRORS.TXT'
       WRITE_FIELD_SEPARATOR           = 'X'
      TABLES
        DATA_TAB                        = T_ERRORS.
    ENDFORM.                    " SUB_ERROR_RECORD
    Hope the Explonation and information I had provided will resolve your issue.
    Reward points if information is very Helpful.
    Have a great day!
    Regards,
    Krishna Chaitanya
    Edited by: Krishna Chaitanya on Apr 7, 2008 4:59 AM

  • Error occured in bdc(session method)

    hai,
    i was written one bdc program with session method but unfortunatly it's throwing some error like bdc_group is invalid.
    this problem happening at when i was going to give the file path through f4 in selection screen it's showing like  BDC_OPEN_GROUP, group .. is invalid
    iam sending my coding also plz give me the clarifications abt this one.
               SESSION METHOD           **********************
    TYPES : BEGIN OF TY_DATA,
           LIFNR TYPE LIFNR,
           EKORG TYPE EKORG,
           KTOKK TYPE KTOKK,
           NAME1 TYPE NAME1_GP,
           SORTL TYPE SORTL,
           LAND1 TYPE LAND1_GP,
           WAERS TYPE BSTWA,
           END OF TY_DATA.
    DATA : WA_DATA TYPE TY_DATA,
           WA_BDCDATA TYPE BDCDATA,
           WA_BDCMSGCOLL TYPE BDCMSGCOLL.
    DATA : IT_DATA TYPE TABLE OF TY_DATA,
           IT_BDCDATA TYPE TABLE OF BDCDATA,
           IT_BDCMSGCOLL TYPE TABLE OF BDCMSGCOLL.
    DATA : V_FILE TYPE STRING.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER : PA_FILE LIKE FC03TAB-PL00_FILE, "OBLIGATORY default 'C:\MAHESH\IT_FILE.TXT'
                P_GROUP LIKE APQI-GROUPID OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_FILE.
      PERFORM GET_F4_FOR_FILE USING PA_FILE.
      V_FILE = PA_FILE.
      PERFORM UPLOAD_FILE_TO_ITAB USING V_FILE CHANGING IT_DATA.
      PERFORM OPEN_SESSION USING P_GROUP.
      LOOP AT IT_DATA INTO WA_DATA.
        REFRESH IT_BDCDATA.
    FIRST SCREEN DETAILS
        PERFORM FILL_SCREEN_DETAILS USING 'SAPMF02K' '0107' 'X'.
    **** FIELD DETAILS
        PERFORM FILL_FIELD_DETAILS USING 'BDC_CURSOR' 'RF02K-KTOKK'.
    OK CODES
        PERFORM FILL_FIELD_DETAILS USING 'BDC_OKCODE' '/00'.
    **** FILED LIFNR
        PERFORM FILL_FIELD_DETAILS USING 'RF02K-LIFNR' WA_DATA-LIFNR.
    FIELD EKORG
        PERFORM FILL_FIELD_DETAILS USING 'RF02K-EKORG' WA_DATA-EKORG.
    **** FIELD KTOKK
        PERFORM FILL_FIELD_DETAILS USING 'RF02K-KTOKK' WA_DATA-KTOKK.
    SECOND SCREEN DETAILS
        PERFORM FILL_SCREEN_DETAILS USING 'SAPMF02K' '0110' 'X'.
    FIELD CURSOR
        PERFORM FILL_FIELD_DETAILS USING 'BDC_CURSOR' 'lfa1-land1'.
    OK CODES
        PERFORM FILL_FIELD_DETAILS USING 'BDC_OKCODE' '=upda'.
    field NAME
        PERFORM FILL_FIELD_DETAILS USING 'LFA1-NAME1' WA_DATA-NAME1.
    field SORTL
        PERFORM FILL_FIELD_DETAILS USING 'LFA1-SORTL' WA_DATA-SORTL.
    field LAND1
        PERFORM FILL_FIELD_DETAILS USING 'LFA1-LAND1' WA_DATA-LAND1.
    THIRD SCREEN DETAILS
        PERFORM FILL_SCREEN_DETAILS USING 'SAPMF02K' '0310' 'X'.
    FIELD CURSOR
        PERFORM FILL_FIELD_DETAILS USING 'BDC_CURSOR' 'LFM1-WAERS'.
    OK CODES
        PERFORM FILL_FIELD_DETAILS USING 'BDC_OKCODE' '=upda'.
       ******** field SORTL
        PERFORM FILL_FIELD_DETAILS USING 'LFM1-WAERS' WA_DATA-WAERS.
        PERFORM BDC_INSERT USING 'MK01' IT_BDCDATA.
      ENDLOOP.
      PERFORM CLOSE_SESSION.
    *&      Form  GET_F4_FOR_FILE
    FORM GET_F4_FOR_FILE  USING    P_PA_FILE.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          FIELD_NAME = 'PA_FILE'
        CHANGING
          FILE_NAME  = PA_FILE.
      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.                    " GET_F4_FOR_FILE
    *&      Form  UPLOAD_FILE_TO_ITAB
    FORM UPLOAD_FILE_TO_ITAB  USING    FP_V_FILE
                              CHANGING FP_IT_DATA LIKE IT_DATA.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = FP_V_FILE
          FILETYPE            = 'ASC'
          HAS_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB            = FP_IT_DATA.
      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.                    " UPLOAD_FILE_TO_ITAB
    *&      Form  OPEN_SESSION
    FORM OPEN_SESSION  USING    FP_P_GROUP.
      CALL FUNCTION 'BDC_OPEN_GROUP'
       EXPORTING
         CLIENT                    = SY-MANDT
      DEST                      = FILLER8
         GROUP                     = FP_P_GROUP
      HOLDDATE                  = FILLER8
         KEEP                      =  'X'
         USER                      = SY-UNAME
      IF SY-SUBRC = 0.
        WRITE : / 'PROCESS THE SESSION',FP_P_GROUP,'USING SM35'.
      ENDIF.
    ENDFORM.                    " OPEN_SESSION
    *&      Form  FILL_SCREEN_DETAILS
    FORM FILL_SCREEN_DETAILS  USING PROGRAM
                                    DYNPRO
                                    DYNBEGIN.
      WA_BDCDATA-PROGRAM = PROGRAM.
      WA_BDCDATA-DYNPRO  = DYNPRO.
      WA_BDCDATA-DYNBEGIN = DYNBEGIN.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR WA_BDCDATA.
    ENDFORM.                    " FILL_SCREEN_DETAILS
    *&      Form  FILL_FIELD_DETAILS
    FORM FILL_FIELD_DETAILS  USING  FNAM FVAL.
      WA_BDCDATA-FNAM = FNAM.
      WA_BDCDATA-FVAL = FVAL.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR WA_BDCDATA.
    ENDFORM.                    " FILL_FIELD_DETAILS
    *&      Form  BDC_INSERT
    FORM BDC_INSERT  USING FP_TCODE TYPE SYTCODE
                           FP_IT_BDCDATA LIKE IT_BDCDATA.
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE     = FP_TCODE
        TABLES
          DYNPROTAB = FP_IT_BDCDATA.
      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.                    " BDC_INSERT
    *&      Form  CLOSE_SESSION
    FORM CLOSE_SESSION .
      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.                    " CLOSE_SESSION

    hai,
    i was written one bdc program with session method but unfortunatly it's throwing some error like bdc_group is invalid.
    this problem happening at when i was going to give the file path through f4 in selection screen it's showing like  BDC_OPEN_GROUP, group .. is invalid
    iam sending my coding also plz give me the clarifications abt this one.
               SESSION METHOD           **********************
    TYPES : BEGIN OF TY_DATA,
           LIFNR TYPE LIFNR,
           EKORG TYPE EKORG,
           KTOKK TYPE KTOKK,
           NAME1 TYPE NAME1_GP,
           SORTL TYPE SORTL,
           LAND1 TYPE LAND1_GP,
           WAERS TYPE BSTWA,
           END OF TY_DATA.
    DATA : WA_DATA TYPE TY_DATA,
           WA_BDCDATA TYPE BDCDATA,
           WA_BDCMSGCOLL TYPE BDCMSGCOLL.
    DATA : IT_DATA TYPE TABLE OF TY_DATA,
           IT_BDCDATA TYPE TABLE OF BDCDATA,
           IT_BDCMSGCOLL TYPE TABLE OF BDCMSGCOLL.
    DATA : V_FILE TYPE STRING.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER : PA_FILE LIKE FC03TAB-PL00_FILE, "OBLIGATORY default 'C:\MAHESH\IT_FILE.TXT'
                P_GROUP LIKE APQI-GROUPID OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_FILE.
      PERFORM GET_F4_FOR_FILE USING PA_FILE.
      V_FILE = PA_FILE.
      PERFORM UPLOAD_FILE_TO_ITAB USING V_FILE CHANGING IT_DATA.
      PERFORM OPEN_SESSION USING P_GROUP.
      LOOP AT IT_DATA INTO WA_DATA.
        REFRESH IT_BDCDATA.
    FIRST SCREEN DETAILS
        PERFORM FILL_SCREEN_DETAILS USING 'SAPMF02K' '0107' 'X'.
    **** FIELD DETAILS
        PERFORM FILL_FIELD_DETAILS USING 'BDC_CURSOR' 'RF02K-KTOKK'.
    OK CODES
        PERFORM FILL_FIELD_DETAILS USING 'BDC_OKCODE' '/00'.
    **** FILED LIFNR
        PERFORM FILL_FIELD_DETAILS USING 'RF02K-LIFNR' WA_DATA-LIFNR.
    FIELD EKORG
        PERFORM FILL_FIELD_DETAILS USING 'RF02K-EKORG' WA_DATA-EKORG.
    **** FIELD KTOKK
        PERFORM FILL_FIELD_DETAILS USING 'RF02K-KTOKK' WA_DATA-KTOKK.
    SECOND SCREEN DETAILS
        PERFORM FILL_SCREEN_DETAILS USING 'SAPMF02K' '0110' 'X'.
    FIELD CURSOR
        PERFORM FILL_FIELD_DETAILS USING 'BDC_CURSOR' 'lfa1-land1'.
    OK CODES
        PERFORM FILL_FIELD_DETAILS USING 'BDC_OKCODE' '=upda'.
    field NAME
        PERFORM FILL_FIELD_DETAILS USING 'LFA1-NAME1' WA_DATA-NAME1.
    field SORTL
        PERFORM FILL_FIELD_DETAILS USING 'LFA1-SORTL' WA_DATA-SORTL.
    field LAND1
        PERFORM FILL_FIELD_DETAILS USING 'LFA1-LAND1' WA_DATA-LAND1.
    THIRD SCREEN DETAILS
        PERFORM FILL_SCREEN_DETAILS USING 'SAPMF02K' '0310' 'X'.
    FIELD CURSOR
        PERFORM FILL_FIELD_DETAILS USING 'BDC_CURSOR' 'LFM1-WAERS'.
    OK CODES
        PERFORM FILL_FIELD_DETAILS USING 'BDC_OKCODE' '=upda'.
       ******** field SORTL
        PERFORM FILL_FIELD_DETAILS USING 'LFM1-WAERS' WA_DATA-WAERS.
        PERFORM BDC_INSERT USING 'MK01' IT_BDCDATA.
      ENDLOOP.
      PERFORM CLOSE_SESSION.
    *&      Form  GET_F4_FOR_FILE
    FORM GET_F4_FOR_FILE  USING    P_PA_FILE.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          FIELD_NAME = 'PA_FILE'
        CHANGING
          FILE_NAME  = PA_FILE.
      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.                    " GET_F4_FOR_FILE
    *&      Form  UPLOAD_FILE_TO_ITAB
    FORM UPLOAD_FILE_TO_ITAB  USING    FP_V_FILE
                              CHANGING FP_IT_DATA LIKE IT_DATA.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = FP_V_FILE
          FILETYPE            = 'ASC'
          HAS_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB            = FP_IT_DATA.
      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.                    " UPLOAD_FILE_TO_ITAB
    *&      Form  OPEN_SESSION
    FORM OPEN_SESSION  USING    FP_P_GROUP.
      CALL FUNCTION 'BDC_OPEN_GROUP'
       EXPORTING
         CLIENT                    = SY-MANDT
      DEST                      = FILLER8
         GROUP                     = FP_P_GROUP
      HOLDDATE                  = FILLER8
         KEEP                      =  'X'
         USER                      = SY-UNAME
      IF SY-SUBRC = 0.
        WRITE : / 'PROCESS THE SESSION',FP_P_GROUP,'USING SM35'.
      ENDIF.
    ENDFORM.                    " OPEN_SESSION
    *&      Form  FILL_SCREEN_DETAILS
    FORM FILL_SCREEN_DETAILS  USING PROGRAM
                                    DYNPRO
                                    DYNBEGIN.
      WA_BDCDATA-PROGRAM = PROGRAM.
      WA_BDCDATA-DYNPRO  = DYNPRO.
      WA_BDCDATA-DYNBEGIN = DYNBEGIN.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR WA_BDCDATA.
    ENDFORM.                    " FILL_SCREEN_DETAILS
    *&      Form  FILL_FIELD_DETAILS
    FORM FILL_FIELD_DETAILS  USING  FNAM FVAL.
      WA_BDCDATA-FNAM = FNAM.
      WA_BDCDATA-FVAL = FVAL.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR WA_BDCDATA.
    ENDFORM.                    " FILL_FIELD_DETAILS
    *&      Form  BDC_INSERT
    FORM BDC_INSERT  USING FP_TCODE TYPE SYTCODE
                           FP_IT_BDCDATA LIKE IT_BDCDATA.
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE     = FP_TCODE
        TABLES
          DYNPROTAB = FP_IT_BDCDATA.
      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.                    " BDC_INSERT
    *&      Form  CLOSE_SESSION
    FORM CLOSE_SESSION .
      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.                    " CLOSE_SESSION

  • Error Handling in BDC....?

    Hi Gurus,
    I have scenario here where in I have written a BDC program for transaction FV50L to park an FI document and then later made it is a function module.In this function module one of the TABLES parameter is BAPIRET2 to return error messages to the calling program..
    Actually this FM is RFC enabled so that it can be called from non sap system...
    Now i am not sure how to transfer the error messages from the BDC program to this BAPIRET2 table...
    Can any of u gurus provide me detail insight into this how it can be done....code samples will be helpful as i am still in a learning phase of ABAP...
    Points will be awarded.
    Cheers: Jim

    hi Jimmy..
    You can do this in case of Call transaction method only..
    Sample code:
    Using BDCMSGCOLL Structure we have to declare an itab.
    DATA : IT_MSG LIKE TABLE OF BDCMSGCOLL .
    DATA : V_MSG TYPE STRING . 
    Then We can catch the messages using:
    CALL TRANSACTION 'MK01'
    USING IT_BDCDATA
    MODE 'N'
    MESSAGES INTO IT_MSG.  "stores the messages
    IF sy-subrc ne 0.
    LOOP AT IT_MSG INTO WA_MSG .
    **WHERE MSGTYP = 'E' OR MSGTYP = 'A'. "if you want only error messages
    CALL FUNCTION 'FORMAT_MESSAGE'  "To get the Message text into V_MSG.
    IT_BAPIRET2-MSGTYP = IT_MSG-MSGTYP.
    IT_BAPIRET2-MSGID = IT_MSG-MSGTYP.
    IT_BAPIRET2-MESSAGE = V_MSG.
    APPEND IT_BAPIRET2.
    CLEAR IT_BAPIRET2.
    ENDLOOP.
    REWARD IF HELPFUL.

  • About bdc using session method

    how to update mm thru mk01. please provide the source code with a flat file to be updated.
    it's urgent.

    Well, you can go do the following steps:
    1. Go to SHDB, create a new recording session for the t-code mk01.
    2. Go though the t-code and create an entry and complete the transaction.
    3. Once that's done, it will record everthing, save and transfer it to a program.
    4. Go to the program in change mode, upload the flat file into a internal table using FM 'upload' or 'gui_upload'.
    5. Use the internal table to populate further interies into the tcode.
    Please go through the following link to understand the process better:
    http://www.sap-img.com/abap/learning-bdc-programming.htm
    Please go through the following code also:
    report ZABC_BDC
           no standard page heading line-size 255.
    include bdcrecx1.
    *parameters: dataset(132) lower case.
       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: MAKTX
            MAKTX_005(040),
    data element: MEINS
            MEINS_006(003),
          end of record.
    End generated data section ***
    DATA : ITAB LIKE TABLE OF RECORD WITH HEADER LINE.
    start-of-selection.
    CALL FUNCTION 'UPLOAD'
    EXPORTING
      CODEPAGE                      = ' '
       FILENAME                      = 'C:\Documents and Settings\sa01.indelgpttrg\Desktop'
       FILETYPE                      = 'DAT'
      ITEM                          = ' '
      FILEMASK_MASK                 = ' '
      FILEMASK_TEXT                 = ' '
      FILETYPE_NO_CHANGE            = ' '
      FILEMASK_ALL                  = ' '
      FILETYPE_NO_SHOW              = ' '
      LINE_EXIT                     = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      SILENT                        = 'S'
    IMPORTING
      FILESIZE                      =
      CANCEL                        =
      ACT_FILENAME                  =
      ACT_FILETYPE                  =
      TABLES
        DATA_TAB                      = ITAB
    EXCEPTIONS
      CONVERSION_ERROR              = 1
      INVALID_TABLE_WIDTH           = 2
      INVALID_TYPE                  = 3
      NO_BATCH                      = 4
      UNKNOWN_ERROR                 = 5
      GUI_REFUSE_FILETRANSFER       = 6
      OTHERS                        = 7
    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.
    *do.
    LOOP AT ITAB.
    if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MTART'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=AUSW'.
    perform bdc_field       using 'RMMG1-MATNR'
                                  ITAB-MATNR_001.
    perform bdc_field       using 'RMMG1-MBRSH'
                                  ITAB-MBRSH_002.
    perform bdc_field       using 'RMMG1-MTART'
                                  ITAB-MTART_003.
    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)'
                                  ITAB-KZSEL_01_004.
    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'
                                  ITAB-MAKTX_005.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-MEINS'.
    perform bdc_field       using 'MARA-MEINS'
                                  ITAB-MEINS_006.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    perform bdc_transaction using 'MM01'.
    *enddo.
    ENDLOOP.
    perform close_group.
    *perform close_dataset using dataset.
    <b>Please reward the helpful entries.</b>
    Regards,
    Raman.

  • Displaying messages after BDC execution

    Dear All,
    I am running a BDC to change the pricing of the return document in transaction VA02. The BDC is getting executed after the execution of one report which is diaplying some records in the output. The output values of the report are : Check Box, Sales Document No & Billing Document No.
    After the BDC is executed for the selected records, I am getting a screen which displayes me for each record if that has been executed successfully or is there any error while executing BDC.
    Now, I want that after the BDC has been executed, a list should be displayed which just shows about the Sales Document No which has been processed successfully by the BDC and another list which displays about the Sales Document No which are not processed successfully.
    Kindly guide me on how I can proceed on this.
    Waiting for your reply.
    Warm Regards,
    N.Jain

    hi Nishu..
    Use the BDCMSGCOLL structure to capture the Messages:
    Using BDCMSGCOLL Structure we have to declare an itab.
    DATA : IT_MSG LIKE TABLE OF BDCMSGCOLL .
    Then We can catch the messages using:
    CALL TRANSACTION 'MK01'
    USING IT_BDCDATA
    MODE 'N'
    MESSAGES INTO IT_MSG.
    IF sy-subrc ne 0.
    LOOP AT IT_MSG INTO WA_MSG
    WHERE MSGTYP = 'E' OR MSGTYP = 'A'..
      <<process Error messages>> 
    ENDLOOP.
    Else.
    LOOP AT IT_MSG INTO WA_MSG
    WHERE MSGTYP = 'S'
      <<process Success messages>> 
    WRITE:/ 'Doc No', WA_MSG-MSGV1.
    ENDLOOP.
    Endif.
    <b>reward if Helpful.</b>

  • BDC: Diffrence between Format_message and Write_message

    hi abapers can u please explain format_message and write_message.
    if i use call transaction syntax like
    call transaction 'mk01' using bdctab mode 'N' update 's' messages into bdc_msg.
    shall i take format_message or write_message and wht parametrs we should pass in that.
    if i put mode 'E' error screen mode wht should i do.
    please guide me.

    I understand that u r trying to collect errors from call transaction. u dont actually require BDCMSGCOLL to collect errors . Just FORMAT_MESSAGE will give u the error text.
    Follow the code below.
    call transaction 'mk01' using bdctab mode 'N' update 's' .
    If sy-subrc ne 0 . " Incase of error on BDC.
    data : lv_msgtext(250).
    clear lv_msgtext.
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
       ID              = SY-MSGID
       LANG            = sy-langu
       NO              = SY-MSGNO
       V1              = SY-MSGV1
       V2              = SY-MSGV2
       V3              = SY-MSGV3
       V4              = SY-MSGV4
    IMPORTING
       MSG             = lv_msgtext
    EXCEPTIONS
       NOT_FOUND       = 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.
    Now this variable lv_msgtxt will hold the error text for that particular run. just
    write code below to move this error text to error internal table .
    ENDIF.
    hope this will help. Reward points if it helps.
    regards,
    Barath.

  • Canwe create new vendors and modify vendor data (Transaction: MK01, MK02).

    Hi ABAPER's,
       This is Sekhar.  I have a idea can we creat and modify vendor data using transactions MK01, MK02 by using BDC.
    Kindly send me an option.
    waiting for ur responce.
    bey

    Hi,
    Using MK01 and MK02, you can create and change vendors only for the general and purchase org view. You wont be able to create vendors in company code view. If this suits your requriement you can go ahead with MK01 and MK02 . If you have to create even for company code view, you can use the generic transactions XK01 and XK02
    Vikranth

  • Error while running a BDC for the Transaction F-02

    Hi,
           I'm getting an error <b><i>"Parking not possible during Batch Input"</i></b> while running a BDC for the transaction F-02.
           When i click on the error message it displays the message [b<i>]"In Customizing, you can control whether an error message is issued."</b></i>
            How to solve this issue?.
            Waiting for ur replies.........
    Regards
    N.Senthil

    Hi,
    When you are doing the recording in SHDB, and in the same screen where the TCODE to be recorded is given, there are options that you can choose called "Recording Parameters"...Select the checkbox which says "Not a Batch Input Session", this will set the sy-binpt variable to " "(in a recording by default it is "X")...and you will not get this error...
    Also make sure while writing the BDC program to make use of the "bdc options" parameter which has this property to switch of sy-binpt...
        Refer below theard for sample bdc code for f-02.
    https://forums.sdn.sap.com/click.jspa?searchID=5126766&messageID=1538409
    Regards

  • Unable to update the serial number through bdc in Sales Order

    Hi experts,
    I written the inboud FM for to update the 3rd party items serial number to the sales orders through BDC Call transaction Method.
    Here i am facing a problem when i have the 19 item Quan ,it is updating correct through idoc , when ever there is moe than 19 and at that if any serial number repeated for that if i am changing at that time it is loosing the control of the BDC and giving the control to the salesorder screen.
    how can i handle that control again has to come to BDC prgrm......
    Thnks,
    Regards,
    Bharani

    Hi,
    Can you please let me know the segment in ORDERS05 Idoc to process the Payment card information and if the standard Function Module can handle the creation of a Sales Order with data for Payment Card.
    We have a requirement to map the Tokenized Number of the Credit Card send from a store front end to ECC mapping via SAP-PI.
    Thanks in Advance,

  • MULTIPLE ITEM PROBLEM IN VL31N BDC

    hI FRIENDS ,
        I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
    CODE IS AS FOLLOWS:.........
    FUNCTION y_synie_bdcinbdly.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
    *"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
    *"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
    *"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
    *"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
    *"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
    *"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
    *"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
    *"     VALUE(EXTNID) LIKE  MAKT-MAKTG
    *"     VALUE(VENDORNO) LIKE  LFA1-LIFNR
    *"     VALUE(PONUMBER) LIKE  EKKO-EBELN
    *"     VALUE(ITEMNUMBER) LIKE  LIPS-VGPOS
    *"     VALUE(MATERIAL) LIKE  MAKT-MAKTG
    *"     VALUE(DLYQTY) LIKE  LIPS-LFIMG
    *"     VALUE(BTCHNO) LIKE  LIPS-CHARG
    *"     VALUE(POSLR) LIKE  EKES-EBELP OPTIONAL
    *"  EXPORTING
    *"     VALUE(SUBRC) LIKE  SYST-SUBRC
    *"     VALUE(INDELYNO) LIKE  SY-MSGV2
    *"     VALUE(MSG1) LIKE  SY-MSGV1
    *"     VALUE(MSG2) LIKE  SY-MSGV2
    *"     VALUE(MSG3) LIKE  SY-MSGV3
    *"     VALUE(MSG4) LIKE  SY-MSGV4
    *"  TABLES
    *"      MESSTAB STRUCTURE  BDCMSGCOLL
    *"      ERRTAB STRUCTURE  YSYNERRMSGS
    *"      INDLYTAB STRUCTURE  YSYN_QTYTAB
    Updated by ANAND SYNISE 19.1.2007
      DATA: BEGIN OF bdctab OCCURS 0.
              INCLUDE STRUCTURE bdcdata.
      DATA: END OF bdctab.
      DATA: datenow(10) TYPE c,
            fldvar(30)  TYPE c,
            fldno       TYPE i,
            flditoc(6)  TYPE c,
            qty(13)     TYPE c.
      DATA maxposnr LIKE lips-posnr.
      DATA testposnr TYPE posnr.
      DATA itemnoint TYPE i.
      CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
      CLEAR bdctab.
      REFRESH bdctab.
      PERFORM open_group      USING group user keep holddate ctu.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '4007'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-VERUR_LA'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-LIFNR'.
           bdctab-fval = vendorno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LV50C-BSTNR'.
           bdctab-fval = ponumber.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-VERUR_LA'.
           bdctab-fval = extnid.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=MKAL_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIKP-BLDAT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POPO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '0111'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-PO_MATNR'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = 'WEIT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-PO_MATNR'.
           bdctab-fval = material.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POLO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
    *ADDED BY ANAND ON 22-01-2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  ITEMNUMBER .     "ITEMNUMBER = LIPS-VGPOS
           APPEND bdctab.
    ************ENDED***********************
    ADDED BY MILIND 19.01.2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  poslr .
           APPEND bdctab.
    *    ENDED * *
       CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
           bdctab-fval = ''.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-CHARG(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
          QTY = INDLYTAB-DLYQTY.
            qty = dlyqty.
           bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
           bdctab-fval = QTY.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIPS-CHARG(01)'.
    *     BDCTAB-FVAL = INDLYTAB-BTCHNO.
           bdctab-fval = btchno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=SICH_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-MATNR(02)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
      CALL TRANSACTION 'VL31N' USING bdctab MODE 'N'  MESSAGES INTO messtab.
      subrc = sy-subrc.
      PERFORM close_group USING     ctu.
      CLEAR bdctab.
      REFRESH bdctab.
      IF sy-subrc EQ 0.
        indelyno = sy-msgv2.
      ENDIF.
      LOOP AT messtab.
        MOVE: messtab-msgid TO errtab-msgid,
              messtab-msgnr TO errtab-msgnr,
              messtab-msgv1 TO errtab-msg1,
              messtab-msgv2 TO errtab-msg2,
              messtab-msgv3 TO errtab-msg3,
              messtab-msgv4 TO errtab-msg4.
        APPEND ERRtab.
      ENDLOOP.
      LOOP AT errtab.
        SELECT SINGLE text FROM t100
          INTO errtab-errmsg
          WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
          AND sprsl EQ sy-langu.
        MODIFY errtab.
      ENDLOOP.
    ENDFUNCTION.

    Hi,
    Check this code:
    REPORT Z_CUSTOMER_UPLOAD .
                  D A T A         D E C L A R A T I O N S                *
    DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_CUSTOMER.
    DATA:BEGIN OF IT_success OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_success.
    DATA:BEGIN OF IT_error OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_error.
    DATA: L_INDEX TYPE SY-TABIX.
    DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
    IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
    ERROR MESSAGE TABLE
    DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : C_S TYPE C VALUE 'S',
            C_E TYPE C VALUE 'E'.
    *DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
         IT_ERROR LIKE IT_CUSTOMER  OCCURS 0.
    DATA : V_RECTOT TYPE I,
            V_RECERR TYPE I,
            V_RECSUC TYPE I.
                  S E L E C T I O N  -  S C R E E N                      *
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER        : P_FILE LIKE RLGRAP-FILENAME .
    SELECTION-SCREEN : END OF BLOCK B1.
               A T  S E L E C T I O N  -  S C R E E N                    *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    to get F4 help for p_file
      PERFORM F4_FILENAME USING P_FILE.
                S T A R T   O F   S E L E C T I O N                      *
    START-OF-SELECTION.
    Uploading data from flat file into it_tab
      PERFORM BDC_UPLOAD USING P_FILE.
      PERFORM PROCESS_DATA.
      PERFORM POPULATE_BDC.
                E N D  O F   S E L E C T I O N                           *
    *END-OF-SELECTION.
    PERFORM DISPLAY_REPORT.
    *&      Form  F4_FILENAME
          text
         -->P_P_FILE  text
    FORM F4_FILENAME USING    P_P_FILE.
    DATA:L_FILE TYPE IBIPPARMS-PATH.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME        = SYST-CPROG
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
    IMPORTING
       FILE_NAME           = L_FILE .
       P_P_FILE = L_FILE.
    ENDFORM.                    " F4_FILENAME
    *&      Form  BDC_UPLOAD
          text
         -->P_P_FILE  text
    FORM BDC_UPLOAD USING    P_P_FILE.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                      = P_P_FILE
        I_BEGIN_COL                   = 1
        I_BEGIN_ROW                   = 1
        I_END_COL                     = 8
        I_END_ROW                     = 1000
      TABLES
        INTERN                        = IT_DATA
    EXCEPTIONS
       INCONSISTENT_PARAMETERS       = 1
       UPLOAD_OLE                    = 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.                    " BDC_UPLOAD
    *&      Form  PROCESS_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM PROCESS_DATA.
    SORT IT_DATA BY ROW COL.
      LOOP AT IT_DATA.
    CASE IT_DATA-COL.
    WHEN 1.
    IT_CUSTOMER-KUNNR   = IT_DATA-VALUE.
    WHEN 2.
    IT_CUSTOMER-VKORG   = IT_DATA-VALUE.
    WHEN 3.
    IT_CUSTOMER-VTWEG   = IT_DATA-VALUE.
    WHEN 4.
    IT_CUSTOMER-MATNR   = IT_DATA-VALUE.
    WHEN 5.
    IT_CUSTOMER-KDMAT   = IT_DATA-VALUE.
    WHEN 6.
    IT_CUSTOMER-MEGRU   = IT_DATA-VALUE.
    WHEN 7.
    IT_CUSTOMER-LPRIO   = IT_DATA-VALUE.
    WHEN 8.
    IT_CUSTOMER-ANTLF   = IT_DATA-VALUE.
    APPEND IT_CUSTOMER.
        ENDCASE.
      ENDLOOP.
    ENDFORM.                    " PROCESS_DATA
    *&      Form  POPULATE_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM POPULATE_BDC.
    DATA:L_COUNTER TYPE N,
             L_STRING TYPE STRING.
    LOOP AT IT_CUSTOMER.
    AT NEW KUNNR.
    CLEAR L_COUNTER.
          L_INDEX = SY-TABIX.
          READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_dynpro      using 'SAPMV10A' '0100'.
    perform bdc_field       using 'MV10A-KUNNR'
                                  IT_CUSTOMER-KUNNR.
    perform bdc_field       using 'MV10A-VKORG'
                                  IT_CUSTOMER-VKORG.
    perform bdc_field       using 'MV10A-VTWEG'
                                  IT_CUSTOMER-VTWEG.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    ENDAT.
    L_COUNTER = L_COUNTER + 1.
        CLEAR L_STRING.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                            IT_CUSTOMER-MATNR.
    CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using     L_STRING
                                     IT_CUSTOMER-KDMAT.
    CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using   L_STRING
                                    IT_CUSTOMER-MEGRU.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *-- For Page down in Call Transaction Mode
        IF L_COUNTER = 14.
          CLEAR L_COUNTER.
          PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=P+'.
        ENDIF.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                              IT_CUSTOMER-SELKZ.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SELE'.
    perform bdc_dynpro      using 'SAPMV10A' '0300'.
    perform bdc_field       using 'MV10A-KDMAT'
                                  IT_CUSTOMER-KDMAT.
    perform bdc_field       using 'MV10A-LPRIO'
                                  IT_CUSTOMER-LPRIO.
    perform bdc_field       using 'MV10A-ANTLF'
                                  IT_CUSTOMER-ANTLF.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '/EBACK'.
    at end of kunnr.
    READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
          MESSAGES INTO IT_MESSAGES.
          CLEAR IT_BDC.
          REFRESH IT_BDC.
    ENDAT.
      IF NOT IT_MESSAGES[] IS INITIAL.
        PERFORM FORMAT_MESSAGE.
      ENDIF.
    ENDLOOP.
    ENDFORM.                    " POPULATE_BDC
    *&      Form  bdc_dynpro
          text
         -->P_0273   text
         -->P_0274   text
    FORM bdc_dynpro USING    VALUE(P_0273)
                             VALUE(P_0274).
    IT_BDC-PROGRAM = P_0273.
    IT_BDC-DYNPRO = P_0274.
    IT_BDC-DYNBEGIN = 'X'.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          text
         -->P_0278   text
         -->P_RECORD_KUNNR_001  text
    FORM bdc_field USING    VALUE(P_0278)
                           VALUE(P_0279).
    IT_BDC-FNAM = P_0278.
      IT_BDC-FVAL = P_0279.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_field
    *&      Form  FORMAT_MESSAGE
          text
    -->  p1        text
    <--  p2        text
    FORM FORMAT_MESSAGE.
    DATA: L_MSG(100).
      LOOP AT IT_MESSAGES.
      READ TABLE IT_CUSTOMER INDEX L_INDEX.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  ID        = IT_MESSAGES-MSGID
                  LANG      = SY-LANGU
                  NO        = IT_MESSAGES-MSGNR
                  V1        = IT_MESSAGES-MSGV1
                  V2        = IT_MESSAGES-MSGV2
                  V3        = IT_MESSAGES-MSGV3
                  V4        = IT_MESSAGES-MSGV4
             IMPORTING
                  MSG       = L_MSG
             EXCEPTIONS
                  NOT_FOUND = 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.
        write:/ l_msg.
      ENDLOOP.
    ENDFORM.                    " FORMAT_MESSAGE
    reward if helpful,
    keerthi

  • Creation of PGI using BDC for tc VL02N is not happening..

    Hi All,
    i need to do Post Goods Issue (PGI) thro' BDC and after that i need to update the flag in Ztable.
    its giving Success message and updating the database also.
    but its not issuing the PGI.and further i want to create billing doc.So its compulsory to me to post PGI.
    if i look into the BDCMSGCOLL structure its giving "NO BATCH INPUT DATA FOR SCREEN"? why this is happening?
    please let me know immediately....
    REFRESH: tt_bdcmsgcoll .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = wa_created-document_numb
        IMPORTING
          output = wa_created-document_numb.
      REFRESH tt_bdcdata.
      PERFORM bdc_dynpro      USING text-001 text-002.
      PERFORM bdc_field       USING text-008
                                   text-014.
      PERFORM bdc_field       USING text-009
                                    text-011.
      PERFORM bdc_field       USING text-014
                                    wa_created-document_numb.
      PERFORM bdc_dynpro      USING text-001 text-003.
      PERFORM bdc_field       USING text-009
                                    text-036.
      PERFORM bdc_field       USING text-025
                                    sy-datum.
      PERFORM bdc_field       USING text-008
                                    text-035.
      PERFORM bdc_field       USING text-037
                                    sy-datum.
      PERFORM bdc_field       USING text-038
                                    text-029.
      PERFORM bdc_field       USING text-016
                                    c_x.
      CALL TRANSACTION c_t_del USING tt_bdcdata
                                    MODE c_m
                                    UPDATE c_u
                                    MESSAGES INTO tt_bdcmsgcoll .
      SORT tt_bdcmsgcoll BY msgtyp.
      READ TABLE tt_bdcmsgcoll INTO wa_bdcmsgcoll WITH KEY msgtyp = c_e.
      IF sy-subrc EQ 0.
        LOOP AT tt_bdcmsgcoll INTO wa_bdcmsgcoll WHERE msgtyp = c_e.
          CALL FUNCTION 'FORMAT_MESSAGE'
            EXPORTING
              id        = wa_bdcmsgcoll-msgid
              lang      = text-010
              no        = wa_bdcmsgcoll-msgnr
              v1        = wa_bdcmsgcoll-msgv1
              v2        = wa_bdcmsgcoll-msgv2
              v3        = wa_bdcmsgcoll-msgv3
              v4        = wa_bdcmsgcoll-msgv4
            IMPORTING
              msg       = v_msg
            EXCEPTIONS
              not_found = 1
              OTHERS    = 2.
          IF sy-subrc <> 0.
          ENDIF.
          WRITE :/ v_msg.
        ENDLOOP.
      ELSE.
        MOVE : c_x TO wa_worklist-pgi_flag.
        READ TABLE tt_epit INTO wa_epit WITH KEY epi_id = wa_worklist-epi_id epi_sr = wa_worklist-epi_sr.
        IF sy-subrc EQ  0.
          MODIFY tt_epit FROM wa_worklist TRANSPORTING pgi_flag WHERE epi_id = wa_worklist-epi_id AND epi_sr = wa_worklist-epi_sr.
        ELSE.
          APPEND wa_worklist TO tt_epit.
        ENDIF.
         wa_epit-pgi_flag = c_x.
         MODIFY   tt_epit FROM wa_epit TRANSPORTING pgi_flag WHERE epi_id = wa_worklist-epi_id AND del_no = wa_created-document_numb .
         UPDATE zsd_dt_epit SET pgi_flag = 'X' WHERE epi_id = wa_worklist-epi_id AND del_no = wa_created-document_numb .
         IF  sy-subrc EQ 0.
         ENDIF.
      ENDIF.

    HI,
    Please refer this
    To perform Post goods issue
        PERFORM OPEN_GROUP.
        PERFORM BDC_DYNPRO      USING 'SAPMV50A' '4004'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LIKP-VBELN'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=WABU_T'.
        PERFORM BDC_FIELD       USING 'LIKP-VBELN' DELIVERY.
                                 '84000064'.
        PERFORM BDC_TRANSACTION USING 'VL02N'.
        PERFORM CLOSE_GROUP.
        CLEAR : DELIVERY,
                T_BSITEM,
                T_BSICTL.
      ENDIF.
    ENDFORM.                    " DELIVERY

  • Problem in creation of BDC for transaction phap_create

    Hello Friends,
    I am trying to create BDC for PHAP_CREATE.
    When you run a transaction a pop up window appears to select the template id.
    And in BDC it is selected by cursor position. So once selected, the value of template id cannot be changed.
    I want this as a parameter.So that each time I run a BDC I will be able to create different types of Appraisal documents i.e with different template ids.
    How to go about it???
    Regards,
    Bhushan

    Hi,
    For selecting the id, while doing recording,
    record with
    CTRL + F ( Where u can give ur id) and proceed further.

Maybe you are looking for

  • Reg: Error in Mail sending through background job in SCOT

    Hello experts, I am trying to schedule a background job through SCOT so as to send the mails present in SOST. The job is running but it is giving error as "Invalid status  for recipient" in SOST. But when I am sending it directly from SOST it is deli

  • Fix deleted project from imovie

    i accidentally deleted a project from imovie, however the thumbnail still shows on my hard drive. how can i restore the file? it even shows screenshot preview of project and lists file size but i am unable to open the file in imovie or quicktime. hel

  • Cannot export result to local file in EBP

    HI Experts,           I have created a report for displaying self approved shopping carts. When I run this report in SAPGUI I am able to trasnport the result of the report to local file and also send the result through mail. But when I run the same r

  • Question Mark in border of window

    When I open a new window in Finder (on my G4) there is a "?" just to the right of the Actions icon. When I click on it the Connect to File Server (other computer-G3) window opens and when I enter my password a message screen opens that says "The item

  • TS1538 Is there a workarround for iTunes to run on Windows XP 64 Bit SP2?

    I have got a new PC with Windows XP 64 Bit SP2 operating system. I could install the 64 Bit version of iTunes (which is actually meant for Windows Vista 64 Bit or Windows 7 64 Bit) Version: 10.6.1 Download ID: DL1427 File Size: 73.23 MB with only one