2009 Jan 06 12:08 PM
Hello SDNers,
I am uploading valuation class using BAPI_MATERIAL_SAVEDATA.
In my excel file I had 25 material of different types.
Out of 25 records 13 were uploaded to DB for remaining I got these kinds of errors.
1) The field MBEW-BKLAS/ BAPI_MBEW-VAL_CLASS is defined as a required field; it does not contain an entry.
2) No description transferred
What could be the reason for the following error.
* Declaration of tables internal tables and bapi structure.
tables : mbew. " Material valuation
data : begin of t_matvclass occurs 0,
material type matnr, " Material
ind_sec type mbrsh, " Industry sector
mat_typ type mtart, " Material type
val_class type BKLAS, " Valuation class
end of t_matvclass.
data : wa like line of t_matvclass.
data :bapi_head like bapimathead, " Header Segment with Control Info
bapi_valclass like BAPI_MBEW, " Valuation class
bapi_valclassx like BAPI_MBEWx, " Checkbox Structure for BAPI_MBEW
bapi_return like bapiret2, " Bapi return structrue
returnm type table of bapi_matreturn2 with header line.
data : it_excel type alsmex_tabline occurs 0 with header line.
data: begin of it_ret occurs 0.
include structure bapiret2.
data end of it_ret.
* Data objects for exception handling.
data : lv_converr type ref to CX_SY_CONVERSION_ERROR,
lv_dynerr type ref to CX_SY_DYN_CALL_ERROR.
data : txt_converr type string,
txt_converr_l type string,
txt_dynerr type string,
txt_dynerr_l type string.
* Declaring selection screen for selecting a data file
* for uploading valuation class
selection-screen begin of block b1 with frame title text-001.
parameter : file_nam type rlgrap-filename obligatory default
'C:\master data UPDATED_test.xls'.
parameter : p_begcol type i default 1 no-display,
p_begrow type i default 2 no-display,
p_endcol type i default 4 no-display,
p_endrow type i default 26 no-display.
parameters: p_valare type mbew-bwkey obligatory. " Valuation area
selection-screen end of block b1.
at selection-screen on value-request for file_nam.
perform F_get_file using file_nam.
start-of-selection.
perform F_xls_itab using file_nam changing it_excel.
perform F_move_data.
perform F_get_data.
form F_xls_itab using p_file_nam changing p_it_excel.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = file_nam
i_begin_col = p_begcol
i_begin_row = p_begrow
i_end_col = p_endcol
i_end_row = p_endrow
tables
intern = it_excel
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
endform. " F_xls_itab
form F_get_file using p_file_nam.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
* STATIC = ' '
* MASK = ' '
CHANGING
file_name = file_nam
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
endform. " F_get_file
form F_move_data .
data : lv_index type i.
field-symbols <fs>.
* Sorting the internal table
sort it_excel by row col.
clear it_excel.
loop at it_excel.
move it_excel-col to lv_index.
* Assigning each record to the internal table row.
assign component lv_index of structure wa to <fs>.
* Assigning the field value to a field symbol
move it_excel-value to <fs>.
at end of row.
append wa to t_matvclass.
clear wa.
endat.
endloop.
endform. " F_move_data
form F_get_data .
loop at t_matvclass into wa.
try.
* BAPIHEAD --- > Header Segment with Control Information
bapi_head-material = wa-material.
bapi_head-ind_sector = wa-ind_sec.
bapi_head-matl_type = wa-mat_typ.
bapi_head-account_view = 'X'.
* For Valuation Class.
bapi_valclass-val_area = p_valare.
bapi_valclass-val_class = wa-val_class.
bapi_valclassx-val_area = p_valare.
bapi_valclassx-std_price = 'X'.
catch CX_SY_CONVERSION_ERROR into lv_converr.
txt_converr = lv_converr->get_text( ).
txt_converr_l = lv_converr->get_longtext( ).
write:/ 'Error:', txt_converr color 5.
write:/ 'Error:', txt_converr_l color 3.
endtry.
perform F_call_bapi.
read table it_ret with key type = 'S'. " Success
if sy-subrc eq 0.
perform F_bapi_commit.
write:/10 'Valuation Class created or updated successfully' color 4.
else.
*loop at it_ret.
write:/1 it_ret-type,
8 it_ret-id,
30 it_ret-number,
38 it_ret-message,
190 it_ret-parameter,
210 it_ret-row,
220 it_ret-field.
*endloop.
endif.
endloop.
endform. " F_get_data
form F_bapi_commit.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
endform. " F_bapi_commit
form F_call_bapi .
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = bapi_head
VALUATIONDATA = bapi_valclass
VALUATIONDATAX = bapi_valclassx
IMPORTING
RETURN = it_ret
TABLES
RETURNMESSAGES = returnm.
endform. " F_call_bapi
Please help me out SDNers.
Regards,
Ranjith N
2009 Jan 08 5:08 AM
hi.
VALUATIONDATA-VAL_CLASS = '*'. " fill this field
VALUATIONDATAX-VAL_CLASS = 'X'.
MATERIALDESCRIPTION-LANGU = '*'. "language of text
MATERIALDESCRIPTION-MATL_DESC = '*'. "material description
instead of asterisks pass necessary values.
2009 Jan 08 5:08 AM
hi.
VALUATIONDATA-VAL_CLASS = '*'. " fill this field
VALUATIONDATAX-VAL_CLASS = 'X'.
MATERIALDESCRIPTION-LANGU = '*'. "language of text
MATERIALDESCRIPTION-MATL_DESC = '*'. "material description
instead of asterisks pass necessary values.
2009 Jan 08 6:03 AM
Hi Marat,
Thanks for your reply.
My excel file as 25 records out of 13 are created and for remaining I ma getting the following 2 errors.
1) The field MBEW-BKLAS/BAPI_MBEW-VAL_CLASS is defined as a required field, it doesnt contain an entry
2) The field MARA-MEINS/BAPI_MARA-BASE_UOM(_ISO) is defined as a required field, it doesnt contain an entry.
I also checked the corresponding BAPI
BAPI_MBEW it doesn't contain BASE_UOM.
And for the valuation class do we need to pass client data for material.
Regards,
Ranjith N
2009 Jan 08 6:27 AM
2009 Jan 16 9:35 AM
Hi,
I am uploading valuation data.
Eg Val class, std price, moving price
when i execute the program it gives me an error
E curreny initial, currency amount 110.0000 in moving price was transfered without a currency.
E curreny initial, currency amount 450.0000 in std price was transfered without a currency.
Regards,
Ranjith N
2009 Jan 16 9:46 AM
Hi,
Where do i maintain the currency eg INR into BAPI_MATERIAL_SAVEDATA..
Regards,
Ranjith N
2009 Jan 16 10:23 AM
You must fill these importing parameters
VALUATIONDATA-VAL_AREA,
VALUATIONDATAX-VAL_AREA
2009 Jan 16 10:50 AM
Hi,
tats wat i did thanks for your reply.
nw its working
Regards,
2009 Jan 30 12:20 PM