2013 May 15 8:06 PM
Hello all,
Plead go throuh below program for reference as have done only for four views namely basic data1 basic data 2 mrp1 and mrp2
But it's showing me following error " unable to interpret ' ' as a number .
Please advice how to resolve this issue .
Fwd: Code
M
mangesh ambilkar
to me
2 days agoDetails
REPORT zmm_rec_mm04
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA : BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr, "Material Number
mbrsh LIKE mara-mbrsh, "Industry sector
mtart LIKE mara-mtart, "Material type
werks LIKE marc-werks, "Plant
lgort LIKE mard-lgort, "Storage location
vkorg LIKE mvke-vkorg, "Sales Organization
vtweg LIKE mvke-vtweg, "Distribution Channel
maktx LIKE makt-maktx, "Material description
meins LIKE mara-meins, "Base Unit of Measure
matkl LIKE mara-matkl, "Material group
spart LIKE mara-spart, "Division
mtpos_mara LIKE mara-mtpos_mara, "General item category group
dwerk LIKE mvke-dwerk, "Delivering Plant (Own or External)
taxm1 LIKE mlan-taxm1, "Tax classification material
taxm2 LIKE mlan-taxm2, "Tax classification material
taxm3 LIKE mlan-taxm3, "Tax classification material
taxm4 LIKE mlan-taxm4,
ktgrm LIKE mvke-ktgrm, "Account assignment group for this material
mtpos LIKE mvke-mtpos, "Item category group from material master
* MTVER LIKE MARC-MTVER, "Export/import material group
mtvfp LIKE marc-mtvfp, " Availability Check
tragr LIKE mara-tragr, "Transportation group
ladgr LIKE marc-ladgr, "Loading group
prctr LIKE marc-prctr, "Profit Center
ekgrp LIKE marc-ekgrp, "Purchasing group
* BSTME LIKE MARA-BSTME, "Order unit
ekwsl LIKE mara-ekwsl, "Purchasing Value Key
dismm LIKE marc-dismm, "MRP Type
dispo LIKE marc-dispo, "MRP controller
disls LIKE marc-disls, "Lot size (materials planning)
* PLIFZ LIKE MARC-PLIFZ, "Planned delivery time in days
fhori LIKE marc-fhori, "Scheduling Margin Key for Floats
strgr LIKE marc-strgr, "Planning strategy group
* AUSME LIKE MARC-AUSME, "Unit of issue
bklas LIKE mbew-bklas, "Valuation Class
vprsv LIKE mbew-vprsv, "Price control indicator
* VERPR LIKE MBEW-VERPR, "Moving Average Price/Periodic Unit Price
* STPRS LIKE MBEW-STPRS, "Standard price
peinh LIKE mbew-peinh,
END OF itab.
DATA : bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE.
DATA : fnnam TYPE rlgrap-filename.
DATA : i_msgtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'UPLOAD'
EXPORTING
* CODEPAGE = ' '
filename = 'FNAM'
filetype = 'DAT'
* ITEM = ' '
* FILEMASK_MASK = ' '
* FILEMASK_TEXT = ' '
* FILETYPE_NO_CHANGE = ' '
* FILEMASK_ALL = ' '
* FILETYPE_NO_SHOW = ' '
* LINE_EXIT = ' '
* USER_FORM = ' '
* USER_PROG = ' '
* SILENT = 'S'
* IMPORTING
* FILESIZE =
* CANCEL =
* ACT_FILENAME =
* ACT_FILETYPE =
TABLES
data_tab = itab
* EXCEPTIONS
* CONVERSION_ERROR = 1
* INVALID_TABLE_WIDTH = 2
* INVALID_TYPE = 3
* NO_BATCH = 4
* UNKNOWN_ERROR = 5
* GUI_REFUSE_FILETRANSFER = 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.
break abap1.
LOOP AT itab .
REFRESH bdcdata.
PERFORM bdc.
CALL TRANSACTION 'MM01' USING bdcdata MODE 'A'
MESSAGES INTO i_msgtab.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form BDC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM bdc.
******1ST SCREEN**************
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MTART'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=AUSW'.
PERFORM bdc_field USING 'RMMG1-MATNR'
itab-matnr.
PERFORM bdc_field USING 'RMMG1-MBRSH'
itab-mbrsh.
PERFORM bdc_field USING 'RMMG1-MTART'
itab-mtart.
*********** SELECTION OF VIEWS *****************
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(12)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(10)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(11)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(12)'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(14)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=DEF_SAVE'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(10)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(11)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(13)'
'X'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(14)'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SCHL'.
**********SELECTION OF ORGANIZATIONAL DATA******************
PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-VTWEG'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'RMMG1-WERKS'
itab-werks.
PERFORM bdc_field USING 'RMMG1-LGORT'
itab-lgort.
PERFORM bdc_field USING 'RMMG1-VKORG'
itab-vkorg.
PERFORM bdc_field USING 'RMMG1-VTWEG'
itab-vtweg.
********** BASIC DATA1*********************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-MTPOS_MARA'.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARA-MATKL'
itab-matkl.
PERFORM bdc_field USING 'MARA-SPART'
itab-spart.
PERFORM bdc_field USING 'MARA-MTPOS_MARA'
itab-mtpos_mara.
PERFORM bdc_field USING 'MARA-GEWEI'
'KG'.
********** BASIC DATA 2*******************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MAKT-MAKTX'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
********************** SALES ORG1********************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MVKE-DWERK'.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARA-SPART'
itab-spart.
PERFORM bdc_field USING 'MVKE-DWERK'
itab-dwerk.
PERFORM bdc_field USING 'MARA-MATKL'
itab-matkl.
PERFORM bdc_field USING 'MVKE-SKTOF'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4200'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MG03STEUER-TAXKM(04)'.
PERFORM bdc_field USING 'MG03STEUER-TAXKM(01)'
itab-taxm1.
PERFORM bdc_field USING 'MG03STEUER-TAXKM(02)'
itab-taxm2.
PERFORM bdc_field USING 'MG03STEUER-TAXKM(03)'
itab-taxm3.
PERFORM bdc_field USING 'MG03STEUER-TAXKM(04)'
itab-taxm4.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARA-SPART'
itab-spart.
PERFORM bdc_field USING 'MVKE-DWERK'
itab-dwerk.
PERFORM bdc_field USING 'MARA-MATKL'
itab-matkl.
PERFORM bdc_field USING 'MVKE-SKTOF'
'X'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MG03STEUER-TAXKM(01)'.
********************SALES ORG2*****************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MVKE-MTPOS'.
PERFORM bdc_field USING 'MVKE-KTGRM'
itab-ktgrm.
PERFORM bdc_field USING 'MARA-MTPOS_MARA'
itab-mtpos_mara.
PERFORM bdc_field USING 'MVKE-MTPOS'
itab-mtpos.
*******************SALES ORG 3*************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARA-GEWEI'
'KG'.
PERFORM bdc_field USING 'MARC-MTVFP'
itab-mtvfp.
PERFORM bdc_field USING 'MARA-TRAGR'
itab-tragr.
PERFORM bdc_field USING 'MARC-LADGR'
itab-ladgr.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARC-PRCTR'.
PERFORM bdc_field USING 'MARC-PRCTR'
itab-prctr.
********************MRP1****************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARC-EKGRP'
itab-ekgrp.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARC-DISMM'.
PERFORM bdc_field USING 'MARC-DISMM'
itab-dismm.
*********************MRP2***************************
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'
itab-maktx.
PERFORM bdc_field USING 'MARC-BESKZ'
'X'.
*****************MRP3*****************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'MARC-PERKZ'
'M'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARC-MTVFP'.
PERFORM bdc_field USING 'MARC-MTVFP'
itab-mtvfp.
********************MRP4****************************************
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'
itab-maktx.
************************PLANT DATA / STORAGE1**********************
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'
itab-maktx.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARA-IPRKZ'
'D'.
**********PLANT/DATA STORAGE2************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'MARA-GEWEI'
'KG'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARC-PRCTR'.
PERFORM bdc_field USING 'MARC-PRCTR'
itab-prctr.
******************ACCOUNTING1**********************************
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MAKT-MAKTX'
itab-maktx.
PERFORM bdc_field USING 'MARA-MEINS'
itab-meins.
PERFORM bdc_field USING 'MARA-SPART'
itab-spart.
PERFORM bdc_field USING 'BDC_CURSOR'
'MBEW-BKLAS'.
PERFORM bdc_field USING 'MBEW-BKLAS'
itab-bklas.
PERFORM bdc_field USING 'MBEW-PEINH'
'1'.
********************ACCOUNTING2************************************
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'
itab-maktx.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
ENDFORM. "BDC
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
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.
IF fval <> bdcdata.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
ENDFORM.
Thanks and regards ,
Prasad krishna Naralkar
2013 May 15 10:58 PM
Hi Prasad,
If the error (' unable to interpret ' ' as a number') is occurring whilst processing the BDC then it's the input data that's the problem. Just process the BDC in foreground mode and the field that is encountering the problem should get highlighted.
2013 May 15 10:58 PM
Hi Prasad,
If the error (' unable to interpret ' ' as a number') is occurring whilst processing the BDC then it's the input data that's the problem. Just process the BDC in foreground mode and the field that is encountering the problem should get highlighted.
2013 May 15 11:31 PM
Hi,
You must be trying to do Arithmetic or other numerical operation on a field which has value space either due to wrong input or erroneous processing logic.
Cheers,
Arindam
2013 May 16 2:08 AM
Hi Prasad,
Probably your BDC screen input is missing or taking as blank. Since you are trying to calculate and in my view that field should have been zero instead of blank or space. Please debug your program and change the BDC mode to ''A'', this way you can traverse through all the screen and find out what exactly is going wrong.
Please let me know if this doesnt help.
Regards,
DN.
2013 May 16 2:39 AM
Hi Prasad,
You need to be moving the character '/' into bdcdata-fval when the field 'is initial' or null.
'/' is interpreted by BDC as 'no data'.
Two other points:
1. You don't need to use the clause 'OCCURS 0' when defining 'bdcdata'. It is a structure. All you need is DATA: s_bdcdata TYPE bdcdata.
2. In the form BDC_FIELD, there is the statement: "IF fval <> bdcdata".
This doesn't make sense as fval could never = bdcdata. They are two different data types.
What you want here is 'IF fval <> bdc_nodata"... where "bdc_nodata" is a constant with the value of '/'.
Best Regards,
Kim
2013 May 16 5:09 AM
Hi,
Just comment IF fval <> bdcdata
ENDIF and execute.
FORM bdc_field USING fnam fval.
* IF fval <> bdcdata.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
* ENDIF.
ENDFORM.
Regards,
Chinni
2013 May 16 2:04 PM
Hi Prasad,
I was wondering, have you had looked into using the BAPI function module, BAPI_MATERIAL_SAVEDATA, rather than using the BDC approach?
Best regards,
Kim
2013 May 16 3:24 PM
Running the call transaction mode 'A' it will show the time the message occurs and the field in which it occurs.