Sei sulla pagina 1di 6

A B A P&W E B D Y N P R O A B A P @ A R J U N IGROWSOFT

BDC with Table control


Business Requirement:
Add Bank data to the existing vendors in SAP. The data is given by the client as per the below
format.

Step1: Create Vendors in SAP using XK01 Tcode.

Steps: Prepare the flat file as per the below format.

1204 DE 23022200 123456705

1204 DE 23984899 123456706

1204 DE 30080000 123456703

1204 DE 30080000 123456704

1204 DE 50000001 123456702

1204 DE 56565656 123456701

1205 DE 23022200 123456705

1205 DE 23984899 123456706

1205 DE 30080000 123456703

1205 DE 30080000 123456704

1205 DE 50000001 123456702

1205 DE 56565656 123456701

REPORT ZBDC_WITH_TBCL2.

TYPES : BEGIN OF TY_FILE,

LIFNR TYPE LFBK-LIFNR,

BANKS TYPE LFBK-BANKS,

BANKL TYPE LFBK-BANKL,

BANKN TYPE LFBK-BANKN,

END OF TY_FILE.

ARJUN.LEARN REAL TIME SCENARIOS DONE BY ME Page 1


A B A P&W E B D Y N P R O A B A P @ A R J U N IGROWSOFT

DATA : I_FILE TYPE TABLE OF TY_FILE .

DATA : WA_FILE TYPE TY_FILE .

data : wa_options type ctu_params .

DATA : V_COUNT TYPE CHAR2 .

DATA : V_FIELD_NAME TYPE STRING .

data : bdcdata type bdcdata occurs 0 with header line .

data : messtab type bdcmsgcoll occurs 0 with header line .

data : lv_msg type string .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\VENDORS_BANK.TXT'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = I_FILE.

LOOP AT I_FILE INTO WA_FILE.

AT NEW LIFNR. "AT NEW MEANS...BELOW LOGIC EXECUTES ONLY WHEN THERE IS A NEW VENDOR

perform bdc_dynpro using 'SAPMF02K' '0101'.

perform bdc_field using 'BDC_CURSOR' 'RF02K-D0130'.

perform bdc_field using 'BDC_OKCODE' '/00'.

perform bdc_field using 'RF02K-LIFNR' WA_FILE-LIFNR.

perform bdc_field using 'RF02K-D0130' 'X'.

ARJUN.LEARN REAL TIME SCENARIOS DONE BY ME Page 2


A B A P&W E B D Y N P R O A B A P @ A R J U N IGROWSOFT

****BANK DATA SCREEN '0130' STARTS FROM HERE

perform bdc_dynpro using 'SAPMF02K' '0130'.

perform bdc_field using 'BDC_CURSOR' 'LFBK-BANKN(05)'.

perform bdc_field using 'BDC_OKCODE' 'ENTR'.

V_COUNT = '0' .

LOOP AT I_FILE INTO WA_FILE WHERE LIFNR = WA_FILE-LIFNR.

V_COUNT = V_COUNT + 1 .

CONCATENATE 'LFBK-BANKS' '(' V_COUNT ')' INTO V_FIELD_NAME .

perform bdc_field using V_FIELD_NAME WA_FILE-BANKS.

CONCATENATE 'LFBK-BANKL' '(' V_COUNT ')' INTO V_FIELD_NAME .

perform bdc_field using V_FIELD_NAME WA_FILE-BANKL.

CONCATENATE 'LFBK-BANKN' '(' V_COUNT ')' INTO V_FIELD_NAME .

perform bdc_field using V_FIELD_NAME WA_FILE-BANKN.

IF V_COUNT = '5' .

V_COUNT = '0' .

perform bdc_dynpro using 'SAPMF02K' '0130'.

perform bdc_field using 'BDC_CURSOR' 'LFBK-BANKS(01)'.

perform bdc_field using 'BDC_OKCODE' '=P+'.

perform bdc_dynpro using 'SAPMF02K' '0130'.

perform bdc_field using 'BDC_CURSOR' 'LFBK-BANKN(01)'.

ENDIF .

ENDLOOP.

perform bdc_field using 'BDC_OKCODE' '=UPDA'.

ARJUN.LEARN REAL TIME SCENARIOS DONE BY ME Page 3


A B A P&W E B D Y N P R O A B A P @ A R J U N IGROWSOFT

wa_options-dismode = 'A' .

wa_options-updmode = 'S' .

wa_options-defsize = 'X' . "SET THE DEFAULT SCREEN SIZE

call transaction 'XK02' using bdcdata

options from wa_options

messages into messtab .

if sy-subrc = 0 .

read table messtab with key msgtyp = 'S' .

call function 'FORMAT_MESSAGE'

EXPORTING

id = messtab-msgid

lang = sy-langu

no = messtab-msgnr

v1 = messtab-msgv1

v2 = messtab-msgv2

v3 = messtab-msgv3

v4 = messtab-msgv4

IMPORTING

msg = lv_msg.

write / lv_msg color 5 .

else.

loop at messtab.

ARJUN.LEARN REAL TIME SCENARIOS DONE BY ME Page 4


A B A P&W E B D Y N P R O A B A P @ A R J U N IGROWSOFT

call function 'FORMAT_MESSAGE'

EXPORTING

id = messtab-msgid

lang = sy-langu

no = messtab-msgnr

v1 = messtab-msgv1

v2 = messtab-msgv2

v3 = messtab-msgv3

v4 = messtab-msgv4

IMPORTING

msg = lv_msg.

write / lv_msg color 6 .

endloop.

endif .

refresh bdcdata .

refresh messtab .

clear bdcdata .

clear messtab .

ENDAT .

ENDLOOP .

* *----------------------------------------------------------------------*

* Start new screen *

ARJUN.LEARN REAL TIME SCENARIOS DONE BY ME Page 5


A B A P&W E B D Y N P R O A B A P @ A R J U N IGROWSOFT

*----------------------------------------------------------------------*

form bdc_dynpro using program dynpro.

clear bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

append bdcdata.

endform. "bdc_dynpro

*----------------------------------------------------------------------*

* Insert field *

*----------------------------------------------------------------------*

form bdc_field using fnam fval.

clear bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

append bdcdata.

endform. "bdc_field

ARJUN.LEARN REAL TIME SCENARIOS DONE BY ME Page 6

Potrebbero piacerti anche