Monday, 22 April 2013

Classical Interactive Report

*&---------------------------------------------------------------------*
*& Report  ZR_INTEACTIVE_REPORT1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZR_INTEACTIVE_REPORT1.

TABLES: KNA1,VBAK,VBAP.

*************************** type declaration ****************
TYPES: BEGIN OF ST_VBAK,
              VBELN TYPE VBAK-VBELN,
              ERDAT TYPE VBAK-ERDAT,
              AUART TYPE VBAK-AUART,
              KUNNR TYPE VBAK-KUNNR,
              END OF ST_VBAK.

TYPES: BEGIN OF ST_KNA1,
             KUNNR TYPE KNA1-KUNNR,
             NAME1 TYPE KNA1-NAME1,
             LAND1 TYPE KNA1-LAND1,
             ORT01 TYPE KNA1-ORT01,
             END OF ST_KNA1.

TYPES: BEGIN OF ST_VBAP,
             VBELN TYPE VBAP-VBELN,
             POSNR TYPE VBAP-POSNR,
             MATNR TYPE VBAP-MATNR,
             NETWR TYPE VBAP-NETWR,
             END OF ST_VBAP.

********************internal table******************************
DATA: IT_VBAP TYPE TABLE OF ST_VBAP,
            WA_VBAP TYPE ST_VBAP,
            WA_VBAK TYPE ST_VBAK,
            WA_KNA1 TYPE ST_KNA1.

************************ selection screen statement **************
SELECT-OPTIONS: S_VBELN FOR VBAP-VBELN.

************************basic list *********************************
START-OF-SELECTION.

 SELECT VBELN POSNR MATNR NETWR FROM VBAP INTO TABLE IT_VBAP WHERE VBELN IN S_VBELN.
WRITE: / 'salse doc item details'.
SKIP 1.

 LOOP AT IT_VBAP INTO WA_VBAP.
WRITE: / WA_VBAP-VBELN COLOR 1 HOTSPOT,WA_VBAP-POSNR, WA_VBAP-MATNR, WA_VBAP-NETWR.
HIDE: WA_VBAP-VBELN.
  ENDLOOP.

************************secondary list **********************************
AT LINE-SELECTION.

  CASE SY-LSIND.
    WHEN 1.
      SELECT SINGLE VBELN ERDAT AUART KUNNR FROM VBAK INTO WA_VBAK WHERE VBELN = WA_VBAP-VBELN.
      WRITE: / 'salse doc header details'.
      SKIP 1.
      WRITE: / WA_VBAK-VBELN, WA_VBAK-ERDAT, WA_VBAK-AUART, WA_VBAK-KUNNR COLOR 2 HOTSPOT.
      HIDE: WA_VBAK-KUNNR.
    WHEN 2.
      WINDOW STARTING AT 10 10 ENDING AT 50 10.
      SELECT SINGLE KUNNR NAME1 LAND1 ORT01 FROM KNA1 INTO WA_KNA1 WHERE KUNNR = WA_VBAK-KUNNR.
      WRITE: / 'customer details'.
      WRITE: / WA_KNA1-KUNNR, WA_KNA1-NAME1, WA_KNA1-LAND1, WA_KNA1-ORT01.
    ENDCASE.


RESULT:





Thursday, 18 April 2013

ALV REPORT WITH HEADER

ALV REPORT WITH HEADER 

REPORT  ZR_ALV1.
TYPE-POOLS: SLIS.
*----------------------------------------------------------------------*
*     Data Decalaration
*----------------------------------------------------------------------*
DATA: IKNA1 TYPE TABLE OF KNA1.
DATA: G_REPID TYPE SY-REPID.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER,
      WA_LISTHEADER TYPE SLIS_LISTHEADER.
*----------------------------------------------------------------------*
*     START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
  G_REPID = SY-REPID.

  SELECT * FROM KNA1 INTO TABLE IKNA1.

  PERFORM BUILD_ALV_HEADER.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM     = G_REPID
      I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
      I_STRUCTURE_NAME       = 'KNA1'
    TABLES
      T_OUTTAB               = IKNA1.

*&---------------------------------------------------------------------*
*&      Form  BUILD_ALV_HEADER
*&---------------------------------------------------------------------*
FORM BUILD_ALV_HEADER .

*  Type H is used to display headers i.e. big font
  WA_LISTHEADER-TYP  = 'H'.
  WA_LISTHEADER-INFO ='Customer Details'.
  APPEND WA_LISTHEADER TO IT_LISTHEADER.
  CLEAR WA_LISTHEADER.

*  Type S is used to display key and value pairs
  WA_LISTHEADER-TYP = 'S'.
  WA_LISTHEADER-KEY = 'Date :' .
  CONCATENATE  SY-DATUM+6(2)
               SY-DATUM+4(2)
               SY-DATUM(4)
               INTO WA_LISTHEADER-INFO
               SEPARATED BY '/'.
  APPEND WA_LISTHEADER TO IT_LISTHEADER.
  CLEAR WA_LISTHEADER.

*  Type A is used to display italic font
  WA_LISTHEADER-TYP = 'A'.
  WA_LISTHEADER-INFO ='SAP ALV Report'.
  APPEND WA_LISTHEADER TO IT_LISTHEADER.
  CLEAR WA_LISTHEADER.
ENDFORM.                    " BUILD_ALV_HEADER
*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = IT_LISTHEADER.

ENDFORM.                    "top_of_page

RESULT:


ALV INTERACTIVE REPORT

ALV INTERACTIVE REPORT

*&---------------------------------------------------------------------*
*& Report  ZR_ALV_INTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZR_ALV_INTER.

TABLES: KNA1,VBAK,VBAP.
TYPE-POOLS: SLIS.

*********************************internal table*************************
TYPES: BEGIN OF ST_VBAK,
       VBELN TYPE VBAK-VBELN,
       ERDAT TYPE VBAK-ERDAT,
       ERNAM TYPE VBAK-ERNAM,
       AUART TYPE VBAK-AUART,
       VKORG TYPE VBAK-VKORG,
       END OF ST_VBAK.

TYPES: BEGIN OF ST_VBAP,
       VBELN TYPE VBAP-VBELN,
       POSNR TYPE VBAP-POSNR,
       MATNR TYPE VBAP-MATNR,
       NETWR TYPE VBAP-NETWR,
       END OF ST_VBAP.


DATA: IT_VBAP TYPE TABLE OF ST_VBAP,
      WA_VBAP TYPE ST_VBAP.

DATA: IT_VBAK TYPE TABLE OF ST_VBAK,
      WA_VBAK TYPE ST_VBAK.

******************************************fieldcatalog & layout*********************

DATA: IT_FC1 TYPE SLIS_T_FIELDCAT_ALV,
      WA_FC1 TYPE SLIS_FIELDCAT_ALV,
      LAY1 TYPE SLIS_LAYOUT_ALV.

DATA: IT_FC2 TYPE SLIS_T_FIELDCAT_ALV,
      WA_FC2 TYPE SLIS_FIELDCAT_ALV,
      LAY2 TYPE SLIS_LAYOUT_ALV.

***************************************variable**************************************
DATA: V_REPID TYPE SY-REPID.
 DATA: V_VBELN TYPE VBAK-VBELN.

****************************************events ****************************************
DATA: IT_EVE TYPE SLIS_T_EVENT,
      WA_EVE TYPE SLIS_ALV_EVENT.

**************************************selection screen******************************
PARAMETERS: P_VBELN TYPE VBAK-VBELN.

INITIALIZATION.
  V_REPID = SY-REPID.
  PERFORM FIELDCAT.

START-OF-SELECTION.
  PERFORM DATA_RET.
  PERFORM LAYOUT.
  PERFORM DISPLAY.


************************************basic list vbak details **************************

*&---------------------------------------------------------------------*
*&      Form  fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FIELDCAT.

  CLEAR WA_FC1.
  WA_FC1-FIELDNAME = 'VBELN'.
  WA_FC1-TABNAME = 'IT_VBAK'.
  WA_FC1-COL_POS = 0.
  WA_FC1-SELTEXT_L = 'SALSE DOC NO'.
  APPEND WA_FC1 TO IT_FC1.

  CLEAR WA_FC1.
  WA_FC1-FIELDNAME = 'ERDAT'.
  WA_FC1-TABNAME = 'IT_VBAK'.
  WA_FC1-COL_POS = 1.
  WA_FC1-SELTEXT_L = 'CREATED DATE'.
  APPEND WA_FC1 TO IT_FC1.

  CLEAR WA_FC1.
  WA_FC1-FIELDNAME = 'ERNAM'.
  WA_FC1-TABNAME = 'IT_VBAK'.
  WA_FC1-COL_POS = 2.
  WA_FC1-SELTEXT_L = 'CREATED BY'.
  APPEND WA_FC1 TO IT_FC1.

  CLEAR WA_FC1.
  WA_FC1-FIELDNAME = 'AUART'.
  WA_FC1-TABNAME = 'IT_VBAK'.
  WA_FC1-COL_POS = 3.
  WA_FC1-SELTEXT_L = 'DOC TYPE'.
  APPEND WA_FC1 TO IT_FC1.

  CLEAR WA_FC1.
  WA_FC1-FIELDNAME = 'VKORG'.
  WA_FC1-TABNAME = 'IT_VBAK'.
  WA_FC1-COL_POS = 4.
  WA_FC1-SELTEXT_L = 'SALSE ORGANIZATION'.
  APPEND WA_FC1 TO IT_FC1.

ENDFORM.                    "fieldcat


*&---------------------------------------------------------------------*
*&      Form  data_ret
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DATA_RET.
  SELECT VBELN ERDAT ERNAM AUART VKORG FROM VBAK INTO TABLE IT_VBAK WHERE VBELN = P_VBELN.
ENDFORM.                    "data_ret


*&---------------------------------------------------------------------*
*&      Form  LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM LAYOUT.
  LAY1-NO_INPUT = 'X'.

ENDFORM.                    "LAYOUT

*&---------------------------------------------------------------------*
*&      Form  DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*       I_INTERFACE_CHECK                 = ' '
*       I_BYPASSING_BUFFER                = ' '
*       I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = V_REPID
*       I_CALLBACK_PF_STATUS_SET          = ' '
       I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
*       I_CALLBACK_TOP_OF_PAGE            = ''
*       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*       I_CALLBACK_HTML_END_OF_LIST       = ' '
*       I_STRUCTURE_NAME                  =
*       I_BACKGROUND_ID                   = ' '
     I_GRID_TITLE                      = 'Salse header details(ALV BASIC LIST)'
*       I_GRID_SETTINGS                   =
     IS_LAYOUT                         = LAY1
     IT_FIELDCAT                       = IT_FC1
*       IT_EXCLUDING                      =
*       IT_SPECIAL_GROUPS                 =
*       IT_SORT                           =
*       IT_FILTER                         =
*       IS_SEL_HIDE                       =
*       I_DEFAULT                         = 'X'
       I_SAVE                            = 'X'
*       IS_VARIANT                        =
*       IT_EVENTS                         =
*       IT_EVENT_EXIT                     =
*       IS_PRINT                          =
*       IS_REPREP_ID                      =
*       I_SCREEN_START_COLUMN             = 0
*       I_SCREEN_START_LINE               = 0
*       I_SCREEN_END_COLUMN               = 0
*       I_SCREEN_END_LINE                 = 0
*       I_HTML_HEIGHT_TOP                 = 0
*       I_HTML_HEIGHT_END                 = 0
*       IT_ALV_GRAPHICS                   =
*       IT_HYPERLINK                      =
*       IT_ADD_FIELDCAT                   =
*       IT_EXCEPT_QINFO                   =
*       IR_SALV_FULLSCREEN_ADAPTER        =
*     IMPORTING
*       E_EXIT_CAUSED_BY_CALLER           =
*       ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = IT_VBAK
*     EXCEPTIONS
*       PROGRAM_ERROR                     = 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.                    "DISPLAY


**************************************secondary list vbap details ****************************************


*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_COMM       text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING R_COMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.
*  V_VBELN = RS_SELFIELD-VALUE.

  CASE R_COMM.
    WHEN '&IC1'.
*      IF RS_SELFIELD-FIELDNAME = 'VBELN'.
        READ TABLE IT_VBAK INTO WA_VBAK INDEX RS_SELFIELD-TABINDEX.
*      ENDIF.
      PERFORM GETDATA.
      PERFORM FIDCAT2.
      PERFORM DISPLAY2.

  ENDCASE.
ENDFORM.                    "USER_COMMAND
*&---------------------------------------------------------------------*
*&      Form  GETDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GETDATA.

  SELECT VBELN POSNR MATNR NETWR FROM VBAP INTO TABLE IT_VBAP WHERE VBELN = WA_VBAK-VBELN.
ENDFORM.                    "GETDATA

*&---------------------------------------------------------------------*
*&      Form  FIDCAT2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FIDCAT2.
  CLEAR WA_FC2.
  WA_FC2-FIELDNAME = 'VBELN'.
  WA_FC2-TABNAME = 'IT_VBAP'.
  WA_FC2-COL_POS = 0.
  WA_FC2-SELTEXT_L = 'SALSE DOC NO'.
  APPEND WA_FC2 TO IT_FC2.

  CLEAR WA_FC2.
  WA_FC2-FIELDNAME = 'POSNR'.
  WA_FC2-TABNAME = 'IT_VBAP'.
  WA_FC2-COL_POS = 1.
  WA_FC2-SELTEXT_L = 'SALSE DOC ITM'.
  APPEND WA_FC2 TO IT_FC2.

    CLEAR WA_FC2.
  WA_FC2-FIELDNAME = 'MATNR'.
  WA_FC2-TABNAME = 'IT_VBAP'.
  WA_FC2-COL_POS = 2.
  WA_FC2-SELTEXT_L = 'METIRIAL NO'.
  APPEND WA_FC2 TO IT_FC2.

    CLEAR WA_FC2.
  WA_FC2-FIELDNAME = 'NETWR'.
  WA_FC2-TABNAME = 'IT_VBAP'.
  WA_FC2-COL_POS = 3.
  WA_FC2-SELTEXT_L = 'NET VALUE CURR'.
  APPEND WA_FC2 TO IT_FC2.

ENDFORM.                                                    "FIDCAT2

*&---------------------------------------------------------------------*
*&      Form  DISPLAY2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY2.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = 'V_REPID'
*     I_CALLBACK_PF_STATUS_SET          = ' '
*     I_CALLBACK_USER_COMMAND           = ' '
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME                  =
*     I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      = 'Salse item details(SECONDARY LIST)'
*     I_GRID_SETTINGS                   =
*     IS_LAYOUT                         =
     IT_FIELDCAT                       = IT_FC2
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     IT_SORT                           =
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     I_DEFAULT                         = 'X'
*     I_SAVE                            = ' '
*     IS_VARIANT                        =
*     IT_EVENTS                         = IT_EVE
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = IT_VBAP
*   EXCEPTIONS
*     PROGRAM_ERROR                     = 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.

   refresh it_fc2.
   clear wa_fc2.
ENDFORM.                                                    "DISPLAY2

RESULT:


 Put the sales doc no then execute.


Then after the output list (VBAK) is displayed.
If we are double clicking the sales doc no ,
the secondary list ( VBAP) is displayed.
   

This is secondary list vbap details.


Tuesday, 4 December 2012

BDC-Call Transaction method


BDC (Batch Data Communication):

       It Transfers or upload the data’s(records) from Legacy(Non SAP) system to SAP system.
 Batch input means bulk amount of data. It is a programming method. 

Types: It has two types
 1. CALL TRANSACTION METHOD.
 2. SESSION METHOD (CLASSICAL).

Call Transaction method:
          1. synchronous Processing. (Data or record)
2. Synchronous and Asynchronous database updates.
3. Transfer of data for individual transaction.
4. This is more faster than session method.
5. Not suited for bulk transfer.
6. No automatic error handling.
7. Error logs are not created.
8. The value of sy-subrc returned to 0 if successful.
9. The system won't store data for later processing. This is online processing. 
10. It can handle small amount of data.
11. Function modules :
üF4_FILENAME ( Open the legacy file [.txt or .xls]) .
üTEXT_CONVERT_XSL_TO_SAP ( Convert the .xls file to sap format) : Using for only .xls files.
üGUI_UPLOAD : Using for only .txt files.

Step-by-Step creation:
vCreate the recording :
·        Using   T-code SHDB.
·        Click new recording then put the recoding name and transaction code (xd01 – customer, xk01- vender, mm01 –material master creation)  then click continue or press enter.
·        Thereafter put all the required data’s into the transaction screen.  Note: Must provide the mandatory fields data’s.
·        After finished recording to save and come back.
·        Select your record then click program button.
vTransfer the recording to ABAP Editor (SE38).
·        Put the program name in the pop up window then click continue or press enter.
·        Automatically open the report in se38.
vDefine the type-pools and call the function modules.

Example 1: (call transaction to upload .xls file data) customer master creation
REPORT ZBDC_VAI
       
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE BDCRECX1.

TYPE-POOLS TRUXS. “This is use to data conversion in TEXT_CONVERT_XLS_TO_SAP.

***************internal table**************************************
DATA: BEGIN OF RECORD OCCURS 0,
* data element: BUKRS
        BUKRS_001
(004),
* data element: KTOKD
        KTOKD_002
(004),
* data element: NAME1_GP
        NAME1_003
(035),
* data element: LAND1_GP
        LAND1_004
(003),
* data element: REGIO
        REGIO_005
(003),
* data element: SPRAS
        SPRAS_006
(002),
* data element: CIVVE
        CIVVE_007
(001),
* data element: AKONT
        AKONT_008
(010),
      
END OF RECORD.

*** End generated data section ***

DATA IT_RAW TYPE TRUXS_T_TEXT_DATA.
PARAMETERS PATH TYPE RLGRAP-FILENAME OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PATH.
  
CALL FUNCTION 'F4_FILENAME'
   
EXPORTING
     PROGRAM_NAME        
= SYST-CPROG
     DYNPRO_NUMBER       
= SYST-DYNNR
     FIELD_NAME          
= 'PATH'
   
IMPORTING
     FILE_NAME           
= PATH
            .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
  
EXPORTING
*   I_FIELD_SEPERATOR          =
*   I_LINE_HEADER              =
    I_TAB_RAW_DATA             
= IT_RAW
    I_FILENAME                 
= PATH
  
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.
START-OF-SELECTION.
LOOP AT RECORD.

  
PERFORM OPEN_GROUP.

    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0100'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'RF02D-KTOKD'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_FIELD       USING 'RF02D-BUKRS'
                                  RECORD
-BUKRS_001.
    
PERFORM BDC_FIELD       USING 'RF02D-KTOKD'
                                  RECORD
-KTOKD_002.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0110'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNA1-REGIO'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_FIELD       USING 'KNA1-NAME1'
                                  RECORD
-NAME1_003.
    
PERFORM BDC_FIELD       USING 'KNA1-LAND1'
                                  RECORD
-LAND1_004.
    
PERFORM BDC_FIELD       USING 'KNA1-REGIO'
                                  RECORD
-REGIO_005.
    
PERFORM BDC_FIELD       USING 'KNA1-SPRAS'
                                  RECORD
-SPRAS_006.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0120'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNA1-LIFNR'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0125'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNA1-NIELS'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0130'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNBK-BANKS(01)'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'=ENTR'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0340'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'RF02D-KUNNR'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'=ENTR'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0370'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'RF02D-KUNNR'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'=ENTR'.
    
PERFORM BDC_FIELD       USING 'KNA1-CIVVE'
                                  RECORD
-CIVVE_007.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0360'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNVK-NAMEV(01)'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'=ENTR'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0210'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNB1-AKONT'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_FIELD       USING 'KNB1-AKONT'
                                  RECORD
-AKONT_008.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0215'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNB1-ZTERM'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0220'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNB5-MAHNA'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0230'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'KNB1-VRSNR'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0610'.
    
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  
'/00'.
    
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  
'RF02D-KUNNR'.
    
PERFORM BDC_TRANSACTION USING 'XD01'.

  
PERFORM CLOSE_GROUP.

  
ENDLOOP.
Excel sheet data: ( .xls file)
1000  ZMUM       RAJ1   IN   20      EN    x        16443100  
1000  ZMUM       RAJ2   IN    20      EN    x        16443100  


Example 2: (call transaction to upload .txt file data) customer master creation:

report ZBDC_VAI  no standard page heading line-size 255.

include bdcrecx1.
data: begin of record OCCURS 0,
* data element: BUKRS
        BUKRS_001
(004),
* data element: KTOKD
        KTOKD_002
(004),
* data element: ANRED
        ANRED_003
(015),
* data element: NAME1_GP
        NAME1_004
(035),
* data element: LAND1_GP
        LAND1_005
(003),
* data element: SPRAS
        SPRAS_006
(002),
* data element: CIVVE
        CIVVE_007
(001),
* data element: AKONT
        AKONT_008
(010),
      
end of record.

*** End generated data section ***

data: file1 TYPE string.

PARAMETERS: file TYPE rlgrap-filename OBLIGATORY.
AT SELECTION-SCREEN on VALUE-REQUEST FOR file.

 
CALL FUNCTION 'F4_FILENAME'
   
EXPORTING
     PROGRAM_NAME        
= SYST-CPROG
     DYNPRO_NUMBER       
= SYST-DYNNR
     FIELD_NAME          
= 'file'
   
IMPORTING
     FILE_NAME           
= file
            .

file1 = file.

 
CALL FUNCTION 'GUI_UPLOAD'
   
EXPORTING
     FILENAME                      
= file1
   FILETYPE                      
= 'ASC'
   HAS_FIELD_SEPARATOR           
= 'x'
*    HEADER_LENGTH                 = 0
*    READ_BY_LINE                  = 'X'
*    DAT_MODE                      = ' '
*    CODEPAGE                      = ' '
*    IGNORE_CERR                   = ABAP_TRUE
*    REPLACEMENT                   = '#'
*    CHECK_BOM                     = ' '
*    VIRUS_SCAN_PROFILE            =
*    NO_AUTH_CHECK                 = ' '
*  IMPORTING
*    FILELENGTH                    =
*    HEADER                        =
   
TABLES
     DATA_TAB                      
= 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.

start-of-selection.

loop at record.

perform open_group.

perform bdc_dynpro      using 'SAPMF02D' '0100'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF02D-KTOKD'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_field       using 'RF02D-BUKRS'
                              record
-BUKRS_001.
perform bdc_field       using 'RF02D-KTOKD'
                              record
-KTOKD_002.
perform bdc_dynpro      using 'SAPMF02D' '0110'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNA1-SPRAS'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_field       using 'KNA1-ANRED'
                              record
-ANRED_003.
perform bdc_field       using 'KNA1-NAME1'
                              record
-NAME1_004.
perform bdc_field       using 'KNA1-LAND1'
                              record
-LAND1_005.
perform bdc_field       using 'KNA1-SPRAS'
                              record
-SPRAS_006.
perform bdc_dynpro      using 'SAPMF02D' '0120'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNA1-LIFNR'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_dynpro      using 'SAPMF02D' '0125'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNA1-NIELS'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_dynpro      using 'SAPMF02D' '0130'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNBK-BANKS(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTR'.
perform bdc_dynpro      using 'SAPMF02D' '0340'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF02D-KUNNR'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTR'.
perform bdc_dynpro      using 'SAPMF02D' '0370'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF02D-KUNNR'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTR'.
perform bdc_field       using 'KNA1-CIVVE'
                              record
-CIVVE_007.
perform bdc_dynpro      using 'SAPMF02D' '0360'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNVK-NAMEV(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTR'.
perform bdc_dynpro      using 'SAPMF02D' '0210'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNB1-AKONT'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_field       using 'KNB1-AKONT'
                              record
-AKONT_008.
perform bdc_dynpro      using 'SAPMF02D' '0215'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNB1-ZTERM'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_dynpro      using 'SAPMF02D' '0220'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNB5-MAHNA'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_dynpro      using 'SAPMF02D' '0230'.
perform bdc_field       using 'BDC_CURSOR'
                              
'KNB1-VRSNR'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_dynpro      using 'SAPMF02D' '0610'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF02D-KUNNR'.
perform bdc_transaction using 'XD01'.

perform close_group.

ENDLOOP.

Record: ( .txt file)

1000  ZMUM       mr     RAJ1   IN   EN    x        16443100  
1000  ZMUM       mr     RAJ2   IN    EN    x        16443100