Skip to Content
-1
Jun 22, 2018 at 06:23 AM

BDC-recording, only 1 entries captured, multiple selection of select option

631 Views

Dear All,

We have create a BDC for Z Tcode for multiple line item. one item updated successfully. after update one line item then BDC not working. if am entry /N then BDC update next line time. please check below Source code and give me idea.

report Z_ZPP005_AMB

    no standard page heading line-size 255.
TYPE-POOLS: SOI,TRUXS.
TYPES: BEGIN OF TY_ZNDEF_TAB,

       TRMB     TYPE ZNDEF_TAB-TRMB,
       ORDERNO  TYPE ZNDEF_TAB-ORDERNO,
       STATUS   TYPE ZNDEF_TAB-STATUS,
  END OF TY_ZNDEF_TAB.

DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA.
DATA : IT_ZNDEF_TAB TYPE TABLE OF TY_ZNDEF_TAB,
       WA_ZNDEF_TAB TYPE TY_ZNDEF_TAB.


DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,
       WA_BDCDATA TYPE BDCDATA.
DATA : IT_BDCMSG TYPE TABLE OF BDCMSGCOLL,
       WA_BDCMSG TYPE BDCMSGCOLL.

PARAMETERS : P_FILE TYPE LOCALFILE.


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.

DATA: L_FILE TYPE STRING.
      L_FILE = P_FILE.

      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

        EXPORTING
*         I_FIELD_SEPERATOR          =
         I_LINE_HEADER              = 'X'
          I_TAB_RAW_DATA             = IT_RAW
          I_FILENAME                 = P_FILE
        TABLES
          I_TAB_CONVERTED_DATA       = IT_ZNDEF_TAB
*       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.
LOOP AT IT_ZNDEF_TAB INTO WA_ZNDEF_TAB.
CLEAR WA_BDCDATA.
REFRESH IT_BDCDATA.

*perform open_group.

perform bdc_dynpro      using 'ZRND_STS_CNG' '1000'.
perform bdc_field       using 'BDC_CURSOR'
                              'P_TRMB'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ONLI'.
perform bdc_field       using 'P_TRMB'
                              WA_ZNDEF_TAB-TRMB.
perform bdc_dynpro      using 'ZRND_STS_CNG' '9000'.
perform bdc_field       using 'BDC_CURSOR'
                              'G_STATUS'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BTTN_SAVE'.
perform bdc_field       using 'G_ORDERNO'
                              WA_ZNDEF_TAB-ORDERNO.
perform bdc_field       using 'G_STATUS'
                              WA_ZNDEF_TAB-STATUS.
*perform bdc_transaction using 'ZPP005'.
*perform close_group.

CALL TRANSACTION 'ZPP005' USING IT_BDCDATA MODE 'A' UPDATE 'A' MESSAGES INTO IT_BDCMSG.

IF SY-SUBRC = 0.
  WRITE:/ WA_ZNDEF_TAB-TRMB, 'SUBMITTED TO BDC'.
  ENDIF.
  ENDLOOP.
**************************************************************
*       FORM BDC_DYNPRO
**************************************************************

FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
      WA_BDCDATA-PROGRAM = PROGRAM.
      WA_BDCDATA-DYNPRO  = DYNPRO.
      WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.
***************************************************************
*      FORM BDC_FIELD
***************************************************************

FORM BDC_FIELD USING FNAM FVAL.
  CLEAR WA_BDCDATA.
  WA_BDCDATA-FNAM = FNAM.
  WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.