系统取可用量可以用标准函数AVAILABILITY_CHECK去读取,它会把商品的所有可用量信息全部列出来,
而且列的很清楚,这很方便地从可以从执行结果得到需求所要的东西,对如CO09单个商品查可用量是非常方
便的,但如果一个报表取可用量,那在同一时间取可用量就可能非常多的商品,估计上千过万,甚至上千万
的商品,如果调用这个函数去取可用量的话,那是相当的痛苦,而且大大浪费了系统的资源;另一方面,这个
函数只能取到地点,而有时候需求需要取某个库存地点的可用量,这个函数就不适合了。
AVAILABILITY_CHECK这个函数,每次执行的过程是,先将某个地点某个商品的库存(即MARD)全部取
出来,然后,它还会取一个视图ATP_VBBE里面的数据,这个视图里面的数据就是当前需要减库存而又未过帐
的单据数据,为了提高查询的效率,可以直接取表VBBE的数据,函数将两者数据取出来之后,用库存减去这
部分单据的数量合计数,得出来的全计数就是我们所谓的可用量了,所以利用这个思路,就可以计算得到库存
地点上的商品可用量,从而大大提高了报表的运行效率。
我们可以商品的库存先取到内表,然后再直接用FOR ALL ENTRIES IN去读取VBBE的数据,按上面的思路
进行相关的加减运算,从而快速得到符合需求的可用量。
例如:
REFRESH IR_VBTYP.