1. 首先check了这些表KSSK, AUSP, CABN, CAWN, KSML, KLAH, 可当时有些字段的意思没弄明白, 放弃研究了
2. 在SDN上搜了下, 解决方法大多是用FM的办法, 下面列出一些
BAPI_OBJCL_GETDETAIL
BAPI_OBJCL_CHANGE
CLAF_CLASSIFICATION_OF_OBJECTS
BAPI_OBJCL_GETDETAIL_KEY For batch classification
BAPI_CLASS_GETLIST BAPI: Read Classes
BAPI_CLASS_GETSTATUS Class BAPI: Status Information
BAPI_CLASS_GET_CHARACTERISTICS Import Characteristics and Allowed Values for
BAPI_CLASS_GET_CLASSIFICATIONS Read Values Assigned to Objects in Class
BAPI_CLASS_MAINT_LOCAL_DEP Class BAPI: Assign / Delete Local Dependency
BAPI_CLASS_READ BAPI: Read Class Information
BAPI_CLASS_READ_ALLOC Class BAPI: Read Dependencies
虽然BAPI 的用法在Document 里一般是写得比较详细, 但调用起来有些值真不知道该怎么填, 和别人聊了会天, 又没心情研究下去了.
3. 又到SDN转了转, 有个朋友说AUSP一张表就可解决这件事, 但没说清楚. 看他积分比较高, 心想他不会乱说, 再随便看看, 注意到field "OBJEK":Key of object to be classified, 突然想起Change Pointer (CDHDR, CDPOS)中的那个OBJECTID 不就是像matnr这样的值吧, 随便输了一个matnr, 没想到还真是踏破铁鞋无觅处, 得来全不费工夫. wow, 幸好发现了, 要不然频繁调FM那就麻烦了, 性能肯定是个问题.
示例:
SELECT b~atnam a`atwrt
INTO TABLE ltab
FROM ausp AS a INNER JOIN cabn AS b
ON b~atinn = a~atinn
AND b~adzhl = a~adzhl
WHERE a~objek = v_matnr
AND a~mafid = 'O'.