跟踪记录ABAP对外部系统的RFC通信
对SAP系统而言,RFC最常见的系统间通信方式,SAP与SAP系统及SAP与非SAP系统之间的连接都可以使用它。它的使用便利,功能强大,在各种接口技术中,往往是最受(ABAP开发者)青睐的选择。
查询接口通信的日志记录,有助于排查和解决相关开发工作中遇到的问题(以及甩锅给对方系统)。对于webservice接口,有事务代码SRT_UTIL(Web Service Monitors)可用,对于RFC接口,则可以使用SM59中的trace选项。本文会逐步介绍RFC跟踪功能的使用。
当ABAP程序使用RFC调用外部系统的程序,外部系统是RFC服务端,ABAP系统则是RFC客户端。
如果外部RFC程序是SAP传输控制程序(tp),可以按照Note 777565中的指示激活跟踪。
如果你还不知道如何创建和维护RFC Destination,建议搜索。
本文链接:https://www.cnblogs.com/hhelibeb/p/10913843.html
英文原文:Note 878860
步骤简述
1,删除有关外部程序的旧跟踪文件。
2,激活RFC跟踪。
3,运行RFC(重现问题)。
4,取消激活RFC跟踪。
5,查看和保存跟踪文件。
看起来是不是很简单?下面是每个步骤的详细描述。
步骤详述
1,删除有关外部程序的旧跟踪文件。
登录ABAP系统,运行事务代码SM59。在菜单栏中,选择RFC->Delete Trace,

前往外部RFC程序的工作目录并删除所有旧的跟踪文件。 工作目录是程序启动的目录; 它可能与安装目录不同。 如果设置了环境变量RFC_TRACE_DIR,前往此目录,并删除其中的旧跟踪文件。
2,激活RFC跟踪
运行事务代码SM59,选择使用的RFC Destination。在"Special Options"标签页勾选跟踪标识。

有时可能需要设置RFC bit和其它相关选项,这要依据SAP的notes或支持人员的意见来决定。
外部系统也可以通过一个代表function module的方法发送RFC(回调)。在这种情形下,外部系统会成为客户端,而不是服务端。如果要跟踪这种情况的RFC,请参考Note 877979中的步骤2。
3,运行RFC(重现问题)
运行RFC,最好按照发生问题时的重现问题时的步骤操作,使RFC的调用情况和之前相同。
4,取消激活RFC跟踪。
参考步骤2,运行事务代码SM59,选择使用的RFC Destination。在"Special Options"标签页取消跟踪标识的勾选,如有必要,重置RFC bit的设置。
5,查看和保存跟踪文件
运行事务代码SM59。在菜单栏中,选择RFC->Display Trace,

选择后即可看到跟踪记录日志。
若要保存跟踪文件,在新界面选择菜单栏中的System -> List -> Save -> Local File,选择格式和路径后即可保存到本地。
--------------正文完--------------
后记:翻译到一半发现这是个notes,没必要做翻译...只好配上图,做了文字上的一点修饰,也许能帮助第一次使用相关功能的读者节约一点时间。
跟踪记录ABAP对外部系统的RFC通信的更多相关文章
- SAP RFC通信模式
在网络技术中,数据通信可以大致划分为两种基本模式:同步通信和异步通信. 其本义是:异步通信时,通信双方时钟允许存在一定误差:同步通信时,双方时钟的允许误差较小.在SAP的系统间的通信过程中,也借用术语 ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- Android内存管理(5)*官方教程:Logcat内存日志各字段含义,查看当前内存快照,跟踪记录内存分配,用adb查看内存情况时各行列的含义,捕获内存快照的3种方法,如何让程序暴漏内存泄漏的方法
Investigating Your RAM Usage In this document Interpreting Log Messages 内存分析日志中各消息的含 ...
- 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数.具体场景和我之前的公众号文章 Cloud for Cust ...
- StackTrace堆栈跟踪记录详细日志
使用StackTrace堆栈跟踪记录详细日志(可获取行号) 2014-04-25 22:30 by 螺丝钉想要螺丝帽, 350 阅读, 3 评论, 收藏, 编辑 上一篇我们提到使用.NET自带的Tra ...
- node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录
Node + mysql 实现基础的增删改查,以及性能测试. 网上有很多这样的例子,我也是找来学习的. 感觉node对mysql的操作非常简单,也很实用,比如自带防止sql注入的功能,一开始还担心注入 ...
- #实现详细记录登陆过系统的用户,IP地址,shell命令及详细操作的时间
//实现详细记录登陆过系统的用户,IP地址,shell命令及详细操作的时间 将下面代码加入/etc/profile //history USER_IP = who -u am i 2> /dev ...
- 为什么CRM Opportunity的删除会触发一个通向BW系统的RFC
今天工作时我发现,我在SE38里用函数CRM_ORDER_DELETE删除一个Opportunity,居然弹出下图这个SAP Logon的屏幕,要连接BR1.这是什么鬼?! 查了一下,BR1是BW系统 ...
- Linux系统编程@进程通信(一)
进程间通信概述 需要进程通信的原因: 数据传输 资源共享 通知事件 进程控制 Linux进程间通信(IPC)发展由来 Unix进程间通信 基于System V进程间通信(System V:UNIX系统 ...
随机推荐
- Algorithm: dynamic programming
1. Longest Increasing Subsequence (LIS) problem unsorted array, calculate out the maximum length of ...
- Windows、Linux、Mac OSX编译jni动态库
在不同平台下默认调用不同名字的动态库,在Windows平台调用name.dll,在Linux平台调用libname.so,在OSX下调用libname.jnilib.不同平台下的编译的方法也有些区别. ...
- 用js实现图片(小球)在屏幕上上下左右移动
<html> <head> <title>Document</title> </head> <body style="bac ...
- 读取配置和动态配置(C方法)
读取配置 无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置.用法:C('参数名称') 例如,读取当前的URL模式配置参数:$mod ...
- sqlite:多线程操作数据库“database is locked”解决方法
1. 使sqlite支持多线程(不确定是否非加不可,暂且加上,以备后患) 可以在编译时/启动时/运行时选择线程模式,参考:http://www.cnblogs.com/liaj/p/4015219.h ...
- 基于jQuery Ajax实现无刷新文件上传
最近因项目需求更改,需要实现选择文件后即时上传至服务器,然后提交后,加载xls表格内容到jqgrid表格中,文件上传功能实现示例: 前端jsp页面: <form id="uploadF ...
- intent实现Activity之间跳转的各种传值
一.在Activity之间传递String类型的数据 传递 @Override public void onClick(View v) { String num1 = firstNum.getText ...
- P2042 [NOI2005]维护数列[splay或非旋treap·毒瘤题]
P2042 [NOI2005]维护数列 数列区间和,最大子列和(必须不为空),支持翻转.修改值.插入删除. 练码力的题,很毒瘤.个人因为太菜了,对splay极其生疏,犯了大量错误,在此记录,望以后一定 ...
- [CTSC 2012] Cheat
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2806 [算法] 首先建立广义后缀自动机 注意到问题具有单调性 , 不妨对于每组询问二 ...
- 组播基本概念、IGMP、IGMP监听学习笔记
前言 一直对组播这个概念迷迷糊糊,特别是交换机处理组播的方式,非常想搞懂但是懒癌发作.这几天终于耐心地看了下有关组播的资料,大致了解了一下同一广播域内组播的相关知识.组播占了计算机网络的一大部分,特别 ...