点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我们的系统出现问题。
这段代码生成ST22 abap运行时错误:
CATCH_ILLEGAL_STATE
这是代码:
数据: tdname_range tdname的TYPE RANGE, tdobject_range tdobname的TYPE RANGE, spras_range语言的TYPE RANGE。 数据:lt_svo类型zbpt_gwe_svo_id。 循环到it_ids INTO DATA(ls_id)。 将初始行追加到tdname_range ASSIGNING FIELD-SYMBOL()。 -sign ='I'。 -option ='EQ'。 -low = ls_id-id。 结局。 从stxh到表@DATA(lt_stxh)中选择tdname,tdobject,tdid,tdspras,tdname在@tdname_range中且tdid ='Z001'和tdobject ='BUT000'。 循环到lt_stxh INTO DATA(ls_stxh)。 将初始行添加到tdobject_range ASSIGNING FIELD-SYMBOL( )。 -sign ='I'。 -option ='EQ'。 -low = ls_stxh-tdname。 结局。 spras_range = VALUE#((符号='I'选项='EQ'低='N')(符号='I'选项='EQ'低='E'))。 SELECT tdname,clustr,clustd 插入表@DATA(lt_stxl) 从stxl Relid ='TX'"标准文字 AND tdobject ='BUT000' AND tdname输入@tdobject_range AND tdid ='Z001' 和@spras_range中的tdspras。 *没有文本名称的压缩文本数据 类型:开始于ty_stxl_raw, clustr TYPE stxl-clustr, clustd TYPE stxl-clustd, 结束于ty_stxl_raw。 数据:ty_stxl_raw的t_stxl_raw类型标准表。 数据:w_stxl_raw类型ty_stxl_raw。 *解压缩的文本 数据:tline的t_tline类型标准表。 字段符号: TYPE tline。 数据:w_stxh TYPE stxh。 在lt_stxl分配字段符号( )处循环播放。 *解压文本 清除:t_stxl_raw [],t_tline []。 w_stxl_raw-clustr = -clustr。 w_stxl_raw-clustd = -clustd。 将w_stxl_raw附加到t_stxl_raw。 从内部表t_stxl_raw导入tline = t_tline。 *访问文本行以进行进一步处理 在t_tline ASSIGNING 处循环播放。 尝试。 IF -tdline CP iv_filter。 在lt_svo ASSIGNING FIELD-SYMBOL( )上附加初始行。 -id = CONV bu_partner( -tdname)。 万一。 *抓住cx_sy_itab_line_not_found。 捕获cx_root。 ENDTRY。 结局。 结局。 排序lt_svo升序。 从lt_svo比较所有字段中删除相邻的重复项。 rt_ids = lt_svo。
此代码根据iv_filter的值过滤文本。
在最后一个循环中出错:
我认为,问题是由以下代码行引起的:
导入tline =来自内部表t_stxl_raw的t_tline。
有人可以说出问题是什么吗?
dump.jpg (59.7 kB)
文森特·布洛姆,花了我一些时间,但是使用以下代码,您应该可以阅读 ST22转储。 它不是"漂亮"的,但可以工作,因为SAP捕获ST22转储的系统变量。 但不是所有程序变量,都是"神奇地"选择的,它们在系统上似乎很重要(而且到目前为止,您的伙伴,又名 -tdname,显然不值得)。
Mukesh Radhakishan Jadhav 基于ABAP文档,这很可能不是问题:" itab的第一列必须具有数据类型s或i,第二列必须具有数据类型x。" stxl-custr(2- 字节整数)。否则,我也可能会遇到一般错误,而不仅仅是在"最后一个循环"中。
例如,当IMPORT FROM INTERNAL TABLE语句出现时,错误CATCH_ILLEGAL_STATE就会发生 您的字段CLUSTR或CLUSTD为空/初始或当它们包含损坏的信息时,这不会导致从数据集群中有效提取数据。
不能使用标准功能模块READ_MULTIPLE_TEXTS吗? (由注释2261311添加)
文森特布洛姆再次,您不想吗 为了使用READ_MULTIPLE_TEXTS简化代码?
文森特·布洛姆,请继续关注 悬而未决的问题。
嗨,迈克尔 ,
我像您说的那样进行了代码更改,并成功了! :-)
我们发现了导致运行时错误的BP。
问题出在BP的数据中,文本长1748页! 充满了奇怪的字符。...所以我们清除了数据,现在不再转储了。
感谢您的帮助!
KR
Vincent
一周热门 更多>