‎2008 Jan 12 8:36 AM
HI ALL,
I WOULD LIKE TO CREATE MATERIALS USING BDC ,BUT IN MM01,VIEWS ARE GETTING CHANGED ACCORDING TO THE MATERIAL TYPE SELECTED ,HOW TO RECORD THIS TRANSACTION?AND HOW TO HANDLE THIS.
PLS HELP ME
THANKS,
GANESH
‎2008 Jan 14 7:22 AM
hi,
i am sending you sample code along with recording.
try to analyze
code:
report ZMMBDC no standard page heading line-size 255.
BDC Program using Session Method*****
Table Declaration *********************
tables : rmmg1,makt,mara,mvke,mg03steuer,marc,mpop,mbew.
Internal table declaration*************
data : begin of itab occurs 0,
matnr like rmmg1-matnr,
mbrsh like rmmg1-mbrsh,
mtart like rmmg1-mtart,
werks like rmmg1-werks,
lgort like rmmg1-lgort,
vkorg like rmmg1-vkorg,
vtweg like rmmg1-vtweg,
maktx like makt-maktx,
meins like mara-meins,
matkl like mara-matkl,
spart like mara-spart,
dwerk like mvke-dwerk,
taxkm like mg03steuer-taxkm,
mtpos like mvke-mtpos,
mtvfp like marc-mtvfp,
tragr like mara-tragr,
ladgr like marc-ladgr,
dismm like marc-dismm,
dispo like marc-dispo,
disls like marc-disls,
beskz like marc-beskz,
fhori like marc-fhori,
prmod like mpop-prmod,
bklas like mbew-bklas,
end of itab.
BDC table declaration ********************
data : BDC_DATA like BDCDATA occurs 0 with header line.
start-of-selection.
Function call of GUI_Upload *******************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'c:\material.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = itab
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.
fuction call of BDC_Open_group*********
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'Material'
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.
Function call of BDC_insert ***********
repetitive execution of BDC_insert ********
loop at itab.
refresh bdc_data.
perform map_data.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MM01'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
DYNPROTAB = BDC_DATA
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.
endloop.
function call of BDC_close_group ********
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.
Subroutinue map_data ****************
form map_data.
perform bdc1_dynpro using 'SAPLMGMM' '0060'.
perform bdc1_field using 'RMMG1-MATNR'
itab-matnr.
perform bdc1_field using 'RMMG1-MBRSH'
itab-mbrsh.
perform bdc1_field using 'RMMG1-MTART'
itab-mtart.
perform bdc1_field using 'BDC_OKCODE'
'=AUSW'.
perform bdc1_dynpro using 'SAPLMGMM' '0070'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(04)'
'X'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(05)'
'X'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(06)'
'X'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(12)'
'X'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(13)'
'X'.
perform bdc1_field using 'MSICHTAUSW-KZSEL(16)'
'X'.
perform bdc1_field using 'BDC_OKCODE'
'/00'.
perform bdc1_dynpro using 'SAPLMGMM' '0080'.
perform bdc1_field using 'RMMG1-WERKS'
itab-werks.
perform bdc1_field using 'RMMG1-LGORT'
itab-lgort.
perform bdc1_field using 'RMMG1-VKORG'
itab-vkorg.
perform bdc1_field using 'RMMG1-VTWEG'
itab-vtweg.
perform bdc1_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc1_dynpro using 'SAPLMGMM' '4004'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARA-MEINS'
itab-meins.
perform bdc1_field using 'MARA-MATKL'
itab-matkl.
perform bdc1_field using 'MARA-SPART'
itab-spart.
perform bdc1_field using 'BDC_OKCODE'
'=SP02'.
perform bdc1_dynpro using 'SAPLMGMM' '4004'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'BDC_OKCODE'
'=SP04'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARA-MEINS'
itab-meins.
perform bdc1_field using 'MARA-SPART'
itab-spart.
perform bdc1_field using 'MVKE-DWERK'
itab-dwerk.
perform bdc1_field using 'MARA-MATKL'
itab-matkl.
perform bdc1_field using 'MG03STEUER-TAXKM(01)'
itab-taxkm.
perform bdc1_field using 'BDC_OKCODE'
'=SP05'.
perform bdc1_dynpro using 'SAPLMGMM' '4200'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'BDC_OKCODE'
'=MAIN'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARA-MEINS'
itab-meins.
perform bdc1_field using 'MARA-SPART'
itab-spart.
perform bdc1_field using 'MVKE-DWERK'
itab-dwerk.
perform bdc1_field using 'MARA-MATKL'
itab-matkl.
perform bdc1_field using 'BDC_OKCODE'
'=SP05'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MVKE-MTPOS'
itab-mtpos.
perform bdc1_field using 'BDC_OKCODE'
'=SP06'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARA-MEINS'
itab-meins.
perform bdc1_field using 'MARC-MTVFP'
itab-mtvfp.
perform bdc1_field using 'MARA-TRAGR'
itab-tragr.
perform bdc1_field using 'MARC-LADGR'
itab-ladgr.
perform bdc1_field using 'BDC_OKCODE'
'=SP12'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARA-MEINS'
itab-meins.
perform bdc1_field using 'MARC-DISMM'
itab-dismm.
perform bdc1_field using 'MARC-DISPO'
itab-dispo.
perform bdc1_field using 'MARC-DISLS'
itab-disls.
perform bdc1_field using 'BDC_OKCODE'
'=SP13'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARC-BESKZ'
itab-beskz.
perform bdc1_field using 'MARC-FHORI'
itab-fhori.
perform bdc1_field using 'BDC_OKCODE'
'SP16'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'MARA-MEINS'
itab-meins.
perform bdc1_field using 'MPOP-PRMOD'
itab-prmod.
perform bdc1_field using 'BDC_OKCODE'
'=SP27'.
perform bdc1_dynpro using 'SAPLMGMM' '4000'.
perform bdc1_field using 'MAKT-MAKTX'
itab-maktx.
perform bdc1_field using 'BDC_OKCODE'
'/00'.
endform.
----
Start new screen
*
----
FORM BDC1_DYNPRO USING PROGRAM DYNPRO.
CLEAR bdc_data.
bdc_data-program = PROGRAM.
bdc_data-dynpro = DYNPRO.
bdc_data-dynbegin = 'X'.
APPEND bdc_data.
ENDFORM.
----
Insert field
*
----
FORM BDC1_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR bdc_data.
bdc_data-fnam = FNAM.
bdc_data-fval = FVAL.
APPEND bdc_data.
ENDIF.
ENDFORM.
recording:
Recording of MM01:
T MM01 BS AA X F
SAPLMGMM 0060 X
RMMG1-MATNR scooter
RMMG1-MBRSH M
RMMG1-MTART FERT
BDC_OKCODE =AUSW
SAPLMGMM 0070 X
MSICHTAUSW-KZSEL(01) X
MSICHTAUSW-KZSEL(04) X
MSICHTAUSW-KZSEL(05) X
MSICHTAUSW-KZSEL(06) X
MSICHTAUSW-KZSEL(12) X
MSICHTAUSW-KZSEL(13) X
MSICHTAUSW-KZSEL(16) X
BDC_OKCODE /00
SAPLMGMM 0070 X
MSICHTAUSW-KZSEL(15) X
BDC_OKCODE /00
SAPLMGMM 0080 X
RMMG1-WERKS 1000
RMMG1-LGORT 0001
RMMG1-VKORG 1000
RMMG1-VTWEG 10
BDC_OKCODE =ENTR
SAPLMGMM 4004 X
BDC_SUBSCR SAPLMGMM 2004TABFRA1
BDC_SUBSCR SAPLMGD1 1002SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2001SUB2
MARA-MEINS pc
MARA-MATKL 001
MARA-SPART 00
MARA-MTPOS_MARA NORM
BDC_SUBSCR SAPLMGD1 2561SUB3
BDC_SUBSCR SAPLMGD1 2007SUB4
MARA-GEWEI KG
BDC_SUBSCR SAPLMGD1 2005SUB5
BDC_SUBSCR SAPLMGD1 2011SUB6
BDC_SUBSCR SAPLMGD1 2033SUB7
BDC_SUBSCR SAPLMGD1 3300SUB8
BDC_SUBSCR SAPLMGD1 0001SUB9
BDC_SUBSCR SAPLMGD1 0001SUB10
BDC_OKCODE =SP02
SAPLMGMM 4004 X
BDC_SUBSCR SAPLMGMM 2004TABFRA1
BDC_SUBSCR SAPLMGD1 1002SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2002SUB2
BDC_SUBSCR SAPLMGD1 2010SUB3
BDC_SUBSCR SAPLMGD1 2003SUB4
BDC_SUBSCR SAPLMGD1 2004SUB5
BDC_SUBSCR SAPLMGD1 2499SUB6
BDC_SUBSCR SAPLMGD1 2012SUB7
BDC_SUBSCR SAPLMGD1 0001SUB8
BDC_SUBSCR SAPLMGD1 0001SUB9
BDC_SUBSCR SAPLMGD1 0001SUB10
BDC_OKCODE /00
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1004SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2158SUB2
MARA-MEINS PC
MARA-SPART 00
MVKE-DWERK 1000
MARA-MATKL 001
MVKE-SKTOF X
BDC_SUBSCR SAPLMGD1 2184SUB3
MG03STEUER-TAXKM(01) 1
BDC_SUBSCR SAPLMGD1 2159SUB4
BDC_SUBSCR SAPLMGD1 0001SUB5
BDC_SUBSCR SAPLMGD1 0001SUB6
BDC_OKCODE =SP05
SAPLMGMM 4200 X
BDC_SUBSCR SAPLMGMM 2200TABFRA1
BDC_SUBSCR SAPLMGD1 1004SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2181SUB2
BDC_OKCODE =MAIN
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1004SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2158SUB2
MARA-MEINS PC
MARA-SPART 00
MVKE-DWERK 1000
MARA-MATKL 001
MVKE-SKTOF X
BDC_SUBSCR SAPLMGD1 2184SUB3
BDC_SUBSCR SAPLMGD1 2159SUB4
BDC_SUBSCR SAPLMGD1 0001SUB5
BDC_SUBSCR SAPLMGD1 0001SUB6
BDC_OKCODE =SP05
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1004SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2157SUB2
MVKE-MTPOS NORM
BDC_SUBSCR SAPLMGD1 2156SUB3
BDC_SUBSCR SAPLMGD1 2155SUB4
BDC_SUBSCR SAPLMGD1 0001SUB5
BDC_SUBSCR SAPLMGD1 0001SUB6
BDC_OKCODE =SP06
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1001SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2161SUB2
MARA-MEINS PC
MARA-GEWEI KG
MARC-MTVFP 01
BDC_SUBSCR SAPLMGD1 2162SUB3
MARA-TRAGR 0001
MARC-LADGR 0001
BDC_SUBSCR SAPLMGD1 2164SUB4
BDC_SUBSCR SAPLMGD1 5802SUB5
BDC_SUBSCR SAPLWRPD 2010SUB6
BDC_OKCODE =SP12
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1001SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2481SUB2
MARA-MEINS PC
MARC-DISGR 0031
BDC_SUBSCR SAPLMGD1 2482SUB3
MARC-DISMM pd
MARC-DISPO 000
BDC_SUBSCR SAPLMGD1 2483SUB4
MARC-DISLS ex
BDC_SUBSCR SAPLMGD1 2480SUB5
BDC_SUBSCR SAPLMGD1 2479SUB6
BDC_OKCODE =SP13
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1001SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2484SUB2
MARC-BESKZ x
BDC_SUBSCR SAPLMGD1 2485SUB3
MARC-FHORI 000
BDC_SUBSCR SAPLMGD1 2486SUB4
BDC_SUBSCR SAPLMGD1 0001SUB5
BDC_SUBSCR SAPLMGD1 0001SUB6
BDC_OKCODE SP16
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1001SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2524SUB2
MARA-MEINS PC
MPOP-PRMOD D
MARC-PERKZ M
BDC_SUBSCR SAPLMGD1 2525SUB3
MPOP-PERAN 60
MPOP-ANZPR 12
BDC_SUBSCR SAPLMGD1 2523SUB4
MPOP-KZINI X
MPOP-SIGGR 4.000
MARC-AUTRU X
MPOP-MODAV 2
BDC_SUBSCR SAPLMGD1 2552SUB5
BDC_SUBSCR SAPLMGD1 0001SUB6
BDC_OKCODE =SP27
SAPLMGMM 4000 X
BDC_SUBSCR SAPLMGMM 2000TABFRA1
BDC_SUBSCR SAPLMGD1 1009SUB1
MAKT-MAKTX 5 gear scooter
BDC_SUBSCR SAPLMGD1 2953SUB2
BDC_SUBSCR SAPLMGD1 2952SUB3
BDC_SUBSCR SAPLMGD1 2902SUB4
MBEW-BKLAS 7920
MBEW-VPRSV S
MBEW-PEINH 1
BDC_SUBSCR SAPLMGD1 0001SUB5
BDC_SUBSCR SAPLMGD1 0001SUB6
BDC_OKCODE =BU
Test DATA
SCOOTER MECHANICAL-ENGINEERING FINISHED-PRODUCT 1000 0001 1000 10 5GEAR-SCOOTER PC 001 c0 1000 1 NORM 01 0001 0001 PD 000 EX X 000 D 7920
regards,
pavan
Reward Points if useful
Edited by: pavan kumar pisipati on Jan 14, 2008 8:23 AM
‎2008 Jan 14 7:35 AM
Hi ,
Please dont use BDC recording program for the material Master Upload. Its master data which is critical and complex.
Suggest you to use the LSMW using the SAP std program to upload the data.
Thanks
Ravi