<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Function Module for Variant Configuration in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013243#M411145</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Use the Bapi;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI_OBJCL_GETDETAIL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can also use:&lt;/P&gt;&lt;P&gt;CLAF_CLASSIFICATION_OF_OBJECTS fun module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Anji Reddy Vangala&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 Mar 2007 09:19:47 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-03-09T09:19:47Z</dc:date>
    <item>
      <title>Function Module for Variant Configuration</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013242#M411144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any Function Modules available for getting the Characteristics and values of configured material. Input will be a material number. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Points assured for any helpful answers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Mar 2007 09:17:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013242#M411144</guid>
      <dc:creator>JayR</dc:creator>
      <dc:date>2007-03-09T09:17:10Z</dc:date>
    </item>
    <item>
      <title>Re: Function Module for Variant Configuration</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013243#M411145</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Use the Bapi;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI_OBJCL_GETDETAIL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can also use:&lt;/P&gt;&lt;P&gt;CLAF_CLASSIFICATION_OF_OBJECTS fun module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Anji Reddy Vangala&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Mar 2007 09:19:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013243#M411145</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-09T09:19:47Z</dc:date>
    </item>
    <item>
      <title>Re: Function Module for Variant Configuration</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013244#M411146</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't think FM is available for getting the Characteristics values of the Material . Better use this code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
* 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

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If useful reward.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Mar 2007 09:23:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module-for-variant-configuration/m-p/2013244#M411146</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-09T09:23:36Z</dc:date>
    </item>
  </channel>
</rss>

