You are on page 1of 7

include z037_bdc_customer.

FUNCTION ZBAPI_CUSTOMER_MASTER.
*"---------------------------------------------------------------------*"*"Local Interface:
*" EXPORTING
*"
VALUE(RETURN) TYPE BAPIRET2
*"---------------------------------------------------------------------*call TRANSACTION 'XD01'.
"Structure for customer master (XD01)
types: BEGIN OF TY_XD01,
* data element: KUN16
KUNNR(016) TYPE C,
* data element: BUKRS
BUKRS(004) TYPE C,
* data element: KTOKD
KTOKD(004) TYPE C,
* data element: NAME1_GP
NAME1(035) TYPE C,
* data element: SORTL
SORTL(010) TYPE C,
* data element: ORT01_GP
ORT01(035) TYPE C,
* data element: LAND1_GP
LAND1(003) TYPE C,
* data element: SPRAS
SPRAS(002) TYPE C,
* data element: PFACH
PFACH(010) TYPE C,
* data element: PSTLZ
PSTLZ(010) TYPE C,
* data element: PSTL2
PSTL2(010) TYPE C,
* data element: LZONE
LZONE(010) TYPE C,
* data element: NIELS
NIELS(002) TYPE C,
* data element: KUKLA
KUKLA(002) TYPE C,
* data element: BRSCH
BRSCH(004) TYPE C,
* data element: BRAN1_D
BRAN1(010) TYPE C,
* data element: PERIV
PERIV(002) TYPE C,
* data element: GFORM
GFORM(002) TYPE C,
* data element: BANKS
BANKS(003) TYPE C,
* data element: BANKK
BANKL(015) TYPE C,
* data element: BANKN
BANKN(018) TYPE C,
* data element: CIVVE
CIVVE(001) TYPE C,
* data element: AKONT
AKONT(010) TYPE C,
* data element: DZUAWA
ZUAWA(003) TYPE C,

* data element: KNRZE


KNRZE(010) TYPE C,
* data element: FDGRV
FDGRV(010) TYPE C,
* data element: WBRSL
WBRSL(002) TYPE C,
* data element: VZSKZ
VZSKZ(002) TYPE C,
* data element: DZINDT
ZINDT(010) TYPE C,
* data element: DZINRT
ZINRT(002) TYPE C,
* data element: DATLZ
DATLZ(010) TYPE C,
* data element: EKVBD
EKVBD(010) TYPE C,
* data element: DZTERM
ZTERM(004) TYPE C,
* data element: TOGRU
TOGRU(004) TYPE C,
* data element: WAKON
WAKON(004) TYPE C,
* data element: DZWELS
ZWELS(010) TYPE C,
* data element: DZAHLS
ZAHLS(001) TYPE C,
* data element: KNRZB
KNRZB(010) TYPE C,
* data element: HBKID
HBKID(005) TYPE C,
* data element: DZGRUP
ZGRUP(002) TYPE C,
* data element: REMIT
REMIT(010) TYPE C,
* data element: VRSDG
VRSDG(003) TYPE C,
* data element: MAHNA
MAHNA(004) TYPE C,
* data element: KNRMA
KNRMA(010) TYPE C,
* data element: GMVDT
GMVDT(010) TYPE C,
* data element: MADAT
MADAT(010) TYPE C,
* data element: BUSAB_MA
BUSAB(002) TYPE C,
* data element: MGRUP
MGRUP(002) TYPE C,
* data element: BUSAB
*
BUSAB(002) type c,
* data element: VERDT
VERDT(010) TYPE C,
END OF TY_XD01.
" Data declaration
data: file type string value '.txt'.
data: it_xd01 TYPE TABLE OF ty_xd01,
wa_xd01 type ty_xd01.

data: lv_file type localfile.


data: bdcdata TYPE TABLE OF bdcdata WITH HEADER LINE,
bdcmsgcoll TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.
*include bdcrecx1.
*START-OF-SELECTION.
"F4 help to update screen fields
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME
= SYST-CPROG
DYNPRO_NUMBER
= SYST-DYNNR
FIELD_NAME
= 'LV_FILE'
IMPORTING
FILE_NAME
= lv_file
.
data: file3 TYPE string.
file3 = lv_file.
* PERFORM OPEN_GROUP.
" To upload flat file
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME
FILETYPE
HAS_FIELD_SEPARATOR

= file3
= 'ASC'
= 'X'

TABLES
DATA_TAB
= it_xd01
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.
" Loop to update all the screen fields using flat file

loop at it_xd01 INTO wa_xd01.


PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO

USING 'SAPMF02D' '0100'.


USING 'BDC_CURSOR'
'RF02D-KTOKD'.
USING 'BDC_OKCODE'
'/00'.
USING 'RF02D-KUNNR'
wa_xd01-kunnr.
USING 'RF02D-BUKRS'
wa_xd01-bukrs.
USING 'RF02D-KTOKD'
wa_xd01-ktokd.
USING 'SAPMF02D' '0110'.
USING 'BDC_CURSOR'
'KNA1-SORTL'.
USING 'BDC_OKCODE'
'/00'.
USING 'KNA1-NAME1'
wa_xd01-name1.
USING 'KNA1-SORTL'
wa_xd01-sortl.
USING 'KNA1-ORT01'
wa_xd01-ort01.
USING 'KNA1-LAND1'
wa_xd01-land1.
USING 'KNA1-SPRAS'
wa_xd01-spras.
USING 'KNA1-PFACH'
wa_xd01-pfach.
USING 'KNA1-PSTLZ'
wa_xd01-pstlz.
USING 'KNA1-PSTL2'
wa_xd01-pstl2.
USING 'SAPMF02D' '0120'.
USING 'BDC_CURSOR'
'KNA1-LZONE'.
USING 'BDC_OKCODE'
'/00'.
USING 'KNA1-LZONE'
wa_xd01-lzone.
USING 'SAPMF02D' '0125'.
USING 'BDC_CURSOR'
'KNA1-GFORM'.
USING 'BDC_OKCODE'
'/00'.
USING 'KNA1-NIELS'
wa_xd01-niels.
USING 'KNA1-KUKLA'
wa_xd01-kukla.
USING 'KNA1-BRSCH'
wa_xd01-brsch.
USING 'KNA1-BRAN1'
wa_xd01-bran1.
USING 'KNA1-PERIV'
wa_xd01-periv.
USING 'KNA1-GFORM'
wa_xd01-gform.
USING 'SAPMF02D' '0130'.

* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
*

USING 'BDC_CURSOR'
'KNBK-BANKN(01)'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'KNBK-BANKS(01)'
wa_xd01-banks.
USING 'KNBK-BANKL(01)'
wa_xd01-bankl.
USING 'KNBK-BANKN(01)'
wa_xd01-bankn.
USING 'SAPMF02D' '0130'.
USING 'BDC_CURSOR'
'KNBK-BANKS(01)'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'SAPMF02D' '0340'.
USING 'BDC_CURSOR'
'RF02D-KUNNR'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'SAPMF02D' '0370'.
USING 'BDC_CURSOR'
'RF02D-KUNNR'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'KNA1-CIVVE'
wa_xd01-civve.
USING 'SAPMF02D' '0360'.
USING 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'SAPMF02D' '0210'.
USING 'BDC_CURSOR'
'KNA1-NAME1'.
USING 'BDC_OKCODE'
'/00'.
USING 'KNB1-AKONT'
wa_xd01-akont.
USING 'KNB1-ZUAWA'
wa_xd01-zuawa.
USING 'KNB1-KNRZE'
wa_xd01-knrze.
USING 'KNB1-FDGRV'
wa_xd01-fdgrv.
USING 'KNB1-WBRSL'
wa_xd01-wbrsl.
USING 'KNB1-VZSKZ'
wa_xd01-vzskz.
USING 'KNB1-ZINDT'
wa_xd01-zindt.
USING 'KNB1-ZINRT'
wa_xd01-zinrt.
USING 'KNB1-DATLZ'
wa_xd01-datlz.
USING 'KNB1-EKVBD'
wa_xd01-ekvbd.
USING 'SAPMF02D' '0215'.
USING 'BDC_CURSOR'
'KNB1-REMIT'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD
USING 'KNB1-ZTERM'
wa_xd01-zterm.
PERFORM BDC_FIELD
USING 'KNB1-TOGRU'
wa_xd01-togru.
PERFORM BDC_FIELD
USING 'KNB1-WAKON'
wa_xd01-wakon.
PERFORM BDC_FIELD
USING 'KNB1-ZWELS'
wa_xd01-zwels.
PERFORM BDC_FIELD
USING 'KNB1-ZAHLS'
wa_xd01-zahls.
PERFORM BDC_FIELD
USING 'KNB1-KNRZB'
wa_xd01-knrzb.
PERFORM BDC_FIELD
USING 'KNB1-HBKID'
wa_xd01-hbkid.
PERFORM BDC_FIELD
USING 'KNB1-ZGRUP'
wa_xd01-zgrup.
PERFORM BDC_FIELD
USING 'KNB1-REMIT'
wa_xd01-remit.
PERFORM BDC_FIELD
USING 'KNB1-VRSDG'
wa_xd01-vrsdg.
PERFORM BDC_DYNPRO
USING 'SAPMF02D' '0220'.
* PERFORM BDC_FIELD
USING 'BDC_CURSOR'
*
'KNB1-INTAD'.
PERFORM BDC_FIELD
USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD
USING 'KNB5-MAHNA'
wa_xd01-mahna.
PERFORM BDC_FIELD
USING 'KNB5-KNRMA'
wa_xd01-knrma.
PERFORM BDC_FIELD
USING 'KNB5-GMVDT'
wa_xd01-gmvdt.
PERFORM BDC_FIELD
USING 'KNB5-MADAT'
wa_xd01-madat.
PERFORM BDC_FIELD
USING 'KNB5-BUSAB'
wa_xd01-busab.
PERFORM BDC_FIELD
USING 'KNB1-MGRUP'
wa_xd01-mgrup.
PERFORM BDC_FIELD
USING 'KNB1-BUSAB'
wa_xd01-busab.
PERFORM BDC_DYNPRO
USING 'SAPMF02D' '0230'.
* PERFORM BDC_FIELD
USING 'BDC_CURSOR'
*
'KNB1-VERDT'.
PERFORM BDC_FIELD
USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD
USING 'KNB1-VERDT'
wa_xd01-verdt.
*perform bdc_transaction using 'XD01'.
*perform close_group.
*

*BREAK-POINT.
IMPORT BDCDATA FROM MEMORY ID 'LO'.
call TRANSACTION 'XD01' USING bdcdata mode 'A'

UPDATE 'S' MESSAGES INTO bdcmsgcoll.


refresh bdcdata.
endloop.
ENDFUNCTION.
***************************************************Inside Include***************
****************************************************************
data: bdcdata TYPE TABLE OF bdcdata WITH HEADER LINE,
bdcmsgcoll TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.
*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
*BDCDATA[] = ZBDCDATA[].
APPEND BDCDATA.
EXPORT BDCDATA TO MEMORY ID 'LO'.
ENDFORM.
"BDC_DYNPRO
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
"BDC_FIELD

You might also like