sap供应商表_产品架构设计之SAP(精髓第一篇)Client的设计

sap供应商表_产品架构设计之SAP(精髓第⼀篇)Client的设
Client这个词语不太好翻译,直译为客户,有时翻译为集团,这⼆种翻译都不准确,⽐较接近的翻译应该为客户端。
Client是SAP系统架构的精髓之⼀,下⽂中我们对Client进⾏简要的介绍,具体包括如下⼗点内容:
这⼗点内容中分别介绍了Client的应⽤、特点,以及从产品架构层⾯的⼀些简要探讨,第10点更加直接,对项⽬实施有参考意义,如果你对本⽂介绍的内容兴趣⼀般,可直接查看第10点。
1. 服务器和Client
2. 典型Client设置
3. Client的特点1-共享程序但数据互相隔离
4. Client的特点2-可建⽴多个Client,不同Client可以有不同的功能(属性设置)
5. Client的特点3-拓展性强
6. Client的特点4-Client之间的数据管理(传输、复制)⽅便
7. 探讨1-Client与数据库(SE16N、SQL)
柔性触觉传感器8. 探讨2-如何判断表是Client级别?
9. 再探讨-究竟有多少表是跨Client
0. 经验与教训-关于Client、表设置
01 服务器和Client(客户端)
如下图所⽰,我们在登录SAP系统时,在输⼊⽤户名和密码之前,⾸先要选择登录的服务器和Client。
服务器和Client之间的关系如下:
⼀般来说SAP项⽬实施会有三台服务器,分别是开发、测试、⽣产机
每台服务器包含⼀个数据库和应⽤服务器
每台服务器中可以有多个Client
02 典型Client设置
服务器的概念⾮常容易理解,Client是SAP中独有的概念,Client⽤三位数字来代表,具体我们通过⽰例来说明,下图为典型的设置
1)开发机中有四个或者更多Client
000 Client:系统默认Client,正常不会登陆该Client,该Client的数据也不允许被覆盖
100 Client:  配置环境,该环境只能进⾏配置,不可以创建主数据和业务数据
200 Client:沙箱和程序开发环境,该环境⼀般可以随意修改配置
300 Client:单元测试环境,该Client不可以配置,所有配置必须从100 Client进⾏传输,可以正常创建主数据和业务数据
2)测试机有⼆个或更多Client
500: 集成测试⽤,该Client不可以配置,所有配置必须从100 Client进⾏传输
600: UAT及最终⽤户培训,所有配置必须从100 Client进⾏传输
3)⽣产机有⼀个或更多Client
800:⽣产机:该Client不可以配置
不同client之间可以进⾏数据传输,具体逻辑下⽂中会介绍。
03 Client的特点-共享程序但数据互相隔离
简单来说,同⼀服务器不同client之间共享程序,但是各⾃Client有各⾃的数据(主数据、业务数据、配置数据),相信这⼀点只要⽤过SAP 系统的⼈,⽆论是顾问还是⽤户都能感受到。
也就是在当前Client创建的数据(如物料主数据),只能在当前Client被使⽤,只能在当前Client被查询。
由于Client 之间的数据是隔离的,因此Client除了上⽂中通⽤的⽤法,还有着以下⼆种⽤法:
1)HR系统采⽤独⽴Client
HR系统由于涉及员⼯薪酬,数据⾮常敏感,很多项⽬如果实施了HR模块,则常常会在同⼀服务器中额外创建单独的Client, 只允许HR的关键⽤户访问该Client,其他⼈员都⽆权访问,连IT运维⼈员也没有权限访问HR系统的⽣产机。
如果HR系统需要与其它模块(如FI模块)进⾏数据交互,可通过配置ALE来进⾏数据传输。
2)为⼦公司设置独⽴的Client
譬如某集团公司销售额为⼏百亿,有不同产业板块,每个版块公司规模也不⼩,都是独⽴的上市公司,
该集团公司采⽤共享服务器,不同板块公司在不同的Client中。这种⽤法很少见。这⼀点倒是有点像SAAS产品的概念,共享相同实例,数据隔离。
以上⼆种⽤法,都是利⽤Client之间是数据隔离的,不同Client有各⾃的数据(配置、主数据、业务数据)。
04 Client的特点2-可建⽴多个Client,不同Client可以有不同的功能(属性设置)
如本⽂开始所⽰,我们介绍到在同⼀服务器可创建很多个Client ,不同Client有不同的功能(配置、测试、沙箱、⽣产环境等),设置不同的属性,这样保证系统的严谨性,⼜有⼀定的灵活性。
如下图所⽰,通过事务代码SCC4配置各个Client的属性。主要设置是否可修改配置,可分为三种情况:
1)不允许修改配置:
棉籽皮
⼤部分的Client都会勾选“不允许修改”,也就是该Client(如⽣产机)不允许修改配置,要修改配置,只能在配置Client修改,然后经过测试后,传输到测试、⽣产机。
2)⾃动记录修改。
配置Client选择“⾃动记录修改(允许修改,但⾃动产⽣请求)”,也就是配置将会产⽣请求号。
3)不带⾃动记录的修改
沙箱系统(Sandbox)可以选择这种⽅式,做任何修改都不会产⽣请求号。
除此之外,还可以设置其他属性(如是否可以被覆盖),是否可以更改跨Client的配置。
05 Client的特点3-拓展性强
在项⽬实施 、运维期间,我们经常需要⼀个相对独⽴的测试环境。
如新上线项⽬第⼀次⽉结之前,新创建⼀个Client,复制⽣产机数据到该Client,然后提前进⾏⽉结测试。⼜譬如与外围某个⾮常重要的系统进⾏接⼝测试,希望有⼀个单独稳定的测试环境。
在SAP系统中,搭建⼀个新的Client⽤于测试、验证是⾮常⽅便、简单的。不需要复杂的技能,也不需要花费太多的时间,只要有⾜够的存储空间就可以。
甲基铝氧烷06 Client的特点4-Client之间的数据管理(传输、复制)⽅便
在服务器中根据需要我们可能会建⽴不少Client,这些Client之间的数据是互相独⽴的,但⼤部分情况下,不同Client之间需要传输(复制)数据,譬如:
整个Client级别的复制
单个(多个)配置和程序开发的传输:配置需要从开发机传输(复制)到测试系统、⽣产系统
主数据的复制
1、整个Client级别的复制
系统可以将数据从⼀个Client复制到另外⼀个Client,主要分为⼆种情况
不同系统之间进⾏复制:譬如很多客户会定期(如每半年)将⽣产机系统中的数据复制到测试机中,具体是通过事务代码SCC9(最新版本通过SCC9N)来进⾏复制。
相同系统的不同Client之间的复制:譬如将DEV的某个Client中的所有配置复制到DEV的另外⼀个测试Client,具体是通过事务代码SCCL(最新版本通过SCCLN)来进⾏复制。
如下图所⽰,复制时,选择⽬标Client 和源Client,并选择参数⽂件,常⽤的⼆个参数如下:
SAP_ALL代表复制所有数据(配置、权限、主数据、应⽤数据)
SAP_CUST代表只复制配置
注意:
1、对于程序,在Client复制时,不会复制
2、对于跨Client的配置,在Client复制时,正常也是不复制的。
3、我们可以通过事务代码SCMP来⽐较⼆个Client之间的配置差异。
2、配置和程序开发的传输(复制)
当我们在配置Client修改配置,或者在程序开发Client进⾏系统开发时,系统将会产⽣⼀个请求号,请求号中包含本次修改的配置、程序,然后我们将请求号传输到其他系统,传输成功后,请求号中包含的数据(配置、程序)就会传递到其他系统中。
制动减速度具体⼜分为⼆种情况:
同⼀台服务器的不同Client之间的传输:请求号不需要释放,就直接通过SCC1进⾏传输
不同服务器的不同Client之间的传输,请求号需要释放,才可以通过STMS进⾏传输
备注:关于请求号,会在后续的⽂章进⾏进⼀步介绍,也是SAP系统的特点。
3、主数据和业务数据的传输
⼤部分情况下,主数据和业务数据不需要单独传输,但如果需要传输,也可以通过ALE等⽅式来进⾏
传输。如下为⼆种⽰例应⽤:
1)、某集团根据不同地理位置设置了多台SAP服务器,在欧洲、美国、亚太分别有⼀台SAP服务器,在⼀台⽣产服务器创建的主数据(如全球共⽤物料、全球共⽤供应商)希望传输到另外⼀台服务器中,此时可以利⽤ALE功能,将主数据传递到多个SAP系统中。
2)、开发、测试环境中的主数据传输到测试、⽣产环境。譬如某项⽬启⽤了VC,在测试环境⼿⼯写了上万条相关性,也进⾏了校验,此时可以通过ALE将数据传输到其他环境(如⽣产机),这样在⽣产机不再需要⼿⼯维护或者写程序导⼊。
07 探讨1-Client与数据库(SE16N、SQL)
同⼀服务器,不同Client在数据库存储、读取时的特点如下:
1、数据的存储
如上⽂所说,同⼀服务器不同Client实际上是共享同⼀个数据库,因此很显然,同⼀服务器不同client下创建的数据实际上最终存放的表是相同的。
在较⽼的版本中,可以直接通过某事务代码查询表在同⼀服务器的所有Client的数据,较新的版本中,该事务代码已经被禁⽌使⽤。
具体如下图所⽰,我们可以看到表SFLIGHT中包含了2个Client的数据(000和200 Client),通过关键字Client来区分。
系统在写数据时,⾃动将当前登录的Client赋值到字段Client中,在读数据时 ,同样⾃动读取当前Client的数据。
对于跨Client的数据,⽆论在何client都会被读取到。
2、Client与SE16N
SE16N/SE16等事务代码可⽤于直接查看表数据,系统默认查看当前Client的数据,并且是没有机会修改为查看其他Client的数据,查看数据时分为⼆种情况:
表是跨Client
如果表是跨Client,则⽆论在那个Client中都可以查看到数据,并且查看到的数据都是相同的。如上⽂中的事务代码表TSTC,⽆论在哪个Client进⾏维护事务代码,结果是相同的,⽆论在哪个Client查看该表,结果也是相同的。
灯头盒表是Client相关
如果表是Client相关,则只可以查看当前client的数据,⽆法查看到其他client的数据。
3、Client与SQL语句
在程序开发(SQL语句)中⽆需指定client,系统⾃动查当前client下的数据,在程序开发时,也遵循本原则。譬如通过SQL语句查询物料主数据,系统只会查到当前client下的物料。
但实际上SQL语句也是⽀持在当前Client查询其他Client的数据,也就是有ABAP开发权限的⼈实际上可以在程序中读取其他Client的数据,这样的操作是违规操作。
但据我说知,⽆法在ABAP代码层⾯设置不允许SQL语句读取其他Client的数据,如果这是⼀个必须解决的问题,则需要在请求号传输到另外⼀个Client后,对代码进⾏⼿⼯或者⾃动的检查。
具体可以根据关键词“Client Concept Sap“搜索相应的英⽂资料。
08 探讨2-如何判断表是Client级别
在上⽂中,我们说到不同的Client的程序是共享的,数据是隔离的,这⼀点实际上写的并不严谨,程序确实是共享的,但数据并不⼀定是隔离的,具体阐述如下:
1、从数据的类型的⾓度来说,我们可以有如下简单的理解。
半夏去皮机⼏乎所有的主数据、业务数据都是Client级别的。
⽤户(权限)相关数据是Client级别的。
程序开发都是跨Client级别。
绝⼤部分的配置都是Client级别。

本文发布于:2024-09-24 22:30:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/207588.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   配置   系统   修改   复制   传输   需要   服务器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议