排除被冲销的物料凭证
在MSEG取物料凭证的时候,很多时候需要排除已经被冲销的凭证和冲销凭证,比如有个一个凭证5000000573,冲销后产生了凭证5000000574。这个时候,在5000000573上面是看不出这个凭证被冲销了的,只能在5000000574上面看到,它冲销了5000000573。如下图:
SJAHR SMBLN SMBLP这三个字段记录了被冲销的凭证。
所以,如果要排除这两个凭证,可以使用下面的程序:
SELECTMBLNRMJAHRZEILEFROM matdocINTO TABLE lt_result[]WHERE BWART = '101' AND MATNR <> '' AND KOSTL <> ''" AND BUDAT > '20240401'and NOT EXISTS ( SELECT * from m_mbmpswhere m_mbmps~sjahr = matdoc~mjahrAND m_mbmps~smbln = matdoc~mblnrAND m_mbmps~smblp = matdoc~zeile ).
子查询的效率还是可以的,足够满足大部分情况下的使用。