• 【ABAP】如何理解SAP中的CLIENT (客户端)


    在这里插入图片描述

    💂作者简介: THUNDER王,阿里云社区专家博主,华为云·云享专家,腾讯云社区认证作者,CSDN SAP应用技术领域优质创作者。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


    💅文章概要: MANDT集团永远是无数SAP入门人员无法避免头痛的一个难题,很多朋友在刚刚入门SAP领域时经常被这几个概念混淆:什么是DEV? 什么是QAS? 什么是PRD? 为什么不同的服务器还要有client客户端(有时也被译作集团)?本节内容就带领大家好好认识一下MANDT系统字段,出发!


    🤟每日一言: 永远年轻,永远热泪盈眶!


    前言

    在这里插入图片描述

    企业一般会将SAP 安装在多台服务器上, 分别用于测试 、 验证和生产 。 在一台服务器上 , 可能安装了多个客户端(client),如100- 配置环境、200-测试环境、300-开发环境。各个 client 存放的主数据和交易数据是不同的(少量跨client的共通事项除外)。这就相当于在一个服务器上 ,建立了多个实例 (instance) , 各个instance互不干扰。


    服务器与客户端(Client)

    在这里插入图片描述

      下表为某示例企业所安装的SAP环境示例:共安装了三台服务器,配置了5个client

    服务器机器编号系统标识client作用要求
    开发机SaptstDEV100配置环境配置都要记录在请求中
    开发机SaptstDEV200测试环境不可更改跨client的设置
    开发机SaptstDEV300开发环境不可更改跨client的设置
    测试机SapqasQAS500测试环境定期从生产环境复制数据
    生产机SapprdPRD800生产环境不可直接更改配置

    PS: 关于SAP三系统(服务器) 蓝图数据传输的详细过程可以参考笔者这篇博客:【ABAP】SAP包(二)「CTS | 传输请求」;本节内容主要讲解的是各个系统内client的作用,上述内容不再作过多赘述。

      一般来说企业会在每台服务器中设置不同的client,以便用于不同的操作。严格来讲,PRD生产机、生产环境是不允许直接做二次开发和做任何配置操作,所有二次开发和配置都需要在DEV开发机中进行完成并且进行TR传输到PRD生产机中,这样可以保证所有内容和配置的一致性。所以企业一般会在DEV开发机中设置不同的client,如上图示例:在100client中只允许进行配置操作,所有二次开发的操作均在300client中进行操作,完成开发后,可以先在200client进行初步的测试

      需要区别的是:同一服务器中不同client环境有变化的仅仅是主数据 ,其他的操作均会同步更新到所有client中。

    • 比如说DEV开发机,当我们在300client开发完程序后,我们进入到100client中,开发完的程序是可以直接看到的,这是因为虽然它们属于不同的client,但是所有的client是属于同一个DEV服务器的。不过如果我们想要在100client中更改300client中创建的程序,则会提示警告。
    • 但是如果我们想要在QAS测试机上同步所有我们在DEV中做的操作,那么还需要进行一步TR传输请求的操作。

    总结:综上所述,让我们来小结一下使用一套标准SAP实施方案的企业的标准流程。

    • Basis顾问配置好三台服务器,分别是DEV开发机,QAS测试机,PRD生产机。
    • PRD生产机不允许进行任何操作,ABAP开发顾问和业务实施顾问在DEV开发机的不同client进行实施操作。
    • 当配置和开发完成后首先在DEV开发机中用于测试的client环境进行初步的测试,测试没问题通过TR传输到QAS保证系统进行进一步的测试。
    • QAS测试系统验证通过后再次通过TR传输到PRD生产环境中。后续定期从PRD生产机中更新数据回QAS测试机。

    数据库表中的MANDT字段

    在这里插入图片描述

      在前面的介绍中我们提到了下面这一点:

    同一服务器中不同client环境有变化的仅仅是主数据 ,其他的操作均会同步更新到所有client中。

      那么我们应该如何理解这一点呢?不知道各位小伙伴们有没有注意到SAP系统数据库表中都拥有一个共同的字段:MANDT字段

      正是MANDT字段的存在可以使得不同的client环境可以存储不同的业务数据,当我们在DEV开发机的开发环境中创建了数据库表后,数据库表会同步到所有client中,如果我们不为数据库表设置MANDT主键字段,那么所有client中数据库表的数据将会一致,无法区分数据是在哪个client环境中创建的。

     设置了MANDT主键的数据库表

      (一)下面我们来看一下这张示例表:ZWYZTEST,它分别存在于100client500client中。它拥有两个主键MANDTZID

    在这里插入图片描述

    在这里插入图片描述

      (二)接下来让我们在100client环境中为这张数据库表创建4条数据,示例如下图所示:

    在这里插入图片描述

      (三)在500client环境中查看相同数据库表,无对应数据显示

    在这里插入图片描述

      (四)在500client环境中再次创建4条数据,查看100client环境中是否会拥有对应数据

    在这里插入图片描述

    在这里插入图片描述

    PS: 综上所述:当我们为数据库表中加入了MANDT主键字段后,数据库表中存储的数据将无法跨客户端同步!

     未设置MANDT主键的数据库表

      (一)删除MANDT主键,【T-CODE: SE14】激活并调整数据库表

    在这里插入图片描述

      (二)数据库表调整后显示如下图所示:

    在这里插入图片描述

    在这里插入图片描述

      (三)再次查看两个不同client客户端数据库表的数据

    在这里插入图片描述

    在这里插入图片描述

    PS: 综上所述,当数据库表没有设定MANDT主键字段进行控制时,数据库表中数据是可以跨客户端同步的!


    写在最后的话

      本文花费大量时间介绍了如何理解SAP中的CLIENT客户端,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!

    在这里插入图片描述

    原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

    👍 点赞,你的认可是我创作的动力! \textcolor{9c81c1}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

    ⭐️ 收藏,你的青睐是我努力的方向! \textcolor{ed7976}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

    ✏️ 评论,你的意见是我进步的财富! \textcolor{98c091}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

  • 相关阅读:
    [游戏开发]Unity SRP 学习(一)
    vue使用pcl.js展示.pcd/.bin文件代码源码
    细说Hash(哈希)
    vLLM:由伯克利大学LMSYS组织开源的大语言模型高速推理框架-显著提高了大型语言模型(LLM)的服务效率
    VMWare 虚拟机如何扩展磁盘空间并挂载到已存在的根目录
    基于STM32倒车雷达系统(OLED显示)(Proteus仿真+程序+设计报告)
    Spring Security OAuth Client配置加载源码分析
    用node写后端环境运行时报错Port 3000 is already in use
    H5画布绘制文本
    ManualResetEvent
  • 原文地址:https://blog.csdn.net/weixin_59480481/article/details/132868351