首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PyRFC调用中获取错误的堆栈跟踪?

从PyRFC调用中获取错误的堆栈跟踪?
EN

Stack Overflow用户
提问于 2018-12-03 22:23:32
回答 2查看 538关注 0票数 5

到目前为止,如果SAP RFC函数中的某些内容出错,我只会收到一条错误消息

代码语言:javascript
复制
pyrfc._exception.ABAPRuntimeError: RFC_ABAP_MESSAGE (rc=4): key=No authorization, 
message=No authorization [MSG: class=00, type=E, number=001, v1-4:=No authorization;;;]

如果我能得到一个ABAP函数的堆栈跟踪,它将大大提高开发速度。有没有办法获得堆栈跟踪,比如在Python中?

相关:https://softwarerecs.stackexchange.com/questions/52350/sentry-event-from-exception-to-html

Sentry使用特定的JSON来表示堆栈跟踪和局部变量的内容。上面的链接包含一个示例。

EN

回答 2

Stack Overflow用户

发布于 2019-08-28 19:17:22

可以使用类cl_abap_get_call_stack调用ABAP中的堆栈跟踪。局部变量不包括在由类cl_abap_get_call_stack返回的堆栈跟踪中。但是您可以使用日志点来监视本地变量和堆栈跟踪。可以在transaction saab中创建、更改和查看日志点。示例代码片段:

代码语言:javascript
复制
DATA(formatted_stack) =  
cl_abap_get_call_stack=>format_call_stack_with_struct(   
  cl_abap_get_call_stack=>get_call_stack( ) ).
LOG-POINT ID my_log_point FIELDS formatted_stack 
  local_variable1 local_variable2.

有关授权错误,请检查transaction su53。当您看到红色的授权对象S_RFC时,这意味着您不能以任何方式调用函数模块!

票数 1
EN

Stack Overflow用户

发布于 2020-10-29 21:05:32

随着ABAP753的发布,引入了EPP扩展Passport等结构。

它似乎正在做你想要做的事情,比如显示被调用系统的踪迹。我写“似乎是”是因为我手头没有753+系统,所以我不能在实践中检查。

From the description它应该做你想做的事情:

是一种可以从客户端发送到服务器的数据结构,用于分析调用堆栈。框架和分析工具可以使用扩展密码来跟踪客户端和服务器之间超出系统边界的通信中的外部调用堆栈。EPP组件的值可以保存到日志文件中并用于监控。这方面的一个例子是短转储,它们都显示最重要的EPP组件。

DEMO_EPP给出了EPP的以下使用模式:

代码语言:javascript
复制
cl_demo_epp=>init( ).

"this program
cl_demo_epp=>append( ).

"Calling RFC to remote instance
CALL FUNCTION 'DEMO_RFM_EPP_1' DESTINATION instance.

"New SAP LUW
CALL FUNCTION 'DEMO_UPDATE_DELETE' IN UPDATE TASK
  EXPORTING
    values = VALUE demo_update_tab( ).
COMMIT WORK.

cl_demo_epp=>append( ).

cl_demo_output=>new(
  )->begin_section( `Extended Passport (EPP)`
  )->display( name = 'EPP Trace'
              data = cl_demo_epp=>get( ) ).
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53595739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档