今天遇到一个问题,在DSO加载数据到CUBE时执行DTP时报了个“"Request was set to incorrect in a parallel mode”,想查看详细信息,居然无法用。在网上搜到一个方法:
1、打开DTP,菜单Goto --->Setting for Parallel Manager, 将Number of Proceses从4 改为1,再重新执行一次。我的理解是原来DTP是并行执行的,现在改为一次执行一个数据包,换句话即是串行执行。
原来在数据包2时报错的,现在它不报错这个错了,即这个方法可行的。
2、但新的问题:数据包3报错,No SID found for value 'ZH1' of characteristic 0UNIT, 我第一反应就是用SE11查表T006是不是真的没有ZH1这个单位,T006没这个单位。
3、我在源系统右击执行“Transfer Global Setting”,再查表T006还是没有ZH1。
4、怀疑InfoObject出现了不一致,执行RSRV---> All Elementary Tests ---> Master Data --> SID Conversion for InfoObject 0UNIT. 结果还是不行
5、我怀疑这不是什么单位,查DSO的激活数据表,看哪些记录的单位字段是ZH1的,但没有相应的记录。
6、在转换规则的开始例程中,想删除有ZH1这些记录,但结果仍是报错。
DELETE SOURCE_PACKAGE where UNIT cp 'ZH%'.
7、在开始例程中作些处理,对于不存在在T006表的单位,用空格代替。
FIELD-SYMBOLS:<fs01> like LINE OF SOURCE_PACKAGE .
data: tmpUnit type c LENGTH 10.
LOOP at SOURCE_PACKAGE ASSIGNING <fs01>.
if <fs01>-UNIT <> '' .
select SINGLE msehi INTO tmpUnit from T006 where MSEHI = <fs01>-UNIT.
if sy-subrc <> 0.
<fs01>-UNIT = ''. “replace with space
endif.
ENDIF.
ENDLOOP.
这样数据能成功加载了,但毕竟是最好的解决办法。