‎2007 Mar 09 9:17 AM
Is there any Function Modules available for getting the Characteristics and values of configured material. Input will be a material number.
Points assured for any helpful answers
‎2007 Mar 09 9:19 AM
Hi,
Use the Bapi;
BAPI_OBJCL_GETDETAIL.
You can also use:
CLAF_CLASSIFICATION_OF_OBJECTS fun module.
Regards,
Anji
Message was edited by:
Anji Reddy Vangala
‎2007 Mar 09 9:19 AM
Hi,
Use the Bapi;
BAPI_OBJCL_GETDETAIL.
You can also use:
CLAF_CLASSIFICATION_OF_OBJECTS fun module.
Regards,
Anji
Message was edited by:
Anji Reddy Vangala
‎2007 Mar 09 9:23 AM
Hello,
I don't think FM is available for getting the Characteristics values of the Material . Better use this code.
* Selection for class
IF NOT S_KLART[] IS INITIAL.
PERFORM F_GET_OBJECTNUMBER.
ENDIF.
IF G_CLASS_NE IS INITIAL.
* Fill Selection table fields
PERFORM F_FILL_FIELDS.
* Selection for materials
PERFORM F_GET_MATERIAL.
SORT G_T_MAT BY MATNR.
* Read if necessary classification
IF G_T_MATNR[] IS INITIAL AND ( NOT G_T_MAT[] IS INITIAL ).
PERFORM F_GET_MAT_KLASS.
ENDIF.
* Select the basic data text and fill final table
PERFORM F_GET_BASIC_TEXT.
ENDIF.
FORM F_GET_OBJECTNUMBER.
DATA: L_R_OBJECTS TYPE TY_OBJECTS.
DATA: L_OBJECTS TYPE TY_OBJECTS.
CLEAR: G_T_OBJECTS.
REFRESH: G_T_OBJECTS.
SELECT A~CUOBJ A~OBJEK A~KLART B~ATINN B~ATZHL B~ATWRT B~ATFLV
B~ATAWE B~ATFLB B~ATAW1 C~CLINT D~CLASS
INTO CORRESPONDING FIELDS OF TABLE G_T_OBJECTS
FROM INOB AS A INNER JOIN AUSP AS B
ON A~CUOBJ = B~OBJEK AND
A~KLART = B~KLART
INNER JOIN KSSK AS C
ON B~OBJEK = C~OBJEK AND
B~KLART = C~KLART
INNER JOIN KLAH AS D
ON C~CLINT = D~CLINT
WHERE A~OBJEK IN S_MATNR AND
A~OBTAB EQ 'MARA' AND
A~KLART IN S_KLART AND
B~ADZHL EQ '0000' AND
C~LKENZ EQ ' ' AND
D~CLASS IN S_CLASS.
CLEAR : G_T_KSML.
REFRESH: G_T_KSML.
SELECT CLINT IMERK KLART
FROM KSML
INTO CORRESPONDING FIELDS OF TABLE G_T_KSML
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE CLINT EQ G_T_OBJECTS-CLINT.
IF NOT G_T_KSML[] IS INITIAL.
SORT G_T_KSML BY CLINT.
SORT G_T_OBJECTS BY CUOBJ OBJEK CLASS ATINN.
LOOP AT G_T_KSML.
READ TABLE G_T_OBJECTS WITH KEY ATINN = G_T_KSML-IMERK
CLINT = G_T_KSML-CLINT
BINARY SEARCH.
IF SY-SUBRC NE 0.
CLEAR: L_OBJECTS.
READ TABLE G_T_OBJECTS WITH KEY KLART = G_T_KSML-KLART
CLINT = G_T_KSML-CLINT
BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING G_T_OBJECTS TO L_OBJECTS.
CLEAR G_T_OBJECTS.
G_T_OBJECTS-ATINN = G_T_KSML-IMERK.
G_T_OBJECTS-KLART = G_T_KSML-KLART.
G_T_OBJECTS-CLINT = G_T_KSML-CLINT.
G_T_OBJECTS-CUOBJ = L_OBJECTS-CUOBJ.
G_T_OBJECTS-OBJEK = L_OBJECTS-OBJEK.
G_T_OBJECTS-CLASS = L_OBJECTS-CLASS.
APPEND G_T_OBJECTS.
CLEAR G_T_OBJECTS.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
DELETE ADJACENT DUPLICATES FROM G_T_OBJECTS
COMPARING OBJEK KLART CLASS ATINN ATAWE.
IF NOT G_T_OBJECTS[] IS INITIAL.
SORT G_T_OBJECTS BY CUOBJ OBJEK CLASS ATINN.
CLEAR: G_T_MATNR,G_R_MATNR,G_T_CLASSDESC,G_T_CHARDESC,G_T_CABN,
G_T_CAWNT.
REFRESH: G_T_MATNR,G_T_CLASSDESC,G_T_CHARDESC,G_T_CABN,G_T_CAWNT..
SELECT CLINT KSCHL
FROM SWOR
INTO CORRESPONDING FIELDS OF TABLE G_T_CLASSDESC
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE CLINT EQ G_T_OBJECTS-CLINT AND
KLPOS EQ '01' AND
SPRAS EQ SY-LANGU.
IF NOT G_T_CLASSDESC[] IS INITIAL.
SORT G_T_CLASSDESC BY CLINT.
ENDIF.
SELECT ATINN ATBEZ
FROM CABNT
INTO CORRESPONDING FIELDS OF TABLE G_T_CHARDESC
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE ATINN EQ G_T_OBJECTS-ATINN AND
SPRAS EQ SY-LANGU.
IF NOT G_T_CHARDESC[] IS INITIAL.
SORT G_T_CHARDESC BY ATINN.
ENDIF.
SELECT ATINN MSEHI
FROM CABN
INTO CORRESPONDING FIELDS OF TABLE G_T_CABN
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE ATINN EQ G_T_OBJECTS-ATINN.
SELECT ATINN ATWTB
FROM CAWNT
INTO CORRESPONDING FIELDS OF TABLE G_T_CAWNT
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE ATINN EQ G_T_OBJECTS-ATINN AND
ADZHL EQ '0000' AND
SPRAS EQ SY-LANGU.
LOOP AT G_T_OBJECTS.
AT NEW OBJEK.
G_R_MATNR-MATNR = G_T_OBJECTS-OBJEK.
APPEND G_R_MATNR TO G_T_MATNR.
ENDAT.
ENDLOOP.
ENDIF.
IF G_T_MATNR[] IS INITIAL.
G_CLASS_NE = 'X'.
ENDIF.
ENDFORM. " f_get_objectnumber
FORM F_GET_MAT_KLASS.
DATA: BEGIN OF L_T_OBJECT OCCURS 0,
OBJEK TYPE OBJNUM,
MATNR TYPE MATNR,
END OF L_T_OBJECT.
DATA: L_OBJECTS TYPE TY_OBJECTS.
CLEAR: L_T_OBJECT.
REFRESH: L_T_OBJECT.
* Fill the object number
LOOP AT G_T_MAT INTO G_R_MAT.
AT NEW MATNR.
L_T_OBJECT-OBJEK = G_R_MAT-MATNR.
L_T_OBJECT-MATNR = G_R_MAT-MATNR.
APPEND L_T_OBJECT.
ENDAT.
ENDLOOP.
CLEAR:G_T_OBJECTS,G_T_CLASSDESC,G_T_CHARDESC,G_T_CABN,G_T_KSML,
G_T_CAWNT.
REFRESH: G_T_OBJECTS,G_T_CLASSDESC,G_T_CHARDESC,G_T_CABN,G_T_KSML,
G_T_CAWNT.
* Get the material classification details
SELECT A~CUOBJ A~OBJEK A~KLART B~ATINN B~ATZHL B~ATWRT B~ATFLV
B~ATAWE B~ATFLB B~ATAW1 C~CLINT D~CLASS
INTO CORRESPONDING FIELDS OF TABLE G_T_OBJECTS
FROM INOB AS A INNER JOIN AUSP AS B
ON A~CUOBJ = B~OBJEK AND
A~KLART = B~KLART
INNER JOIN KSSK AS C
ON B~OBJEK = C~OBJEK AND
B~KLART = C~KLART
INNER JOIN KLAH AS D
ON C~CLINT = D~CLINT
FOR ALL ENTRIES IN L_T_OBJECT
WHERE A~OBJEK EQ L_T_OBJECT-OBJEK AND
A~OBTAB EQ 'MARA' AND
A~KLART IN S_KLART AND
B~ADZHL EQ '0000' AND
C~LKENZ EQ ' ' AND
D~CLASS IN S_CLASS.
IF NOT G_T_OBJECTS[] IS INITIAL.
SELECT CLINT IMERK KLART
FROM KSML
INTO CORRESPONDING FIELDS OF TABLE G_T_KSML
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE CLINT EQ G_T_OBJECTS-CLINT.
ENDIF.
IF NOT G_T_KSML[] IS INITIAL.
SORT G_T_KSML BY CLINT.
SORT G_T_OBJECTS BY ATINN KLART.
LOOP AT G_T_KSML.
READ TABLE G_T_OBJECTS WITH KEY ATINN = G_T_KSML-IMERK.
IF SY-SUBRC NE 0.
CLEAR: L_OBJECTS.
READ TABLE G_T_OBJECTS WITH KEY KLART = G_T_KSML-KLART.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING G_T_OBJECTS TO L_OBJECTS.
CLEAR G_T_OBJECTS.
G_T_OBJECTS-ATINN = G_T_KSML-IMERK.
G_T_OBJECTS-KLART = G_T_KSML-KLART.
G_T_OBJECTS-CLINT = G_T_KSML-CLINT.
G_T_OBJECTS-CUOBJ = L_OBJECTS-CUOBJ.
G_T_OBJECTS-OBJEK = L_OBJECTS-OBJEK.
G_T_OBJECTS-CLASS = L_OBJECTS-CLASS.
APPEND G_T_OBJECTS.
CLEAR G_T_OBJECTS.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
IF NOT G_T_OBJECTS[] IS INITIAL.
SELECT CLINT KSCHL
FROM SWOR
INTO CORRESPONDING FIELDS OF TABLE G_T_CLASSDESC
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE CLINT EQ G_T_OBJECTS-CLINT AND
KLPOS EQ '01' AND
SPRAS EQ SY-LANGU.
IF NOT G_T_CLASSDESC[] IS INITIAL.
SORT G_T_CLASSDESC BY CLINT.
ENDIF.
SELECT ATINN ATBEZ
FROM CABNT
INTO CORRESPONDING FIELDS OF TABLE G_T_CHARDESC
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE ATINN EQ G_T_OBJECTS-ATINN AND
SPRAS EQ SY-LANGU.
IF NOT G_T_CHARDESC[] IS INITIAL.
SORT G_T_CHARDESC BY ATINN.
ENDIF.
SELECT ATINN MSEHI
FROM CABN
INTO CORRESPONDING FIELDS OF TABLE G_T_CABN
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE ATINN EQ G_T_OBJECTS-ATINN.
SELECT ATINN ATWTB
FROM CAWNT
INTO CORRESPONDING FIELDS OF TABLE G_T_CAWNT
FOR ALL ENTRIES IN G_T_OBJECTS
WHERE ATINN EQ G_T_OBJECTS-ATINN AND
ADZHL EQ '0000' AND
SPRAS EQ SY-LANGU.
ENDIF.
ENDFORM. " f_get_mat_klass
If useful reward.
Vasanth