首先start routine 是对data package逐个处理的.
这个如果debug一个DTP,很容易发现..
(7.0 debug DTP的工具做得还是很不错的..比3.x强多了感觉..)
通过end routine,无法通过exception handling 来过滤(skip)数据,但是start routine就可以..
如果在end routine中使用了 "RAISE EXCEPTION TYPE CX_RSROUT_SKIP_RECORD"
就会跑出一下错误信息:
"W:The exception CX_RSROUT_SKIP_RECORD is neither caught nor is it declared in the RAISING clause of "END_ROUTINE".
大家可以参考下这个英语论坛的帖子
https://forums.sdn.sap.com/thread.jspa?threadID=1003243
里面有说 start/end routine都不行..事实上start routine是可以的..至少我试验下来确认过..
三个可使用的exception:
1) CX_RSROUT_ABORT
就直接abort了..
2) CX_RSROUT_SKIP_RECORD 跳过整条记录
3) CX_RSROUT_SKIP_VAL 如果不是key fields的话, 跳过这个值..
-------------------------------------------------------------------
SAP Community Network中文网站,论坛 scn.sap.cn
SAP Community Network日本語サイト、フォーラムscn.sap.co.jp
-------------------------------------------------------------------
这个如果debug一个DTP,很容易发现..
(7.0 debug DTP的工具做得还是很不错的..比3.x强多了感觉..)
通过end routine,无法通过exception handling 来过滤(skip)数据,但是start routine就可以..
如果在end routine中使用了 "RAISE EXCEPTION TYPE CX_RSROUT_SKIP_RECORD"
就会跑出一下错误信息:
"W:The exception CX_RSROUT_SKIP_RECORD is neither caught nor is it declared in the RAISING clause of "END_ROUTINE".
大家可以参考下这个英语论坛的帖子
https://forums.sdn.sap.com/thread.jspa?threadID=1003243
里面有说 start/end routine都不行..事实上start routine是可以的..至少我试验下来确认过..
三个可使用的exception:
1) CX_RSROUT_ABORT
就直接abort了..
2) CX_RSROUT_SKIP_RECORD 跳过整条记录
3) CX_RSROUT_SKIP_VAL 如果不是key fields的话, 跳过这个值..
-------------------------------------------------------------------
SAP Community Network中文网站,论坛 scn.sap.cn
SAP Community Network日本語サイト、フォーラムscn.sap.co.jp
-------------------------------------------------------------------
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22816661/viewspace-618078/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22816661/viewspace-618078/