2008 Feb 07 2:10 PM
the following BDC prg.. is not running after second screen in MM01.
&----
*& Report ZM_BDCP_MM01 *
*& *
&----
*& *
*& *
&----
REPORT ZM_BDCP_MM01 .
**STRUCTURE FOR FLAT FILE
TYPES: BEGIN OF XT_MAT,
MBRSH TYPE MARA-MBRSH, "INDUSTRIAL SECTOR
MTART TYPE MARA-MTART, "MATERIAL TYPE
MAKTX TYPE MAKT-MAKTX, "MATERIAL DESCRIPTION
MEINS TYPE MARA-MEINS, "BASIC UNIT OF MEASURE
MATKL TYPE MARA-MATKL, "MATERIAL GROUP
END OF XT_MAT.
DATA: IT_MAT TYPE STANDARD TABLE OF XT_MAT,
WA_MAT TYPE XT_MAT.
DATA: FILENAME TYPE STRING.
DATA: IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
WA_BDCDATA TYPE BDCDATA,
IT_BDCMSG TYPE STANDARD TABLE OF BDCMSGCOLL, "TO CAPTURE ERROR MESSAGES
WA_BDCMSG TYPE BDCMSGCOLL.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER: R1 RADIOBUTTON GROUP GRP,
R2 RADIOBUTTON GROUP GRP,
P_FILE LIKE IBIPPARMS-PATH. "TO SELECT THE FILE
SELECTION-SCREEN: END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM GETFILE.
PERFORM GETDATA.
&----
*& Form GETFILE
&----
FORM GETFILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE. "SELECT THE FILE FROM P_FILEBROWSE PARAMETER
FILENAME = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FILENAME "IT CONTAINS FILENAME FROM P_FILEBROWSE PARAMETER
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_MAT.
ENDFORM. " GETFILE
&----
*& Form GETDATA
&----
FORM GETDATA .
LOOP AT IT_MAT INTO WA_MAT.
***FOR INITIAL SCREEN MM01.(FIRST SCREEN)
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.
PERFORM BDC_FIELD USING 'RMMG1-MBRSH' 'WA_MAT-MBRSH'. "INDUSTRIAL SECTOR
PERFORM BDC_FIELD USING 'RMMG1-MTART' 'WA_MAT-MTART'. "MATERIAL TYPE
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=AUSW'.
***FOR SELECTING VIEWS. (SECOND SCREEN)
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.
PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(01)' 'X'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.
FOR ENTERING BASIC DATA1.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.
PERFORM BDC_FIELD USING 'MAKT-MAKTX' 'WA_MAT-MAKTX'. "MATERIAL DESCRIPTION
PERFORM BDC_FIELD USING 'MARA-MEINS' 'WA_MAT-MEINS'. "BASIC UNIT OF MEASURE
PERFORM BDC_FIELD USING 'MARA-MATKL' 'WA_MAT-MATKL'. "MATERIAL GROUP
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.
***USING CALL TRANSACTION.
CALL TRANSACTION 'MM01'
USING IT_BDCDATA
MODE 'A'
UPDATE 'A'
MESSAGES INTO IT_BDCMSG.
ENDLOOP.
ENDFORM. " GETDATA
----
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. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL IS NOT INITIAL.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
=============================================
The following is the flat file ive taken:
RETAIL Drinks cola KG 002
RETAIL Empties coke KG 002
field1-industrial sector
field2-material type
field3-material description
field4-unit of measure
field5-material group
Is the error with the flat file or the program? Is the screen number 4004 is right after second screen?
the following BDC prg.. is not running after second screen in MM01.
&----
*& Report ZM_BDCP_MM01 *
*& *
&----
*& *
*& *
&----
REPORT ZM_BDCP_MM01 .
**STRUCTURE FOR FLAT FILE
TYPES: BEGIN OF XT_MAT,
MBRSH TYPE MARA-MBRSH, "INDUSTRIAL SECTOR
MTART TYPE MARA-MTART, "MATERIAL TYPE
MAKTX TYPE MAKT-MAKTX, "MATERIAL DESCRIPTION
MEINS TYPE MARA-MEINS, "BASIC UNIT OF MEASURE
MATKL TYPE MARA-MATKL, "MATERIAL GROUP
END OF XT_MAT.
DATA: IT_MAT TYPE STANDARD TABLE OF XT_MAT,
WA_MAT TYPE XT_MAT.
DATA: FILENAME TYPE STRING.
DATA: IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
WA_BDCDATA TYPE BDCDATA,
IT_BDCMSG TYPE STANDARD TABLE OF BDCMSGCOLL, "TO CAPTURE ERROR MESSAGES
WA_BDCMSG TYPE BDCMSGCOLL.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER: R1 RADIOBUTTON GROUP GRP,
R2 RADIOBUTTON GROUP GRP,
P_FILE LIKE IBIPPARMS-PATH. "TO SELECT THE FILE
SELECTION-SCREEN: END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM GETFILE.
PERFORM GETDATA.
&----
*& Form GETFILE
&----
FORM GETFILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE. "SELECT THE FILE FROM P_FILEBROWSE PARAMETER
FILENAME = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FILENAME "IT CONTAINS FILENAME FROM P_FILEBROWSE PARAMETER
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_MAT.
ENDFORM. " GETFILE
&----
*& Form GETDATA
&----
FORM GETDATA .
LOOP AT IT_MAT INTO WA_MAT.
***FOR INITIAL SCREEN MM01.(FIRST SCREEN)
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.
PERFORM BDC_FIELD USING 'RMMG1-MBRSH' 'WA_MAT-MBRSH'. "INDUSTRIAL SECTOR
PERFORM BDC_FIELD USING 'RMMG1-MTART' 'WA_MAT-MTART'. "MATERIAL TYPE
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=AUSW'.
***FOR SELECTING VIEWS. (SECOND SCREEN)
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.
PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(01)' 'X'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.
FOR ENTERING BASIC DATA1.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.
PERFORM BDC_FIELD USING 'MAKT-MAKTX' 'WA_MAT-MAKTX'. "MATERIAL DESCRIPTION
PERFORM BDC_FIELD USING 'MARA-MEINS' 'WA_MAT-MEINS'. "BASIC UNIT OF MEASURE
PERFORM BDC_FIELD USING 'MARA-MATKL' 'WA_MAT-MATKL'. "MATERIAL GROUP
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.
***USING CALL TRANSACTION.
CALL TRANSACTION 'MM01'
USING IT_BDCDATA
MODE 'A'
UPDATE 'A'
MESSAGES INTO IT_BDCMSG.
ENDLOOP.
ENDFORM. " GETDATA
----
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. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL IS NOT INITIAL.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
=============================================
The following is the flat file ive taken:
RETAIL Drinks cola KG 002
RETAIL Empties coke KG 002
field1-industrial sector
field2-material type
field3-material description
field4-unit of measure
field5-material group
Is the error with the flat file or the program? Is the screen number 4004 is right after second screen?
2008 Feb 07 4:20 PM
a bdc-run on MM01 is never a good idea for various reasons:
- you can set screens in dependency of the user running it
- not every material is to maintained in all the views
- ...
therefore: use RMDATIND instead or MM17 or MASS or a BAPI.
if you really really really need to use bdc, try transaction MMZ1 instead of MM01.
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |