BDC ( Batch Data Communication ) -------------------------------- --> Every BDc program take it as a Executable Program. Legacy File ----> BDC Program ----> SAP DB --> We Have 3 Methods 1. Call Transaction` 2. Session Method 3. LSMW --> Two Types of files in SAP 1. Legacy File or local File -- Placed at Presentation Server ( DESKTOP ) 2. Sequential File. -- Placed at Application Server ( WITH IN SAP ) --> All the Sequential files are stored in AL11 tcode. --> There are 2 types of file formats 1. ASC -- No Saperator between fields 2. DAT -- Fields are saperated by TAB space --> Local Files data is uploaded into Internal table using FM GUI_UPLOAD. --> Local Files data is downloaded from Internal table using FM GUI_DOWNLOAD. Presentation Server( Local Files ) ---------------------------------- UPLOAD: ------ Two parameters 1. File Path ( c:/....... ) 2. File Type ( ASC, DAT ) EXAMPLE For UPLOAD ************************* *&---------------------------------------------------------------------*
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
BDC ( Batch Data Communication ) ----------------------------------> Every BDc program take it as a Executable Program.
Legacy File ----> BDC Program ----> SAP DB
--> We Have 3 Methods
1. Call Transaction` 2. Session Method 3. LSMW
--> Two Types of files in SAP
1. Legacy File or local File -- Placed at Presentation Server ( DESKTOP ) 2. Sequential File. -- Placed at Application Server ( WITH IN SAP ) --> All the Sequential files are stored in AL11 tcode.
--> There are 2 types of file formats
1. ASC -- No Saperator between fields 2. DAT -- Fields are saperated by TAB space
--> Local Files data is uploaded into Internal table using FM GUI_UPLOAD.--> Local Files data is downloaded from Internal table using FM GUI_DOWNLOAD.
Presentation Server( Local Files )----------------------------------
UPLOAD:------ Two parameters
1. File Path ( c:/....... ) 2. File Type ( ASC, DAT )
EXAMPLE For UPLOAD *************************
*&---------------------------------------------------------------------**& SELECTION-SCREEN*&---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.PARAMETERS : p_fname LIKE rlgrap-filename.SELECTION-SCREEN END OF BLOCK bk1.
*&---------------------------------------------------------------------*TYPES: BEGIN OF t_lfa1, lifnr TYPE lfa1-lifnr, name1 TYPE lfa1-name1, land1 TYPE lfa1-land1, END OF t_lfa1.
*&---------------------------------------------------------------------**& DATA*&---------------------------------------------------------------------*DATA: i_lfa1 TYPE STANDARD TABLE OF t_lfa1, wa_lfa1 type t_lfa1,
* Need to declare file name type as STRING to match with fucntion* module import parameters type
v_fname type string.
*&---------------------------------------------------------------------**& INITIALIZATION*&---------------------------------------------------------------------*INITIALIZATION.* Initializing the File Name p_fname = 'C:\temp\'.
*&---------------------------------------------------------------------**& AT SELECTION SCREEN*&---------------------------------------------------------------------*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
*&---------------------------------------------------------------------**& START-OF-SELECTION*&---------------------------------------------------------------------*START-OF-SELECTION. " Start of selection os Mandatory
MOVE: p_fname TO v_fname.
* Upload data from flat file and store it in an Internal table
LOOP AT i_lfa1 INTO wa_lfa1. WRITE:/ wa_lfa1-lifnr, wa_lfa1-name1, wa_lfa1-land1. ENDLOOP.
************* EXAMPLE FOR DOWNLOAD *************************
*&---------------------------------------------------------------------**& SELECTION-SCREEN*&---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.PARAMETERS : p_fname LIKE rlgrap-filename.SELECTION-SCREEN END OF BLOCK bk1.
*&---------------------------------------------------------------------**& TYPES*&---------------------------------------------------------------------*TYPES: BEGIN OF t_lfa1, lifnr TYPE lfa1-lifnr, name1 TYPE lfa1-name1, land1 TYPE lfa1-land1, END OF t_lfa1.
*&---------------------------------------------------------------------**& DATA*&---------------------------------------------------------------------*DATA: i_lfa1 TYPE STANDARD TABLE OF t_lfa1, wa_lfa1 type t_lfa1,
* Need to declare file name type as STRING to match with fucntion* module import parameters type
v_fname type string.
*&---------------------------------------------------------------------**& INITIALIZATION*&---------------------------------------------------------------------*INITIALIZATION.* Initializing the File Name p_fname = 'C:\temp\'.
*&---------------------------------------------------------------------**& AT SELECTION SCREEN*&---------------------------------------------------------------------*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
BDC - Session MethodBDC (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 (C L A S S I C A L ) .
Session Method:1. Asynchronous Processing.2. Synchronous database updates.3. Transfer of data for multiple transactions. Using FM bdc_insert.4. As compared to call transaction, this is slow.5. Best suited for bulk transfer.6. Automatic error handling.7. Error logs are created.8. The value of sy-subrc is never returned. Because records are stored temporary in session and after the records are updated to the database. 9. You can store the sessions and it can be used for later processing. 10. it can handle small amount of data as well as large 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.BDC_OPEN_GROUP : To create a new session.(No session 1).BDC_INSERT : To add a transaction to a batch input session.BDC_CLOSE_GROUP : To close the session.
Example 1: Session method ( .txt file) Customer(xd01) master creation:report ZRBDC_XD01_RAJA 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: SORTL SORTL_005(010),* data element: ORT01_GP ORT01_006(035),* data element: PSTLZ PSTLZ_007(010),* data element: LAND1_GP LAND1_008(003),* data element: REGIO REGIO_009(003),* data element: SPRAS SPRAS_010(002),* data element: CIVVE CIVVE_011(001),* data element: AKONT AKONT_012(010), end of record.
CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT* DEST = FILLER8 GROUP = 'demo' "LOGON USERNAME* HOLDDATE = FILLER8 KEEP = 'X' USER = SY-UNAME* RECORD = FILLER1* PROG = SY-CPROG* 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.
*** End generated data section ***
start-of-selection.
*perform open_group.
LOOP AT RECORD.
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-SORTL' record-SORTL_005.perform bdc_field using 'KNA1-ORT01' record-ORT01_006.perform bdc_field using 'KNA1-PSTLZ' record-PSTLZ_007.perform bdc_field using 'KNA1-LAND1' record-LAND1_008.perform bdc_field using 'KNA1-REGIO' record-REGIO_009.perform bdc_field using 'KNA1-SPRAS' record-SPRAS_010.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_011.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_012.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_transaction using 'XD01'.
record: (.txt file):1000 YB01 mr RAJA50 IN NAGERCOIL 629401 IN 18 EN X 191031031000 YB01 mr RAJA51 IN NAGERCOIL 629401 IN 18 EN X 19103103
Example 2: Session method ( .xls file) Customer(xd01) master creation:report ZRBDC_XD01_RAJA no standard page heading line-size 255.
*include bdcrecx1.TYPE-POOLS TRUXS. “This is use to data conversion in TEXT_CONVERT_XLS_TO_SAP.
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: SORTL SORTL_005(010),* data element: ORT01_GP ORT01_006(035),* data element: PSTLZ PSTLZ_007(010),* data element: LAND1_GP LAND1_008(003),* data element: REGIO REGIO_009(003),* data element: SPRAS SPRAS_010(002),* data element: CIVVE CIVVE_011(001),* data element: AKONT AKONT_012(010), end of record.
CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT* DEST = FILLER8 GROUP = 'demo' "LOGON USERNAME* HOLDDATE = FILLER8 KEEP = 'X' USER = SY-UNAME* RECORD = FILLER1* PROG = SY-CPROG* 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.
*** End generated data section ***
start-of-selection.
*perform open_group.
LOOP AT RECORD.
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-SORTL' record-SORTL_005.perform bdc_field using 'KNA1-ORT01' record-ORT01_006.perform bdc_field using 'KNA1-PSTLZ' record-PSTLZ_007.perform bdc_field using 'KNA1-LAND1' record-LAND1_008.perform bdc_field using 'KNA1-REGIO' record-REGIO_009.perform bdc_field using 'KNA1-SPRAS' record-SPRAS_010.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_011.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_012.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_transaction using 'XD01'.
record: (.txt file):1000 YB01 mr RAJA50 IN NAGERCOIL 629401 IN 18 EN X 191031031000 YB01 mr RAJA51 IN NAGERCOIL 629401 IN 18 EN X 19103103
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 (C L A S S I C A L ) .
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:Create 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.Transfer 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.Define the type-pools and call the function modules.
Example 1: (call transaction to upload .xls file data) customer master creationREPORT 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.
* 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
DATA: BEGIN OF IT_VBAP OCCURS 10, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-VBELN, END OF IT_VBAP.DATA: FC TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
PARAMETERS: P_VBELN TYPE VBAP-VBELN.
SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE IT_VBAP WHERE VBELN = P_VBELN.
PERFORM FIELDCAT.PERFORM DISPLAY.
*&---------------------------------------------------------------------**& Form fieldcat*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM FIELDCAT.
FC-FIELDNAME = 'VBELN'. FC-SELTEXT_L = 'salse doc no'. APPEND FC. CLEAR FC.
FC-FIELDNAME = 'POSNR'. FC-SELTEXT_L = 'salse doc ITEM'. APPEND FC. CLEAR FC.
ALV Interactive report 3 list *&---------------------------------------------------------------------**& Report ZR_ALV_INETR_PO*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZR_ALV_INETR_PO_3LIST.
TABLES: EKKO, EKPO,LFA1.TYPE-POOLS: SLIS.TYPES: BEGIN OF ST_EKKO, EBELN TYPE EKKO-EBELN, BUKRS TYPE EKKO-BUKRS, BSTYP TYPE EKKO-BSTYP, BSART TYPE EKKO-BSART,
LIFNR TYPE EKKO-LIFNR, ERNAM TYPE EKKO-ERNAM, AEDAT TYPE EKKO-BEDAT, END OF ST_EKKO.
TYPES: BEGIN OF ST_EKPO, EBELN TYPE EKPO-EBELN, EBELP TYPE EKPO-EBELP, MATNR TYPE EKPO-MATNR, MENGE TYPE EKPO-MENGE, NETPR TYPE EKPO-NETPR, END OF ST_EKPO.
DATA: IT_EKKO TYPE TABLE OF ST_EKKO, IT_EKPO TYPE TABLE OF ST_EKPO, WA_EKKO TYPE ST_EKKO, WA_EKPO TYPE ST_EKPO.
DATA: IT_FC1 TYPE SLIS_T_FIELDCAT_ALV, IT_FC2 TYPE SLIS_T_FIELDCAT_ALV, WA_FC1 TYPE SLIS_FIELDCAT_ALV, WA_FC2 TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LH1 TYPE SLIS_T_LISTHEADER, IT_LH2 TYPE SLIS_T_LISTHEADER, WA_LH1 TYPE SLIS_LISTHEADER, WA_LH2 TYPE SLIS_LISTHEADER, LINE TYPE I, LINE1(10) TYPE C, T_LINE LIKE WA_LH1-INFO.
form USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELF TYPE SLIS_SELFIELD. CASE R_UCOMM. WHEN '&IC1'. READ TABLE IT_EKPO INTO WA_EKPO INDEX RS_SELF-TABINDEX. PERFORM FIELDCAT2. PERFORM GETDATA2. PERFORM DISPLAY2. ENDCASE.ENDFORM.
FORM GETDATA2. SELECT EBELN BUKRS BSTYP BSART ERNAM AEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE IT_EKKO WHERE EBELN = WA_EKPO-EBELN.ENDFORM.