Hi Dear ABAPers,
For creating Retails Master articles, I used BAPI_MATERIAL_MAINTAINDATA_RT Function Module.
It is creating the Articles And updating all the required DATA.
But It is not updating the field EAN number And EAN Cat.type.
I Have given the code like this:
CLEAR WA_LSMW_ITAB1.
LOOP AT P_IT_SINGLE INTO WA_LSMW_ITAB1.
IF WA_LSMW_ITAB1-FLAG = 'H'.
APPEND WA_LSMW_ITAB1 TO LSMW_ITAB1.
ELSE.
APPEND WA_LSMW_ITAB1 TO P_ITAB_CHAR.
ENDIF.
ENDLOOP.
CLEAR: WA_LSMW_ITAB1.
LOOP AT LSMW_ITAB1 INTO WA_LSMW_ITAB1.
CALL FUNCTION 'MATERIAL_NUMBER_GET_NEXT'
EXPORTING
MATERIALART = WA_LSMW_ITAB1-MTART
IMPORTING
MATERIALNR = WA_LSMW_ITAB1-MATNR
RETURNCODE =
EXCEPTIONS
NO_INTERNAL_INTERVAL = 1
TYPE_NOT_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LSMW_ITAB1-MATNR = WA_LSMW_ITAB1-MATNR.
MODIFY LSMW_ITAB1 TRANSPORTING MATNR.
CLEAR: WA_LSMW_ITAB1.
ENDLOOP.
********End.
CLEAR WA_LSMW_ITAB1.
LOOP AT LSMW_ITAB1 INTO WA_LSMW_ITAB1 .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_LSMW_ITAB1-MATNR
IMPORTING
OUTPUT = WA_LSMW_ITAB1-MATNR.
ZHEADDATA-FUNCTION = '009'. " Change: Message contains changes
ZHEADDATA-MATERIAL = WA_LSMW_ITAB1-MATNR. "p_matnr.
ZHEADDATA-MATL_TYPE = WA_LSMW_ITAB1-MTART.
ZHEADDATA-MATL_GROUP = WA_LSMW_ITAB1-MATKL.
ZHEADDATA-MATL_CAT = WA_LSMW_ITAB1-ATTYP.
ZHEADDATA-REF_MATL = WA_LSMW_ITAB1-RMATN.
ZHEADDATA-MATL_GROUP = WA_LSMW_ITAB1-MATKL.
ZHEADDATA-BASIC_VIEW = 'X'.
zheaddata-ck_no_rnge = 'X'. " For Getting system Generated Article Number
ZHEADDATA-NO_APPL_LOG = 'X'.
ZHEADDATA-NO_CHANGE_DOC = 'X'.
CLEAR WA_CHAR.
LOOP AT P_ITAB_CHAR INTO WA_CHAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_CHAR-MATNR
IMPORTING
OUTPUT = WA_CHAR-MATNR.
IF WA_CHAR-MATNR = WA_LSMW_ITAB1-MATNR .
WA_AUSPRT-FUNCTION = '009'.
WA_AUSPRT-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_AUSPRT-CHAR_NAME = WA_CHAR-CHAR_NAME.
WA_AUSPRT-CHAR_VALUE = WA_CHAR-CHAR_VALUE.
ENDIF.
clear wa_char.
APPEND WA_AUSPRT TO IT_AUSPRT.
IF WA_CHAR-MATNR = WA_LSMW_ITAB1-MATNR .
WA_AUSPRTX-FUNCTION = '009'.
WA_AUSPRTX-MATERIAL = WA_LSMW_ITAB1-MATNR .
WA_AUSPRTX-CHAR_NAME = WA_CHAR-CHAR_NAME.
WA_AUSPRTX-CHAR_VALUE = 'X'.
ENDIF.
CLEAR WA_CHAR.
APPEND WA_AUSPRTX TO IT_AUSPRTX.
ENDLOOP.
WA_MARART-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MARART-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_MARART-OLD_MAT_NO = WA_LSMW_ITAB1-BISMT.
WA_MARART-BASE_UOM = WA_LSMW_ITAB1-MEINH.
WA_MARART-NET_WEIGHT = WA_LSMW_ITAB1-NTGEW.
WA_MARART-TRANS_GRP = WA_LSMW_ITAB1-TRAGR.
WA_MARART-PROC_RULE = WA_LSMW_ITAB1-BWVOR.
WA_MARART-SEASON = WA_LSMW_ITAB1-SAISO.
WA_MARART-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MARART-PROD_HIER = WA_LSMW_ITAB1-PRDHA.
WA_MARART-VAR_ORD_UN = '1'.
IF WA_LSMW_ITAB1-DATAB IS INITIAL.
SELECT SINGLE * FROM MARA INTO WA_MARA WHERE MATNR EQ
WA_MARART-MATERIAL.
IF SY-SUBRC EQ 0.
WA_MARART-VALID_FROM = WA_MARA-DATAB.
ELSE.
WA_MARART-VALID_FROM = SY-DATUM.
ENDIF.
ELSE.
CONCATENATE WA_LSMW_ITAB1-DATAB+6(4)
WA_LSMW_ITAB1-DATAB+3(2)
WA_LSMW_ITAB1-DATAB+0(2)
INTO WA_MARART-VALID_FROM.
ENDIF.
WA_MARART-SAESON_YR = WA_LSMW_ITAB1-SAISJ.
WA_MARART-PRICE_BAND = WA_LSMW_ITAB1-PLGTP.
WA_MARART-EXTMATLGRP = WA_LSMW_ITAB1-EXTWG.
WA_MARART-TAX_CLASS = WA_LSMW_ITAB1-TAKLV.
WA_MARART-PRPROFVAR = '1'.
WA_MARART-QUAL_DIK = '1'.
APPEND WA_MARART TO IT_MARART.
WA_MARARTX-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MARARTX-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_MARARTX-OLD_MAT_NO = 'X'.
WA_MARARTX-BASE_UOM = 'X'.
WA_MARARTX-STD_DESCR = 'X'.
WA_MARARTX-NET_WEIGHT = 'X'.
WA_MARARTX-TRANS_GRP = 'X'.
WA_MARARTX-DIVISION = 'x'.
wa_marartx-proc_rule = 'X'.
WA_MARARTX-SEASON = 'X'.
WA_MARARTX-PROD_HIER = 'X'.
wa_marartx-var_ord_un = 'X'.
WA_MARARTX-MAT_GRP_SM = 'X'.
WA_MARARTX-VALID_FROM = 'X'.
WA_MARARTX-SAESON_YR = 'X'.
WA_MARARTX-PRICE_BAND = 'X'.
WA_MARARTX-EXTMATLGRP = 'X'.
WA_MARARTX-TAX_CLASS = 'X'.
WA_MARARTX-PRPROFVAR = 'X'.
WA_MARARTX-QUAL_DIK = '1'.
APPEND WA_MARARTX TO IT_MARARTX.
WA_MAW1RT-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MAW1RT-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_MAW1RT-REPL_LIST = WA_LSMW_ITAB1-BBTYP.
WA_MAW1RT-PUR_GROUP = WA_LSMW_ITAB1-WEKGR.
WA_MAW1RT-COUNTRYORI = WA_LSMW_ITAB1-WHERR.
WA_MAW1RT-LOADINGGRP = WA_LSMW_ITAB1-WLADG.
WA_MAW1RT-ASSORT_LEV = WA_LSMW_ITAB1-SSTUF.
WA_MAW1RT-LI_PROC_ST = 'B1'.
WA_MAW1RT-LI_PROC_DC = 'B1'.
*data: maw1.
IF WA_LSMW_ITAB1-DATAB IS INITIAL.
SELECT SINGLE * FROM MAW1 INTO WA_MAW1 WHERE MATNR EQ
WA_MAW1RT-MATERIAL .
IF SY-SUBRC EQ 0.
MOVE : WA_MAW1-LDVFL TO WA_MAW1RT-LIST_ST_FR.
ELSE.
WA_MAW1RT-LIST_ST_FR = SY-DATUM.
ENDIF.
ELSE.
CONCATENATE WA_LSMW_ITAB1-DATAB+6(4)
WA_LSMW_ITAB1-DATAB+3(2)
WA_LSMW_ITAB1-DATAB+0(2)
INTO WA_MAW1RT-LIST_ST_FR.
ENDIF.
WA_MAW1RT-LIST_ST_TO = '99991231'.
IF WA_LSMW_ITAB1-DATAB IS INITIAL.
SELECT SINGLE * FROM MAW1 INTO WA_MAW1 WHERE MATNR EQ
WA_MAW1RT-MATERIAL .
IF SY-SUBRC EQ 0.
MOVE : WA_MAW1-LDVZL TO WA_MAW1RT-LIST_DC_FR.
ELSE.
WA_MAW1RT-LIST_DC_FR = SY-DATUM.
ENDIF.
ELSE.
CONCATENATE WA_LSMW_ITAB1-DATAB+6(4)
WA_LSMW_ITAB1-DATAB+3(2)
WA_LSMW_ITAB1-DATAB+0(2)
INTO WA_MAW1RT-LIST_DC_FR.
ENDIF.
WA_MAW1RT-LIST_DC_TO = '99991231'.
IF WA_LSMW_ITAB1-DATAB IS INITIAL.
SELECT SINGLE * FROM MAW1 INTO WA_MAW1 WHERE MATNR EQ
WA_MAW1RT-MATERIAL .
IF SY-SUBRC EQ 0.
MOVE : WA_MAW1-VDVFL TO WA_MAW1RT-SELL_ST_FR.
ELSE.
WA_MAW1RT-SELL_ST_FR = SY-DATUM.
ENDIF.
ELSE.
CONCATENATE WA_LSMW_ITAB1-DATAB+6(4)
WA_LSMW_ITAB1-DATAB+3(2)
WA_LSMW_ITAB1-DATAB+0(2)
INTO WA_MAW1RT-SELL_ST_FR.
ENDIF.
WA_MAW1RT-SELL_ST_TO = '99991231'.
IF WA_LSMW_ITAB1-DATAB IS INITIAL.
SELECT SINGLE * FROM MAW1 INTO WA_MAW1 WHERE MATNR EQ
WA_MAW1RT-MATERIAL .
IF SY-SUBRC EQ 0.
MOVE : WA_MAW1-VDVZL TO WA_MAW1RT-SELL_DC_FR.
ELSE.
WA_MAW1RT-SELL_DC_FR = SY-DATUM.
ENDIF.
ELSE.
CONCATENATE WA_LSMW_ITAB1-DATAB+6(4)
WA_LSMW_ITAB1-DATAB+3(2)
WA_LSMW_ITAB1-DATAB+0(2)
INTO WA_MAW1RT-SELL_DC_FR.
ENDIF.
WA_MAW1RT-SELL_DC_TO = '99991231'.
WA_MAW1RT-VAL_CLASS = WA_LSMW_ITAB1-WBKLA.
WA_MAW1RT-ASSORTLIST ='X'.
APPEND WA_MAW1RT TO IT_MAW1RT.
WA_MAW1RTX-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MAW1RTX-MATERIAL = WA_LSMW_ITAB1-MATNR.
wa_MAW1RTx-repl_list = wa_lsmw_itab1-bbtyp.
WA_MAW1RTX-PUR_GROUP = 'X'.
WA_MAW1RTX-COUNTRYORI = 'X'.
WA_MAW1RTX-LOADINGGRP = 'X'.
WA_MAW1RTX-ASSORT_LEV = 'X'.
WA_MAW1RTX-LI_PROC_ST = 'X'.
WA_MAW1RTX-LI_PROC_DC = 'X'.
WA_MAW1RTX-LIST_ST_FR = 'X'.
WA_MAW1RTX-LIST_ST_TO = 'X'.
WA_MAW1RTX-LIST_DC_FR = 'X'.
WA_MAW1RTX-LIST_DC_TO = 'X'.
WA_MAW1RTX-SELL_ST_FR = 'X'.
WA_MAW1RTX-SELL_ST_TO = 'X'.
WA_MAW1RTX-SELL_DC_FR = 'X'.
WA_MAW1RTX-SELL_DC_TO = 'X'.
WA_MAW1RTX-VAL_CLASS = 'X'.
WA_MAW1RTX-ASSORTLIST ='X'.
APPEND WA_MAW1RTX TO IT_MAW1RTX.
WA_MAKTRT-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MAKTRT-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_MAKTRT-LANGU = 'E'.
WA_MAKTRT-MATL_DESC = WA_LSMW_ITAB1-MAKTX.
APPEND WA_MAKTRT TO IT_MAKTRT.
WA_MARMRT-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MARMRT-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_MARMRT-ALT_UNIT = WA_LSMW_ITAB1-MEINH.
WA_MARMRT-ALT_UNIT_ISO = WA_LSMW_ITAB1-MEINH.
IF WA_LSMW_ITAB1-EAN11 is initial.
WA_MARMRT-EAN_CAT = WA_LSMW_ITAB1-NUMTP.
ELSE.
WA_MARMRT-EAN_UPC = WA_LSMW_ITAB1-EAN11.
WA_MARMRT-EAN_CAT = WA_LSMW_ITAB1-NUMTP.
ENDIF.
WA_MARMRT-LENGTH = WA_LSMW_ITAB1-LAENG.
WA_MARMRT-WIDTH = WA_LSMW_ITAB1-BREIT.
WA_MARMRT-HEIGHT = WA_LSMW_ITAB1-HOEHE.
WA_MARMRT-UNIT_DIM = WA_LSMW_ITAB1-MEABM.
WA_MARMRT-VOLUME = WA_LSMW_ITAB1-VOLUM.
WA_MARMRT-VOLUMEUNIT = WA_LSMW_ITAB1-VOLEH.
WA_MARMRT-GROSS_WT = WA_LSMW_ITAB1-BRGEW.
WA_MARMRT-UNIT_OF_WT = WA_LSMW_ITAB1-GEWEI.
APPEND WA_MARMRT TO IT_MARMRT.
WA_MARMRTX-FUNCTION = WA_LSMW_ITAB1-FCODE.
WA_MARMRTX-MATERIAL = WA_LSMW_ITAB1-MATNR.
WA_MARMRTX-ALT_UNIT = WA_LSMW_ITAB1-MEINH.
WA_MARMRTX-ALT_UNIT_ISO = WA_LSMW_ITAB1-MEINH.
IF WA_LSMW_ITAB1-EAN11 is initial.
WA_MARMRTX-EAN_CAT = 'X'.
ELSE.
WA_MARMRTX-EAN_UPC = 'X'.
WA_MARMRTX-EAN_CAT = 'X'.
ENDIF.
WA_MARMRTX-EAN_UPC = 'X'. "WA_LSMW_ITAB1-EAN11.
WA_MARMRTX-EAN_CAT = 'X'.
WA_MARMRTX-LENGTH = 'X'.
WA_MARMRTX-WIDTH = 'X'.
WA_MARMRTX-HEIGHT = 'X'.
WA_MARMRTX-UNIT_DIM = 'X'.
WA_MARMRTX-VOLUME = 'X'.
WA_MARMRTX-VOLUMEUNIT = 'X'.
WA_MARMRTX-GROSS_WT = 'X'.
WA_MARMRTX-UNIT_OF_WT = 'X'.
APPEND WA_MARMRTX TO IT_MARMRTX.
CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
EXPORTING
HEADDATA = ZHEADDATA
IMPORTING
RETURN = ZBAPIRET1
TABLES
CHARACTERISTICVALUE = IT_AUSPRT
CHARACTERISTICVALUEX = IT_AUSPRTX
CLIENTDATA = IT_MARART
CLIENTDATAX = IT_MARARTX
ADDNLCLIENTDATA = IT_MAW1RT
ADDNLCLIENTDATAX = IT_MAW1RTX
MATERIALDESCRIPTION = IT_MAKTRT
UNITSOFMEASURE = IT_MARMRT
UNITSOFMEASUREX = IT_MARMRTX.
It is updating all the required fields, And we required Bar Code Number And Bar code Type, These two fields are not upadated .
And It is giving the errroe like this:
" First specify the main EAN for the unit EA".
Plz kindly help me regarding this,
Almost i finished entire object. And i am facing the problem here only.
Plz Help me.
Thanks & Regards
Pavan