SAP ABAP 特性相关表取数逻辑

SAP中不管是特性还是分类在系统里都是经过内部变换转换的,相关表如下:

KLAH:分类名称(CL03)与内部编号的转换表

KSML:分类所分配的特性(CT04)

TCLA:类类型,分类类型(比如:023批次分类)所对应的表(调用标准bapi必要的参数)

CABN:特性名称(CT04)与内部编号的转换表

CABN:特性的文本

AUSP:对象所对应的特性值

例子:

SELECT INOB~OBJEK"物料代码
       CABN~ATINN"内部特性
       CABN~ATNAM"特性名称
       AUSP~ATWRT"特性值
      INTO CORRESPONDING FIELDS OF TABLE ITAB_TX
      FROM INOB
      INNER JOIN AUSP ON INOB~CUOBJ AUSP~OBJEK
      INNER JOIN CABN ON CABN~ATINN AUSP~ATINN
      WHERE INOB~OBJEK in S_MATNR.

此处取的是某个物料所有的特性值,如果要取某个分类的话,可以配合KSML表使用。

也可以调用BAPI:BAPI_OBJCL_GETDETAIL 获取

相关参数说明:

OBJECTKEY:物料代码

OBJECTTABLE:根据分类视图中分类类型从TCLA找到对应的值

CLASSNUM:通过分类去KLAH找

CLASSTYPE:分类类型

此处OBJECTKEY对于不同的类类型,参数值所对应的格式还不一致,比如:物料分类--物料代码,批次分类--物料+批次。具体什么格式我也比较疑惑,只能凭借经验了。

以上方式只是取出“分类”视图中所维护的信息,但有个NB项目上使用了变式物料,是通过在“MRP3”视图中“配置变量”中维护的数据,这样维护的数据通过以上方式是取不出来滴,利用周末整整研究了一上午才找到了对应的相关表,一并分享~~

MRAC:物料工厂数据表,主要是通过里面CUOBJ(内部对象号)与其他表关联

IBIN:中间转换表,主要通过INSTANCE转换

IBINVALUES:记录所维护的特性清单

IBSYMBOL:存储具体特性值的表(类似于AUSP)

例子:

 SELECT MARC~MATNR AS OBJEK"物料代码
          CABN~ATINN"内部特性
          CABN~ATNAM"特性名称
          IBSYMBOL~ATWRT"特性值
    APPENDING CORRESPONDING FIELDS OF TABLE ITAB_TX
    FROM MARC
    INNER JOIN IBIN ON IBIN~INSTANCE MARC~CUOBJ
    INNER JOIN IBINVALUES ON IBINVALUES~IN_RECNO IBIN~IN_RECNO
    INNER JOIN IBSYMBOL ON IBSYMBOL~SYMBOL_ID IBINVALUES~SYMBOL_ID
    INNER JOIN CABN ON CABN~ATINN IBSYMBOL~ATINN
    WHERE MARC~MATNR IN S_MATNR.


THE END,哦啦~BY 小熊东东




你可能感兴趣的:(SAP ABAP 特性相关表取数逻辑)