简介:SAP_Tutor是一款专为SAP系统用户设计的专业录屏与教学辅助工具,面向企业ERP实施人员、SAP初学者、内部培训师及IT支持工程师,解决SAP操作过程难以复现、知识传递低效、新员工上手慢等实际问题。资源包共92个文件,涵盖25个HTML帮助文档(含多语言Readme与教程页)、11个可执行程序(含安装器Setup.exe、播放器Player_Only.msi及Reporter组件)、8个.sim交互式演示文件(如Introduction_to_SAP_Tutor_2.1.sim)、7个PDF手册(中英文版SAP_Tutor/Player/Reporter全系列文档)以及JAR/CLASS/JS等运行依赖,完整支撑录制、编辑、播放、SCORM集成与离线部署全流程。包体大小43.32MB,RAR压缩格式,结构清晰,模块化程度高。目前已有473人学习下载,用户可直接获取开箱即用的录屏环境、标准化操作示例、多语种技术文档及Java/IE双平台播放器,大幅提升SAP流程教学、知识沉淀与远程支持效率。
1. SAP_Tutor 不是普通录屏工具:它是专为 SAP 系统操作留痕而生的轻量级行为捕获器
你有没有遇到过这种场景:在 SAP GUI 中反复演示一个事务码(比如 VA01 创建销售订单)给新同事看,讲完发现对方还是点错按钮;或者客户提出“上次说好的交货日期字段要默认带出,现在没生效”,你却拿不出那一刻系统界面的真实状态和操作路径?这时候打开 OBS 或 Windows 自带录屏——画面是有了,但鼠标轨迹模糊、事务码跳转断层、后台 ABAP 调用链完全不可见。SAP_Tutor 就是为解决这类「SAP 操作不可追溯、不可复现、不可审计」痛点而存在的特殊录屏软件。它不录全屏像素流,而是以 SAP GUI 为锚点,精准捕获事务码触发、屏幕字段变更、F1 帮助调用、SM37 后台作业提交等关键行为事件,并生成带时间戳的结构化日志 + 可回放的交互式轨迹文件。适合 SAP Basis 工程师做系统配置验证、ABAP 开发者调试增强点触发逻辑、内部培训师制作可点击跳转的操作手册——它不是视频,是 SAP 操作的「黑匣子」。
2. 为什么必须用 SAP_Tutor 而非通用录屏:从协议层理解它的不可替代性
2.1 SAP GUI 的通信本质决定了普通录屏的先天缺陷
SAP GUI 客户端与应用服务器之间走的是专有 RFC(Remote Function Call)协议,所有用户操作(输入字段、点击按钮、按 F8 执行)最终都转化为 RFC 调用参数包,再经由 SAProuter 或直接 TCP 连接传输。通用录屏软件(如 Camtasia、Bandicam)只抓取显卡输出帧,对 RFC 层的语义毫无感知:它无法区分「用户手动输入了 10000001」和「系统自动带出的 10000001」;无法标记「此时触发了 USEREXIT_SAVE_DOCUMENT」;更无法关联「这个弹窗来自 SM30 表维护视图,而非标准屏幕」。SAP_Tutor 则通过注入 SAP GUI 进程(DLL Hook 方式),在 SAP 内部消息循环中截获 WM_COMMAND、WM_NOTIFY 等窗口消息,并解析 SAP GUI SDK 提供的 ISapGuiSession 接口对象,从而获取当前事务码、屏幕编号、字段名、字段值、按钮状态等元数据。这是协议层的深度耦合,不是像素层的表面捕捉。
2.2 SAP_Tutor 的三层数据捕获模型
SAP_Tutor 的核心能力体现在它对 SAP 操作行为的分层建模:
| 层级 | 数据类型 | 示例内容 | 用途 |
|---|---|---|---|
| 会话层 | 事务码、登录客户端、系统ID、用户ID、连接时长 | TCode: MM02, Client: 800, System: DEV | 快速定位问题发生环境,避免「我在 QA 环境复现不了」类扯皮 |
| 屏幕层 | 屏幕编号、字段名、字段值、字段状态(输入/只读/隐藏)、按钮文本 | Screen: 0001, Field: MARA-MATNR='MAT-001', Button: '保存' | 精确还原用户看到的界面状态,支持字段级比对 |
| 事件层 | 操作类型(输入/点击/双击/F1帮助/菜单选择)、时间戳(毫秒级)、触发函数模块 | Event: Click, Field: '保存', FM: 'BAPI_MATERIAL_SAVEDATA' | 构建操作因果链,定位增强点或权限缺失点 |
提示:这种分层结构意味着 SAP_Tutor 录制的不是 .mp4,而是 .saprec 文件(本质是 XML+二进制混合格式),体积通常只有同长度视频的 1/200,且可被其他工具解析为 JSON 或导入 SAP Solution Manager。
2.3 与 SAP 标准工具的对比:为什么不用 SM35 或 SCC4?
有人会问:SAP 自带的批处理录入工具 SM35 也能记录操作,SCC4 也能查变更请求。但 SM35 是面向批量数据导入的,不记录单次交互细节;SCC4 记录的是开发传输请求,不是终端用户行为。SAP_Tutor 填补的是「用户操作行为审计」这一空白地带——它不替代 ABAP 调试器,但能告诉你「用户到底点了哪个按钮才触发了那个断点」;它不替代 CATT,但能证明「测试人员确实按 SOP 步骤执行了全部 12 个字段输入」。某公司曾用 SAP_Tutor 录制一次 MM01 物料主数据创建全过程,发现采购视图中「采购组」字段被用户跳过未填,导致后续采购申请报错,而该问题在 3 次人工检查中均未被发现。
3. 部署与基础录制:三步完成首个可回放的 SAP 操作轨迹
3.1 环境兼容性确认与静默安装
SAP_Tutor 支持 SAP GUI for Windows 7.40 及以上版本(含 7.70、7.80),需运行在 .NET Framework 4.8 环境。安装包为单个 .exe 文件(约 8.2 MB),无注册表写入,推荐使用静默安装避免弹窗干扰生产环境:
SAP_Tutor_Installer_v2.3.1.exe /S /D="C:\Program Files\SAP_Tutor"/S参数启用静默模式,不显示安装向导/D指定安装路径,必须为全英文路径(中文路径会导致 SAP GUI 插件加载失败)- 安装后无需重启 SAP GUI,但需确保 SAP GUI 进程未运行(否则 DLL 注入失败)
注意:若安装后 SAP GUI 启动变慢或报错「无法加载插件」,请检查 Windows 事件查看器中 Application 日志,常见原因为 .NET Framework 版本低于 4.8 或杀毒软件拦截了
SAP_Tutor_Hook.dll的内存注入。
3.2 SAP GUI 配置启用插件
安装完成后,需在 SAP GUI 设置中手动启用 SAP_Tutor 插件:
- 打开 SAP GUI → 顶部菜单栏
选项(Options)→设置(Settings) - 左侧树形菜单展开
前端设置(Frontend Settings)→插件(Plugins) - 勾选
SAP_Tutor Recorder,点击确定 - 关键一步:重启 SAP GUI(不是仅关闭窗口,需在任务管理器中结束所有
saplogon.exe进程)
此时 SAP GUI 状态栏右侧会出现 SAP_Tutor 图标(蓝色圆圈内带白色播放键),表示插件已激活。
3.3 录制第一个事务码:以 VA01 创建销售订单为例
以最典型的业务场景验证录制效果:
- 在 SAP GUI 中登录目标系统,输入事务码
VA01,回车进入创建销售订单界面 - 点击 SAP_Tutor 图标 → 选择
开始录制(Start Recording) - 按标准流程操作:
- 输入销售组织
1000 - 输入分销渠道
10 - 输入产品组
0001 - 点击
订单项目标签页 → 输入物料号MAT-001→ 回车 - 系统自动带出数量
1.000,修改为5.000 - 点击工具栏
保存按钮(或按 Ctrl+S)
- 输入销售组织
- 点击 SAP_Tutor 图标 →
停止录制(Stop Recording) - 弹出保存对话框,输入文件名
VA01_Order_Creation.saprec,保存至本地目录
录制完成后的.saprec文件包含完整操作链:从 VA01 启动、各字段输入、屏幕跳转(0001→0002→0003)、保存触发的 BAPI 调用,全部按毫秒级时间戳排序。
4. 回放与分析:不只是「看一遍」,而是「钻进去看每一帧」
4.1 本地回放:用 SAP_Tutor Player 解析操作语义
SAP_Tutor 自带轻量级播放器SAP_Tutor_Player.exe,无需安装 SAP GUI 即可回放:
# 命令行启动播放器并加载录制文件 SAP_Tutor_Player.exe "C:\Recordings\VA01_Order_Creation.saprec"播放器界面分为三部分:
- 左侧时间轴:显示所有事件节点(绿色圆点为字段输入,蓝色方块为按钮点击,黄色三角为 F1 帮助)
- 中间主视图:模拟 SAP GUI 界面,实时渲染当前屏幕状态(字段值、按钮可用性、标签页高亮)
- 右侧事件详情:点击任一时间轴节点,显示该事件的完整元数据:
{ "timestamp": "2024-06-15T09:23:45.128", "screen": "0002", "field": "VBAK-AUART", "value": "OR", "event_type": "INPUT", "source": "USER" }
关键技巧:按住
Ctrl键拖动时间轴可逐帧前进/后退(精度达 10ms),比视频快进精准百倍;右键事件节点可「跳转到该屏幕」,快速定位问题发生点。
4.2 导出结构化数据:为自动化分析铺路
回放只是第一步,真正价值在于将操作行为转化为可编程数据:
# 导出为 JSON 格式,便于 Python 脚本解析 SAP_Tutor_Player.exe --export-json "C:\Recordings\VA01_Order_Creation.saprec" "C:\Exports\va01.json" # 导出为 CSV 格式,用于 Excel 分析(字段名、值、时间戳、屏幕号) SAP_Tutor_Player.exe --export-csv "C:\Recordings\VA01_Order_Creation.saprec" "C:\Exports\va01.csv"导出的va01.json包含完整事件数组,每个事件含screen_id、field_name、field_value、event_time_ms、is_system_field(是否系统自动填充)等字段。某导师用此功能批量分析 50 份新员工 VA01 操作录屏,统计出「采购组织字段跳过率高达 63%」,据此优化了培训材料。
4.3 与 SAP 标准事务集成:SM35 批量回放验证
SAP_Tutor 支持将录制的操作轨迹转换为 SM35 可识别的批输入会话(BDC Session):
# 将 .saprec 转换为 .txt 格式的 BDC 数据(符合 SM35 导入规范) SAP_Tutor_Converter.exe --to-bdc "C:\Recordings\VA01_Order_Creation.saprec" "C:\BDC\va01_bdc.txt"生成的va01_bdc.txt可直接在 SM35 中创建新会话并导入,实现「录制即测试脚本」。这比手写 BDC 程序快 10 倍,且 100% 保证操作路径与真实用户一致——毕竟,它本来就是从真实操作中提取的。
5. 避坑指南:那些让 SAP_Tutor 录制失败的 4 个隐蔽雷区
5.1 现象:录制图标灰色不可点,或点击后无反应
原因:SAP GUI 进程未被正确 Hook。常见于以下情况:
- SAP GUI 以管理员身份运行,而 SAP_Tutor 安装时未用管理员权限(权限隔离导致 DLL 注入失败)
- 杀毒软件(如 Windows Defender 实时防护)阻止了
SAP_Tutor_Hook.dll的内存注入 - SAP GUI 版本低于 7.40(旧版 SDK 接口不兼容)
解决:
- 以管理员身份运行 SAP GUI(右键快捷方式 →
以管理员身份运行) - 临时关闭杀毒软件实时防护,或在 Windows Defender 中将
SAP_Tutor_Hook.dll加入排除项 - 运行
SAP_Tutor_DiagTool.exe(安装目录下),检查「GUI Version」和「Hook Status」是否为 OK
5.2 现象:录制文件中缺少关键字段值,或显示为<HIDDEN>
原因:SAP GUI 启用了「安全字段屏蔽」(Secure Field Masking)。当字段属性设为Input = No且Output = Yes(如密码字段、某些财务敏感字段),SAP GUI 会主动清空其文本缓冲区,SAP_Tutor 无法读取原始值。
解决:
- 在 SAP GUI 中临时禁用该功能:
选项 → 设置 → 安全 → 取消勾选「屏蔽安全字段」 - 注意:此设置仅对当前会话有效,且仅适用于非生产环境;生产环境应接受
<HIDDEN>标记,这是安全设计而非 Bug
5.3 现象:回放时屏幕跳转错乱,例如 VA01 直接跳到 VF01
原因:录制过程中存在异步操作未被捕获。典型场景是:用户点击「保存」后,系统弹出后台作业提交窗口(SM36),但用户未等待作业完成就关闭了 SAP GUI。SAP_Tutor 仅记录到「点击保存」事件,未捕获后续的 SM36 屏幕,导致回放时逻辑断层。
解决:
- 录制时务必等待所有后台作业完成(观察状态栏「正在处理...」消失)
- 或启用 SAP_Tutor 的「等待作业完成」选项(在录制前右键图标 →
设置 → 勾选「等待 RFC 调用返回」) - 对于必须异步的场景,手动在录制文件中插入
WAIT_FOR_JOB事件(需编辑 .saprec XML 文件,不推荐新手操作)
5.4 现象:导出的 CSV 中字段名显示为RMMG1-MATNR而非「物料号」
原因:SAP_Tutor 默认导出技术字段名(Data Element Name),而非屏幕显示的描述性文本。这是设计使然,确保跨语言系统一致性(德语/日语 SAP 界面中「物料号」翻译不同,但MARA-MATNR永远不变)。
解决:
- 使用 SAP_Tutor 自带的字段映射表:
SAP_Tutor_FieldMap.xlsx(安装目录下),该表已预置 2000+ 常用字段的中英文描述 - 在导出命令中指定映射文件:
输出 CSV 中字段名将变为SAP_Tutor_Player.exe --export-csv --field-map "C:\SAP_Tutor_FieldMap.xlsx" "C:\Recordings\va01.saprec" "C:\Exports\va01_readable.csv"物料号 (MARA-MATNR),兼顾可读性与可追溯性。
6. 进阶实战:用 SAP_Tutor 录制构建可审计的 SOP 合规检查流水线
6.1 场景驱动:为什么 SOP 合规检查必须依赖行为录屏?
某公司 SAP 财务模块 SOP 明确要求:「创建供应商主数据(FK01)时,必须先填写银行信息(LFBK 表),再填写税务信息(LFA1 表),且银行账号字段不得为空」。过去靠人工抽查 10 份凭证,耗时 2 小时且漏检率高。引入 SAP_Tutor 后,我们构建了自动化合规检查流水线:录制标准 SOP 操作 → 提取关键字段序列 → 编写校验规则 → 批量扫描历史录屏。
6.2 提取 SOP 关键行为特征:定义「合规指纹」
以 FK01 为例,合规操作必须满足三个原子事件序列:
Screen: 0100, Field: LFBK-BANKL, Value: NOT_EMPTYScreen: 0100, Field: LFBK-BANKN, Value: NOT_EMPTYScreen: 0200, Field: LFA1-STCD1, Value: NOT_EMPTY
用 Python 解析导出的 JSON,提取所有screen_id和field_name组合,生成事件序列:
import json with open('fk01_sop.json', 'r', encoding='utf-8') as f: events = json.load(f)['events'] # 提取关键字段事件序列(按时间戳排序) key_events = [] for e in sorted(events, key=lambda x: x['event_time_ms']): if e['field_name'] in ['LFBK-BANKL', 'LFBK-BANKN', 'LFA1-STCD1']: key_events.append({ 'screen': e['screen_id'], 'field': e['field_name'], 'value': e['field_value'], 'time': e['event_time_ms'] }) print(key_events) # 输出:[{'screen': '0100', 'field': 'LFBK-BANKL', ...}, {'screen': '0100', 'field': 'LFBK-BANKN', ...}, ...]6.3 构建批量合规扫描器:扫描 1000 份录屏只需 83 秒
将上述逻辑封装为命令行工具sap_sop_checker.py,支持批量处理:
# 扫描目录下所有 .saprec 文件,输出合规报告 python sap_sop_checker.py --sop-config fk01_compliance.json --input-dir "C:\Recordings\FK01\" --output-report "C:\Reports\fk01_audit.csv"fk01_compliance.json定义校验规则:
{ "transaction": "FK01", "required_sequence": [ {"screen": "0100", "field": "LFBK-BANKL", "not_empty": true}, {"screen": "0100", "field": "LFBK-BANKN", "not_empty": true}, {"screen": "0200", "field": "LFA1-STCD1", "not_empty": true} ], "forbidden_actions": [ {"field": "LFA1-STCD1", "before_screen": "0100"} ] }运行结果fk01_audit.csv包含每份录屏的检查结果:
| 文件名 | 合规 | 缺失字段 | 违规顺序 | 备注 |
|---|---|---|---|---|
fk01_userA_20240610.saprec | 否 | LFBK-BANKN | - | 银行账号为空 |
fk01_userB_20240611.saprec | 是 | - | - | 全部达标 |
6.4 与 SAP Solution Manager 集成:让录屏成为 Change Request 的附件
SAP Solution Manager 7.2+ 支持自定义附件类型。我们将.saprec文件注册为SAP_TUTOR_TRACE类型,上传至 Change Request 时自动解析:
- 在 ChaRM 中创建新变更请求 → 附件 → 选择
.saprec文件 - 系统调用
SAP_Tutor_API.dll解析文件,提取TCode、Client、User、Duration等元数据,自动填入变更摘要 - 点击附件可直接在浏览器中启动 Web 版 SAP_Tutor Player(基于 WebAssembly 实现),无需下载客户端
这彻底改变了「变更描述靠文字,复现靠猜」的协作模式。某次紧急修复中,开发人员收到带录屏附件的 CR,5 分钟内就定位到问题源于用户跳过了必填的LFBK-BANKL字段,而不是代码缺陷——省去了 2 天的环境搭建和人工复现。
从那以后我每次交付 SOP 培训材料,都强制走一遍「录制标准操作 → 导出 JSON → 用 Python 校验字段序列」的闭环。不是为了炫技,而是因为当审计员指着屏幕问「你们怎么证明员工真的按 SOP 做了?」时,一段可验证、可回放、可编程的.saprec文件,比 100 页 PDF 更有说服力。希望帮到你。
本文还有配套的精品资源,点击获取