一
前言
互信系统指两个相互信任的系统只需要在其中一个系统登录就可以用同一个用户名访问另外一个系统
本文主要介绍SAP ECC/S4 系统之间怎么创建互信系统
二
应用场景示例
之前在使用开发清单(/问题清单)管理时,一直面临一个问题:如果用户在其它系统(比如测试/生产系统)需要访问开发清单或者开发清单中的文档. 应该怎么办?
开发清单/问题清单管理详见连接
无峰,公众号:ABAP 技巧与实战SAP开发框架系列之 开发清单管理
答案似乎很简单, 创建一个RFC连接(事务代码 SM59),目标系统执行事务代码ZDEV时跳转到特定RFC链接系统执行即可.
但是带来另外的问题, 通过传统的RFC方式连接到目标系统,如果不需要用户再次填写登录信息,就必须在RFC连接中指定用户,密码. 这样导致的问题是多个用户通过单一用户进入目标系统, 在目标系统中的操作都会记录该指定用户的信息. 这样不利于识别操作的具体的执行人员.同时也会带来权限的问题.
下图是一个指定用户登录远程系统的示例.


三
创建互信RFC连接
如上图,在RFC连接配置时,用户后面有个复选框, 当前用户. 下面有个信任关系. 意味着只要勾选当前用户,同时选中信任关系 <<是>> 就可以实现当前用户登录到远程系统.(当然前提是当前用户也有远程系统的账号)

四
测试互信RFC连接
测试如下几个场景
当前用户在目标系统不存在
当前用户在目标系统存在(密码不一致)
当前用户在目标系统存在(密码不一致,授权)
01
测试场景一
当前系统使用TEST_RFC用户访问远程系统,远程系统无该用户(报错如下图)

02
测试场景二
当前系统使用TEST_RFC用户访问远程系统,远程系统存在该用户但密码不同
测试失败,信息同上
03
测试场景三
当前系统使用TEST_RFC用户访问远程系统,远程系统存在该用户且密码不同但授权 权限对象 S_RFCACL

测试通过. 用户TEST_RFC可以直接通过RFC连接ZDEV 登录远程系统.
五
结论
新的S4系统似乎无需创建互信关系, 就能配置带有信任关系的远程登录系统(SM59配置),只需要当前系统的登录用户在远程系统存在且授权了S_RFCACL . 就能使用该RFC连接登录远程系统.
六
互信关系
从上面的结论看来. S4之间的系统似乎无需创建信任关系,只要符合条件,就能建立信任的远程连接. 无法测试验证ECC系统是否也是如此, 所以还是列出创建信任关系的方式
事务代码SMT1
下图是在线帮助中的创建互信关系的介绍,其中的授权对象似乎不正确,也可能是版本原因

下图是创建好信任关系的系统. 该信息是QAS系统中创建的, 表示允许S4D访问当前QAS系统.

创建过程-输入服务器

弹窗登录远程系统

继续下一步

点击完成即可.

七
远程连接的使用
在特定事务代码(比如ZDEV 开发清单关系)的程序中.
通过远程函数调用执行事务代码即可
可以通过调用远程RFC函数获取远程系统数据,也可以通过下图方式调用远程系统的事务代码.调用后,会进入远程系统执行该事务代码.

八
应用场景
如果企业有多个系统, 比如S4 BW CAR 系统. 通过信任关系的远程访问.可以把任何一个系统的报表/程序开放给另外一个系统访问. 用户的所有操作都在同一个系统就能完成,.
除非查看右下角的系统信息,才能看出特定事务代码其实是在另一个系统中执行的.
比如:可以把BW/CAR系统中的报表开放给S4系统的用户执行.只需要写一段简单的代码调用远程事务代码即可.
九
总结
ECC/S4系统的信任关系建立条件
相关的系统的网络互相能够访问. 最好能通过服务器名称访问( /etc/hosts中存放主机及对应的IP信息).
创建系统间的信任关系(S4 1909版系统无需创建).
确保目标系统存在相同用户名且授权权限对象 S_RFCACL,密码无需相同
创建远程连接(SM59) 选择当前用户,信任关系
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论