不想用BAPI及函数来获取,效率可能会慢,业务老师还给不到底表及逻辑,ST05跟踪后,
直接上代码:
* 物料主数据基本数据
SELECT
mara~matnr,
CAST( mara~matnr AS CHAR( 90 ) ) AS matnr1,"INOB-OBJEK字段长度为90位
makt~maktx
FROM mara
WHERE mara~matnr IN @s_matnr
AND mara~mtart IN @s_mtart
AND mara~matkl IN @s_matkl
AND mara~ersda IN @s_ersda
INTO TABLE @DATA(lt_data).
* 批次分类编号获取
DATA(lt_out1) = lt_data.
SORT lt_out1 BY matnr1 ASCENDING.
DELETE ADJACENT DUPLICATES FROM lt_out1 COMPARING matnr1.
SELECT
DISTINCT
a~matnr,
klah~class " 分类编号
FROM inob
INNER JOIN kssk ON inob~cuobj = kssk~objek
INNER JOIN klah ON klah~clint = kssk~clint
INNER JOIN @lt_out1 AS a ON inob~objek = a~matnr1
WHERE inob~klart = '023' " 分类的类型
AND inob~obtab = 'MARA' " 对于分类的对象的数据库表名称
AND kssk~mafid = 'O' " 标识: 对象/类
AND kssk~klart = '023' " 分类的类型
ORDER BY a~matnr
INTO TABLE @DATA(lt_class).