Skip to Content
0
Former Member
May 12, 2008 at 09:24 AM

Its Very Urgents

95 Views

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