Sap Abap BDC

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

BDC with Call Transaction Method :

REPORT ZSHAN_BDC1.

TYPES : BEGIN OF TY_BDC,


WERKS TYPE RMMG1-WERKS,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
MATKL type MARA-MATKL,
END OF TY_BDC.

DATA : IT_BDC TYPE TABLE OF TY_BDC,


WA_BDC TYPE TY_BDC.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'x'
IMPORTING
FILE_NAME = p_file
.

START-OF-SELECTION.

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_BDC.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endif.

CLEAR WA_BDC.

loop at IT_BDC into WA_BDC.


REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPLMGMM' '0060'.


perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.

perform bdc_field using 'BDC_OKCODE'


'=ENTR'.
perform bdc_field using 'RMMG1-MBRSH'
'M'.
perform bdc_field using 'RMMG1-MTART'
'HALB'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.


perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(09)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(09)'
'X'.

perform bdc_dynpro using 'SAPLMGMM' '0080'.


perform bdc_field using 'BDC_CURSOR'
'RMMG1-WERKS'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
WA_BDC-WERKS." '1000'

perform bdc_dynpro using 'SAPLMGMM' '4004'.


perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
WA_BDC-MAKTX. "'shan_bdc'.

perform bdc_field using 'BDC_CURSOR'


'MARA-MATKL'.

perform bdc_field using 'MARA-MEINS'


WA_BDC-MEINS."'EA'.
perform bdc_field using 'MARA-MATKL'
WA_BDC-MATKL."'001'.
perform bdc_field using 'MARA-BISMT'
''.

perform bdc_dynpro using 'SAPLMGMM' '4000'.


perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'


WA_BDC-MAKTX."'shan_bdc'.
perform bdc_field using 'MARA-MEINS'
WA_BDC-MEINS."'EA'.
perform bdc_field using 'MARA-MATKL'
WA_BDC-MATKL."'001'.

perform bdc_dynpro using 'SAPLSPO1' '0300'.


perform bdc_field using 'BDC_OKCODE'
'=YES'.

CALL TRANSACTION 'MM01' USING IT_BDCDATA UPDATE 'S' MODE 'N' MESSAGES INTO
BDCMSG.

IF SY-SUBRC = 0.
MESSAGE 'Material Created Successfully' TYPE 'S'.
ENDIF.

ENDLOOP.

data : wa_bdcmsg like LINE OF bdcmsg.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA to IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA to IT_BDCDATA.
* ENDIF.
ENDFORM.
BDC WITH SESSION METHODE :

REPORT ZSHAN_BDC2.

TYPES : BEGIN OF TY_BDC,


WERKS TYPE RMMG1-WERKS,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
MATKL type MARA-MATKL,
END OF TY_BDC.

DATA : IT_BDC TYPE TABLE OF TY_BDC,


WA_BDC TYPE TY_BDC.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'x'
IMPORTING
FILE_NAME = p_file
.

START-OF-SELECTION.

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_BDC.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endif.

CLEAR WA_BDC.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'ZLEARN'
* HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
* PROG = SY-CPROG
* DCPFM = '%'
* DATFM = '%'
* 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.

loop at IT_BDC into WA_BDC.

REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPLMGMM' '0060'.


perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.

perform bdc_field using 'BDC_OKCODE'


'=ENTR'.
perform bdc_field using 'RMMG1-MBRSH'
'M'.
perform bdc_field using 'RMMG1-MTART'
'HALB'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.


perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(09)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(09)'
'X'.

perform bdc_dynpro using 'SAPLMGMM' '0080'.


perform bdc_field using 'BDC_CURSOR'
'RMMG1-WERKS'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
WA_BDC-WERKS." '1000'

perform bdc_dynpro using 'SAPLMGMM' '4004'.


perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
WA_BDC-MAKTX. "'shan_bdc'.

perform bdc_field using 'BDC_CURSOR'


'MARA-MATKL'.

perform bdc_field using 'MARA-MEINS'


WA_BDC-MEINS."'EA'.
perform bdc_field using 'MARA-MATKL'
WA_BDC-MATKL."'001'.
perform bdc_field using 'MARA-BISMT'
''.

perform bdc_dynpro using 'SAPLMGMM' '4000'.


perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'


WA_BDC-MAKTX."'shan_bdc'.

perform bdc_field using 'MARA-MEINS'


WA_BDC-MEINS."'EA'.
perform bdc_field using 'MARA-MATKL'
WA_BDC-MATKL."'001'.

perform bdc_dynpro using 'SAPLSPO1' '0300'.


perform bdc_field using 'BDC_OKCODE'
'=YES'.

CALL FUNCTION 'BDC_INSERT'


EXPORTING
TCODE = 'MM01'
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
* SIMUBATCH = ' '
* CTUPARAMS = ' '
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

IF SY-SUBRC = 0.
MESSAGE 'Material Created Successfully' TYPE 'S'.
ENDIF.

ENDLOOP.

CALL FUNCTION 'BDC_CLOSE_GROUP'


EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3
.
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 new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA to IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA to IT_BDCDATA.
* ENDIF.
ENDFORM.
BDC with Call Transaction Method For FK01 :

REPORT ZSHANFK01_PRO.

TYPES : BEGIN OF TY_FK01,


BUKRS TYPE RF02K-BUKRS,
KTOKK TYPE RF02K-KTOKK,
ANRED TYPE LFA1-ANRED,
NAME1 type LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
ORT01 TYPE LFA1-ORT01,
LAND1 TYPE LFA1-LAND1,
AKONT TYPE LFB1-AKONT,
FDGRV TYPE LFB1-FDGRV,
END OF TY_FK01.

DATA : IT_FK01 TYPE TABLE OF TY_FK01,


WA_FK01 TYPE TY_FK01.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'X'
IMPORTING
FILE_NAME = P_FILE
.

START-OF-SELECTION.

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_FK01.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endif.

CLEAR WA_FK01.

loop at IT_FK01 into WA_FK01.

REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPMF02K' '0105'.


perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.

perform bdc_field using 'RF02K-BUKRS'


WA_FK01-BUKRS.
* '1000'.

perform bdc_field using 'RF02K-KTOKK'


WA_FK01-KTOKK.
* '0001'.

perform bdc_dynpro using 'SAPMF02K' '0110'.


perform bdc_field using 'BDC_CURSOR'
'LFA1-SPRAS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.

perform bdc_field using 'LFA1-ANRED'


WA_FK01-ANRED.
* 'Mr.'.

perform bdc_field using 'LFA1-NAME1'


WA_FK01-NAME1.
* 'mani'.

perform bdc_field using 'LFA1-SORTL'


WA_FK01-SORTL.
* 'RAJ'.

perform bdc_field using 'LFA1-ORT01'


WA_FK01-ORT01.
* 'perundurai'.

perform bdc_field using 'LFA1-LAND1'


WA_FK01-LAND1.
* 'in'.

perform bdc_dynpro using 'SAPMF02K' '0120'.


perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0380'.
perform bdc_field using 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.

perform bdc_field using 'LFB1-AKONT'


WA_FK01-AKONT.
* '31000'.

perform bdc_field using 'LFB1-FDGRV'


WA_FK01-FDGRV.
* 'A1'.

CALL TRANSACTION 'FK01' USING IT_BDCDATA UPDATE 'S' MODE 'N' MESSAGES INTO
BDCMSG.

IF SY-SUBRC = 0.
MESSAGE 'Vendor Created Successfully' TYPE 'S'.
ENDIF.

ENDLOOP.

data : wa_bdcmsg like LINE OF bdcmsg.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
* ENDIF.
ENDFORM.
BDC with Call Transaction Method For MM02 :

REPORT ZSHANMM02_PRO.

TYPES : BEGIN OF TY_MM02,


MATNR TYPE RMMG1-MATNR,
WERKS TYPE RMMG1-WERKS,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
MATKL type MARA-MATKL,
END OF TY_MM02.

DATA : IT_MM02 TYPE TABLE OF TY_MM02,


WA_MM02 TYPE TY_MM02.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'x'
IMPORTING
FILE_NAME = p_file
.

START-OF-SELECTION.

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'

TABLES
DATA_TAB = IT_MM02 .

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
CLEAR WA_MM02.

loop at IT_MM02 into WA_MM02.

REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPLMGMM' '0060'.


perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.

perform bdc_field using 'RMMG1-MATNR'


WA_MM02-MATNR.
* '1157'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(08)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(08)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-WERKS'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.

perform bdc_field using 'RMMG1-WERKS'


WA_MM02-WERKS.
* '1000'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.


perform bdc_field using 'BDC_OKCODE'
'=BU'.

perform bdc_field using 'MAKT-MAKTX'


WA_MM02-MAKTX.
* 'mobile'.
perform bdc_field using 'BDC_CURSOR'
'MARA-MATKL'.

perform bdc_field using 'MARA-MEINS'


WA_MM02-MEINS.
* 'EA'.

perform bdc_field using 'MARA-MATKL'


WA_MM02-MATKL.
* '00103'.

perform bdc_field using 'MARA-SPART'


'00'.
perform bdc_field using 'MARA-BRGEW'
'1.200'.
perform bdc_field using 'MARA-GEWEI'
'LB'.
perform bdc_field using 'MARA-NTGEW'
'1.180'.
CALL TRANSACTION 'MM02' USING IT_BDCDATA UPDATE 'S' MODE 'N' MESSAGES INTO
BDCMSG.
IF SY-SUBRC = 0.
MESSAGE 'Material Changed Successfully' TYPE 'S'.
ENDIF.
ENDLOOP.

data : wa_bdcmsg like LINE OF bdcmsg.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
* ENDIF.
ENDFORM.
BDC with Session Method For MM02:

REPORT ZSHANMM02_PRO1.

TYPES : BEGIN OF TY_MM02,


MATNR TYPE RMMG1-MATNR,
WERKS TYPE RMMG1-WERKS,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
MATKL type MARA-MATKL,
END OF TY_MM02.

DATA : IT_MM02 TYPE TABLE OF TY_MM02,


WA_MM02 TYPE TY_MM02.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'x'
IMPORTING
FILE_NAME = p_file
.

START-OF-SELECTION.

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'

TABLES
DATA_TAB = IT_MM02 .

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.

CALL FUNCTION 'BDC_OPEN_GROUP'


EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'zshanmm02'
* HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
* PROG = SY-CPROG
* DCPFM = '%'
* DATFM = '%'
* 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.

CLEAR WA_MM02.

loop at IT_MM02 into WA_MM02.

REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPLMGMM' '0060'.


perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.

perform bdc_field using 'RMMG1-MATNR'


WA_MM02-MATNR.
* '1157'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(08)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(08)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-WERKS'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.

perform bdc_field using 'RMMG1-WERKS'


WA_MM02-WERKS.
* '1000'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.


perform bdc_field using 'BDC_OKCODE'
'=BU'.

perform bdc_field using 'MAKT-MAKTX'


WA_MM02-MAKTX.
* 'mobile'.
perform bdc_field using 'BDC_CURSOR'
'MARA-MATKL'.

perform bdc_field using 'MARA-MEINS'


WA_MM02-MEINS.
* 'EA'.

perform bdc_field using 'MARA-MATKL'


WA_MM02-MATKL.
* '00103'.

perform bdc_field using 'MARA-SPART'


'00'.
perform bdc_field using 'MARA-BRGEW'
'1.200'.
perform bdc_field using 'MARA-GEWEI'
'LB'.
perform bdc_field using 'MARA-NTGEW'
'1.180'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MM02'
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
* SIMUBATCH = ' '
* CTUPARAMS = ' '
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

IF SY-SUBRC = 0.
MESSAGE 'Material Changed Successfully' TYPE 'S'.
ENDIF.

ENDLOOP.

CALL FUNCTION 'BDC_CLOSE_GROUP'


EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3
.
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 new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
* ENDIF.
ENDFORM.
BDC with Call Transaction Method For XK02 :

REPORT ZSHANXK02_PRO.

TYPES : BEGIN OF TY_XK02,


LIFNR TYPE RF02K-LIFNR,
BUKRS TYPE RF02K-BUKRS,
ANRED TYPE LFA1-ANRED,
NAME1 type LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
ORT01 TYPE LFA1-ORT01,
LAND1 TYPE LFA1-LAND1,
END OF TY_XK02.

DATA : IT_XK02 TYPE TABLE OF TY_XK02,


WA_XK02 TYPE TY_XK02.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'X'
IMPORTING
FILE_NAME = P_FILE. .

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'

TABLES
DATA_TAB = IT_XK02.
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
CLEAR WA_XK02.

loop at IT_XK02 into WA_XK02.

REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPMF02K' '0101'.


perform bdc_field using 'BDC_CURSOR'
'RF02K-BUKRS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.

perform bdc_field using 'RF02K-LIFNR'


WA_XK02-LIFNR.
* '172'.

perform bdc_field using 'RF02K-BUKRS'


WA_XK02-BUKRS.
* '1000'.

perform bdc_field using 'RF02K-D0110'


'X'.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-LAND1'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.

perform bdc_field using 'LFA1-ANRED'


WA_XK02-ANRED.
* 'Mr.'.

perform bdc_field using 'LFA1-NAME1'


WA_XK02-NAME1.
* 'Shan'.

perform bdc_field using 'LFA1-SORTL'


WA_XK02-SORTL.
* 'SPARROW'.

perform bdc_field using 'LFA1-ORT01'


WA_XK02-ORT01.
* 'perundurai'.

perform bdc_field using 'LFA1-LAND1'


WA_XK02-LAND1.
* 'in'.

CALL TRANSACTION 'XK02' USING IT_BDCDATA UPDATE 'S' MODE 'A' MESSAGES INTO
BDCMSG.

IF SY-SUBRC = 0.
MESSAGE 'Customer Changed Successfully' TYPE 'S'.
ENDIF.
ENDLOOP.

DATA : WA_BDCMSG LIKE LINE OF BDCMSG.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
* ENDIF.
ENDFORM.
BDC with Session Method For XK02:

REPORT ZSHANXK02_PRO1.

TYPES : BEGIN OF TY_XK02,


LIFNR TYPE RF02K-LIFNR,
BUKRS TYPE RF02K-BUKRS,
ANRED TYPE LFA1-ANRED,
NAME1 type LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
ORT01 TYPE LFA1-ORT01,
LAND1 TYPE LFA1-LAND1,
END OF TY_XK02.

DATA : IT_XK02 TYPE TABLE OF TY_XK02,


WA_XK02 TYPE TY_XK02.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : BDCMSG TYPE TABLE OF BDCMSGCOLL.

DATA : FILE TYPE STRING.


PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SYST-CPROG
FIELD_NAME = 'X'
IMPORTING
FILE_NAME = P_FILE. .

if P_FILE IS NOT INITIAL.

FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'

TABLES
DATA_TAB = IT_XK02.
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'zshanxk02'
* HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
* PROG = SY-CPROG
* DCPFM = '%'
* DATFM = '%'
* 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.

loop at IT_XK02 into WA_XK02.

REFRESH: IT_BDCDATA.
CLEAR: IT_BDCDATA.

perform bdc_dynpro using 'SAPMF02K' '0101'.


perform bdc_field using 'BDC_CURSOR'
'RF02K-BUKRS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.

perform bdc_field using 'RF02K-LIFNR'


WA_XK02-LIFNR.
* '172'.

perform bdc_field using 'RF02K-BUKRS'


WA_XK02-BUKRS.
* '1000'.

perform bdc_field using 'RF02K-D0110'


'X'.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-LAND1'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.

perform bdc_field using 'LFA1-ANRED'


WA_XK02-ANRED.
* 'Mr.'.

perform bdc_field using 'LFA1-NAME1'


WA_XK02-NAME1.
* 'Shan'.

perform bdc_field using 'LFA1-SORTL'


WA_XK02-SORTL.
* 'SPARROW'.

perform bdc_field using 'LFA1-ORT01'


WA_XK02-ORT01.
* 'perundurai'.

perform bdc_field using 'LFA1-LAND1'


WA_XK02-LAND1.
* 'in'.

CALL FUNCTION 'BDC_INSERT'


EXPORTING
TCODE = 'XK02'
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
* SIMUBATCH =
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

IF SY-SUBRC = 0.
MESSAGE 'Customer Changed Successfully' TYPE 'S'.
ENDIF.

ENDLOOP.

CALL FUNCTION 'BDC_CLOSE_GROUP'


EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3
.
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 new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
* ENDIF.
ENDFORM.

You might also like