分类: Web开发
2016-05-19 15:55:43
SAP中不管是特性还是分类在系统里都是经过内部变换转换的,相关表如下:
KLAH:分类名称(CL03)与内部编号的转换表
KSML:分类所分配的特性(CT04)
TCLA:类类型,分类类型(比如:023批次分类)所对应的表(调用标准bapi必要的参数)
CABN:特性名称(CT04)与内部编号的转换表
CABNT:特性的文本
CAWNT: 特性值描述
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”视图中“配置变量”中维护的数据,这样维护的数据通过以上方式是取不出来滴,利用周末整整研究了一上午才找到了对应的相关表,一并分享~~
调用函数 CUCB_GET_SINGLE_VALUES_OF_INST 取所有值
MRAC:物料工厂数据表,主要是通过里面CUOBJ(内部对象号)与其他表关联
或者MARA 通过 CUOBF 与其他表关联
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.