『诡异的』VL10B创建外向交货单出错解决全过程

     

      一直觉得SAP STO的业务模式配置起来还是挺简单的,无非就是关联一下采购单与交货单的关系,以及相应工厂的装运数据,其他像主数据的设置也没有什么特别的。相比ICS模式,它少了IDOC的配置,所以还是很单纯的。但笔者在SAP S4 1610 IDES环境下配置STO时居然被难住了!虽然STO我配置过很多次,从未失手,但这一次确实令我尴尬无比!

      情况是这样的:

      我先在接单公司里面创建对外客户的销售订单,因为该成品设置的特殊采购是来自于一家生产工厂的,因此需求自然而然就跑到生产工厂里,然后生产对应的公司间采购订单(STO,也叫公司间转储)。但是在VL10B对该采购单生成交货的时候,提示消息号VL324:项目类型& 不存在。

      采购订单详情如下:

      从『装运』页签上看信息都是正常的,说明该公司间采购订单完全可用!

      而系统配置是,我也该设置的都设置了:

      本以为一切妥当之后,我就去创建外向交货单,哪知道报这个错误,虽然系统会生成交货单,但交货单上物料和项目类型是空的!

      如果修改该交货单,加上物料号,系统会提示:

     『物料**未对销售机构 分销渠道 语言ZH定义』

      当然,这绝对是SAP放出来的烟雾弹,事实上我物料是绝对没问题的。真正错误的根源不是这样子的,问题在于,为什么它会创建不含物料的错误的交货单号呢?

然而我问各路SAP顾问、QQ群、微信群、各种百度、各种必应搜索,依旧没有找到任何的解决办法。网络上凡是STO的配置我都检查了一遍,完全就没有任何问题。

      起初我以为这是SAP的一个Bug,比较之前在ECC和1511的版本上我都配置过很多次了,完全没问题。

      没办法,懂技术开发的我,留给我的解决方式只有——Debug

      于是我首先通过ST05快速跟踪到对应Lips(交货单)这张表的代码所在地,打上断点,运行程序之后一层一层往上定位,发现它数据源来自于xlips,而xlips会根据我后台设置的交货类型去tvcpl(交货复制控制)去读取相应的数据。在本例中,我发现程序执行的是从销售订单vbak和vbap读取数据。但STO里面是没有销售订单的,看来问题出在这里,也就是交货复制控制里面!

      于是我打开后台:

    『SPRO——后勤执行——装运——交货复制』

      在目的地NLCC,源DL里面,我设置的NLC如下:

      这个明显就是销售订单到交货单的复制控制!

      实际上应该是这样子的:

      也就是说数据来源不再从销售订单读取!

      改了之后,重新创建交货单,问题解决!

 

      总结:

      1、按道理来说,这个复制控制的配置SAP标准就会预设的,所以基本上网络上所有对STO的配置都没有这个环节。同时,我在配置STO的时候遇到过NLC项目类别不存在(SAP预设的是存在的),自然的这个复制控制也不会存在,我『偷懒』是参考的其他配置进行复制过来。

      2、可能系统版本是IDES的原因,后台有一部分的配置『丢失』了,所以如果真要做配置和测试的话,IDES系统还是不完善的!当然,这也是涨知识了,碰到了以前完全碰不到的事儿。

      3、懂开发的业务咨询顾问,真的很有优势,非常值钱!

 

posted @ 2017-10-04 09:35  SAP梦心  阅读(14809)  评论(0编辑  收藏  举报
鄙视一切不懂技术又装懂的小人!