BDC OK codes

HI frds
   " = <b>STTE "</b>  IS THE OK CODE WHEN WE SET STATUS AS TECO
   " <b>= STAB</b> " IS WHEN WE SET AS CLSD.
AM I GOIN RIT OR THERE IS ANY OTHER CONCEPT..
IF I AM GOIN RIGHT THEN WHATS THE OK CODE FOR
Finally billed <b>FNBL.</b>

Hi,
For which Document are you setting the status ? is it for any Maintenance Order or for any Project/WBS Element ? Whatever it is if you want to know the OK Codes then go to respective PF-Status through menu by selecting System->Status and double clicking on its GUI. It will take you to the PF-Status (i.e., user interface). there you can find all the OK Codes.
however, FNBL is nothing but Status. it is not OK Code.
thanks,
sksingh

Similar Messages

  • BDC Ok-Code for Double Click

    Hi ,
    Could anyone let me know the BDC OK Code for Double click.
    I need to select a row by double clicking it in my recording but not able to capture the code for it.
    Please do the needful.
    Thanks in Advance,
    Sowmmya B

    Hi sowmmya,
    1. If the row you are talking about is
       ALV Grid OO concepts,
       then i think there is a problem.
       It won't work with BDC as u are trying.
    2. Well, for getting the code,
       before double clicking go in debug mode /H
       and then double click.
    3. Now in deubbing mode,
      see the value of sy-ucomm.
    regards,
    amit m.

  • BDC OK CODE FOR ENTER NOT RECORDING

    I m creating a BDC Programme for uploading OLD PO date from excel to SAP System.
    All PO's are Service PO.
    PO's date and Delivery Date is in back date.
    My programme working fine.
    But i have to press enter manually due to   PO  Date = back date and Delivery date is also back date.
    SHDB unable to record this event.
    How to record this event.
    Is there any way to disable system messages during BDC Programme.
    When I press enter two times my programme runs very well.
    Kindly help me.
    Its very much urgent.
    Code is give below.
    REPORT zbdcme21n
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    DATA : l_file TYPE rlgrap-filename.
    DATA:   e_group_opened.
    PARAMETERS session RADIOBUTTON GROUP ctu.  "create session
    *DATA : session RADIOBUTTON GROUP ctu.
    DATA : group(12).                      "group name of session
    group = 'BDC'.
    *PARAMETERS: user(12) DEFAULT sy-uname.     "user for session in batch
    DATA : user(12).
    user = sy-uname.
    *DATA :  keep AS CHECKBOX.       "' ' = delete session if finished
    DATA :  keep TYPE checkbox.
    keep = 'X'.
    *PARAMETERS: holddate LIKE sy-datum. "'X' = keep   session if finished
    DATA : holddate LIKE sy-datum.
    holddate  = sy-datum.
    PARAMETERS ctu RADIOBUTTON GROUP  ctu.     "call transaction
    DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF i_tab OCCURS 0, "excel data stored in this file.
    row TYPE alsmex_tabline-row,
    col TYPE alsmex_tabline-col,
    value TYPE alsmex_tabline-value,
    END OF i_tab.
    DATA : BEGIN OF wa_line1 OCCURS 0, "excel data stored in this file.
    row TYPE alsmex_tabline-row,
    col TYPE alsmex_tabline-col,
    value TYPE alsmex_tabline-value,
    srno TYPE i,
    END OF wa_line1.
    DATA : wa_line2 LIKE wa_line1 OCCURS 0 WITH HEADER LINE .
    DATA : wa_hdr1  LIKE wa_line1 OCCURS 0 WITH HEADER LINE .
    DATA : wa_hdr  LIKE i_tab OCCURS 0 WITH HEADER LINE .
    DATA : wa_line LIKE i_tab OCCURS 0 WITH HEADER LINE .
    DATA : w_cnt TYPE i . "store total no of  pos
    DATA : w_hdr_counter VALUE 1. "for header line count
    DATA : w_line_counter VALUE 1. "for Line Item Counter.
    w_cnt = 0.
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
    PARAMETER: dataset TYPE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN: END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR dataset.
      PERFORM upload_file.
    *include bdcrecx1.
    START-OF-SELECTION.
      PERFORM process_itab.
    *include bdcrecx1.
    START-OF-SELECTION.
      PERFORM open_group.
    **********************start for header
      w_hdr_counter = 1.
      WHILE w_hdr_counter <= w_cnt.
        PERFORM bdc_dynpro      USING 'SAPMM06E' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RM06E-BEDAT'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        READ TABLE wa_hdr1 WITH KEY col = 2 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'EKKO-LIFNR'
                                      wa_hdr1-value.            "'800000'.
        READ TABLE wa_hdr1 WITH KEY col = 3 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-BSART'
                                      wa_hdr1-value. "'ZS'.
        READ TABLE wa_hdr1 WITH KEY col = 4 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-BEDAT'
                                      wa_hdr1-value. " '14.01.2008'.
       PERFORM bdc_field       USING 'RM06E-LPEIN'
                                     'T'.
        READ TABLE wa_hdr1 WITH KEY col = 13 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-EEIND'
                                      wa_hdr1-value.   "'14.01.2008'. "Delivery Date
        PERFORM bdc_field       USING 'RM06E-LPEIN'
                                      'T'.
        READ TABLE wa_hdr1 WITH KEY col = 6 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'EKKO-EKORG'
                                      wa_hdr1-value. "'serv'.
        READ TABLE wa_hdr1 WITH KEY col = 7 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'EKKO-EKGRP'
                                      wa_hdr1-value. "'dce'. Purchase Group
        READ TABLE wa_hdr1 WITH KEY col = 8 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-EPSTP'
                                      wa_hdr1-value. "'d'. Item Category
        READ TABLE wa_hdr1 WITH KEY col = 9 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-KNTTP'
                                      wa_hdr1-value. "'p'. Account Asign Category
        READ TABLE wa_hdr1 WITH KEY col = 10 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-WERKS'
                                      wa_hdr1-value. "'1001'.Plant
        READ TABLE wa_hdr1 WITH KEY col = 11 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-LGORT'
                                      wa_hdr1-value. " '1101'. Store Location
        READ TABLE wa_hdr1 WITH KEY col = 12 srno = w_hdr_counter.
        PERFORM bdc_field       USING 'RM06E-MATKL'
                                      wa_hdr1-value. "'c003'. Material Group
        PERFORM bdc_dynpro      USING 'SAPLMLSP' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
    ********************end of Header Data*******************
    data i type n value 1.
    data bfield type string.
        LOOP AT wa_line1 WHERE col = 1 AND srno = wa_hdr1-srno.
        READ TABLE wa_line2 WITH KEY COL = 14 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING 'RM11P-HEADTEXT'
                                        wa_line2-value. " 'Earthwork text'.
        concatenate 'ESLL-SRVPOS(' i ')' into bfield.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                       bfield.  " 'ESLL-SRVPOS(01)'. "increase counter
         PERFORM bdc_field       USING 'RM11P-NEW_ROW'
                                       '10'.
          READ TABLE wa_line2 WITH KEY COL = 15 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING  bfield "'ESLL-SRVPOS(01)'
                                        wa_line2-value.  "'5000000000'.
        concatenate 'ESLL-MENGE(' i ')' into bfield.
          READ TABLE wa_line2 WITH KEY COL = 16 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING   bfield "'ESLL-MENGE(01)' "qty
                                        wa_line2-value. "'15'.
          concatenate 'ESLL-MEINS(' i ')' into bfield.
          READ TABLE wa_line2 WITH KEY COL = 17 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING bfield "'ESLL-MEINS(01)'
                                        wa_line2-value.  "'ft3'.
          concatenate 'ESLL-TBTWR(' i ')' into bfield.
          READ TABLE wa_line2 WITH KEY COL = 18 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING   bfield  " 'ESLL-TBTWR(01)'
                                        wa_line2-value.  "'150'.
          PERFORM bdc_field       USING 'BDC_OKCODE' "Manually added
                                        '/00'.
          PERFORM bdc_dynpro      USING 'SAPLMLSK' '0200'.
          concatenate 'ESKN-PS_PSP_PNR' i ')' into bfield.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'ESKN-PS_PSP_PNR(01)'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'VRTKZ1'
                                        'X'.
          concatenate 'ESKN-SAKTO(' i ')' into bfield.
          READ TABLE wa_line2 WITH KEY COL = 19 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING 'ESKN-SAKTO(01)' "GL Account No.
                                        wa_line2-value.  " '6010010'.
          concatenate 'ESKN-PS_PSP_PNR(' i ')' into bfield.
          READ TABLE wa_line2 WITH KEY COL = 20 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
          PERFORM bdc_field       USING 'ESKN-PS_PSP_PNR(01)'
                                        wa_line2-value. " 'HR/KMP-KU'. "WBS Element
          PERFORM bdc_dynpro      USING 'SAPLMLSK' '0200'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'ESLL-INTROW'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=BACK'.
        PERFORM bdc_field       USING 'VRTKZ1'
                                      'X'.
        PERFORM bdc_dynpro      USING 'SAPLMLSP' '0200'.
        i = i + 1.
        ENDLOOP.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=BACK'.
       PERFORM bdc_field       USING 'VRTKZ1'
                                     'X'.
       PERFORM bdc_dynpro      USING 'SAPLMLSP' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
    *perform bdc_field       using 'RM11P-HEADTEXT'
                                 'Earthwork text'.
    *perform bdc_field       using 'BDC_CURSOR'             "Start Service Line 2
                                 'ESLL-SRVPOS(02)'.
    *perform bdc_field       using 'RM11P-NEW_ROW'
                                 '10'.
    *perform bdc_field       using 'ESLL-SRVPOS(02)'
                                 '5000000006'.
    *perform bdc_field       using 'ESLL-MENGE(02)'
                                 '10'.
    *perform bdc_field       using 'ESLL-MEINS(02)'
                                 'kmk'.
    *perform bdc_field       using 'ESLL-TBTWR(02)'
                                 '500'.
    *perform bdc_dynpro      using 'SAPLMLSK' '0200'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'ESLL-INTROW'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'VRTKZ1'
                                 'X'.
    *perform bdc_dynpro      using 'SAPLMLSK' '0200'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'ESKN-PS_PSP_PNR(01)'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'VRTKZ1'
                                 'X'.
    *perform bdc_field       using 'ESKN-SAKTO(01)'
                                 '6010010'.
    *perform bdc_field       using 'ESKN-PS_PSP_PNR(01)'
                                 'HR/KMP-KU'.
    *perform bdc_dynpro      using 'SAPLMLSK' '0200'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'ESLL-INTROW'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '=BACK'.
    *perform bdc_field       using 'VRTKZ1'
                                 'X'.
    *perform bdc_dynpro      using 'SAPLMLSP' '0200'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'RM11P-HEADTEXT'
                                 'Earthwork text'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'ESLL-KTEXT1(01)'.
    *perform bdc_field       using 'RM11P-NEW_ROW'
                                 '10'.
    *perform bdc_dynpro      using 'SAPLMLSP' '0200'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '=ESB'.
    *perform bdc_field       using 'RM11P-HEADTEXT'
                                 'Earthwork text'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'ESLL-KTEXT1(01)'.
    *perform bdc_field       using 'RM11P-NEW_ROW'
                                 '10'.
    *perform bdc_dynpro      using 'SAPMM06E' '0120'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'RM06E-EBELP'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '=MALL'.
    *perform bdc_field       using 'RM06E-EBELP'
                                 '10'.
        PERFORM bdc_dynpro      USING 'SAPMM06E' '0120'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RM06E-EBELP'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=KOPF'.
       PERFORM bdc_field       USING 'RM06E-EBELP'
                                     '10'.
        PERFORM bdc_dynpro      USING 'SAPMM06E' '0101'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EKKO-EKGRP'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=TXK'.
    *perform bdc_field       using 'EKKO-EKGRP'
                                 'DCE'.
    *perform bdc_field       using 'EKKO-PINCR'
                                 '10'.
    *perform bdc_field       using 'EKKO-UPINC'
                                 '1'.
    *perform bdc_field       using 'EKKO-WAERS'
                                 'INR'.
    *perform bdc_field       using 'EKKO-WKURS'
                                 ' 1.00000'.
        PERFORM bdc_dynpro      USING 'SAPMM06E' '0103'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RM06E-LTEX1(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=BU'.
        PERFORM bdc_field       USING 'RM06E-LTEX1(01)'
                                      'Old PO no.'.
    *perform bdc_transaction using 'ME21'.
        w_hdr_counter = w_hdr_counter + 1.
      ENDWHILE.
      CALL TRANSACTION 'ME21' USING bdcdata  MODE 'A'.
      PERFORM close_group.
    ***************forms************
    FORM upload_file.
      CALL FUNCTION 'WS_FILENAME_GET'
      EXPORTING
    *def_filename = ' '
    *def_path = ' '
    *mask = ' '
      mode = '0'
      title = 'Choose the Appropriate excel sheet for service PO upload'
      IMPORTING
      filename = dataset
    *EXCEPTIONS
    *inv_winsys = 01
    *no_batch = 02
    *selection_cancel = 03
    *selection_error = 04
      l_file = dataset.
      PERFORM read_exceldata.
    ENDFORM.                    "UPLOAD_FILE
    *&      Form  READ_EXCELDATA
          text
    FORM read_exceldata.
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
      filename = l_file
      i_begin_col = 1
      i_begin_row = 2
      i_end_col = 25
      i_end_row = 4
      TABLES
      intern = i_tab
    EXCEPTIONS
    INCONSISTENT_PARAMETERS = 1
    UPLOAD_OLE = 2
    OTHERS = 3
    ENDFORM.                    "READ_EXCELDATA
      create batchinput session                                          *
      (not for call transaction using...)                                *
    FORM open_group.
      IF session = 'X'.
        SKIP.
        WRITE: /(20) 'Create group'(i01), group.
        SKIP.
      open batchinput group
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            client   = sy-mandt
            group    = group
            user     = user
            keep     = keep
            holddate = holddate.
        WRITE: /(30) 'BDC_OPEN_GROUP'(i02),
                (12) 'returncode:'(i05),
                     sy-subrc.
      ENDIF.
    ENDFORM.                    "OPEN_GROUP
      end batchinput session                                             *
      (call transaction using...: error session)                         *
    FORM close_group.
      IF session = 'X'.
      close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
        WRITE: /(30) 'BDC_CLOSE_GROUP'(i04),
                (12) 'returncode:'(i05),
                     sy-subrc.
      ELSE.
        IF e_group_opened = 'X'.
          CALL FUNCTION 'BDC_CLOSE_GROUP'.
          WRITE: /.
          WRITE: /(30) 'Fehlermappe wurde erzeugt'(i06).
          e_group_opened = ' '.
        ENDIF.
      ENDIF.
    ENDFORM.                    "CLOSE_GROUP
    *&      Form  BDC_DYNPRO
          text
         -->PROGRAM    text
         -->DYNPRO     text
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
    ****bdc field************
    FORM bdc_field USING fnam fval.
    IF FVAL <> NODATA.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDIF.
    ENDFORM.                    "BDC_FIELD
    FORM process_itab.
      APPEND LINES OF i_tab TO wa_hdr  .
      DELETE wa_hdr WHERE col > 13 .
      APPEND LINES OF i_tab TO wa_line  .
      DELETE wa_line WHERE   col <> 1   AND col <  14 .
      DATA : w_sr TYPE i.
      w_sr = 0.
      LOOP AT wa_hdr.
        IF wa_hdr-col = 1.
          w_sr = wa_hdr-value.
        ENDIF.
        wa_hdr1-row = wa_hdr-row.
        wa_hdr1-col = wa_hdr-col.
        wa_hdr1-value = wa_hdr-value.
        wa_hdr1-srno = w_sr.
        APPEND wa_hdr1.
        w_cnt = wa_hdr-row.
      ENDLOOP.
      w_sr = 0.
      LOOP AT wa_line.
        IF wa_line-col = 1.
          w_sr = wa_line-value.
        ENDIF.
        wa_line1-row = wa_line-row.
        wa_line1-col = wa_line-col.
        wa_line1-value = wa_line-value.
        wa_line1-srno = w_sr.
        APPEND wa_line1.
      ENDLOOP.
      w_sr = 0.
      CLEAR wa_line2.
      LOOP AT wa_line1.
        wa_line2-row = wa_line1-row.
        wa_line2-col = wa_line1-col.
        wa_line2-value = wa_line1-value.
        wa_line2-srno = wa_line1-srno.
        APPEND wa_line2.
      ENDLOOP.
    ENDFORM.                    "PROCESS_ITAB
    ***************forms************

    Hi Pradeep
    I find there is a problem in your code
    When ever you use
    PERFORM bdc_field USING 'BDC_OKCODE'
    you should follow it up with
    PERFORM bdc_dynpro USING <prg name> <screen number>
    Please find code below with changes from a part of your code
    PERFORM bdc_field USING 'RM06E-MATKL'
    wa_hdr1-value. "'c003'. Material Group
    * comment this statement is not needed now.
    * PERFORM bdc_dynpro USING 'SAPLMLSP' '0200'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    READ TABLE wa_line2 WITH KEY COL = 14 SRNO = wa_hdr1-srno ROW = wa_line1-ROW.
    * Put the bdc_dynpro for the prg name and screen number (I might be wrong with prg name and
    * Screen  number
    PERFORM bdc_dynpro USING 'SAPLMLSK' '0200'.
    Reward points as this will definitely help you
    Edited by: Sriram Chandran on Mar 15, 2008 4:39 PM

  • Error in bdc programing code-pls help

    hi friends,
                I was tring to do a bdc program.But it shows me an error. MY bdc program is jus to upload a 2 fields in vendoe master table.
    That is LIFNR,NAME1 field for the new vendors.
    I worked out an execl sheet for this, and jus copied it to the text file by selecting all and  pasting.
    Even then i get an error code that BDC_open does not exits.
    MY code is this, please help me if iam wrong.
    If anyone can help to make it more understandable,I Kindly  request you to try out this program with the screen shot and mail to this id [email protected] would be very thankful for your timely help.
    report Z_PK_BDC
           no standard page heading line-size 255.
    include bdcrecx1.
    parameters: dataset(132) lower case.
    parameters: p_file like rlgrap-filename default
                    'C:\SAP TESTING\p_file.txt'.
       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 OCCURS 0,
    data element: LIF16
            LIFNR_001(016),
    data element: BUKRS
            BUKRS_002(004),
    data element: KTOKK
            KTOKK_003(004),
    data element: ANRED
            ANRED_004(015),
    data element: NAME1_GP
            NAME1_005(035),
    data element: SORTL
            SORTL_006(010),
    data element: NAME2_GP
            NAME2_007(035),
    data element: STRAS_GP
            STRAS_008(035),
    data element: ORT01_GP
            ORT01_009(035),
    data element: ORT02_GP
            ORT02_010(035),
    data element: PFORT_GP
            PFORT_011(035),
    data element: LAND1_GP
            LAND1_012(003),
    data element: SPRAS
            SPRAS_013(002),
          end of record.
    End generated data section ***
    start-of-selection.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                FILENAME                = P_FILE
                FILETYPE                = 'DAT'
           TABLES
                DATA_TAB                = record
           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.
        WRITE:/ 'SY-SUBRC:', SY-SUBRC.
      ENDIF.
    LOOP AT RECORD.
    *perform open_dataset using dataset.
    *perform open_group.
    *do.
    *read dataset dataset into record.
    *if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro      using 'SAPMF02K' '0105'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  record-LIFNR_001.
    perform bdc_field       using 'RF02K-BUKRS'
                                  record-BUKRS_002.
    perform bdc_field       using 'RF02K-KTOKK'
                                  record-KTOKK_003.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-SPRAS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=UPDA'.
    perform bdc_field       using 'LFA1-ANRED'
                                  record-ANRED_004.
    perform bdc_field       using 'LFA1-NAME1'
                                  record-NAME1_005.
    perform bdc_field       using 'LFA1-SORTL'
                                  record-SORTL_006.
    perform bdc_field       using 'LFA1-NAME2'
                                  record-NAME2_007.
    perform bdc_field       using 'LFA1-STRAS'
                                  record-STRAS_008.
    perform bdc_field       using 'LFA1-ORT01'
                                  record-ORT01_009.
    perform bdc_field       using 'LFA1-ORT02'
                                  record-ORT02_010.
    perform bdc_field       using 'LFA1-PFORT'
                                  record-PFORT_011.
    perform bdc_field       using 'LFA1-LAND1'
                                  record-LAND1_012.
    perform bdc_field       using 'LFA1-SPRAS'
                                  record-SPRAS_013.
    perform bdc_transaction using 'FK01'.
    **enddo.
    **perform close_group.
    endloop.
    **perform close_dataset using dataset.
    Thanks in Advance
    Rinky123

    Hi,
    If you are using GUI_UPLOAD in 4.7 then the file path whatever you are using currently it won't work. Replace the file path like this.
    P_FILE LIKE RLGRAP-FILENAME.
    DATA: V_FILE TYPE STRING.
    V_FILE = P_FILE.
    Now take this v_file for function module.Then only it will open the file otherwise you won't get unable to open file error message.
    I observerd that you are getting so many fields from the file to the internal table.

  • Reg BDC rec code

    hi guru's,
    i have done with the bdc recording.
    now to handle the enter code ( i.e.. in my actual target program while executing it, the pressing of enter in the transaction screen should not be there).
    What ever the default views selected in trn mm03 should be dynamically done without user interface.. Pressing of enter should also be avoided.
    here is my code snippet.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-MATNR'
                                  wa_final-matnr.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(02)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(15)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(15)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(13)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(13)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=DEF_SAVE'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'USRM1-AAUSW'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=DEF_SKIP'.
    perform bdc_field       using 'USRM1-AAUSW'
                                  'X'.
    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 'USRM1-AAUSW'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '0080'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-WERKS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=DEF_SAVE'.
    perform bdc_field       using 'RMMG1-WERKS'
                                  plant.
    perform bdc_dynpro      using 'SAPLMGMM' '0080'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-WERKS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-WERKS'
                                  'Z201'.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    perform bdc_transaction using 'MM03'.
    please help me.
    *HOW TO HANDLE THE ENTER CODE.
    WHAT CHANGES SHOULD I MAKE IN THE ABOVE CODE AND WHAT ARE THE CORRESPONDING DATA DECLARATIONS TO BE MADE.*

    See The sample code
    It consist of Item data and Header data .
    REPORT zfv11
           NO STANDARD PAGE HEADING LINE-SIZE 255.
       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  ***
    TABLES : t100.
    DATA: BEGIN OF record OCCURS 0,
    data element: KSCHA
            kschl(004),               "Condition Type
    data element: SELKZ_LIST
          selkz(001),
    data element: WERKS_D
            werks(004),               "Plant
    data element: ELIFN
            lifnr(010),               "Vendor
    data element: MATNR
            matnr(018),               "Material No.
    data element: KBETR_KOND
            kbetr(016),               "Amount
    data element: KODATAB
            datab(010),               "Condition Validity Date from
    data element: KODATBI
            datbi(010),               "Condition Validity To
    data element: MWSKZ
            mwsk1(002),
          END OF record.
    DATA : BEGIN OF it_new OCCURS 0,                    " Internal Table for Header Data
           kschl(004),
           werks(004),
           lifnr(010),
           END OF it_new.
    DATA : BEGIN OF it_item OCCURS 0,                  " Internal table for Item Data
          werks(004),
          lifnr(010),
          matnr(018),
          kbetr(016),
          datab(010),
          datbi(010),
          mwsk1(002),
          END OF it_item.
    DATA : cnt(2) TYPE n,
           fld(25) TYPE c.
    TYPE-POOLS: truxs.
    DATA: it_raw TYPE truxs_t_text_data.
    DATA : n TYPE n.
    DATA:
         BEGIN OF t_data OCCURS 0,
               data TYPE string,
         END   OF t_data.
    DATA:BEGIN OF it_mess OCCURS 0,
      msgtyp(5),
       lms(200),
       msgv1(50),
        END OF it_mess.
    DATA : p_mode    TYPE c.
    DATA:it_msgtab TYPE STANDARD TABLE OF  bdcmsgcoll WITH HEADER LINE,
       it_msgtab1 TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.
    DATA :  l_mstring(150).
    DATA : BEGIN OF bdcdata OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdcdata.
    PARAMETERS : p_file1 LIKE rlgrap-filename.
    INITIALIZATION.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
      PERFORM file_selection.
      PERFORM data_upload.
      PERFORM table_control.
      LOOP AT it_new.
        REFRESH bdcdata.
        PERFORM bdc_dynpro      USING 'SAPMV13A' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV13A-KSCHL'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RV13A-KSCHL'
                                      it_new-kschl.
        PERFORM bdc_dynpro      USING 'SAPLV14A' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV130-SELKZ(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=WEIT'.
        PERFORM bdc_dynpro      USING 'SAPMV13A' '1363'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'KONP-KBETR(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'KOMG-WERKS'
                                      it_new-werks.
        PERFORM bdc_field       USING 'KOMG-LIFNR'
                                      it_new-lifnr.
    DATA: "X(5) TYPE N,
             N(5) TYPE N.
       N = 0.
       LOOP AT it_item.
         N = N + 1.
       ENDLOOP.
       "X = 1.
       CNT = 1.
       DO N TIMES.
         IF CNT > 19.
           perform bdc_field       using 'BDC_OKCODE' 'KOMG-MATNR(01)'.
           perform bdc_field       using 'BDC_OKCODE' '=P+'.
           PERFORM bdc_dynpro      USING 'SAPMV13A' '1363'.
           CNT = 1.
         ENDIF.
        cnt = 1.
        LOOP AT it_item WHERE werks EQ it_new-werks AND lifnr EQ it_new-lifnr . "FROM x TO x.
          CONCATENATE 'KOMG-MATNR(' cnt ')' INTO fld.
          PERFORM bdc_field USING fld it_item-matnr.
          CONCATENATE 'KONP-KBETR(' cnt')' INTO fld.
          PERFORM bdc_field USING fld it_item-kbetr.
          CONCATENATE 'RV13A-DATAB(' cnt ')' INTO fld.
          PERFORM bdc_field USING fld it_item-datab.
          CONCATENATE 'RV13A-DATBI(' cnt ')' INTO fld.
          PERFORM bdc_field USING fld it_item-datbi.
          CONCATENATE 'KONP-MWSK1(' cnt ')' INTO fld.
          PERFORM bdc_field USING fld it_item-mwsk1.
          cnt = cnt + 1.
          if cnt = 20.
            perform bdc_field       using 'BDC_OKCODE' 'KOMG-MATNR(19)'.
            perform bdc_field       using 'BDC_OKCODE' '=P+'.
            PERFORM bdc_dynpro      USING 'SAPMV13A' '1363'.
            CNT = 1.
           endif.
    CLEAR it_item.
        ENDLOOP.
       ENDDO.
        PERFORM bdc_dynpro      USING 'SAPMV13A' '1363'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'KONP-MWSK1(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=SICH'.
        CALL TRANSACTION 'FV11' USING bdcdata MODE 'A'
                                            UPDATE 'S'
                                           MESSAGES  INTO it_msgtab.
        CLEAR bdcdata[].
        PERFORM error.
      ENDLOOP.
           Start new screen   -Subroutine     for screen s                                      *
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
           Insert field        -Subroutine   for field s                                         *
    FORM bdc_field USING fnam fval.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDFORM.                    "BDC_FIELD
    *&      Form  file_selection
    FORM file_selection .
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = 'P_FILE1'
        IMPORTING
          file_name     = p_file1.
    ENDFORM.                    " file_selection
    *&      Form  data_upload
    FORM data_upload .
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
       EXPORTING
        I_FIELD_SEPERATOR        =
           i_line_header            =  'X'
           i_tab_raw_data           =  it_raw
           i_filename               =  p_file1
         TABLES
           i_tab_converted_data     = record
        EXCEPTIONS
           conversion_failed        = 1
           OTHERS                   = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " data_upload
    *&      Form  error
    FORM error .
      LOOP AT it_msgtab.
        IF it_msgtab-msgtyp = 'E'.
          SELECT SINGLE * FROM t100 WHERE sprsl = it_msgtab-msgspra
                                    AND   arbgb = it_msgtab-msgid
                                    AND   msgnr = it_msgtab-msgnr.
          IF sy-subrc = 0.
            l_mstring = t100-text.
            IF l_mstring CS '&1'.
              REPLACE '&1' WITH it_msgtab-msgv1 INTO l_mstring.
              REPLACE '&2' WITH it_msgtab-msgv2 INTO l_mstring.
              REPLACE '&3' WITH it_msgtab-msgv3 INTO l_mstring.
              REPLACE '&4' WITH it_msgtab-msgv4 INTO l_mstring.
            ELSE.
              REPLACE '&' WITH it_msgtab-msgv1 INTO l_mstring.
              REPLACE '&' WITH it_msgtab-msgv2 INTO l_mstring.
              REPLACE '&' WITH it_msgtab-msgv3 INTO l_mstring.
              REPLACE '&' WITH it_msgtab-msgv4 INTO l_mstring.
            ENDIF.
            CONDENSE l_mstring.
            it_mess-msgtyp = it_msgtab-msgtyp.
            it_mess-lms = l_mstring.
            it_mess-msgv1 = it_msgtab-msgv1.
            APPEND it_mess.
           WRITE: / it_msgtab-msgtyp, l_mstring(150).
          ELSE.
           WRITE: / it_msgtab.
            it_mess-msgtyp = it_msgtab-msgtyp.
            it_mess-lms = l_mstring.
            it_mess-msgv1 = it_msgtab-msgv1.
            APPEND it_mess.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " error
    *&      Form  table_Control
    FORM table_control .
    SORT record BY lifnr matnr.
      LOOP AT record.
        ON CHANGE OF record-lifnr.
          MOVE-CORRESPONDING record TO it_new.
          APPEND it_new.
        ENDON.
        MOVE-CORRESPONDING record TO it_item.
        APPEND it_item.
      ENDLOOP.
    ENDFORM.                    " table_Control
    Reward if helpful
    Thanks
    Jagadeesh.G

  • Bdc OK CODE Repeating

    Hi
    friends need small help in bdc table control
    Well did my bdc spliting the itabs in to header and detail ...
    in my detail table i had 3 records ...
    after each record i want to press enter in trasaction and recoding is too
    done in same way ..
    my program insert the all the three records ..properly .but again it insert
    the fourth one...blank which is not in detail table..in the pop the insert
    ok code appears  ..and then it proceeds to next step ..
    i want to only number of  reocrds in my detail itab.
    ... my code
    LOOP AT i_tab WHERE equnr = i_output-equnr.
          w_count = w_count + 1.
          MOVE-CORRESPONDING i_tab TO i_tab1.
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'IT_ZOEED-MATNR(01)'.
    *Concatenating to perform for detail lines (table control)
          CONCATENATE 'IT_ZOEED-fTIME(' w_count ')'  INTO w_bdc1.
          CONCATENATE 'IT_ZOEED-TTIME(' w_count ')'  INTO w_bdc2.
          CONCATENATE 'IT_ZOEED-zoper(' w_count ')'  INTO w_bdc3.
          CONCATENATE 'IT_ZOEED-charg(' w_count ')'  INTO w_bdc4.
          CONCATENATE 'IT_ZOEED-matnr(' w_count ')'  INTO w_bdc5.
          CONCATENATE 'IT_ZOEED-Zrcod(' w_count ')'  INTO w_bdc6.
          PERFORM bdc_field       USING   w_bdc1
                                     i_tab1-ftime .
          PERFORM bdc_field       USING   w_bdc2
                                      i_tab1-ttime .
          PERFORM bdc_field       USING  w_bdc3
                                         i_tab1-zoper.
          IF i_tab1-zoper = 'P'.
            PERFORM bdc_field       USING  w_bdc4
                                           i_tab1-charg.
            PERFORM bdc_field       USING w_bdc5
                                           i_tab1-matnr.
          ENDIF.
          IF i_tab1-zoper <> 'P'.
            PERFORM bdc_field       USING  w_bdc6
                                            i_tab1-zrcod.
            PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
          ENDIF.
    ***Insert okcode
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ZOEED_TCL1_INSR'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        '%#AUTOTEXT001'.
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        '%#AUTOTEXT001'.
        ENDLOOP.
        PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=CODE'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      '%#AUTOTEXT001'.
    ***and etc.
    Pls tell me where iam wrong ... and when i debug it on the 4th insertion there is no sign of okcode and it wont insert the forth rec,,pls give the sol for this..
    answers will be rewarded points
    thnks in advance
    regards

    Hi
    friends need small help in bdc table control
    Well did my bdc spliting the itabs in to header and detail ...
    in my detail table i had 3 records ...
    after each record i want to press enter in trasaction and recoding is too
    done in same way ..
    my program insert the all the three records ..properly .but again it insert
    the fourth one...blank which is not in detail table..in the pop the insert
    ok code appears  ..and then it proceeds to next step ..
    i want to only number of  reocrds in my detail itab.
    ... my code
    LOOP AT i_tab WHERE equnr = i_output-equnr.
          w_count = w_count + 1.
          MOVE-CORRESPONDING i_tab TO i_tab1.
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'IT_ZOEED-MATNR(01)'.
    *Concatenating to perform for detail lines (table control)
          CONCATENATE 'IT_ZOEED-fTIME(' w_count ')'  INTO w_bdc1.
          CONCATENATE 'IT_ZOEED-TTIME(' w_count ')'  INTO w_bdc2.
          CONCATENATE 'IT_ZOEED-zoper(' w_count ')'  INTO w_bdc3.
          CONCATENATE 'IT_ZOEED-charg(' w_count ')'  INTO w_bdc4.
          CONCATENATE 'IT_ZOEED-matnr(' w_count ')'  INTO w_bdc5.
          CONCATENATE 'IT_ZOEED-Zrcod(' w_count ')'  INTO w_bdc6.
          PERFORM bdc_field       USING   w_bdc1
                                     i_tab1-ftime .
          PERFORM bdc_field       USING   w_bdc2
                                      i_tab1-ttime .
          PERFORM bdc_field       USING  w_bdc3
                                         i_tab1-zoper.
          IF i_tab1-zoper = 'P'.
            PERFORM bdc_field       USING  w_bdc4
                                           i_tab1-charg.
            PERFORM bdc_field       USING w_bdc5
                                           i_tab1-matnr.
          ENDIF.
          IF i_tab1-zoper <> 'P'.
            PERFORM bdc_field       USING  w_bdc6
                                            i_tab1-zrcod.
            PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
          ENDIF.
    ***Insert okcode
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ZOEED_TCL1_INSR'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        '%#AUTOTEXT001'.
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        '%#AUTOTEXT001'.
        ENDLOOP.
        PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'ZOEE_MP_ENTRY' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=CODE'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      '%#AUTOTEXT001'.
    ***and etc.
    Pls tell me where iam wrong ... and when i debug it on the 4th insertion there is no sign of okcode and it wont insert the forth rec,,pls give the sol for this..
    answers will be rewarded points
    thnks in advance
    regards

  • BDC OK Code disappear during debug mode

    Hi all,
    Currently, I have the following code when call transaction 'FV50':
      WA_OPT-DISMODE = 'A'.
      WA_OPT-UPDMODE = 'L'.
      WA_OPT-DEFSIZE = 'X'.
        CALL TRANSACTION 'FV50' USING IT_BDCDATA
                          OPTIONS FROM WA_OPT
    *                   MODE   ctumode
    *                   UPDATE cupdate
                         MESSAGES INTO IT_MESSTAB.
    Based on the above, I'm able to debug tcode FV50 with OK-CODE popup window, so that I can know the error messages displayed on the screen during debug.
    As the first debug mode of FV50 encountering error message, which I've forced to exit the debug and exit the program (since some G/L do not exist in respective company code), I have maintained the G/L and re-run the BDC in debug mode (Mode = 'A'). However, this time, the OK-CODE popup window didn't prompt up, where I couldn't debug the BDC screen using OK-CODE popup window.
    I have checked the settings in 'Customize Local Layout - ALT + F12' -> Options -> Expert tab -> Dialog Box for OK Code ticked, and I'm not certain why OK-CODE popup window just disappear on the second attempt of BDC debug.
    Appreciate if you guys have any idea on this.
    Thanks and regards,
    Patrick

    Hello,
    If the OK-CODE pop up isn't appearing while running in mode A, it means that the continuity is missing in the recording. You may have to re-record the transaction carefully or if you could analyse the missing link, you could directly add it.
    Also you could run the BDC in mode 'E' if you want to directly reach the point when any error occurs for better analysis.
    Vikranth

  • BDC OK CODE To select PO Line Item

    Hello,
    Can anyone tell me the BDC OkCode to select a particular line item in a PO.
    Thanks
    Viky

    are you using me22 or me22n ?
    if me22, just below the table control,  you can see a field 'Item' .  if you key in 50 in this item,  item 50 will come to the top line.
    so while doing recording, pass the line item number to this field, RM06E-EBELP, and then hit enter....
    loop at your internal table with bdcdata, and pass each item numbers one by one to this field, and do the bdc.
    Message was edited by:
            Sujamol Augustine

  • Function key displayed in BDC Source Code By Transaction

    Dear All,
    /EE , /EECAN Is the value of function key Back and Cancel respectively in selection screen 1000.
    Where i can see these value without going through Source code after recording.

    Hello,
    You could check the table RSMPTEXTS for the field OBJ_CODE with the standard program name for the transaction you are recording
    Vikranth

  • Regarding BDC return Code and calculation part.

    hi guru's..
    i have a req.. which tells abt transfering legacy datainto SAP using FB01 Tcode.
    here after processing the flat file i have to update the return code of the session and total no of docs, total amoount and the posted documents and their amount in
    a Ztable. How can i get the return code and the total amount for successfully processed records as well as for unsuccessful records with their total no. of records after processing the flat file.
    <b>Rewards will be given for helpful answers</b>
    Chandra

    In ur code U will be having the syntax for prosting in FB01.
    CALL TRANSACTION 'FB01'
                                              USING bdcdata_tab
                                              OPTIONS FROM opt
                                              MESSAGES INTO t_msg
    This message tab will contain all the messages returned by FB01. if the posting is sucessfully done  - the message tab will contain the message ( it will contain error messages in case it fails to post).
    So u can tap the messsages from here and report accordingly to ur output log.
    Cheers
    SKC.

  • BDC recording code.

    Hi All,
    I have done recording in testing client where i have data.
    but for developing code i trired to get it from testing client i tried to copy auto genereatoed code  but
    it is showing me error as Changes to Repository or cross-client Customizing are
    not permitted
    How can i get that code?
    please provide any input.

    Hi
    First down load the recording from Test Client to desk top from SHDB and then come to your dev Client and go to SHDB tcode select a existing record and press change. Now go import and select the file which you downloaded above.
    now go to create program icon.
    Cheers
    Ram

  • BDC code for transaction XD01

    Hi all,
    Can anyone of you provide me complete BDC code for Transaction XD01.
    An early reply will be highly appreciated and would be rewarded.
    Regards,
    Neeraj

    Hi Prakash
    hope this code will help you.
    ABAP BDC SAMPLE CODE XD01
    Table/Structure declarations. *
    TABLES : KNA1. "Customer master
    Constants declarations. *
    CONSTANTS : C_MODE VALUE 'A',
    C_UPDATE VALUE 'S',
    C_X VALUE 'X',
    C_SESS TYPE APQI-GROUPID VALUE 'ZCUSTOMER', "Session Name
    C_XD01 LIKE TSTC-TCODE VALUE 'XD01'.
    Variable declarations. *
    DATA : V_FNAME(15) VALUE SPACE, " Name of file to be created
    V_FAILREC TYPE I, " No of failed records
    V_MSG(255), " Message Text
    V_ERRREC TYPE I, " No of failed records
    V_LINES TYPE I, " No of records
    V_BANKS(15), " Table column BANKS
    V_BANKL(15), " Table column BANKL
    V_BANKN(15), " Table column BANKN
    V_TIDX(2) TYPE N. " Table row index
    *-- FLAG DECLARATIONS
    DATA : FG_DATA_EXIST VALUE 'X', " Check for data
    FG_SESSION_OPEN VALUE ' '. " Check for Session Open
    *-- MACRO DEFINITIONS
    *-- Macro for BANKS
    DEFINE BANKS.
    CLEAR V_BANKS.
    CONCATENATE 'KNBK-BANKS(' &1 ')' INTO V_BANKS.
    CONDENSE V_BANKS.
    END-OF-DEFINITION.
    *-- Macro for BANKL
    DEFINE BANKL.
    CLEAR V_BANKL.
    CONCATENATE 'KNBK-BANKL(' &1 ')' INTO V_BANKL.
    CONDENSE V_BANKL.
    END-OF-DEFINITION.
    *-- Macro for BANKN
    DEFINE BANKN.
    CLEAR V_BANKN.
    CONCATENATE 'KNBK-BANKN(' &1 ')' INTO V_BANKN.
    CONDENSE V_BANKN.
    END-OF-DEFINITION.
    Structures / Internal table declarations *
    *-- Structure to hold BDC data
    TYPES : BEGIN OF T_BDCTABLE.
    INCLUDE STRUCTURE BDCDATA.
    TYPES END OF T_BDCTABLE.
    *-- Structure to trap BDC messages
    TYPES : BEGIN OF T_MSG.
    INCLUDE STRUCTURE BDCMSGCOLL.
    TYPES : END OF T_MSG.
    *-- Structure to trap ERROR messages
    TYPES : BEGIN OF T_ERR_MSG,
    MESSAGE(255),
    END OF T_ERR_MSG.
    *--Internal table to store flat file data
    DATA : BEGIN OF IT_KNA1 OCCURS 0,
    KUNNR LIKE KNA1-KUNNR,
    KTOKD LIKE T077D-KTOKD,
    NAME1 LIKE KNA1-NAME1,
    SORTL LIKE KNA1-SORTL,
    ORT01 LIKE KNA1-ORT01,
    PSTLZ LIKE KNA1-PSTLZ,
    LAND1 LIKE KNA1-LAND1,
    SPRAS LIKE KNA1-SPRAS,
    LZONE LIKE KNA1-LZONE,
    END OF IT_KNA1.
    *--Internal table to store bank details
    DATA : BEGIN OF IT_BANK OCCURS 0,
    BANKS LIKE KNBK-BANKS,
    BANKL LIKE KNBK-BANKL,
    BANKN LIKE KNBK-BANKN,
    END OF IT_BANK.
    *-- Internal table to hold BDC data
    DATA: IT_BDCDATA TYPE STANDARD TABLE OF T_BDCTABLE WITH HEADER LINE,
    *-- Internal Table to store ALL messages
    IT_MSG TYPE STANDARD TABLE OF T_MSG WITH HEADER LINE,
    *-- Internal Table to store error messages
    IT_ERR_MSG TYPE STANDARD TABLE OF T_ERR_MSG WITH HEADER LINE.
    Selection Screen. *
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS : P_FLNAME(15) OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS : R_LIST RADIOBUTTON GROUP GRP1.
    SELECTION-SCREEN COMMENT 5(20) TEXT-003.
    PARAMETERS : R_SESS RADIOBUTTON GROUP GRP1.
    SELECTION-SCREEN COMMENT 30(20) TEXT-004.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B2.
    Event:Initialization *
    INITIALIZATION.
    AT Selection Screen. *
    AT SELECTION-SCREEN.
    Event: Start-of-Selection *
    START-OF-SELECTION.
    V_FNAME = P_FLNAME.
    PERFORM GET_DATA.
    PERFORM GET_BANKDATA.
    PERFORM GENERATE_DATASET.
    Event: End-of-Selection *
    END-OF-SELECTION.
    IF FG_DATA_EXIST = ' '.
    MESSAGE I010 WITH TEXT-009.
    EXIT.
    ENDIF.
    PERFORM GENERATE_BDCDATA.
    PERFORM DISPLAY_ERR_RECS.
    Event: top-of-page
    TOP-OF-PAGE.
    FORM DEFINITIONS *
    *& Form get_data
    Subroutine to get the data from mard
    --> p1 text
    <-- p2 text
    FORM GET_DATA.
    CALL FUNCTION 'UPLOAD'
    EXPORTING
    CODEPAGE = ' '
    FILENAME = 'C:\XD01.TXT'
    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 = IT_KNA1
    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.
    IF IT_KNA1[] IS INITIAL.
    FG_DATA_EXIST = ' '.
    ENDIF.
    ENDFORM. " get_data
    *& Form GENERATE_DATASET
    text
    --> p1 text
    <-- p2 text
    FORM GENERATE_DATASET.
    MESSAGE I010 WITH 'OPENING FILE IN APPLICATION SERVER'.
    **--Creating a data set in application server
    OPEN DATASET V_FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    **---Transfering data from internal table to dataset
    MESSAGE I010 WITH 'TRANSFERING DATA FROM INETERAL TABLE TO THE FILE'.
    LOOP AT IT_KNA1.
    TRANSFER IT_KNA1 TO V_FNAME.
    ENDLOOP.
    **--Closing the dataset
    MESSAGE I010 WITH 'CLOSING THE FILE'.
    CLOSE DATASET V_FNAME.
    ENDFORM. " GENERATE_DATASET
    *& Form BDC_DYNPRO
    text
    -->P_0467 text
    -->P_0468 text
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
    CLEAR IT_BDCDATA.
    IT_BDCDATA-PROGRAM = PROGRAM.
    IT_BDCDATA-DYNPRO = DYNPRO.
    IT_BDCDATA-DYNBEGIN = 'X'.
    APPEND IT_BDCDATA.
    ENDFORM.
    *& Form BDC_FIELD
    text
    -->P_0472 text
    -->P_0473 text
    FORM BDC_FIELD USING FNAM FVAL.
    IF NOT FVAL IS INITIAL.
    CLEAR IT_BDCDATA.
    IT_BDCDATA-FNAM = FNAM.
    IT_BDCDATA-FVAL = FVAL.
    APPEND IT_BDCDATA.
    ENDIF.
    ENDFORM.
    *& Form GENERATE_BDCDATA
    text
    --> p1 text
    <-- p2 text
    FORM GENERATE_BDCDATA.
    REFRESH IT_KNA1.
    Opening dataset for reading
    OPEN DATASET V_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    Reading the file from application server
    DO.
    CLEAR: IT_KNA1,IT_BDCDATA.
    REFRESH IT_BDCDATA.
    READ DATASET V_FNAME INTO IT_KNA1.
    IF SY-SUBRC <> 0.
    EXIT.
    ELSE.
    Populate BDC Data for Initial Screen
    PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0100',
    BDC_FIELD USING 'BDC_CURSOR' 'RF02D-KUNNR',
    BDC_FIELD USING 'BDC_OKCODE' '/00',
    BDC_FIELD USING 'RF02D-KUNNR' IT_KNA1-KUNNR,
    BDC_FIELD USING 'RF02D-KTOKD' IT_KNA1-KTOKD.
    Populate BDC Data for Second Screen
    PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0110',
    BDC_FIELD USING 'BDC_CURSOR' 'KNA1-NAME1',
    BDC_FIELD USING 'BDC_OKCODE' '/00',
    BDC_FIELD USING 'KNA1-NAME1' IT_KNA1-NAME1,
    BDC_FIELD USING 'KNA1-SORTL' IT_KNA1-SORTL,
    BDC_FIELD USING 'KNA1-ORT01' IT_KNA1-ORT01,
    BDC_FIELD USING 'KNA1-PSTLZ' IT_KNA1-PSTLZ,
    BDC_FIELD USING 'KNA1-LAND1' IT_KNA1-LAND1,
    BDC_FIELD USING 'KNA1-SPRAS' IT_KNA1-SPRAS.
    Populate BDC Data for Third Screen
    PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0120',
    BDC_FIELD USING 'BDC_CURSOR' 'KNA1-LZONE',
    BDC_FIELD USING 'BDC_OKCODE' '/00',
    BDC_FIELD USING 'KNA1-LZONE' IT_KNA1-LZONE.
    Populate BDC Data for Fourth Screen
    PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0125',
    BDC_FIELD USING 'BDC_CURSOR' 'KNA1-NIELS',
    BDC_FIELD USING 'BDC_OKCODE' '/00'.
    Populate BDC Data for Table control for bank details.
    V_TIDX = '01'.
    LOOP AT IT_BANK.
    BANKS V_TIDX.
    BANKL V_TIDX.
    BANKN V_TIDX.
    PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0130',
    BDC_FIELD USING 'BDC_CURSOR' V_BANKN,
    BDC_FIELD USING 'BDC_OKCODE' '=ENTR',
    BDC_FIELD USING V_BANKS IT_BANK-BANKS,
    BDC_FIELD USING V_BANKL IT_BANK-BANKL,
    BDC_FIELD USING V_BANKN IT_BANK-BANKN.
    V_TIDX = V_TIDX + 1.
    ENDLOOP.
    PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0130',
    BDC_FIELD USING 'BDC_CURSOR' V_BANKS,
    BDC_FIELD USING 'BDC_OKCODE' '=UPDA'.
    CALL TRANSACTION C_XD01 USING IT_BDCDATA
    MODE C_MODE
    UPDATE C_UPDATE
    MESSAGES INTO IT_MSG.
    IF SY-SUBRC <> 0.
    *--In case of error list display
    IF R_LIST = C_X.
    V_ERRREC = V_ERRREC + 1.
    PERFORM FORMAT_MESSAGE.
    IT_ERR_MSG-MESSAGE = V_MSG.
    APPEND IT_ERR_MSG.
    CLEAR : V_MSG,IT_ERR_MSG.
    ENDIF.
    *--In case of session log
    IF R_SESS = C_X.
    *-- In case of transaction fails.
    IF FG_SESSION_OPEN = ' '.
    FG_SESSION_OPEN = C_X.
    PERFORM BDC_OPEN_GROUP.
    ENDIF. " IF FG_SESSION_OPEN = ' '.
    *-- Insert BDC Data..
    PERFORM BDC_INSERT_DATA.
    ENDIF. " IF R_SESS = C_X.
    ENDIF. " IF SY-SUBRC <> 0.
    ENDIF. " IF SY-SUBRC <> 0.
    ENDDO.
    Closing the dataset
    CLOSE DATASET V_FNAME.
    *-- Close the session if opened
    IF FG_SESSION_OPEN = C_X.
    PERFORM BDC_CLOSE_GROUP.
    CALL TRANSACTION 'SM35'.
    ENDIF.
    ENDFORM. " GENERATE_BDCDATA
    *& Form BDC_OPEN_GROUP
    text
    --> p1 text
    <-- p2 text
    FORM BDC_OPEN_GROUP.
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
    CLIENT = SY-MANDT
    DEST = FILLER8
    GROUP = C_SESS
    HOLDDATE = FILLER8
    KEEP = C_X
    USER = SY-UNAME
    RECORD = FILLER1
    IMPORTING
    QID =
    EXCEPTIONS
    CLIENT_INVALID = 1
    DESTINATION_INVALID = 2
    GROUP_INVALID = 3
    GROUP_IS_LOCKED = 4
    HOLDDATE_INVALID = 5
    INTERNAL_ERROR = 6
    QUEUE_ERROR = 7
    RUNNING = 8
    SYSTEM_LOCK_ERROR = 9
    USER_INVALID = 10
    OTHERS = 11
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " BDC_OPEN_GROUP
    *& Form BDC_INSERT_DATA
    text
    --> p1 text
    <-- p2 text
    FORM BDC_INSERT_DATA.
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
    TCODE = C_XD01
    POST_LOCAL = NOVBLOCAL
    PRINTING = NOPRINT
    TABLES
    DYNPROTAB = IT_BDCDATA
    EXCEPTIONS
    INTERNAL_ERROR = 1
    NOT_OPEN = 2
    QUEUE_ERROR = 3
    TCODE_INVALID = 4
    PRINTING_INVALID = 5
    POSTING_INVALID = 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.
    ENDFORM. " BDC_INSERT_DATA
    *& Form BDC_CLOSE_GROUP
    text
    --> p1 text
    <-- p2 text
    FORM BDC_CLOSE_GROUP.
    CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
    NOT_OPEN = 1
    QUEUE_ERROR = 2
    OTHERS = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " BDC_CLOSE_GROUP
    *& Form FORMAT_MESSAGE
    text
    --> p1 text
    <-- p2 text
    FORM FORMAT_MESSAGE.
    CLEAR V_LINES.
    DESCRIBE TABLE IT_MSG LINES V_LINES.
    READ TABLE IT_MSG INDEX V_LINES.
    CLEAR V_MSG.
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
    ID = IT_MSG-MSGID
    LANG = IT_MSG-MSGSPRA
    NO = IT_MSG-MSGNR
    V1 = IT_MSG-MSGV1
    V2 = IT_MSG-MSGV2
    V3 = IT_MSG-MSGV3
    V4 = IT_MSG-MSGV4
    IMPORTING
    MSG = V_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.
    ENDFORM. " FORMAT_MESSAGE
    *& Form DISPLAY_ERR_RECS
    text
    --> p1 text
    <-- p2 text
    FORM DISPLAY_ERR_RECS.
    LOOP AT IT_ERR_MSG.
    WRITE: / IT_ERR_MSG-MESSAGE.
    ENDLOOP.
    ENDFORM. " DISPLAY_ERR_RECS
    *& Form GET_BANKDATA
    text
    --> p1 text
    <-- p2 text
    FORM GET_BANKDATA.
    IT_BANK-BANKS = 'AD'.
    IT_BANK-BANKL = '1000'.
    IT_BANK-BANKN = 'S.B A/C'.
    APPEND IT_BANK.
    IT_BANK-BANKS = 'AD'.
    IT_BANK-BANKL = 'CITY'.
    IT_BANK-BANKN = 'CURR. A/C'.
    APPEND IT_BANK.
    IT_BANK-BANKS = 'AD'.
    IT_BANK-BANKL = 'H001'.
    IT_BANK-BANKN = 'S.B A/C'.
    APPEND IT_BANK.
    reward if help.

  • How to supress a warning message in BDC for ME11 Tcode

    Hi Expert,
    I am doing a BDC report for ME11 Tcode and some of warning is ignorable for this transaction code,how can we suppress these warning through BDC program, is it possible or will have to make some changes changes in TCODE(ME11) itself.

    hi,
    if the warning message coming in a pop-up window then it can be supressed in the following way.
    1. comment the lines of the code of bdc recording of that pop-up screen along with the perform of bdc ok code  '=ENTE".
    2. use the structure ctu_params and fill the correspondings fiels, particularly the field nobinpt = 'X' and then use this structure in the call transcation statement as
    call transcation 'ME11'
                            using bdcdata
                            options from opt ( structure of ctu_params )
    3. At the time of recording use the option of check box " no batch input session ".
    regards,
    Alok

  • Facing problem during uploadation of Routing data using CA01-BDC - URGENT

    Dear All,
    When I am trying to upload Routing data using CA01 in the Table Control scenario, then I am facing problem as my last 2 records are not getting uploaded from my Test file.
    For example, I am having 47 records in my Test File and after setting ‘Default size’ parameters (to avoid screen resolution problem)
    I have 15 table control line items data per page. The Page down logic ('=P+') is working fine, but my below BDC code failed to take
    the remainder last 2 records from the Test File.
    Analysis: When I am running my “Call Transaction” bdc in foreground, then the 1st page down occurs after 15th record, 2nd page down occurs after 29th record( as in Table Control 1st page’s 15th record is coming on the Top of 2nd page). 3rd page down occurs after 43rd record
    (as 2nd page’s 29th record is coming on the top of 3rd page). In the 4th Table Control Page 43rd record of previous page is coming on top, and then it’s taking 44th & 45th records from the Test File and then it is triggering SAVE (=BU). Thus, our last 2 records
    (i.e. 46th, 47th record) are not getting uploaded in the routing screen from our Test File.
    If anybody has encountered this scenario previously, please help me URGENTLY in fixing the bugs here. It’s VERY, VERY URGENT…
    FYI. For others 45 successful records already uploaded, all the screen fields values are coming properly in the routing screen, and here there is no issue.
    Thanks very much…
    Thanks & Regards
    Sudipta – Project Lead
    Volvo Client Location
    I am pasting my BDC source code below:
    REPORT ZRT1_UPLOAD_CA01_F
                           NO STANDARD PAGE HEADING
                           LINE-SIZE 255.
                            I N C L U D E S                              *
    Include for Data Declarations
    INCLUDE zrout_top.
    Include for Forms
    INCLUDE zrout_form.
    INCLUDE zrout_include_f_ca01.
    *AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field>
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    Attaching F4 help with filename
      PERFORM F1001_GET_F4.
               S T A R T   -   O F  -  S E L E C T I O N                 *
    START-OF-SELECTION.
    Perform to read the input file
      PERFORM f_read_file.
    Perform to fill the BDC data
      PERFORM f_fill_bdctab.
                   E N D   -   O F  -  S E L E C T I O N                 *
    END-OF-SELECTION.
      FREE: i_bdcdata,
            i_messtab,
            i_record.
    x----
    *&  Include           ZROUT_TOP                                        *
                      D A T A B A S E    T A B L E S                     *
    TABLES: t100.          "Messages
                    D A T A    D E C L A R A T I O N S                   *
    T A B L E    T Y P E S *****************************
    For input data
    TYPES: BEGIN OF ty_record,
            matnr(18),  "Material Number
            werks(4),   "Plant
            verwe(3),   "Usage
            statu(3),   "Status
            arbpl(8),   "Work Center
            steus(4),   "Control Key
            ltxa1(40),  "Description of Operation
            bmsch(13),  "Base Quantity
            meinh(3),   "Unit of Measure
            vgw01(11),  "Machine
            vge01(3),   "Unit of measure of activity
          END OF ty_record.
    I N T E R N A L    T A B L E S ***********************
    Internal Table for input file name
    DATA: i_file_tab  TYPE STANDARD TABLE OF sdokpath   INITIAL SIZE 0.
    Internal Table for BDC Data
    DATA: i_bdcdata   TYPE STANDARD TABLE OF bdcdata    INITIAL SIZE 0.
    Internal Table for BDC Messages
    DATA: i_messtab   TYPE STANDARD TABLE OF bdcmsgcoll INITIAL SIZE 0.
    Internal Table for Input file
    DATA: i_record TYPE STANDARD TABLE OF ty_record INITIAL SIZE 0.
    W O R K      A R E A S *************************
    Work Area for input file name
    DATA: wa_file_tab LIKE sdokpath.
    Work Area for BDC Data
    DATA: wa_bdcdata LIKE bdcdata.
    Work Area for BDC Messages
    DATA: wa_messtab LIKE bdcmsgcoll.
    Work Area for Input file
    DATA: wa_record TYPE ty_record.
    V A R I A B L E S ****************************
    DATA: v_filename TYPE string,
          v_fnam(40) TYPE c.
    DATA: wa_opt TYPE ctu_params.
    C O N S T A N T S ***************************
    CONSTANTS: c_werks TYPE rc27m-werks VALUE 'tp',
               c_steus TYPE plpod-steus VALUE 'PP01'.
    *Selection Screen.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS:
              Input file name
                P_FILE TYPE rlgrap-filename OBLIGATORY. " DEFAULT 'C:\'.
    SELECTION-SCREEN END OF BLOCK B1.
    x----
    *&  Include           ZROUT_FORM                                       *
    *&      Form  f_fill_bdctab
          Form to fill the BDC Data
    FORM f_fill_bdctab.
      TABLES mapl.          "Assignment of Task Lists to Materials
      DATA: l_cnt_item(3)  TYPE n VALUE 1.    "Line item counter
      DATA: first(3)  TYPE n VALUE 16.    "Line item counter
      DATA: next(3)  TYPE n .    "Line item counter
      DATA: lin(3) TYPE n .    "Line item counter
      DATA: l_v_bmsch(13),   "Base qty
            l_v_meinh(3),    "Unit of Measure
            l_v_vgw01(11),   "Machine
            l_v_vgw02(11),   "Labour
            l_v_vge01(3).    "Unit of measure of activity
      DATA l_v_nextline TYPE sy-tabix.
      DATA wa_temp TYPE ty_record.
        Initialize Counter
          l_cnt_item = 1.
      SORT i_record BY matnr.
      LOOP AT i_record INTO wa_record.
    AT NEW matnr.
        REFRESH: i_bdcdata,
                 i_messtab.
        SET PARAMETER ID 'PLN' FIELD space.
        SET PARAMETER ID 'PAL' FIELD space.
        PERFORM f_bdc_dynpro      USING 'SAPLCPDI' '1010'.
        PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
      Material Number
        PERFORM f_bdc_field       USING 'RC27M-MATNR'
                                        wa_record-matnr.
       Plant
        PERFORM f_bdc_field       USING 'RC27M-WERKS'
                                        c_werks.
        PERFORM f_bdc_field       USING 'RC271-PLNNR'
      Check if routing already exits for the material
        SELECT * FROM mapl
                      INTO mapl
                                WHERE matnr EQ wa_record-matnr
                                  AND werks EQ c_werks
                                  AND plnty EQ 'N'.
          IF sy-subrc EQ 0.
            PERFORM f_bdc_dynpro      USING 'SAPLCPDI' '1200'.
            PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                            '=ANLG  '.
          ENDIF.
        ENDSELECT.
        perform f_bdc_dynpro      USING 'SAPLCPDA' '1200'.
        perform f_bdc_field       USING 'BDC_OKCODE'
                                  '=VOUE'.
    Group Counter
        perform f_bdc_field       USING 'PLKOD-PLNAL'
      Usage
        PERFORM f_bdc_field       USING 'PLKOD-VERWE'
                                        '1'.
      Status
        PERFORM f_bdc_field       USING 'PLKOD-STATU'
                                        '4'.
    ENDAT.
        PERFORM f_bdc_dynpro      USING 'SAPLCPDI' '1400'.
      Check if page is full
        IF l_cnt_item EQ '16'.
        Page down
          PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                               '=P+'.
          l_cnt_item = 1.
    ELSE.
    PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    ENDIF.
       CLEAR v_fnam.
      Populate item level details
    Work Center
        CONCATENATE 'PLPOD-ARBPL(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        wa_record-arbpl.
      Control Key
        CONCATENATE 'PLPOD-STEUS(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        c_steus.
      Description of Operation
        CONCATENATE 'PLPOD-LTXA1(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        wa_record-ltxa1.
      Base Quantity
        CONCATENATE 'PLPOD-BMSCH(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        wa_record-bmsch.
      Unit of Measure
        CONCATENATE 'PLPOD-MEINH(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        wa_record-meinh.
      Machine
        CONCATENATE 'PLPOD-VGW01(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        wa_record-vgw01.
      Labour
       CONCATENATE 'PLPOD-VGW02(' l_cnt_item ')' INTO v_fnam.
       PERFORM f_bdc_field       USING v_fnam
                                       wa_record-vgw02.
      Unit of measure of activity
        CONCATENATE 'PLPOD-VGE01(' l_cnt_item ')' INTO v_fnam.
        PERFORM f_bdc_field       USING v_fnam
                                        wa_record-vge01.
          l_cnt_item = l_cnt_item + 1.
       CLEAR wa_record.
    AT END OF matnr.
         PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
          PERFORM f_bdc_field         USING 'BDC_OKCODE'
                                  '=BU'.
         wa_opt-DISMODE = 'A'.
         wa_opt-DEFSIZE = 'X'.
         wa_opt-UPDMODE = 'S'.
        PERFORM f_bdc_transaction USING 'CA01'.
       Initialize Counter
         l_cnt_item = 1.
    ENDAT.
      ENDLOOP.
    ENDFORM.                    " f_fill_bdctab
    x----
    *&  Include           ZROUT_INCLUDE_F_CA01                             *
    *&      Form  f_read_file
          Form to read the file from presentation server
    FORM f_read_file .
    To get the file name
      DATA l_v_file TYPE string.
    l_v_file = P_FILE.
    CALL FUNCTION 'GUI_UPLOAD'
          EXPORTING
            filename                = l_v_file
            filetype                = 'ASC'
            has_field_separator     = 'X'
          TABLES
            data_tab                = i_record
          EXCEPTIONS
            file_open_error         = 1
            file_read_error         = 2
            no_batch                = 3
            gui_refuse_filetransfer = 4
            invalid_type            = 5
            no_authority            = 6
            unknown_error           = 7
            bad_data_format         = 8
            header_not_allowed      = 9
            separator_not_allowed   = 10
            header_too_long         = 11
            unknown_dp_error        = 12
            access_denied           = 13
            dp_out_of_memory        = 14
            disk_full               = 15
            dp_timeout              = 16
            OTHERS                  = 17.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    ENDIF.
    ENDFORM.                    " f_read_file
    *&      Form  f_bdc_dynpro
          Form to populate BDC Tab for new screen
         -->fp_program   Screen program name
         -->fp_dynpro    Screen Number
           Start new screen                                              *
    FORM f_bdc_dynpro USING fp_program fp_dynpro.
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = fp_program.
      wa_bdcdata-dynpro   = fp_dynpro.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO i_bdcdata.
    ENDFORM.                    "f_bdc_dynpro
    *&      Form  f_bdc_field
           Insert field                                                  *
    FORM f_bdc_field USING fp_fnam fp_fval.
      IF NOT fp_fval IS INITIAL.
        CLEAR wa_bdcdata.
        wa_bdcdata-fnam = fp_fnam.
        wa_bdcdata-fval = fp_fval.
        APPEND wa_bdcdata TO i_bdcdata.
      ENDIF.
    ENDFORM.                    "f_bdc_field
    *&      Form  f_bdc_transaction
          Call transaction and error handling
         -->fp_tcode   Transaction code
    FORM f_bdc_transaction  USING fp_tcode.
      DATA: l_mstring(480),
            l_color         TYPE i,
            l_mode          TYPE c.
      REFRESH i_messtab.
    CALL TRANSACTION fp_tcode USING i_bdcdata
                       OPTIONS FROM wa_opt
                       MESSAGES INTO i_messtab.
    Messages during upload
      LOOP AT i_messtab INTO wa_messtab.
        CASE wa_messtab-msgtyp.
          WHEN 'S'.
            l_color = 5.
          WHEN 'E'.
            l_color = 6.
          WHEN 'W'.
            l_color = 3.
        ENDCASE.
        FORMAT COLOR = l_color.
        SELECT SINGLE * FROM t100 WHERE sprsl = wa_messtab-msgspra
                                  AND   arbgb = wa_messtab-msgid
                                  AND   msgnr = wa_messtab-msgnr.
        IF sy-subrc = 0.
          l_mstring = t100-text.
          IF l_mstring CS '&1'.
            REPLACE '&1' WITH wa_messtab-msgv1 INTO l_mstring.
            REPLACE '&2' WITH wa_messtab-msgv2 INTO l_mstring.
            REPLACE '&3' WITH wa_messtab-msgv3 INTO l_mstring.
            REPLACE '&4' WITH wa_messtab-msgv4 INTO l_mstring.
          ELSE.
            REPLACE '&' WITH wa_messtab-msgv1 INTO l_mstring.
            REPLACE '&' WITH wa_messtab-msgv2 INTO l_mstring.
            REPLACE '&' WITH wa_messtab-msgv3 INTO l_mstring.
            REPLACE '&' WITH wa_messtab-msgv4 INTO l_mstring.
          ENDIF.
          CONDENSE l_mstring.
          WRITE: / wa_messtab-msgtyp, l_mstring(250).
        ELSE.
          WRITE: / wa_messtab.
        ENDIF.
        FORMAT COLOR OFF.
      ENDLOOP.
      SKIP.
    ENDFORM.                    " f_bdc_transaction
    FORM F1001_GET_F4.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                PROGRAM_NAME  = SY-REPID
                DYNPRO_NUMBER = SY-DYNNR
                FIELD_NAME    = P_FILE
           CHANGING
                FILE_NAME     = P_FILE
           EXCEPTIONS
                MASK_TOO_LONG = 1
                OTHERS        = 2.
      IF SY-SUBRC <> 0.
      File is not selected
       MESSAGE I000 WITH TEXT-M01.
      ENDIF.
    ENDFORM.                    " F1001_GET_F4

    Sudipta,
    Would request you to post this to ABAP-Forum for Immediate response.
    I had this problem, but the ABAP guy did something to correct this...it was more of screen resoultion difference between the recorded system and uploading system. Please try to use the same system which was used to record and try.
    Regards,
    Prasobh

  • BDC Problem

    Dear Guru,
    Here i have encountered a typical issue.
    Im Performing BDC for VK11 (Create Condition Record) with "Key Combination" --->> "Location, Material Code (Base Price for Longs)".
    While I am running this BDC ( source code attached below) in All screen mode every datas which are of type "CHAR" like--->>
    Condition type(kschl) ,
    Plant(werks) ,
    Material No(matnr),
    Valid From date(datab),
    Valid To date(datbi),
    Rate Unit(konwa) are coming properly from flatfile except
    Rate (condition amount - KBETR) which is are of data type "CURR".
    So guru I want to know what code i should add into my below bdc prog to fetch data properly into RATE - Condition amount field which is of type " CURR".
    Pls Help.
    Source Code:
    REPORT z_bdc_vk11_famd
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    *& DATA-DECLARATION
    TYPES: BEGIN OF t_cust,
                kschl LIKE rv13a-kschl,
                werks LIKE komg-werks,
                matnr LIKE komg-matnr,
                kbetr LIKE konp-kbetr,
               konwa LIKE konp-konwa,
                datab LIKE rv13a-datab,
                datbi LIKE rv13a-datbi,
           END OF t_cust.
    TYPES: BEGIN OF t_sucrec,
             cnum TYPE komg-werks,
             cnam TYPE komg-matnr,
    END OF t_sucrec.
    TYPES: BEGIN OF t_errrec,
           lineno TYPE string,      "Line Number
          message TYPE string,      "Error Message
    END OF t_errrec.
    DATA:  v_file TYPE string,      "Variable for storing flat file
          it_cust TYPE STANDARD TABLE OF t_cust, "Internal table of Customer
          wa_cust LIKE LINE OF it_cust,  "Workarea of Internal table it_cust
        it_sucrec TYPE STANDARD TABLE OF t_sucrec,
                                          "Internal table of Success records
        wa_sucrec LIKE LINE OF it_sucrec,
                                       "Workarea of Internal table it_sucrec
        it_errrec TYPE STANDARD TABLE OF t_errrec,
                                       "Internal table of Error records
        wa_errrec LIKE LINE OF it_errrec,
                                       "Workarea of Internal table it_errrec
        it_bdctab LIKE bdcdata OCCURS 0 WITH HEADER LINE,
                                        "Internal table structure of BDCDATA
    it_messagetab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE,
                                        "Tracing Error Messages
           v_date LIKE sy-datum,  "Controlling of session date
          v_index LIKE sy-tabix,  "Index Number
         v_totrec TYPE i,         "Total Records
         v_errrec TYPE i,         "Error Records
         v_sucrec TYPE i,         "Success Records
        v_sesschk TYPE c.         "Session maintenance
    *& SELECTION-SCREEN
    SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001 NO
    INTERVALS.
    PARAMETERS: p_file    TYPE rlgrap-filename.
    "rlgrap-filename is a predefined structure
    SELECTION-SCREEN: END OF BLOCK blk1.
    SELECTION-SCREEN: BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002 NO
    INTERVALS.
    PARAMETERS: p_mode    LIKE ctu_params-dismode DEFAULT 'N',
                p_update  LIKE ctu_params-updmode DEFAULT 'A'.
    SELECTION-SCREEN END OF BLOCK blk2.
    *& INITIALIZATION
    INITIALIZATION.
      v_date = sy-datum - 1.
    *& AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = ' '
        IMPORTING
          file_name     = p_file.
    *& START-OF-SELECTION
    START-OF-SELECTION.
      v_file = p_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = v_file
          filetype                = 'ASC'
          has_field_separator     = 'X'
        TABLES
          data_tab                = it_cust
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          OTHERS                  = 17.
      IF sy-subrc = 0.
    ****MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    *& END-OF-SELECTION
    END-OF-SELECTION.
      LOOP AT it_cust INTO wa_cust.
        v_index = sy-tabix.
        PERFORM bdc_dynpro      USING 'SAPMV13A' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV13A-KSCHL'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ANTA'.
        PERFORM bdc_field       USING 'RV13A-KSCHL'
                                      wa_cust-kschl.
        PERFORM bdc_dynpro      USING 'SAPLV14A' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV130-SELKZ(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=WEIT'.
        PERFORM bdc_dynpro      USING 'SAPMV13A' '1595'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV13A-DATBI(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'KOMG-WERKS'
                                      wa_cust-werks.
        PERFORM bdc_field       USING 'KOMG-MATNR(01)'
                                      wa_cust-matnr.
        PERFORM bdc_field       USING 'KONP-KBETR(01)'
                                      wa_cust-kbetr.
        PERFORM bdc_field       USING 'KONP-KONWA(01)'
                                      'INR'.
        PERFORM bdc_field       USING 'RV13A-DATAB(01)'
                                      wa_cust-datab.
        PERFORM bdc_field       USING 'RV13A-DATBI(01)'
                                      wa_cust-datbi.
        PERFORM bdc_dynpro      USING 'SAPMV13A' '1595'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'KOMG-MATNR(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=SICH'.
        CALL TRANSACTION 'VK11' USING it_bdctab
                                 MODE p_mode
                               UPDATE p_update
                        MESSAGES INTO it_messagetab.
        IF sy-subrc = 0.
    *& reading success records to corresponding internal table
          READ TABLE it_messagetab WITH KEY msgtyp = 'S'.
          IF sy-subrc = 0.
           wa_sucrec-cnum = it_messagetab-msgv1.
            wa_sucrec-cnum = wa_cust-werks.
            wa_sucrec-cnam = wa_cust-matnr.
            APPEND wa_sucrec TO it_sucrec.
            CLEAR wa_sucrec.
          ENDIF.
        ELSE.
    *& reading error records to corresponding internal table
          READ TABLE it_messagetab WITH KEY msgtyp = 'E'.
          IF sy-subrc = 0.
            CALL FUNCTION 'FORMAT_MESSAGE'
              EXPORTING
                id  = sy-msgid
                no  = it_messagetab-msgnr
                v1  = it_messagetab-msgv1
                v2  = it_messagetab-msgv2
                v3  = it_messagetab-msgv3
                v4  = it_messagetab-msgv4
              IMPORTING
                msg = wa_errrec-message.
            wa_errrec-lineno = v_index.
            APPEND wa_errrec TO it_errrec.
            CLEAR wa_errrec.
          ENDIF.
        ENDIF.
        CLEAR : it_bdctab, it_messagetab.
        REFRESH: it_bdctab, it_messagetab.
      ENDLOOP.
      DESCRIBE TABLE it_cust LINES v_totrec.
      DESCRIBE TABLE it_errrec LINES v_errrec.
      DESCRIBE TABLE it_sucrec LINES v_sucrec.
      PERFORM disp_data.
      SKIP 2.
      IF v_sucrec > 0.
        PERFORM disp_success_data.
      ENDIF.
      SKIP 2.
      IF v_errrec > 0.
        PERFORM disp_error_data.
      ENDIF.
    *& Form bdc_dynpro
    text
    -->P_0104 text
    -->P_0105 text
    FORM bdc_dynpro USING program dynpro.
      CLEAR it_bdctab.
      it_bdctab-program  = program.
      it_bdctab-dynpro   = dynpro.
      it_bdctab-dynbegin = 'X'.
      APPEND it_bdctab.
    ENDFORM. " bdc_dynpro
    *& Form bdc_field
    FORM bdc_field USING fnam fval.
      CLEAR it_bdctab.
      it_bdctab-fnam = fnam.
      it_bdctab-fval = fval.
      APPEND it_bdctab.
    ENDFORM. " bdc_field
    *& Form disp_data
    FORM disp_data .
      ULINE (45).
      WRITE : / sy-vline,
      4 'FAMD Price Master UPDATE SUMMARY'(004) COLOR 1,
      45 sy-vline.
      ULINE /(45).
      WRITE : / sy-vline,
      'Total Records Processed'(007),
      28 '=',
      30 v_totrec,
      45 sy-vline,
      / sy-vline,
      'Error Records'(005),
      28 '=',
      30 v_errrec,
      45 sy-vline,
      / sy-vline,
      'Successful Records'(006),
      28 '=',
      30 v_sucrec,
      45 sy-vline.
      ULINE /(45).
    ENDFORM. " disp_data
    *& Form disp_success_data
    FORM disp_success_data .
      ULINE (45).
      WRITE : / sy-vline,
      14 'Successful Records'(012) COLOR 1,
      45 sy-vline.
      ULINE /(45).
      WRITE : / sy-vline ,
      'Plant Number'(010) COLOR 2,
      17 sy-vline,
      25 'Material Number'(011) COLOR 2,
      45 sy-vline.
      ULINE /(45).
      LOOP AT it_sucrec INTO wa_sucrec.
        WRITE: / sy-vline ,
        wa_sucrec-cnum,
        17 sy-vline,
        19 wa_sucrec-cnam,
        45 sy-vline.
      ENDLOOP.
      ULINE /(45).
    ENDFORM. " disp_success_data
    *& Form disp_error_data
    FORM disp_error_data .
      ULINE (90).
      WRITE : / sy-vline,
      35 'Error Records'(013) COLOR 1,
      90 sy-vline.
      ULINE /(90).
      WRITE : / sy-vline,
      'Record Number'(008) COLOR 2,
      sy-vline,
      37 'Reason for error'(009) COLOR 2,
      90 sy-vline.
      ULINE /(90).
      LOOP AT it_errrec INTO wa_errrec.
        WRITE : / sy-vline,
        wa_errrec-lineno,
        17 sy-vline,
        wa_errrec-message,
        90 sy-vline.
      ENDLOOP.
      ULINE /(90).
    ENDFORM. " disp_error_data
    Flat file Sequence:
    Condition Type     Plant     Matrial No     Rate      Validity start date     Validity end date

    Hi,
    I think you are using  'wa_cust-kbetr' directly while populating rate field in BDC.
    Please write wa_cust-kbetr into a character variable and pass the character variable to BDC.
    data: t_rate(16) type c.
    write wa_cust-kbetr to t_rate no-grouping.
    Pass t_rate instead of wa_cust-kbetr in the BDC.
    PERFORM bdc_field USING 'KONP-KBETR(01)'
          t_rate.
    Like wise you might have to write your date variables also.
    Thanks and regards,
    S. Chandramouli.

Maybe you are looking for

  • MRP run problem

    Hi experts, During MRP run for a material , open PO quantity is not considered If delivery date mentioned in that open PO exceeds 110 days from planning date(MRP run date). If it is less , it considers open PO quantity. MRP type = V1 (Reorder point p

  • Labview 7.1 crashes windows XP when using VI's saved with the 'Save for Previous Version' option available in Labview 8

    I am trying to work with a series of vi's developed in Labview 8 in Labview 7.1.  The code was saved with the 'Save for Previous Version' option available in Labview 8.  When trying to use the code in LV7.1 my entire Windows XP system locks up (curso

  • Just wow...

    As I stated in my last post, I'm new to the Apple world. My iTouch alone has replaced 90% of my Windows use and I'm looking to completely closing that "window" soon. So here is my question... I have the portability I need with the touch, so now I nee

  • My ipod was totally wiped when i last pulled it in. help!

    I can't get my iTunes to recognize my ipod. I can't get any of my music back on my ipod.

  • Zen touch Brok

    Hey guys I have had my zen touch since november... so i guess it is no longer under warranty. I was using it today, and all of a sudden the touch pad lost response, and will only sometimes let you scroll down... all upward scrolling does not work. I