SAP跨公司采购订单装运数据增强

1、场景: A、B、C三个公司,A和B如果都对C公司的同一个工厂做跨公司采购业务,C对B销售整车【产品组10】,C对A销售配件【产品组20】,物料的产品组不同。

问题①:跨公司采购系统配置【物料管理-采购-采购订单-设置库存调拨订单-定义工厂的装运数据】C公司只能配一个产品组,如图2产品组配10只能实现B对C的跨公司采购,要想实现A对B的跨公司采购,就要增强实现创建跨公司采购订单时把采购订单上的装运页签中的产品组【见图1】自动更改成20。

问题②:跨公司采购订单如图1中装运点也是通过配置【后勤执行-装运-基本发运功能-装运点和收获点确认-分配运送地点】自动带到采购订单上的,但配置也是一个工厂配置一个默认的装运点如图3,创建采购订单时会自动带出第一个装运点2001,所以如果用me21n创建跨公司采购订单,也需要增强更改装运点,调用BAPI创建采购订单会有发运点的参数,传进去什么发运点就回写什么发运点。(当然也可以通过创建一个新的装载组来实现一个工厂有多个配置,然后物料主数据上去设置这个装载组,也可以实现,但是业务不想大量更改物料,所以通过程序实现)。
SAP跨公司采购订单装运数据增强
SAP跨公司采购订单装运数据增强
SAP跨公司采购订单装运数据增强
2、增强实现:
程序SAPLMEPO的包括MM06EFPV_PTV_FUELLEN 的
form ptv_fuellen using im_activity。销售组织数据就是从T001W表中读出来的,所以在此处更改*t001w变量中的产品组的值就可以了,如下图。
SAP跨公司采购订单装运数据增强
上图程序MM06EFPV_PTV_FUELLEN的下边还有函数SD_TRANSFERDATA_DETERMINE,这里边就是给采购订单的装运数据赋值。
在函数SD_TRANSFERDATA_DETERMINE –>perform ekpv-vstel_ermitteln ->call function ‘VERSANDSTELLE_ERMITTELN’ -> 中就是读取tvst表中的装运点,如果增强更改装运点,可以看此VERSANDSTELLE_ERMITTELN函数。

SAP跨公司采购订单装运数据增强