Help BAPI_MATERIAL_SAVEDATA !?!?
Hi Friends,
I've created a program that allow to change the <b>unit of measure</b> of a material master (add new unit <b>USE</b>). But wrong when I used BAPI BAPI_MATERIAL_SAVEDATA to do it. The message error as below:
"specify the conversion factors for the unit of measure <b>USE</b>"
Anyone can tell me why?
Thanks,
Gy
yes
please chek the below code ..if possible.. plse
DATA : wa_matdes TYPE bapi_makt_ga,
wa_clnt TYPE bapi_mara_ga,
wa_makt_des TYPE bapi_makt.
DATA : tb_clnt TYPE STANDARD TABLE OF bapi_mara_ga,
tb_makt_des TYPE STANDARD TABLE OF bapi_makt,
tb_matdes TYPE STANDARD TABLE OF bapi_makt_ga,
*Begin of changes phaniram YADK931460
tb_marm TYPE STANDARD TABLE OF bapi_marm,
wa_marm TYPE bapi_marm,
tb_marmx TYPE STANDARD TABLE OF bapi_marmx,
wa_marmx TYPE bapi_marmx,
tb_marm_ga TYPE STANDARD TABLE OF bapi_marm_ga,
wa_marm_ga TYPE bapi_marm_ga.
*End of changes phaniram YADK931460
* Header Data.
IF wa_mara-vpsta CA cn_k.
wa_headdata-basic_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_v.
wa_headdata-sales_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_e.
wa_headdata-purchase_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_d.
wa_headdata-mrp_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_p.
wa_headdata-forecast_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_a.
wa_headdata-work_sched_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_f.
wa_headdata-prt_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_l.
wa_headdata-storage_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_s.
wa_headdata-warehouse_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_q.
wa_headdata-quality_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_b.
wa_headdata-account_view = cn_x.
ENDIF.
IF wa_mara-vpsta CA cn_g.
wa_headdata-cost_view = cn_x.
ENDIF.
wa_headdata-material = wa_mara-matnr.
wa_headdata-ind_sector = wa_mara-mbrsh.
wa_headdata-matl_type = wa_mara-mtart.
* Material Description
CALL FUNCTION 'BAPI_MATERIAL_GET_ALL'
DESTINATION va_dest
EXPORTING
material = wa_mara-matnr
IMPORTING
clientdata = wa_clnt
TABLES
materialdescription = tb_matdes
unitsofmeasure = tb_marm_ga.
IF tb_matdes IS NOT INITIAL.
LOOP AT tb_matdes INTO wa_matdes.
wa_makt_des-langu = wa_matdes-langu.
wa_makt_des-langu_iso = wa_matdes-langu_iso.
wa_makt_des-matl_desc = wa_matdes-matl_desc.
APPEND wa_makt_des TO tb_makt_des.
CLEAR :wa_makt_des.
ENDLOOP.
ENDIF.
*Begin of changes phaniram YADK931460
IF tb_matdes IS NOT INITIAL.
LOOP AT tb_marm_ga INTO wa_marm_ga.
MOVE-CORRESPONDING wa_marm_ga TO wa_marm.
*Begin of change Phaniram YADK934080 04.09.2013
IF wa_marm-alt_unit = 'NR'.
wa_marm-del_flag = 'X'.
ENDIF.
*End of change Phaniram YADK934080 04.09.2013
APPEND wa_marm TO tb_marm.
CLEAR :wa_marm_ga,wa_marm.
ENDLOOP.
ENDIF.
wa_marmx-alt_unit = 'X'."wa_marm_ga-alt_unit.
wa_marmx-alt_unit_iso = 'X'."wa_marm_ga-alt_unit_iso.
wa_marmx-numerator = 'X'. "wa_marm_ga-numerator.
wa_marmx-denominatr = 'X'." wa_marm_ga-denominatr.
APPEND wa_marmx TO tb_marmx.
*Begin of changes phaniram YADK931460
*Clinet data
IF wa_clnt IS NOT INITIAL.
MOVE-CORRESPONDING wa_clnt TO wa_clientdata.
CLEAR wa_clnt.
ENDIF.
* Client datax
* For clientdatx value assign purpose.
ASSIGN wa_clientdatax TO <wa>.
SELECT * FROM dd03l INTO TABLE tb_dd03l WHERE tabname = 'BAPI_MARAX'.
IF sy-subrc IS INITIAL.
LOOP AT tb_dd03l INTO wa_dd03l.
ASSIGN COMPONENT wa_dd03l-fieldname OF STRUCTURE <wa> TO <comp>.
<comp> = cn_x.
ENDLOOP.
MOVE-CORRESPONDING <wa> TO wa_clientdatax.
ENDIF.
* Material Creation
IF wa_headdata IS NOT INITIAL AND
wa_clientdata IS NOT INITIAL. .
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = wa_headdata
clientdata = wa_clientdata
clientdatax = wa_clientdatax
IMPORTING
return = wa_sav_ret
TABLES
materialdescription = tb_makt_des
unitsofmeasure = tb_marm
unitsofmeasurex = tb_marmx.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = cn_x.
Similar Messages
-
Need help in using FM BAPI_MATERIAL_SAVEDATA
Gurus,
I need help in using the FM BAPI_MATERIAL_SAVEDATA. The FM is returning a message that says "The field MARA-MEINS/BAPI_MARA-BASE_UOM(_ISO) is defined as a required field; it does not contain an entry".
I have supplied the necessary details and yet the FM won't push through.
If possible, please post sample codes.
Below is my sample code:
===============================================
REPORT zmm_materialupload.
eject
$$******************************************************************************
$$ TYPES
$$******************************************************************************
eject
$$******************************************************************************
$$ INTERNAL TABLES (custom structure
$$******************************************************************************
eject
$$******************************************************************************
$$ RANGES
$$******************************************************************************
eject
$$******************************************************************************
$$ FIELD-SYMBOLS
$$******************************************************************************
eject
$$******************************************************************************
$$ PARAMETERS & SELECT-OPTIONS
$$******************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-001.
*SELECT-OPTIONS: s_matnr FOR mara-matnr.
SELECT-OPTIONS: s_mtart FOR mara-mtart.
SELECT-OPTIONS: s_mbrsh FOR mara-mbrsh DEFAULT 'P'.
SELECT-OPTIONS: s_werks FOR marc-werks DEFAULT '1000' OBLIGATORY.
SELECT-OPTIONS: s_lgort FOR marc-lgpro DEFAULT 'OPSL' OBLIGATORY.
PARAMETERS: p_path LIKE rlgrap-filename DEFAULT 'C:\Documents and Settings\training_11\Desktop\Book4 (2ITEMS).txt' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK 1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FNAME'
IMPORTING
file_name = p_path.
eject
$$******************************************************************************
$$ START-OF-SELECTION
$$******************************************************************************
START-OF-SELECTION.
PERFORM check_input.
PERFORM get_file.
PERFORM filter_input.
PERFORM populate_tabs.
PERFORM bapi_mat.
eject
$$******************************************************************************
$$ FORMS
$$******************************************************************************
FORM bapi_mat.
LOOP AT it_tab INTO wa_tab.
CALL FUNCTION 'BAPI_MATERIAL_GETINTNUMBER'
EXPORTING
material_type = wa_tab-mtart
industry_sector = wa_tab-mbrsh
required_numbers = 1
TABLES
material_number = it_matnr.
ENDLOOP.
LOOP AT it_matnr INTO wa_matnr.
READ TABLE it_tab INTO wa_tab INDEX sy-tabix.
wa_tab-matnr = wa_matnr-material.
MODIFY it_tab FROM wa_tab INDEX sy-tabix.
ENDLOOP.
PERFORM populate_tabs.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = it_headdata
clientdata = it_clientdata
clientdatax = it_clientdatax
plantdata = it_plantdata
plantdatax = it_plantdatax
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
valuationdata = it_valuationdata
valuationdatax = it_valuationdatax
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
flag_online = ' '
flag_cad_call = ' '
NO_DEQUEUE = ' '
NO_ROLLBACK_WORK = ' '
IMPORTING
return = it_return
TABLES
materialdescription = it_materialdescription
unitsofmeasure = it_unitsofmeasure
unitsofmeasurex = it_unitsofmeasurex
internationalartnos = it_internationalartnos
materiallongtext = it_materiallongtext
taxclassifications = it_taxclassifications
returnmessages = it_returnmessages
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
IF sy-subrc = 0.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = it_return.
ENDFORM. "bapi_mat
*& Form GET_FILE
text
FORM get_file.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Getting data from file...'.
MOVE: p_path TO gv_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = gv_file
filetype = 'ASC'
has_field_separator = 'X'
read_by_line = 'X'
TABLES
data_tab = it_tab
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.
ENDFORM. "GET_FILE
*& Form check_input
text
FORM check_input.
Material Type
IF s_mtart-low IS INITIAL AND s_mtart-high IS INITIAL.
s_mtart = 'IEQ'.
s_mtart-low = 'ABF'. "Waste
s_mtart-high = 'ZTRD'. "Stock Items
APPEND s_mtart.
ENDIF.
IF s_mtart-low IS NOT INITIAL AND s_mtart-high IS INITIAL.
MOVE: s_mtart-low TO s_mtart-high.
ENDIF.
Industry Sector
IF s_mbrsh-low IS INITIAL AND s_mbrsh-high IS INITIAL.
s_mbrsh = 'IEQ'.
SELECT mbrsh
FROM mara
INTO TABLE it_mbrsh.
s_mbrsh-low = wa_mbrsh-mbrsh.
LOOP AT it_mbrsh INTO wa_mbrsh.
s_mbrsh-high = wa_mbrsh-mbrsh.
ENDLOOP.
APPEND s_mbrsh.
ENDIF.
IF s_mbrsh-low IS NOT INITIAL AND s_mbrsh-high IS INITIAL.
MOVE: s_mbrsh-low TO s_mbrsh-high.
ENDIF.
Plant
IF s_werks-low IS INITIAL AND s_werks-high IS INITIAL.
s_werks = 'IEQ'.
s_werks-low = '1000'.
s_werks-high = '2000'.
ENDIF.
IF s_werks-low IS NOT INITIAL AND s_werks-high IS INITIAL.
MOVE: s_werks-low TO s_werks-high.
ENDIF.
Storage Location
IF s_lgort-low IS NOT INITIAL AND s_lgort-high IS INITIAL.
MOVE: s_lgort-low TO s_lgort-high.
ENDIF.
ENDFORM. "check_input
*& Form Filter_input
text
FORM filter_input.
SORT it_tab BY matnr mtart mbrsh werks lgort.
LOOP AT it_tab INTO wa_tab.
IF wa_tab-mtart NOT IN s_mtart.
DELETE it_tab WHERE mtart NOT IN s_mtart.
ENDIF.
IF wa_tab-mbrsh NOT IN s_mbrsh.
DELETE it_tab WHERE mbrsh NOT IN s_mbrsh.
ENDIF.
IF wa_tab-werks NOT IN s_werks.
DELETE it_tab WHERE werks NOT IN s_werks.
ENDIF.
IF wa_tab-lgort NOT IN s_lgort.
DELETE it_tab WHERE lgort NOT IN s_lgort.
ENDIF.
ENDLOOP.
ENDFORM. "Filter_input
*& Form populate_tabs
text
FORM populate_tabs.
LOOP AT it_tab INTO wa_tab.
MOVE: wa_tab-matnr TO wa_headdata-material,
wa_tab-mbrsh TO wa_headdata-ind_sector,
wa_tab-mtart TO wa_headdata-matl_type,
'X' TO wa_headdata-basic_view,
'X' TO wa_headdata-sales_view,
'X' TO wa_headdata-purchase_view,
'X' TO wa_headdata-mrp_view,
'X' TO wa_headdata-account_view.
wa_tab-matkl TO wa_clientdata-matl_group,
wa_tab-meins TO wa_clientdata-base_uom,
wa_tab-groes TO wa_clientdata-size_dim,
wa_tab-gewei TO wa_clientdata-unit_of_wt,
wa_tab-ntgew TO wa_clientdata-net_weight,
'X' TO wa_clientdatax-matl_group,
'X' TO wa_clientdatax-base_uom,
'X' TO wa_clientdata-size_dim,
'X' TO wa_clientdatax-unit_of_wt,
'X' TO wa_clientdatax-net_weight,
wa_tab-werks TO wa_plantdata-plant,
wa_tab-ekgrp TO wa_plantdata-pur_group,
wa_tab-prctr TO wa_plantdata-profit_ctr,
wa_tab-werks TO wa_plantdatax-plant,
'X' TO wa_plantdatax-pur_group,
'X' TO wa_plantdatax-profit_ctr,
wa_tab-werks TO wa_valuationdata-val_area,
wa_tab-bklas TO wa_valuationdata-val_class,
wa_tab-peinh TO wa_valuationdata-price_unit,
wa_tab-verpr TO wa_valuationdata-moving_pr,
wa_tab-stprs TO wa_valuationdata-std_price,
wa_tab-xlifo TO wa_valuationdata-lifo_fifo,
wa_tab-werks TO wa_valuationdatax-val_area,
'X' TO wa_valuationdatax-val_class,
'X' TO wa_valuationdatax-price_unit,
'X' TO wa_valuationdatax-moving_pr,
'X' TO wa_valuationdatax-std_price,
'X' TO wa_valuationdatax-lifo_fifo.
APPEND wa_headdata TO it_headdata.
APPEND wa_clientdata TO it_clientdata.
APPEND wa_plantdata TO it_plantdata.
APPEND wa_valuationdata TO it_valuationdata.
MODIFY it_tab FROM wa_tab TRANSPORTING matnr.
ENDLOOP.
ENDFORM. "populate_tabs
$$******************************************************************************Hai.
check the below example.
REPORT z34332_bdc_create_material .
data: la_headdata type BAPIMATHEAD,
la_clientdata type BAPI_MARA,
la_CLIENTDATAX type BAPI_MARAX,
la_return type BAPIRET2.
data: i_materialdescription type table of BAPI_MAKT,
wa_materialdescription like line of i_materialdescription.
la_headdata-MATERIAL = '000000000000000004'.
la_headdata-IND_SECTOR = 'M'.
la_headdata-MATL_TYPE = 'FERT'.
la_clientdata-BASE_UOM = 'FT3'.
la_CLIENTDATAX-BASE_UOM = 'X'.
la_clientdata-MATL_GROUP = '01'.
la_CLIENTDATAX-MATL_GROUP = 'X'.
wa_materialdescription = 'TEST'.
append wa_materialdescription to i_materialdescription.
clear: wa_materialdescription.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = la_headdata
CLIENTDATA = la_clientdata
CLIENTDATAX = la_CLIENTDATAX
PLANTDATA =
PLANTDATAX =
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
RETURN = la_return
TABLES
MATERIALDESCRIPTION = i_materialdescription
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
write: la_return-TYPE, ',', la_return-MESSAGE.
clear: la_headdata, la_return, la_clientdata, la_clientdatax.
regards.
sowjanya.b. -
Report problem with BAPI_MATERIAL_SAVEDATA (help required)
hi all,
i am using this source code to create material using
BAPI_MATERIAL_SAVEDATA.
when i am executing the program,
i am getting message the material no 512 transferred without leading 0.
but when i am checking the mara table i am not getting the material 512 created.
my program is as follows plz check where i am wrong ? why i am not able to create the material using this program.what changes i have to make in this program so that i will be successful in creating material.?
*& Report ZCREATE_MATERIAL
*& Developer
*& Date: &DATE
STRUCTURE DECLARATIONS *
Report:zcreate_material.
TABLES: BAPIMATHEAD, "Headerdata
BAPI_MARA, "Clientdata
BAPI_MARAX, "Clientdatax
BAPI_MARC, "Plantdata
BAPI_MARCX, "Plantdatax
BAPI_MAKT, "Material description
BAPIRET2. "Return messages
DATA:V_FILE TYPE STRING.
DATA:
BEGIN OF LSMW_MATERIAL_MASTER,
MATNR(018) TYPE C, "Material number
MTART(004) TYPE C, "Material type
MBRSH(001) TYPE C, "Industry sector
WERKS(004) TYPE C, "Plant
MAKTX(040) TYPE C, "Material description
DISMM(002) TYPE C, "Extra Field Added In the Program as
*itsrequired
MEINS(003) TYPE C, "Base unit of measure
MATKL(009) TYPE C, "Material group
SPART(002) TYPE C, "Division
LABOR(003) TYPE C, "Lab/office
PRDHA(018) TYPE C, "Product hierarchy
MSTAE(002) TYPE C, "X-plant matl status
MTPOS_MARA(004) TYPE C, "Gen item cat group
BRGEW(017) TYPE C, "Gross weight
GEWEI(003) TYPE C, "Weight unit
NTGEW(017) TYPE C, "Net weight
GROES(032) TYPE C, "Size/Dimensions
MAGRV(004) TYPE C, "Matl grp pack matls
BISMT(018) TYPE C, "Old material number
WRKST(048) TYPE C, "Basic material
PROFL(003) TYPE C, "DG indicator profile
KZUMW(001) TYPE C, "Environmentally rlvt
BSTME(003) TYPE C, "Order unit
VABME(001) TYPE C,
EKGRP(003) TYPE C, "Purchasing group
XCHPF(001) TYPE C, "Batch management
EKWSL(004) TYPE C, "Purchasing key value
WEBAZ(003) TYPE C, "GR processing time
MFRPN(040) TYPE C, "Manufacturer part number
MFRNR(010) TYPE C, "Manufacturer number
VPRSV(001) TYPE C, "Price control indicator
STPRS(015) TYPE C, "Standard price
BWPRH(014) TYPE C, "Commercial price1
BKLAS(004) TYPE C, "Valuation class
END OF LSMW_MATERIAL_MASTER.
INTERNAL TABLE DECLARATIONS *
*to store the input data
DATA:
BEGIN OF it_matmaster OCCURS 0.
INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.
DATA:END OF it_matmaster.
*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.
*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.
SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .
AT SELECTION SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
TO UPLOAD THE DATA *
START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = IT_MATMASTER
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.
DATA POPULATIONS *
LOOP AT IT_MATMASTER.
BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPIMATHEAD-PURCHASE_VIEW = 'X'.
BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-OLD_MAT_NO = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-BASIC_MATL = 'X'.
BAPI_MARAX-MFR_NO = 'X'.
BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
BAPI_MARCX-PUR_GROUP = 'X'.
IT_MATERIALDESC-LANGU = 'EN'.
IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
append IT_materialdesc.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = BAPIMATHEAD
CLIENTDATA = BAPI_MARA
CLIENTDATAX = BAPI_MARAx
PLANTDATA = BAPI_MARc
PLANTDATAX = BAPI_MARcx
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
RETURN = IT_RETURN
TABLES
MATERIALDESCRIPTION = IT_MATERIALDESC
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
Bapi to commit the changes
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
WRITE:/ IT_RETURN-TYPE,
2 IT_RETURN-ID,
22 IT_RETURN-NUMBER,
25 IT_RETURN-MESSAGE.
IT_RETURN-LOG_NO,
IT_RETURN-LOG_MSG_NO,
IT_RETURN-MESSAGE_V1,
IT_RETURN-MESSAGE_V2,
IT_RETURN-MESSAGE_V3,
IT_RETURN-MESSAGE_V4,
IT_RETURN-PARAMETER,
IT_RETURN-ROW,
IT_RETURN-FIELD,
IT_RETURN-SYSTEM.
ENDLOOP.
thanks
sanjeevActually your COMMIT call not at all executed.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
The sy-subrc = 0 after the BAPI executed, the right way is after BAPI call check the bapi RETURN table has any error, if not commit the BAPI otherwise rollback. -
Bapi_Material_Savedata invoking through webservice, can anyone help me?
I received error messages bellow:
MG Field MATNR has been transferred inconsistently or is blank
MG MATNR for LTX1 is ""; previously "000000000030000917"
MK Trying to change: 30000917 ____ ____ ____ __________ ____ __ ___ ___
The following parameters are passed:
MATHEAD.MATERIAL = "000000000030000917";
MATHEAD.IND_SECTOR = "C";
MATHEAD.MATL_TYPE = "ZFRT";
MATHEAD.BASIC_VIEW = "X";
MAKT[0].LANGU_ISO = "ZH";
MAKT[0].MATL_DESC = "MATE NAME";
MARA.MATL_GROUP = "0001";
MARA.BASE_UOM_ISO = "KGM";
MARAX.MATL_GROUP = "X";
MARAX.BASE_UOM_ISO = "X";
These parameters are passed testing in an ABAP Report Program which calls the BAPI.
I don't know what's the problem, can anyone help me?This is true (tested it and it works). In addition to that, you have to add some code in step 5 of the LSMW to match the 18-char MATNR field to the 70-char TEXT_NAME. Changing the MATNR source field to 70-char also won't help as it then can't find the material number in MARA. Here's an example of code for TEXT_NAME field in step 5 of LSMW when using BAPI (BUS1001006 - MATMAS_BAPI03):
TABLES: MARA.
DATA: lv_matnr(18) type c.
if not POTEXTSOURCE-MATNR is initial.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = POTEXTSOURCE-MATNR
IMPORTING
OUTPUT = lv_matnr.
E1BP_MLTX-TEXT_NAME = lv_matnr.
endif.
Hope that helps
Message was edited by: Arnold -
How to select a custom view in BAPI_MATERIAL_SAVEDATA
In our company we have defined some CUSTOM views for different materials. I want to select a custom view in the header data but don't see an option. The only options I see are as follows:
MATERIAL
IND_SECTOR
MATL_TYPE
BASIC_VIEW
SALES_VIEW
PURCHASE_VIEW
MRP_VIEW
FORECAST_VIEW
WORK_SCHED_VIEW
PRT_VIEW
STORAGE_VIEW
WAREHOUSE_VIEW
QUALITY_VIEW
ACCOUNT_VIEW
COST_VIEW
INP_FLD_CHECK
MATERIAL_EXTERNAL
MATERIAL_GUID
MATERIAL_VERSION
How can I select a view (in BAPI_MATERIAL_SAVEDATA) that's not a standard SAP view?
Please help!
Thanks.Hi,
which views do you select in the structure HEADDATA? Do you select STORAGE_VIEW?
Cheers -
Hi,
I am Developing a WebDynPro(Java) appln to connect R/3.For this i used BAPI_MATERIAL_SAVEDATA which module is for Creating/Updating Material Data.I have Used the materialName,Description,Uniof Measure,Material Type as Input to R/3. while running The Appln it is fine to Connect R/3 and Its Bringing return Msges as "1)Trying To Create Material 2)The Material Cannot Be Maintained since no Maintainable data Transferred".That is I can not Create/SAVE material Data..Whether Anything might be wrong while Transferring Data ?What Type Of Pblm is This ? Did u ever come across The Pblm like this ? How to solve This ?
Please Help Me OutHi,
In the Import parameters HEADDATA shows it is a Mandatory and for the remaining Structures you just instantiate it and Set it to the BAPI Element.
Ex:- ComplexType_ZBAPI_FICA currentRelation = new ComplexType_ZBAPI_FICA();
chgRelation.setCURR_BP_RELATIONSHIP(currentRelation);
//chgRelation - BAPI Element
//ComplexType_ZBAPI_FICA - Import type
Regards,
Sridhar
Message was edited by: Sridhar kanchanapalli -
BAPI_MATERIAL_SAVEDATA not updating the materials
Hi Folks,
I am trying using the BAPI_MATERIAL_SAVEDATA to change the MRP Type of the existing articles. Basically to mass update the articles.I am passing the Material only to the BAPIMATHEAD parameter and also populating the BAPI_MARC where the MRP type has to be changed and I also populate the corresponding BAPI_MARCX with 'X' that has to be changed to the Function Module. I could find when debugging the error message E 091 MH 'You must use retail functions to process the article' that is generated from another function module MATERIAL_MAINTAIN_DARK 'within BAPI_MATERIAL_SAVEDATA. I am using the FM as given below.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = i_bapimathead
CLIENTDATA = i_bapimara
CLIENTDATAX = i_bapimarax
PLANTDATA = i_bapimarc
PLANTDATAX = i_bapimarcx
IMPORTING
RETURN = i_bapireturn.
TABLES
MATERIALDESCRIPTION =
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA = i_BAPIHM
PRTDATAX = i_BAPIHMX.
EXTENSIONIN =
EXTENSIONINX =
Please help me understand if I have missed anything as why I am getting this error message. Many thanks.
Regards,
TimREPORT Z_NEW_PROGRAM .
* STRUCTURE DECLARATIONS *
TABLES: BAPIMATHEAD, "Headerdata
BAPI_MARA, "Clientdata
BAPI_MARAX, "Clientdatax
BAPI_MARC, "Plantdata
BAPI_MARCX, "Plantdatax
BAPI_MAKT, "Material description
BAPIRET2. "Return messages
DATA:V_FILE TYPE STRING.
DATA:
BEGIN OF LSMW_MATERIAL_MASTER,
MATNR(018) TYPE C, "Material number
MTART(004) TYPE C, "Material type
MBRSH(001) TYPE C, "Industry sector
WERKS(004) TYPE C, "Plant
MAKTX(040) TYPE C, "Material description
DISMM(002) TYPE C, "Extra Field Added In the Program as itsrequired
MEINS(003) TYPE C, "Base unit of measure
MATKL(009) TYPE C, "Material group
SPART(002) TYPE C, "Division
LABOR(003) TYPE C, "Lab/office
PRDHA(018) TYPE C, "Product hierarchy
MSTAE(002) TYPE C, "X-plant matl status
MTPOS_MARA(004) TYPE C, "Gen item cat group
BRGEW(017) TYPE C, "Gross weight
GEWEI(003) TYPE C, "Weight unit
NTGEW(017) TYPE C, "Net weight
GROES(032) TYPE C, "Size/Dimensions
MAGRV(004) TYPE C, "Matl grp pack matls
BISMT(018) TYPE C, "Old material number
WRKST(048) TYPE C, "Basic material
PROFL(003) TYPE C, "DG indicator profile
KZUMW(001) TYPE C, "Environmentally rlvt
BSTME(003) TYPE C, "Order unit
VABME(001) TYPE C,
EKGRP(003) TYPE C, "Purchasing group
XCHPF(001) TYPE C, "Batch management
EKWSL(004) TYPE C, "Purchasing key value
WEBAZ(003) TYPE C, "GR processing time
MFRPN(040) TYPE C, "Manufacturer part number
MFRNR(010) TYPE C, "Manufacturer number
VPRSV(001) TYPE C, "Price control indicator
STPRS(015) TYPE C, "Standard price
BWPRH(014) TYPE C, "Commercial price1
BKLAS(004) TYPE C, "Valuation class
END OF LSMW_MATERIAL_MASTER.
* INTERNAL TABLE DECLARATIONS *
*to store the input data
DATA:
BEGIN OF it_matmaster OCCURS 0.
INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.
DATA:
END OF it_matmaster.
*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.
*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.
* SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .
* AT SELECTION SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
* TO UPLOAD THE DATA *
START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = IT_MATMASTER
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.
* DATA POPULATIONS *
LOOP AT IT_MATMASTER.
BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPIMATHEAD-PURCHASE_VIEW = 'X'.
BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-OLD_MAT_NO = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-BASIC_MATL = 'X'.
BAPI_MARAX-MFR_NO = 'X'.
BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
BAPI_MARCX-PUR_GROUP = 'X'.
IT_MATERIALDESC-LANGU = 'EN'.
IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
append IT_materialdesc.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = BAPIMATHEAD
CLIENTDATA = BAPI_MARA
CLIENTDATAX = BAPI_MARAx
PLANTDATA = BAPI_MARc
PLANTDATAX = BAPI_MARcx
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA =
* VALUATIONDATAX =
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
IMPORTING
RETURN = IT_RETURN
TABLES
MATERIALDESCRIPTION = IT_MATERIALDESC
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
WRITE:/ IT_RETURN-TYPE,
2 IT_RETURN-ID,
22 IT_RETURN-NUMBER,
25 IT_RETURN-MESSAGE.
* IT_RETURN-LOG_NO,
* IT_RETURN-LOG_MSG_NO,
* IT_RETURN-MESSAGE_V1,
* IT_RETURN-MESSAGE_V2,
* IT_RETURN-MESSAGE_V3,
* IT_RETURN-MESSAGE_V4,
* IT_RETURN-PARAMETER,
* IT_RETURN-ROW,
* IT_RETURN-FIELD,
* IT_RETURN-SYSTEM.
ENDLOOP.
are you using this bapi BAPI_TRANSACTION_COMMIT,
after calling the BAPI_MATERIAL_SAVEDATA .
if not use that and check it.
thanks
vijay -
Problem in using BAPI_MATERIAL_SAVEDATA
I want to extend a Material from Plant A to Plant B. I am getting the following error.
E MM 360 Key fields for user data PLANTDATA and checkbox structure PLANTDATAX are different
Please correct in the following code
data: la_headdata type BAPIMATHEAD,
la_clientdata type BAPI_MARA,
la_CLIENTDATAX type BAPI_MARAX,
la_PLANTDATA type BAPI_marc, "Plant View
la_PLANTDATAX type bapi_marcx, "Plant View
la_mbew type bapi_mbew, "Accounting View
la_mbewx type bapi_mbewx.
*la_return type BAPIRET2.
*to return messages
DATA:BEGIN OF la_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF la_RETURN.
data: i_materialdescription type table of BAPI_MAKT,
wa_mat_desc like line of i_materialdescription.
Header
la_headdata-MATERIAL = '000001000000004000'.
la_headdata-IND_SECTOR = 'M'.
la_headdata-MATL_TYPE = 'ZALB'.
la_headdata-basic_view = 'X'.
la_headdata-purchase_view = 'X'.
la_headdata-account_view = 'X'.
la_headdata-MRP_VIEW = 'X'.
la_headdata-STORAGE_VIEW = 'X'.
la_headdata-COST_VIEW = 'X'.
Client Data - Basic
la_clientdata-BASE_UOM = 'EA'.
la_CLIENTDATAX-BASE_UOM = 'X'.
la_clientdata-MATL_GROUP = '21001000'.
la_CLIENTDATAX-MATL_GROUP = 'X'.
la_clientdata-unit_of_wt = 'KG'.
la_clientdatax-unit_of_wt = 'X'.
la_clientdata-division = '10'.
la_clientdatax-division = 'X'.
Material Description
wa_mat_desc-langu = 'E'.
wa_mat_desc-MATL_DESC = '+TLA,FILTER KIT,BUNDLE B'.
append wa_mat_desc to i_materialdescription.
clear: wa_mat_desc.
Plant - Purchasing
la_PLANTDATA-plant = '5530'.
la_PLANTDATAX-plant = 'X'.
la_PLANTDATA-pur_group = '006'.
la_PLANTDATAX-pur_group = 'X'.
Accounting
la_mbew-val_area = '5530'.
la_mbewx-val_area = 'X'.
la_mbew-price_ctrl = 'S'.
la_mbewx-price_ctrl = 'X'.
la_mbew-std_price = '0.01'.
la_mbewx-std_price = 'X'.
*la_mbew-price_unit = '1.000'.
*la_mbewx-price_unit = 'X'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = la_headdata
CLIENTDATA = la_clientdata
CLIENTDATAX = la_CLIENTDATAX
PLANTDATA = la_PLANTDATA
PLANTDATAX = la_PLANTDATAX
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA = la_mbew
VALUATIONDATAX = la_mbewx
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
RETURN = la_return
TABLES
MATERIALDESCRIPTION = i_materialdescription
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
read table la_return with key TYPE = 'S'.
if sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
endif.
WRITE:/ la_RETURN-TYPE,
2 la_RETURN-ID,
22 la_RETURN-NUMBER,
25 la_RETURN-MESSAGE.Hi,
hope this code gives you an idea
*& Report ZKAR_MATMAS_BAPI
*& This program demonstrates how easy it is to create Material master
*& data using BAPI_MATERIAL_SAVEDATA
*& The program also generates a report post-execution displaying errors
*& as well as successful uploads
REPORT ZKAR_MATMAS_BAPI.
* TABLES
* FLAGS *
DATA: F_STOP. " Flag used to stop processing
* DATA DECLARATIONS *
DATA : V_EMPTY TYPE I, " No. of empty records
V_TOTAL TYPE I. " Total no. of records.
* STRUCTURES & INTERNAL TABLES
*BAPI structures
DATA: BAPI_HEAD LIKE BAPIMATHEAD, " Header Segment with Control Information
BAPI_MAKT LIKE BAPI_MAKT, " Material Description
BAPI_MARA1 LIKE BAPI_MARA, " Client Data
BAPI_MARAX LIKE BAPI_MARAX, " Checkbox Structure for BAPI_MARA
BAPI_MARC1 LIKE BAPI_MARC, " Plant View
BAPI_MARCX LIKE BAPI_MARCX, " Checkbox Structure for BAPI_MARC
BAPI_MBEW1 LIKE BAPI_MBEW, " Accounting View
BAPI_MBEWX LIKE BAPI_MBEWX, " Checkbox Structure for BAPI_MBEW
BAPI_RETURN LIKE BAPIRET2. " Return Parameter
*--- Internal table to hold excel file data
DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
*--- Internal table to hold Matetrial descriptions
DATA: BEGIN OF IT_MAKT OCCURS 100.
INCLUDE STRUCTURE BAPI_MAKT.
DATA: END OF IT_MAKT.
*--- Internal to hold the records in the text file
DATA : BEGIN OF IT_DATA OCCURS 100,
WERKS(4), " Plant
MTART(4), " Material type
MATNR(18), " Material number
MATKL(9) , " Material group
MBRSH(1), " Industry sector
MEINS(3), " Base unit of measure
GEWEI(3), " Weight Unit
SPART(2), " Division
EKGRP(3), " Purchasing group
VPRSV(1), " Price control indicator
STPRS(12), " Standard price
PEINH(3), " Price unit
SPRAS(2), " Language key
MAKTX(40), " Material description
END OF IT_DATA.
* SELECTION SCREEN. *
SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.
PARAMETER : P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT " Input File
'C:\Material_master.XLS'.
PARAMETER : P_MAX(4) OBLIGATORY DEFAULT '100'. " no.of recs in a session
PARAMETERS: P_HEADER TYPE I DEFAULT 0. " Header Lines
PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,
P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,
P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,
P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK SCR1.
* AT SELECTION-SCREEN *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*--- Validating file
PERFORM VALIDATE_FILE USING P_FILE.
* START-OF-SELECTION
START-OF-SELECTION.
*--- Perform to convert the Excel data into an internal table
PERFORM CONVERT_XLS_ITAB.
IF NOT IT_DATA[] IS INITIAL.
*--- Perform to delete Header lines
PERFORM DELETE_HEADER_EMPTY_RECS.
ENDIF.
* END OF SELECTION. *
END-OF-SELECTION.
*--- Perform to upload Material Master data
PERFORM UPLOAD_MATMAS.
* Form : validate_input_file
* Description : To provide F4 help for file if read from PC
FORM VALIDATE_FILE USING F_FILE TYPE RLGRAP-FILENAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
CHANGING
FILE_NAME = F_FILE
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE S010(ZLKPL_MSGCLASS). " 'Error in getting filename'.
ENDIF.
ENDFORM. " validate_input_file
*& Form CONVER_XLS_ITAB
* text
FORM CONVERT_XLS_ITAB.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = P_BEGCOL
I_BEGIN_ROW = P_BEGROW
I_END_COL = P_ENDCOL
I_END_ROW = P_ENDROW
TABLES
INTERN = IT_INTERN.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*--- Perform to move the data into an internal data
PERFORM MOVE_DATA.
ENDFORM. " CONVERT_XLS_ITAB
*& Form MOVE_DATA
* text
FORM MOVE_DATA.
DATA : LV_INDEX TYPE I.
FIELD-SYMBOLS <FS>.
*--- Sorting the internal table
SORT IT_INTERN BY ROW COL.
CLEAR IT_INTERN.
LOOP AT IT_INTERN.
MOVE IT_INTERN-COL TO LV_INDEX.
*--- Assigning the each record to an internal table row
ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO <FS>.
*--- Asigning the field value to a field symbol
MOVE IT_INTERN-VALUE TO <FS>.
AT END OF ROW.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDAT.
ENDLOOP.
ENDFORM. " MOVE_DATA
*& Form DELETE_HEADER_EMPTY_RECS
* To delete the Header and empty records
FORM DELETE_HEADER_EMPTY_RECS.
DATA: LV_TABIX LIKE SY-TABIX.
IF NOT P_HEADER IS INITIAL.
LOOP AT IT_DATA.
IF P_HEADER > 0 AND NOT IT_DATA IS INITIAL.
DELETE IT_DATA FROM 1 TO P_HEADER.
* P_HEADER = 0.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
*--- To delete the empty lines from internal table
LOOP AT IT_DATA.
LV_TABIX = SY-TABIX.
IF IT_DATA IS INITIAL.
V_EMPTY = V_EMPTY + 1.
DELETE IT_DATA INDEX LV_TABIX..
ENDIF.
ENDLOOP.
CLEAR IT_DATA.
*--- Total no of recs in file
DESCRIBE TABLE IT_DATA LINES V_TOTAL.
IF V_TOTAL = 0.
MESSAGE I013(ZLKPL_MSGCLASS). " No records in the file
F_STOP = 'X'.
STOP.
ENDIF.
ENDFORM. " DELETE_HEADER_EMPTY_RECS
*& Form UPLOAD_MATMAS
* to upload Material Master data
FORM UPLOAD_MATMAS .
LOOP AT IT_DATA.
* Header
UNPACK IT_DATA-MATNR TO IT_DATA-MATNR.
BAPI_HEAD-MATERIAL = IT_DATA-MATNR.
BAPI_HEAD-IND_SECTOR = IT_DATA-MBRSH.
BAPI_HEAD-MATL_TYPE = IT_DATA-MTART.
BAPI_HEAD-BASIC_VIEW = 'X'.
BAPI_HEAD-PURCHASE_VIEW = 'X'.
BAPI_HEAD-ACCOUNT_VIEW = 'X'.
* Material Description
REFRESH IT_MAKT.
IT_MAKT-LANGU = IT_DATA-SPRAS.
IT_MAKT-MATL_DESC = IT_DATA-MAKTX.
APPEND IT_MAKT.
* Client Data - Basic
BAPI_MARA1-MATL_GROUP = IT_DATA-MATKL.
BAPI_MARA1-BASE_UOM = IT_DATA-MEINS.
BAPI_MARA1-UNIT_OF_WT = IT_DATA-GEWEI.
BAPI_MARA1-DIVISION = IT_DATA-SPART.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-UNIT_OF_WT = 'X'.
BAPI_MARAX-DIVISION = 'X'.
* Plant - Purchasing
BAPI_MARC1-PLANT = IT_DATA-WERKS.
BAPI_MARC1-PUR_GROUP = IT_DATA-EKGRP.
BAPI_MARCX-PLANT = IT_DATA-WERKS.
BAPI_MARCX-PUR_GROUP = 'X'.
* Accounting
BAPI_MBEW1-VAL_AREA = IT_DATA-WERKS.
BAPI_MBEW1-PRICE_CTRL = IT_DATA-VPRSV.
BAPI_MBEW1-STD_PRICE = IT_DATA-STPRS.
BAPI_MBEW1-PRICE_UNIT = IT_DATA-PEINH.
BAPI_MBEWX-VAL_AREA = IT_DATA-WERKS.
BAPI_MBEWX-PRICE_CTRL = 'X'.
BAPI_MBEWX-STD_PRICE = 'X'.
BAPI_MBEWX-PRICE_UNIT = 'X'.
*--- BAPI to create material
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = BAPI_HEAD
CLIENTDATA = BAPI_MARA1
CLIENTDATAX = BAPI_MARAX
PLANTDATA = BAPI_MARC1
PLANTDATAX = BAPI_MARCX
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA = BAPI_MBEW1
* VALUATIONDATAX = BAPI_MBEWX
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA = BAPI_MVKE1
* SALESDATAX = BAPI_MVKEX
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
IMPORTING
RETURN = BAPI_RETURN
TABLES
MATERIALDESCRIPTION = IT_MAKT
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
IF BAPI_RETURN-TYPE = 'E'.
WRITE:/ 'Error:' ,BAPI_RETURN-MESSAGE ,'for material:' ,IT_DATA-MATNR.
ELSEIF BAPI_RETURN-TYPE = 'S'.
WRITE: 'Successfully created material' ,IT_DATA-MATNR.
ENDIF.
ENDLOOP.
ENDFORM. " UPLOAD_MATMAS
Regards,
V.Balaji
Reward if Usefull... -
In BAPI_MATERIAL_SAVEDATA , pass values to Chapter Id in foreign trade
hai friends,
I am trying to create material master using the bapi "BAPI_MATERIAL_SAVEDATA" , I couldnt get the fields in this bapi structure for passing the values to chapter Id field in the foreign trade export view can anyone help out for this.
thanks in advance,
Regards
Janani .SHi,
i doubt whether we have a field for Chapter ID in BAPI_MATERIAL_SAVEDATA,
you can maintain the same in the transaction J1ID.
Regards,
Anil -
Updating account view in BAPI_MATERIAL_SAVEDATA
Hello!!
I am using the BAPI_MATERIAL_SAVEDATA to create the views of many materials, but I found a trouble in the BAPI. Three fields aren't updated after the BAPI process.
They are the Usage of the material (MARA-MTUSE), Origin of the material (MARA-MTORG) and the Produced in-house (MARA-OWNPR) from table MBEW.
Debugging the BAPI I found that the fields that I filled in the BAPI call aren't filled into the BAPI processing.
Would someone help me in this question? Anybody was in this situation before?
Thanks!
Best regards,
Diogo.Hello Diogo,
have a look at OSS note 308303 "ALE - Fields in Brazilian solution not maintainable". Perhaps this could help you. Even, if it's a note regarding ALE, this could solve your problem too.
Anyway - I would search for an OSS note, or open a call in the OSS, as this is a problem with SAP standard functionality.
Best regards
Stephan -
Foriegn trade view in BAPI_MATERIAL_SAVEDATA
HI,
I am using BAPI_MATERIAL_SAVEDATA in that I cant able to find the Foreign trade view can any one suggest me where it is.
regards
paulHi,
Foreign Trade view comes under Sales/Purchase view depending upon whether it is import or export.
Hence, there is no specefic selection for it.
This view contains some client level data and some plant level data.
If you fill CLIENTDATA, CLIENTDATAX, PLANTDATA and PLANDATAX parameters, the FT view will be created.
Hope this helps..
Regards,
Shashank -
How do you assign a main EAN in BAPI_MATERIAL_SAVEDATA
I am trying to assign a main EAN to an existing material (which does not currently have an EAN) using BAPI_MATERIAL_SAVEDATA. I have implemented the following steps in an ABAP program:
(a) Load the BAPI_MARM (unitsofmeasure) table with one row containing data for the main EAN, including its unit of measure.
(b) I have a matching row in BAPI_MARMX with the relevant fields set.
(c) Load the BAPI_MEAN (internationalartnos) table with one row containing relevant data for the EAN.
(d) After calling BAPI_MATERIAL_SAVEDATA I am calling BAPI_TRANSACTION_COMMIT.
When I run the program it does not add the EAN or assign a main EAN.
In debug the FM is returning the message MG 160 First specify the main EAN for the unit EA
I have read that there are problems with this BAPI and EAN's, but we seem to have applied the various notes (eg 406160 and others) that address this issue.
Any help would be appreciated - thanks.why not use a BDC to update the same.
-
Invoking BAPI_MATERIAL_SAVEDATA as a web service from CAF
I am new to BAPI world. Currently, we are building a composite application - a part of the application interacts with SAP R3 for creating materials and then getting a list of all created materials. We are using the following BAPIs: BAPI_MATERIAL_SAVEDATA, BAPI_MATERIAL_GETLIST, BAPI_MATERIAL_GETDETAIL. All these BAPIs are exposed as web services. I have created an external service using wsdl file that corresponds to BAPI_MATERIAL_SAVEDATA. I would like to create a new material by passing minimum possible parameters. I am setting the values in HEADDATA and MATERIALDESCRIPTION only. I am giving Y to basic_view and N to all other views in HEADDATA. The call succeeds apparently but when I try to retrieve it using BAPI_MATERIAL_GETLIST/GETDETAIL it fails to retrieve. My questions:
1. What is the best way to create a new material (basic view) by passing minimum parameters?
2. How to verify if the material is successfully created?
3. How does CLIENTDATA and CLIENTDATAX differ? There are similar 'X' appends in other places as well. Can anyone please provide any pointer/link about some more basic information on the following BAPIs: BAPI_MATERIAL_SAVEDATA, BAPI_MATERIAL_GETDETAIL, BAPI_MATERIAL_GETLIST.
Thanks.Hi,
3. To get more information about a BAPI, you can look at the function module documentation. Login to the R/3 system, start transaction SE37 and type in the name of the BAPI and select "Display". Once you see the source code, you'll see a button called "Function module document". Clicking on that will open up the help document for that BAPI.
For eg., quoting from the docs for BAPI_MATERIAL_SAVEDATA, CLIENTDATA structure is used to transfer the general basic data on a material. CLIENTDATA X structure determines which fields in the assigned user data structure (CLIENTDATA) contain change-relevant information.
2. When the BAPI_MATERIAL_SAVEDATA is executed, it should ideally contain the material number in the structure HEADDATA. Check if you are getting that. If you have it, then it should've been created. You can double check by starting transaction SE11 and display table MARA. Type in the material number that you received.
1. All the parameters except HEADDATA is optional for the BAPI_MATERIAL_SAVEDATA. So you can just choose to pass some of the fields of this structure and that should do it.
Regards,
Satyajit. -
Currency problem in BAPI_MATERIAL_SAVEDATA while uploading valuation class
Hello Experts,
I am uploading valuation class using BAPI_MATERIAL_SAVEDATA.
While uploading it is showing runtime error "Unable to interpret KG as a number".
I have used the FM CONVERSION_EXIT_CUNIT_INPUT to convert the UOM from the file to Field symbol.
still the same. please guide me.
I have pasted my code below.
Kindly go through and help would be highly appreciated.
*& Report ZPRI_MAT_PRICE_UPLOAD
REPORT ZPRI_MAT_PRICE_UPLOAD no standard page heading line-size 150.
tables : mbew, " Material valuation
makt, " Material description
mara. " General material master
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
MOV_PR TYPE VERPR, " MOVING PRISE
STD_PR TYPE STPRS, " STANDARD PRISE
base_uom like mara-meins, " Material unit
mat_desc type maktx, " Material description - MAKTX
plant type werks, " Plant
langu(2),
end of t_matvclass.
data : wa like line of t_matvclass.
data: begin of it_makt occurs 0.
include structure bapi_makt.
data end of it_makt.
data :bapi_head like bapimathead, " Header Segment with Control Info
bapi_clientdata like bapi_mara, " Material Data at Client Level
bapi_clientdatax like bapi_marax, "Checkbox Structure
bapi_valclass like BAPI_MBEW, " Valuation class
bapi_valclassx like BAPI_MBEWX, " Checkbox Structure
* BAPI_MOVING_PR LIKE BAPI_MBEW, "MOVING PRISE
* BAPI_MOVING_PRX LIKE BAPI_MBEWX, "MOVING PRISE
* BAPI_STD_PRISE LIKE BAPI_MBEW, "STANDARD PRISE
* BAPI_STD_PRISEX LIKE BAPI_MBEWX, "STANDARD PRISE
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.
data : char_uom(4) type c. " Global UOM after conversion
* 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 9, " no-display,
p_endrow type i default 267. " 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.
perform F_Display_data.
*& Form F_xls_itab
* text
* -->P_FILE_NAM text
* <--P_IT_EXCEL text
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
* Subroutine to get the file on F4
* -->P_FILE_NAM text
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_Display_data
* text
* --> p1 text
* <-- p2 text
form F_Display_data .
skip 2.
*write:/2 'Valuation area :', p_valare.
*write:/2 'Standard price :', p_stdprc.
skip 2.
write:/29 sy-uline(120).
write:/29 sy-vline,
30 'Material' color 1, " Material - MATNR
50 sy-vline, 'Ind_sector' color 1, " Industry sector - MBRSH
62 sy-vline, 'Mat_typ' color 1, " Material type - MTART
75 sy-vline, 'Valuation class' color 1, " Valuation class
85 sy-vline, 'Base UOM' color 1, " Base UOM
95 sy-vline, 'Material Decp' color 1, " Material descp
120 sy-vline, 'Mov Price', " Moving price
130 sy-vline, 'Std Price', " Standard price
140 sy-vline, 'Plant', " Plant
150 sy-vline.
write:/29 sy-uline(120).
loop at t_matvclass into wa.
write:/29 sy-vline,
30 wa-material color 2, " Material - MATNR
50 sy-vline,
55 wa-ind_sec color 2 right-justified, " Industry sector
62 sy-vline,
66 wa-mat_typ color 2, " Material type - MTART
75 sy-vline,
78 wa-val_class color 2 right-justified, " Valuation class
85 sy-vline,
88 wa-base_uom color 2 right-justified, " Base UOM
95 sy-vline,
98 wa-mat_desc color 2 left-justified, " Material Desc
120 sy-vline, wa-MOV_PR, " Standard price
130 sy-vline, wa-STD_PR, " Moving price
140 sy-vline, wa-plant, " Plant
150 sy-vline.
endloop.
write:/29 sy-uline(64).
endform. " F_Display_data
*& Form F_move_data
* Subroutine to move data from excel to internal table
* --> p1 text
* <-- p2 text
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
if lv_index eq 5.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = it_excel-value
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT = char_uom.
** Moving the converted UOM to field symbol
move char_uom to <fs>.
else.
move it_excel-value to <fs>.
endif.
at end of row.
append wa to t_matvclass.
clear wa.
endat.
endloop.
endform. " F_move_data
*& Form F_get_data
* text
* --> p1 text
* <-- p2 text
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 Clien Data
bapi_clientdata-BASE_UOM = wa-base_uom.
bapi_clientdatax-base_uom = 'X'.
bapi_clientdatax-base_uom_iso = 'X'.
* For Valuation Class.
bapi_valclass-val_area = wa-plant.
bapi_valclass-val_class = wa-val_class.
bapi_valclass-std_price = wa-STD_PR.
bapi_valclass-MOVING_PR = wa-MOV_PR.
* For Valuation Class control checkbox.
bapi_valclassx-val_area = wa-plant.
bapi_valclassx-val_class = 'X'.
bapi_valclassx-std_price = 'X'.
bapi_valclass-MOVING_PR = 'X'.
refresh it_makt.
wa-langu = SY-LANGU.
it_makt-langu = wa-langu.
it_makt-matl_desc = wa-mat_desc.
append it_makt.
clear it_ret.
refresh it_ret.
if t_matvclass[] is initial.
write:/ 'Cannot be updated'.
else.
perform F_call_bapi.
endif.
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.
endloop.
endform. " F_get_data
*& Form F_bapi_commit
* text
* --> p1 text
* <-- p2 text
form F_bapi_commit.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
if sy-subrc eq 0.
write:/2 ' Transaction commited' color 4.
else.
write:/2 'Unable to commit the transaction' color 4.
endif.
endform. " F_bapi_commit
*& Form F_call_bapi
* text
* --> p1 text
* <-- p2 text
form F_call_bapi .
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = bapi_head
CLIENTDATA = bapi_clientdata
CLIENTDATAX = bapi_clientdatax
VALUATIONDATA = bapi_valclass
VALUATIONDATAX = bapi_valclassx
IMPORTING
RETURN = it_ret
TABLES
MATERIALDESCRIPTION = it_makt
RETURNMESSAGES = returnm.
IF it_ret-type eq 'E' or it_ret-TYPE eq 'S'.
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.
endif.
endform. " F_call_bapi
Regards,
Ranjith Nresloved.
issue with the internal table structrue. -
Hi,
I am using the BAPI_MATERIAL_SAVEDATA to create material in the material master, I am passing
ls_bapi_head-basic_view = 'X'.
ls_bapi_head-purchase_view = 'X'.
ls_bapi_head-mrp_view = 'X'.
ls_bapi_head-storage_view = 'X'.
ls_bapi_head-quality_view = 'X'.
ls_bapi_head-account_view = 'X'.
these views, I am passing the necessary details to the BAPI . But it is giving me an error ' **Unit of measure ****** is not defined; check your entry**'. plz help me how to solv the problem.
Thanks,
shekarHi Vinod,
It was very usefull for me thanks,
I have another problem i have to pass Valuation Class - bklas and in quality view nspection Type - 'art', Inspection Type - Material Combination is Active - 'aktiv'.
please let me know how to pass these values to FM
thanks,
shekar
Maybe you are looking for
-
Change Document category of preceding SD document in VBFA
Hi all, is there a fm to change the Document category of preceding SD document in the table VBFA? And also in table VBAP? regards
-
Bring back traditional scroll bars and arrows
Why would Apple change a fundemental part of the UI? Removing scroll bars and arrows from the UI is unacceptable in my view. I understand you can restore scroll bar functionality from system preferences but having the arrows on certain apps is very h
-
Search the calendar in treo 650?
is it possible to search the calendar in the treo 650? i used to be able to do it on calendars in the clie. Post relates to: Treo 650 (Verizon)
-
IDVD '08 won't launch on my macbook! T_T
Help! I have used Time Machine to go back and retrieve my iDVD after trashing it and it still doesn't work. I looked at the CDs that came with my MacBook and I can't seem to find the file to reinstall iDVD. All the other discussions say that I should
-
Blackberry Blend on Ipad iOS 8 bad referrer
I downloaded and intalled blackberry blend, on my ipad 3, a few times and everytime when i connect to my black berry it just shows a screen that dosnt show my data just some titles or it shows a screen that says "bad referrer" Can someone please hel