更好的错误消息,而不是SAPSQL_PARSE_ERROR

时间:2018-10-26 11:32:08

标签: abap opensql pyrfc

我在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”的框中,表示大致“疑难解答”或更确切地说是“错误分析”

1 个答案:

答案 0 :(得分:3)

SAPSQL_PARSE_ERROR建议您在某些时候启用了远程功能的函数向数据库提交了错误的OpenSQL查询。这将导致CX_SY_DYNAMIC_OSQL_SYNTAX类型的可处理异常。

不捕获此异常将导致转储。事务ST22是转储分析工具,可让您检查它们。

在OpenSQL查询中放置TRY ... CATCH可以使您捕获该异常并解析其属性以获得更有意义的消息。然后,您可以抛出自己的异常以将更有用的内容转发给RFC调用者。