可用性库存 CO09排除库存地点

作者:斌将军 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:MM, 物料管理
可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

## 1.1、业务背景

A公司在同一个物理位置,业务组织架构上划分了4个工厂管理(可理解为车间),为保证物流、账务统一,简化操作复杂性,在SAP中采用一个工厂组织模式,组织图如下:

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

因业务上采用反冲扣料模式,经常因没有账务库存扣料失败导致月结时处理COGI(此处不对业务管理做特殊说明),因此在SAP端启用“可用性-

全工厂检查”(需要检查原料仓库,线边仓不会备大量原材料),但业务上4个分厂都有各自的二级仓,去ATP检查时需要排除其他的二级仓。ATP检查规则为:原料仓库+分工厂的线边仓,SAP标准检查要么全工厂(MRP范围)检查,要么库存地点检查,无法满足业务需求,需要做增强处理。

## 1.2、对应方案:

1、SAP后台配置启用全工厂检查

2、当触发检查时,根据特殊条件去排除其他分工厂的二级仓

3、调用函数BAPI_MATERIAL_AVAILABILITY,去排除

首先运行事务代码CO09,查看结果

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

运行BAPI_MATERIAL_AVAILABILITY

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

## 3.1、增强思路

找到系统中计算全工厂下(1000+1002)的库存数量时,排除掉1002库存地点,让得到的全工厂库存数量只有1000库存地点中的库存100,这样减掉已经占用的20,让最终得到的可用数量为80

## 3.2、EXIT_SAPLATPC_001(未采用)

社区推荐的增强点EXIT_SAPLATPC_001(ATP检查前输入),增强点EXIT_SAPLATPC_002(ATP检查后结果输出)。这两个增强点并没有找到使用办法,因此没有采用,有清楚的望不吝赐教。

## 3.3、STOCK_RECEIPT_ISSUE_READ

在BAPI_MATERIAL_AVAILABILITY运行时,经过函数AVAILABILITY_CHECK_EXECUTE中调用的函数STOCK_RECEIPT_ISSUE_READ,在该函数后得到物料工厂检查时对应的库存地点1000/1002,并且得到对应的库存地点和全工厂下的库存总数

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

全工厂库存数量150,1002库存50

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

因此在STOCK_RECEIPT_ISSUE_READ函数末尾,做隐式增强,根据接口抛内存进来的内表,删除对应库存的数据,并将全工厂下的库存数量减去排除的库存地点对应的库存数量(150

• 50 = 100)

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

最终得到BAPI返回的结果为80

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

通过上文的隐式增强,就可以解决需求。但是上文的增强是在得到数据后删除了应有的数量,而本身的思路是想在查询数据前,排除掉1002库存地点,使系统计算的库存数量就是我们需要的,则增强点更加完美,增强出错率更低,因此继续调试了获取库存数量的源码,过程记录如下:

PERFORM stock_read

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

get_stock()

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

read_stock()

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

select_stock()

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

最终查询视图atpc_cds_stock,获取库存数量。

并且查询条件只是物料、工厂、特殊库存标识,并没有库存地点,因此之前想通过删除库存地点得到正确取数的想法行不通,还是要回到对查询结果进行删除的逻辑上来

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图

并且该视图还可以查询其他的数据,有兴趣可以研究下

可用性库存 CO09排除库存地点 - 封面图
可用性库存 CO09排除库存地点 - 封面图
斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「可用性库存CO09排除库存地点.md」整理生成,仅用于内部技术分享与学习交流。