点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)这是在ECC EHP6 ABAP...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)这是在ECC EHP6 ABAP...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
这是在ECC EHP6 ABAP 7.31系统中。 我使用IF_T100_MESSAGE接口创建了一个全局异常类。 此异常类将在将验证选择屏幕字段的本地方法中使用。 这些方法将引发异常(使用此新的异常类),并通过它传递不同的消息ID,编号等,以便可以在选择屏幕上显示适当的错误消息。
数据:screen_error类型参考zcx_sel_screen_error。 尝试。 validate_input(...)。 捕获zcx_sel_screen_error INTO屏幕错误。 消息screen_error类型" E"。 ENDTRY。
在validate_input()内,我们调用具有一个或多个参数的另一个本地方法raise_exception,以引发上下文相关消息的异常。 这是引发异常的方式:
METHODraise_exception。 DATA error_message类似于if_t100_message => t100key。 error_message-msgid ='Z ...'。 error_message-msgno = i_msgno。 error_message-attr1 = i_text1。 error_message-attr2 = i_text2。 error_message-attr3 = i_text3。 error_message-attr4 = i_text4。 引发例外类型zcx_sel_screen_error 正在导出textid = error_message。 终结法。 " raise_exception
这很好用,但是当消息文本属性(ATTR1)是数字变量(类型为N或I)时,我遇到了一个奇怪的问题。问题在于消息文本显示的是&号,例如: >
如果我直接在MESSAGE命令中使用数字变量,则不会发生这种情况。 一种"强力"方法将是拥有一个中间文本类型变量,并在调用异常方法之前在其中移动数值,但我希望避免这种情况。 (注意:我在方法定义中对ATTTR1 ... 4使用TYPE ANY,因为在接口中使用的类型会导致使用数字变量的语法错误。这部分也不很满意,但这不是主要问题。)
我做错什么了吗,除了"蛮力"解决方案以外,还有其他可行的解决方案吗? 谢谢!
P.S。 在有人建议之前,IF_T100_DYN_MSG在7.31中不存在。
scn.jpg (36.4 kB)
我记得遇到了这种问题。 您假设要传递包含消息参数的异常类的属性名称,而不是直接传递参数值本身。
一周热门 更多>