ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

SAP CRM SSF事务启动器完整配置指南:从RFC到BOR对象映射

SAP CRM SSF事务启动器完整配置指南:从RFC到BOR对象映射

简介:SAP CRM SSF(财务共享)配置与外部系统连接的PPTX演示文稿,面向SAP CRM顾问、开发人员及财务共享项目运维人员,聚焦事务启动器(Transaction Launcher)的创建流程与跨系统集成。资源共1个PPTX文件,大小692KB,以配置步骤截图与关键点说明为主,便于快速定位问题。已有301人学习,适用于具备SAP基础并需深入CRM SSF配置的读者。内容涵盖事务启动器原理,即通过ITS将SAP GUI事务代码集成至Web UI;详细梳理创建前提,包括SM59定义RFC连接、BD54定义逻辑系统、BD97分配RFC到逻辑系统、CRMS_IC_CROSS_SYS配置IT服务URL;并介绍在ERP中通过SWO1创建BOR对象、SSF创建事务启动器及逻辑链接,最后定义通用出站插件映射以调用ERP事务代码页面,可帮助读者系统掌握从配置到调用的完整链路。

1. 事务启动器:把 ERP 事务代码搬进 Web UI 的那座桥

财务共享服务上线后,最让顾问头疼的不是流程设计,而是让一群没有 SAP GUI 使用经验的财务坐席在 CRM Web UI 里完成冲销凭证、补记账这类动作。SAP CRM SSF(Shared Service Framework)里的事务启动器就是为解决这个问题存在的:它把 ERP 侧的事务代码封装成 Web UI 里可点击的启动链接,底层通过 ITS(Internet Transaction Server)把 HTTP 与 SAP 协议做双向转换,坐席在浏览器点一下就能打开 ERP 原始事务界面,不用切客户端、不用背事务代码。这篇笔记讲清楚创建事务启动器要完成的四个前置配置、从 BOR 对象到出站插件映射的完整创建路径,以及实际项目里反复出现的故障点,适合正在做 CRM 与 ERP 集成的实施顾问。

2. 事务启动器的四个前提条件:SM59、BD54、BD97 与 CRMS_IC_CROSS_SYS

事务启动器的调用链是 Web UI 点击 → CRM IC 侧 SSF 调用 → ITS 做协议转换 → RFC 通道连接 ERP → ERP 会话启动事务代码。这条链路里只要有一个环节没配好,启动器就会在某个位置悄悄断掉。我见过不少项目卡在创建启动器这一步,回头排查全是前置条件少做了一项或者顺序搞反,所以这一章先把四个前提配置逐一拆开讲。

2.1 SM59 定义 RFC 连接:跨系统调用的第一块基石

SM59 是 SAP 维护 RFC 连接的标准入口,事务启动器最终要把 CRM 前端的请求送到 ERP 侧执行事务代码,走的就是 RFC 通道。连接建不健康,后面所有映射和配置都是空中楼阁。

登录 CRM 系统后在 SM59 里新建一条 ABAP Connection,参数如下:

配置项推荐值说明
连接类型3 (ABAP Connection)SAP 系统之间的标准连接类型
目标系统 IDERP 的 SID,例如 ECC用于标识对端系统
技术设置-主机ERP 应用服务器 IPCRM 侧必须能访问到该地址
技术设置-实例号00要与 ERP 实际实例号一致
登录与安全-用户名ERP 侧对话用户需要有执行目标事务的权限
登录与安全-密码对应密码注意密码过期策略

配置完点击「连接测试」,返回 HTTP 200 或“连接正常”即通过。测试出错时先 ping 目标主机确认网络通不通,再看端口是否放行。我遇到过实例号填错导致反复报错的案例,那年头没有现在这么多工具,全靠一台一台试。

提示:RFC 用户建议用对话用户(Dialog User),不要用通信用户或系统用户。事务启动器要打开的是业务界面,需要完整的会话上下文和权限继承,通信用户后面极容易在事务代码执行时报权限问题。

2.2 BD54 与 BD97:逻辑系统与 RFC 连接的绑定关系

逻辑系统(Logical System)代表一个独立的 SAP 系统标识,跨系统通信靠它识别消息从哪来、到哪去。事务启动器场景里,CRM 需要知道“我要调用的 ERP 是哪个逻辑系统”,这个映射就在 BD54 和 BD97 里维护。

操作顺序不能反:先用 BD54 维护逻辑系统清单,再用 BD97 把逻辑系统分配到 SM59 里建好的 RFC 连接上。逻辑系统命名一般跟 ERP 客户端绑定,比如 ERP 客户端是 800,可以命名为ECC_CLNT800,名称可自定义但必须全局唯一。

BD97 里能看到「逻辑系统 → RFC 连接」的分配关系表。绑定错一个字符,启动器要么找不到目标系统,要么把请求发到别的系统。我之前处理过一个案例:逻辑系统名里把下划线写成了短横线,启动器直接报错,业务侧看不明白,查了半天才发现是命名不规范。

2.3 CRMS_IC_CROSS_SYS:ITS 服务 URL 配置在哪里写

CRMS_IC_CROSS_SYS 是 CRM IC(Interaction Center)的跨系统配置表,专门保存逻辑系统对应的 ITS 服务地址。事务启动器把 GUI 事务转成 HTML 依赖 ITS,而 ITS 地址就在这个事务代码里维护。

事务代码路径是CRMS_IC_CROSS_SYS,进去按逻辑系统新增条目,维护 ERP 侧 ITS 服务的完整 URL。ITS 服务地址通常是这种结构:

http://<its_server>:<port>/scripts/wgate/<service_name>/

例如http://erp-its:8000/scripts/wgate/erp/。注意末尾的斜杠不能少。SAP 后续拼参数时会自动接?~transaction=FB08之类的串,少了斜杠拼出来的就是无效路径。配置完成后可以先在浏览器直接访问这个 URL,能通再去建启动器。

提示:CRMS_IC_CROSS_SYS 改完配置后,需要清理 CRM IC 侧缓存(事务代码 /nICF 或 ICWC 相关操作)才能让新值生效,纯手工刷新不一定管用。

2.4 前置配置自查:五项检查清单与判断标准

配置做完别急着进入生产创建,先按下面的清单过一遍:

序号检查项事务代码/方式预期结果
1RFC 连接健康SM59 → 连接测试测试通过
2逻辑系统已定义BD54能看到 ERP 逻辑系统记录
3逻辑系统已分配BD97映射到对应 RFC 连接
4ITS URL 可访问浏览器直连返回正常响应
5跨系统表已维护CRMS_IC_CROSS_SYS条目和 URL 正确

五项里最常被忽略的是第 4 项。很多实施顾问配完 RFC 和逻辑系统就不再管 ITS,等启动器建好一打开,页面 502 直接糊脸。我的习惯是配置阶段就先把 ITS URL 放浏览器里点一遍,能出页面再继续,省掉后面一大截排查时间。

3. 创建事务启动器的完整流程:从 SWO1 建 BOR 对象到出站插件映射

前置条件全部就绪,接下来进入正式创建流程。事务启动器这条链路上有四个关键动作:SWO1 建 BOR 对象、SSF 创建事务启动器、创建逻辑链接、定义通用出站插件映射。每一步都有容易踩错的地方,下面按顺序写。

3.1 SWO1 创建 BOR 对象:事务代码的包装层

BOR(Business Object Repository)对象是事务启动器的骨架,SWO1 是维护 BOR 对象的事务代码。访问要进入 ERP 系统,用 SWO1 创建 BOR 对象,这个对象会被 SSF 配置用来指向目标事务代码。

创建方式可以选择复制已有对象类型,也可以新建。常见做法是把事务代码封装成一个独立 BOR 对象,对象类型名按项目命名规范来,比如ZFB08_POSTING。创建时需维护几个关键字段:

字段值说明
对象类型自定义名称如 ZFB08_POSTING
程序自定义函数组或 SAPL 开头的标准组用于承载对象方法
方法至少一个触发事务代码的方法方法签名要能接收业务参数

对象类型保存后,系统会生成对象 GUID,后续 SSF 配置引用的是对象类型名而非 GUID,但保存后立即记下类型名仍然是好习惯,因为 SSF 界面里的下拉选型只认这个名称。

3.2 SSF 创建事务启动器:绑定对象与事务代码

SSF(Shared Service Framework)是财务共享框架,事务启动器的配置入口在这里。通过 SSF 新增一条事务启动器记录,选中刚才建的 BOR 对象,并指定要调用的 ERP 事务代码。

配置项包括:

配置项示例值说明
启动器名称凭证冲销Web UI 里业务看到的显示名称
BOR 对象类型ZFB08_POSTING3.1 里创建的对象
目标事务代码FB08ERP 侧实际执行的事务代码
目标逻辑系统ECC_CLNT8002.2 里维护的逻辑系统

这里有一个必须盯紧的细节:BOR 对象方法里定义的参数,和事务代码的 SPA/GPA 参数要保持一致。如果 FB08 需要公司代码、凭证号、会计年度,BOR 对象方法就要定义对应的输入参数,SSF 启动器才能把 Web UI 传过来的值映射到事务代码的字段上。参数对不上时启动器报错往往很晚,向导配置完点测试才会爆,排查时先看 BOR 对象参数最省时间。

3.3 创建逻辑链接:把启动器接到目标系统上

SSF 创建完启动器后,还需要单独创建逻辑链接(Logical Link)。逻辑链接的作用是把启动器和目标系统、BOR 对象、事务代码绑定成完整调用链,是连接配置与执行的一根线。

逻辑链接配置核心项:

配置项说明
逻辑链接名称建议和启动器名称对应,方便维护
事务代码同 3.2,填 ERP 事务代码
目标逻辑系统同 2.2 一致
BOR 对象同 3.1 一致
调用方式同步 / 异步

财务凭证冲销这类需要立即看到结果的操作,建议选同步调用,坐席点完启动器能立刻看到 ERP 返回的处理结果。这里我踩过一个大坑:逻辑链接创建完了但没挂到 IC 业务角色上,坐席登录 Web UI 后压根看不到启动器入口,查了半天配置没错,最后发现是漏了角色分配。

3.4 定义通用出站插件映射:用 ABAP 调起 ERP T-code

通用出站插件(Generic Outbound Plugin)映射是这条链路的最后一环。它的目的是通过代码触发 ERP 侧事务代码,而不是让用户在 Web UI 里手工输入。映射在 SSF 配置界面的「出站插件」页签里维护。

实现上,最常见的方式是写 ABAP 做一个 BDC 数据填充,再调用事务代码。核心代码结构如下:

DATA: lt_bdcdata TYPE TABLE OF bdcdata, wa_bdcdata LIKE LINE OF lt_bdcdata. " 第一屏信息:程序名、屏幕号、开始标志 wa_bdcdata-program = 'SAPMF05A'. wa_bdcdata-dynpro = '0100'. wa_bdcdata-dynbegin = 'X'. APPEND wa_bdcdata TO lt_bdcdata. CLEAR wa_bdcdata. wa_bdcdata-fnam = 'BKPF-BUKRS'. wa_bdcdata-fval = '1000'. APPEND wa_bdcdata TO lt_bdcdata. CLEAR wa_bdcdata. wa_bdcdata-fnam = 'BKPF-BELNR'. wa_bdcdata-fval = '5100000001'. APPEND wa_bdcdata TO lt_bdcdata. CLEAR wa_bdcdata. wa_bdcdata-fnam = 'BKPF-GJAHR'. wa_bdcdata-fval = '2024'. APPEND wa_bdcdata TO lt_bdcdata. CALL TRANSACTION 'FB08' USING lt_bdcdata.

代码逻辑分三层:先往 BDC 表里写入程序名和屏幕号,声明要从哪一屏开始操作;再逐字段填充业务输入,比如公司代码BKPF-BUKRS、凭证号BKPF-BELNR、年度BKPF-GJAHR;最后用CALL TRANSACTION把数据推给事务代码执行。BDC 字段名要与目标事务代码的屏幕字段一致,拼错一个字段,事务执行时会停在对应屏幕上报错。

提示:BDC 方式适用于参数固定的标准化操作,如果坐席需要每次手工录入不同的凭证号,建议在出站插件里做一层弹窗收集输入,再把值拼进 BDC 表,体验会好很多。

插件映射创建完成后,回到 CRM Web UI 的 IC 工作台刷新,找到对应启动器点击验证。能顺利打开 ERP 页面并执行事务,这条链路就算通了。

4. 事务启动器避坑指南:五个高频故障的排查记录

这条配置链路环节多,故障定位难也就难在链条太长。我把实际处理过的高频故障整理成五条,按现象、原因、解决的顺序写,都是真金白银换来的经验。

4.1 点击启动器后浏览器白屏或一直转圈

现象:坐席在 Web UI 点启动器,页面卡住不动或白屏。

原因:最常见的是 ITS 服务 URL 配置有误或 ITS 服务本身没启动;其次是 CRMS_IC_CROSS_SYS 里的 URL 缺了端口或路径,拼出来的地址不对。

解决:先拿浏览器直接访问 ITS URL,验证服务是否活着;然后回 CRMS_IC_CROSS_SYS 比对 URL 字符串,看端口、路径、斜杠是否完整。ITS 服务在 ERP 侧如果是 SAP 标准组件,用 SMICM 查服务进程状态,必要时重启对应实例。

4.2 报错找不到 RFC 连接或逻辑系统不存在

现象:启动器启动时报错,提示找不到目标 RFC 连接或逻辑系统。

原因:SM59 的连接名和 BD97 里分配的逻辑系统名对不上,或者 BD54 里的逻辑系统 ID 大小写不一致。SAP 匹配时把逻辑系统名当主键,差一个字符都算不匹配。

解决:把 BD54 里的逻辑系统名、BD97 里的分配关系、SSF 启动器里引用的逻辑系统名三个地方拉出来做一次逐字比对。多数情况下改成完全一致就好了,不需要动其他配置。

4.3 事务页面打开了但执行报权限错误

现象:启动器页面能打开,坐席点执行按钮时报权限不足。

原因:SM59 里配的 RFC 用户权限不够,或者该用户在 ERP 侧没有目标事务的执行权。很多项目为了图省事,配了一个低权限的服务账号,前面建连接测试能过,真正跑事务就露馅。

解决:在 ERP 侧用 SU01 检查 SM59 登录用户对应的角色,确认包含目标事务的权限。建议单独创建专用服务账号,按最小权限原则分配,不要复用其他模块的高权限账号,也不要给业务用户共享密码。

4.4 坐席登录后看不到启动器入口

现象:所有配置都完成,坐席登录 Web UI 找不到启动器。

原因:逻辑链接没有挂到 IC 业务角色或工作中心上,或者角色缓存没有刷新。这个故障出现的频率远超我预期,一年遇到三次,每次都先怀疑配置错了,最后发现纯粹是漏了角色分配。

解决:回 SSF 配置里检查逻辑链接的角色绑定,确认业务角色已有该链接的访问权限。缓存方面,重新登录 Web UI 即可,必要时在角色维护界面手动刷新。

4.5 打开 ERP 页面时要求重复登录

现象:从 Web UI 跳转 ERP 页面后,浏览器弹出登录窗口要求再输一遍用户名密码。

原因:单点登录(SSO)没配置起来,或者 SM59 登录信息没正确传递到 ERP 的会话上下文。非 SSO 环境中,SM59 里的账号和 Web UI 当前用户不一致就会触发这个现象。

解决:非 SSO 场景下确保 SM59 登录账号准确且未过期;若要做无缝跳转,需要额外配置 SSO 机制。没有 SSO 条件的项目,退一步的做法是在 Web UI 启动器页面预填登录参数,减少坐席手工输入量,业务能接受就算过关。

5. 上线后的验证与进阶:让事务启动器长期稳定不翻车

事务启动器上线不代表一劳永逸,账号密码过期、系统升级、网络策略调整都可能让配置悄悄失效。这些年我沉淀了三个检查习惯,可以作为运维阶段的参考模板。

5.1 每月固定巡检 RFC 连接

RFC 连接是最容易受密码过期影响的环节。每月定时登录 SM59,对关键连接做一次连接测试,结果留档。不要等坐席报障才知道账号过期,主动巡检能大幅减少生产事故。

5.2 日志先行,再改配置

启动器出问题时,先去 ERP 侧用 SLG1 查应用日志,或到 ITS 安装目录的 log 目录翻服务日志。看日志定位到准确原因再动手改,比我以前一路瞎试效率高得多。这条真的算血泪经验。

5.3 用一个 BOR 对象承载多个事务代码

同类型业务不考虑建多个 BOR 对象,而是定义一个通用对象和出站插件映射,用参数区分不同事务代码。维护成本降低明显——改一处映射,整组启动器都生效。

从那以后,每部署一套事务启动器,我都会强制走一遍「SM59 连通性测试 → BD54/BD97 映射比对 → CRMS_IC_CROSS_SYS URL 检查 → 逻辑链接角色确认」的组合巡检流程,十五分钟过完整条链路,上线后基本没再因为基础配置返工。希望这些经验帮你在实施中少走弯路。

本文还有配套的精品资源,点击获取

返回列表