• SAP小技巧 S4系统的互信访问


    前言

    互信系统指两个相互信任的系统只需要在其中一个系统登录就可以用同一个用户名访问另外一个系统

    本文主要介绍SAP ECC/S4 系统之间怎么创建互信系统

    应用场景示例

    之前在使用开发清单(/问题清单)管理时,一直面临一个问题:如果用户在其它系统(比如测试/生产系统)需要访问开发清单或者开发清单中的文档. 应该怎么办?

    开发清单/问题清单管理详见连接

    无峰,公众号:ABAP 技巧与实战SAP开发框架系列之 开发清单管理

    答案似乎很简单, 创建一个RFC连接(事务代码 SM59),目标系统执行事务代码ZDEV时跳转到特定RFC链接系统执行即可.

    但是带来另外的问题, 通过传统的RFC方式连接到目标系统,如果不需要用户再次填写登录信息,就必须在RFC连接中指定用户,密码. 这样导致的问题是多个用户通过单一用户进入目标系统, 在目标系统中的操作都会记录该指定用户的信息. 这样不利于识别操作的具体的执行人员.同时也会带来权限的问题.

    下图是一个指定用户登录远程系统的示例.

    5f607bab86befeb6c3f9f31f454475fa.png

    f998250326438d3e0393a44fd1d65910.png

    创建互信RFC连接

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

    cfd7fcf764ff4eefb4060fd86472cbd1.png

    测试互信RFC连接

    测试如下几个场景

    • 当前用户在目标系统不存在

    • 当前用户在目标系统存在(密码不一致)

    • 当前用户在目标系统存在(密码不一致,授权)

    01

    测试场景一

    当前系统使用TEST_RFC用户访问远程系统,远程系统无该用户(报错如下图)

    99d8d384a5a17227a80ae5f43e30f156.png

    02

    测试场景二

    当前系统使用TEST_RFC用户访问远程系统,远程系统存在该用户但密码不同

    测试失败,信息同上

    03

    测试场景三

    当前系统使用TEST_RFC用户访问远程系统,远程系统存在该用户且密码不同但授权 权限对象 S_RFCACL

    d4d84197225a9ba1f63e8a2ff66ccc58.png

    测试通过. 用户TEST_RFC可以直接通过RFC连接ZDEV 登录远程系统.

    结论

    新的S4系统似乎无需创建互信关系, 就能配置带有信任关系的远程登录系统(SM59配置),只需要当前系统的登录用户在远程系统存在且授权了S_RFCACL . 就能使用该RFC连接登录远程系统.

    互信关系

    从上面的结论看来. S4之间的系统似乎无需创建信任关系,只要符合条件,就能建立信任的远程连接. 无法测试验证ECC系统是否也是如此, 所以还是列出创建信任关系的方式

    事务代码SMT1

    下图是在线帮助中的创建互信关系的介绍,其中的授权对象似乎不正确,也可能是版本原因

    46c17a80ac512d202adac82f0ebd253e.png

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

    00e9cf5a821add2c6234fa62028679e9.png

    创建过程-输入服务器

    b7f371d740249d652b6ea666c91039fd.png

    弹窗登录远程系统

    423962b746a453a22327fa13450a6e8f.png

    继续下一步

    78e8d783502e5fc265518fb7cf9a67db.png

    点击完成即可.

    80f3e1aa1de836b20941c7797593e13c.png

    远程连接的使用

    在特定事务代码(比如ZDEV 开发清单关系)的程序中.

    通过远程函数调用执行事务代码即可

    可以通过调用远程RFC函数获取远程系统数据,也可以通过下图方式调用远程系统的事务代码.调用后,会进入远程系统执行该事务代码.

    9b461406ae59fcac8c3bbad31b5174b7.png

    应用场景

    如果企业有多个系统, 比如S4 BW CAR 系统. 通过信任关系的远程访问.可以把任何一个系统的报表/程序开放给另外一个系统访问. 用户的所有操作都在同一个系统就能完成,.

    除非查看右下角的系统信息,才能看出特定事务代码其实是在另一个系统中执行的.

    比如:可以把BW/CAR系统中的报表开放给S4系统的用户执行.只需要写一段简单的代码调用远程事务代码即可.

    总结

    ECC/S4系统的信任关系建立条件

    相关的系统的网络互相能够访问. 最好能通过服务器名称访问( /etc/hosts中存放主机及对应的IP信息).

    创建系统间的信任关系(S4 1909版系统无需创建).

    确保目标系统存在相同用户名且授权权限对象 S_RFCACL,密码无需相同

    创建远程连接(SM59) 选择当前用户,信任关系

    THE

    END

    约定

    如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

        (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

    b08cbf66f073784c641b8a820606e64b.jpeg

    公众号 : syjf1976_abap

              ABAP开发技巧

    微信号 : 392077

    请微信联系管理员: 

    syjf1976 

    sharry_xlp  

    Yannick_Duan 

    申请进入公众号讨论群提问或者参与话题讨论

  • 相关阅读:
    STM32所有系列keil 开发包的下载链接 - Keil.STM32Fxxx_DFP.x.x.x.pack
    【数据结构】单链表
    UE5.3-基础蓝图类整理一
    zip压缩包密码怎么解开,zip压缩包权限限制怎么解除?
    Typora基本使用方法
    003 Spring注解
    Compiling and Loading
    web前端电影项目作业源码 大学生影视主题网页制作电影网页设计模板 学生静态网页作业成品 dreamweaver电影HTML网站制作
    STM8的C语言编程(12)--+AD转换
    如何与博格华纳BorgWarner通过EDI传输业务数据?
  • 原文地址:https://blog.csdn.net/syjf1976/article/details/126476690