我在ABAP中编写了一个函数,该函数通过SAP pyrfc调用。
如果存在SAPSQL_PARSE_ERROR,则RFC调用程序(用Python编写的客户端)将收到无意义的错误消息:
ABAPRuntimeError:RFC_ABAP_RUNTIME_FAILURE(rc = 3):键= SAPSQL_PARSE_ERROR,消息= Beim Parsen einam dynamischen Angabe trat ein Fehler auf。 [MSG:class =,type =,number =,v1-4:= ;;;]
通过tcode st22
,我可以查看详细信息。为了加快往返速度,我想改善在python客户端可见的错误消息。
我猜,但不知道,是否需要更改abap函数。如何获得在st22
中可见的有价值的文本?
我知道st22的输出非常长。有价值的文本在德语sap gui中名为“ Fehleranalyse”的框中,表示大致“疑难解答”或更确切地说是“错误分析”
答案 0 :(得分:3)
SAPSQL_PARSE_ERROR
建议您在某些时候启用了远程功能的函数向数据库提交了错误的OpenSQL查询。这将导致CX_SY_DYNAMIC_OSQL_SYNTAX
类型的可处理异常。
不捕获此异常将导致转储。事务ST22是转储分析工具,可让您检查它们。
在OpenSQL查询中放置TRY ... CATCH
可以使您捕获该异常并解析其属性以获得更有意义的消息。然后,您可以抛出自己的异常以将更有用的内容转发给RFC调用者。