You are on page 1of 4

HOW TO CREATE A BDC IF WE WANT TO

GENRATE KUNNR (CUSTOMER NUMBER)


AUTOMATIC.

report ZFD01
no standard page heading line-size 255.

TYPES: BEGIN OF STRU,


KUNNR(10) TYPE C,
BUKRS(4) TYPE C,
KTOKD(4) TYPE C,
ANRED(15) TYPE C,
NAME1(35) TYPE C,
LAND1(3) TYPE C,
SPRAS TYPE LANG,
AKONT(10) TYPE C,

END OF STRU.

DATA : ITAB TYPE TABLE OF STRU,


WA TYPE STRU.

DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA.

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.


* messages of call transaction
*DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PARAMETERS: P_FILE TYPE RLGRAP-FILENAME.

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
.

*include bdcrecx1.

start-of-selection.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'


EXPORTING
* I_FIELD_SEPERATOR =
* I_LINE_HEADER =
I_TAB_RAW_DATA = IT_RAW
I_FILENAME = P_FILE
TABLES
I_TAB_CONVERTED_DATA = ITAB
* EXCEPTIONS
* CONVERSION_FAILED = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

*perform open_group.

LOOP AT ITAB INTO WA.


REFRESH BDCDATA.

perform bdc_dynpro using 'SAPMF02D' '0105'.


perform bdc_field using 'BDC_CURSOR'
'RF02D-KTOKD'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02D-BUKRS'
WA-BUKRS."'TATA'.
perform bdc_field using 'RF02D-KTOKD'
WA-KTOKD. "'TATA'.
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'
WA-ANRED."'COMPANY'.
perform bdc_field using 'KNA1-NAME1'
WA-NAME1."'DEEPAK PVT LTD'.
perform bdc_field using 'KNA1-LAND1'
WA-LAND1. "'IN'.
perform bdc_field using 'KNA1-SPRAS'
WA-SPRAS."'EN'.
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' '0130'.
perform bdc_field using 'BDC_CURSOR'
'KNBK-BANKS(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'
WA-AKONT."'1002'.
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 'FD01'.

*perform close_group.

CALL TRANSACTION 'FD01' USING BDCDATA UPDATE 'A' MODE 'N'.


ENDLOOP.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.

You might also like