‎2007 Mar 07 9:08 AM
i am using BAPI_MATERIAL_SAVEDATA to upload materials but its giving the following erro:
"EMM 360Key fields for user data PLANTDATA and checkbox structure PLANTDATAX are different"
Below is the extract of the source code:
DATA:
BEGIN OF LSMW_MATERIAL_MASTER,
MATNR(018) TYPE C, "Material number
MAKTX(040) TYPE C, "Material description
MEINS(003) TYPE C, "Base unit of measure
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.
*tax classification
DATA:BEGIN OF IT_TAXCLASS OCCURS 0.
INCLUDE STRUCTURE BAPI_MLAN .
DATA:END OF IT_TAXCLASS.
*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.
DATA: INDSECTOR(1) VALUE 'Z',
mattype(4) value 'ZSER'.
DATA: ZBAPIMATHEAD LIKE BAPIMATHEAD OCCURS 0 WITH HEADER LINE,
ZBAPI_MARA LIKE BAPI_MARA OCCURS 0 WITH HEADER LINE,
ZBAPI_MARC LIKE BAPI_MARC OCCURS 0 WITH HEADER LINE,
ZBAPI_MVKE LIKE BAPI_MVKE OCCURS 0 WITH HEADER LINE,
zBAPI_MARCX LIKE BAPI_MARCX OCCURS 0 WITH HEADER LINE..
************************************************************************
SELECTION SCREEN
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
PARAMETERS:P_FILE LIKE RLGRAP-FILENAME default 'c:/flat.txt', "OBLIGATORY,
plant like RMMG1-WERKS,
salesorg like RMMG1-VKORG.
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 *
**********************************************************************
break-point.
LOOP AT IT_MATMASTER.
ZBAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
ZBAPIMATHEAD-IND_SECTOR = indsector.
ZBAPIMATHEAD-MATL_TYPE = mattype.
ZBAPIMATHEAD-BASIC_VIEW = 'X'.
ZBAPIMATHEAD-SALES_VIEW = 'X'.
ZBAPIMATHEAD-SALES_VIEW = 'X'.
ZBAPI_MVKE-SALES_ORG = salesorg.
ZBAPI_MVKE-DISTR_CHAN = '01'.
ZBAPI_MVKE-MAT_PR_GRP = '01'.
ZBAPI_MVKE-ACCT_ASSGT = '10'.
BAPI_MVKEX-SALES_ORG = 'X'.
BAPI_MVKEX-DISTR_CHAN = 'X'.
BAPI_MVKEX-MAT_PR_GRP = 'X'.
BAPI_MVKEX-ACCT_ASSGT = 'X'.
ZBAPI_MARA-ITEM_CAT = 'ZCUS'.
ZBAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
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'.
ZBAPI_MARC-PLANT = plant.
ZBAPI_MARC-PROFIT_CTR = '114452'.
ZBAPI_MARCX-PLANT = 'X'..
ZBAPI_MARCX-PROFIT_CTR = 'X'.
IT_MATERIALDESC-LANGU = 'EN'.
IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
append IT_materialdesc.
IT_TAXCLASS-TAXCLASS_1 = '0'.
append IT_TAXCLASS.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = ZBAPIMATHEAD
CLIENTDATA = ZBAPI_MARA
CLIENTDATAX = BAPI_MARAx
PLANTDATA = ZBAPI_MARc
PLANTDATAX = ZBAPI_MARcx
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA = ZBAPI_MVKE
SALESDATAX = BAPI_MVKEX
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
RETURN = IT_RETURN
TABLES
MATERIALDESCRIPTION = IT_MATERIALDESC
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS = IT_TAXCLASS
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.
‎2007 Mar 07 9:11 AM
ZBAPI_MARC-PROFIT_CTR = '114452'.
<b>ZBAPI_MARCX-PLANT = plant.</b>
<b> ZBAPI_MARCX-PROFIT_CTR = 'X'.</b>
IT_MATERIALDESC-LANGU = 'EN'.
IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
append IT_materialdesc.
make the highlighted change