简介:面向SAP Basis顾问与初学者,这份资源围绕ECC 6.0环境下集团拷贝(Client Copy)操作整理成文,重点解决从系统集团000复制到测试集团790时的配置问题,涵盖逻辑系统定义、分配逻辑系统到客户端、管理员账号创建等关键环节。文档经实际整理验证形成完整流程,指出网上流传的同源资料多未经验证、容易误导操作,因此对每个步骤做了必要说明,便于规避常见陷阱。内容还涉及新客户端默认账号SAP*登录问题、RZ10参数调整,以及拷贝完成后如何在测试集团中进行定制、开发和测试,可帮助SAP实施人员搭建隔离环境。包体为单个doc文档,大小约776KB,适合对照学习或备查。该资源已有629人浏览学习,适合需要独立完成Client Copy的SAP顾问参考。
1. SAP集团拷贝(Client Copy)为什么值得重做一份操作手册
SAP集团拷贝(Client Copy)这个操作,在ECC 6.0上属于那种「看着不难、做起来翻车率极高」的活儿。很多人装完服务器,急着想开一个独立的790测试集团,用于定制、开发和测试,结果卡在SAP登录、逻辑系统分配、请求号丢失这些环节上。网上的教程基本是同一篇转载文在不同站点反复出现,连错误一起抄,照着走往往走到一半就断了。这份手册的价值不在步骤本身,而在把000到790的完整复制流程走通,每一步为什么这么做、参数为什么这样选都讲明白,尤其是SAP账号在非000集团默认关闭的处理,这是大多数转载教程缺失的关键内容。适合刚接触SAP Basis、准备搭测试环境的新手,也适合想核实自己操作边界的基础顾问。
2. 动手前先理清三件事:管理员账号、逻辑系统与请求号
Client Copy不是从SCCL开始的。真正靠谱的流程,要先清楚三件事:用什么账号做这件事、逻辑系统怎么定义、保存配置时产生的请求号怎么处理。这三件事没理清,后面每一步都会别扭。
2.1 为什么不能直接用DDIC做定制:先复制一个新ID号
安装ECC 6.0之后,系统默认就两个管理员账号:DDIC和SAP*。密码是在安装过程中设定的。理论上你可以用DDIC登录,但系统约束很明确——管理员账号不允许做系统定制。换句话说,你用DDIC能看系统、能查日志,但想在某个集团里改定制配置、开发程序,系统会限制你。
我一般会先花两分钟做一个专用账号。用DDIC登录000集团,执行事务码SU01,输入DDIC的用户名后点「复制」,系统会弹出创建用户对话框。这里把新用户ID设为JIAHG,填一个自己能记住的密码,然后在角色页签里分配SAP_ALL角色。SAP_ALL是SAP标准的最大权限角色,复制完权限就有了。
事务码:SU01 操作路径:创建用户 -> 复制DDIC -> 输入新用户ID(如JIAHG) 角色页签:分配SAP_ALL这一步的逻辑是:DDIC和SAP*是系统级管理账号,系统在设计上就禁止它们参与常规的定制活动。把DDIC复制成一个普通管理员ID,后续的Client Copy、定制、开发测试都用这个新ID登录。注意复制后第一次登录时会要求初始化密码,这是正常行为,把密码改成自己设置的就行。
还有一个容易忽略的点:如果这是刚装完的服务器,SU01里可能没有任何用户的密码策略配置。复制用户时如果提示「初始化密码」,说明该用户从来没登录过,直接在对话框里设置新密码即可。别在复制用户这一步卡住,更不要因此跳过账号准备直接进Client Copy。
2.2 逻辑系统不是随便建的:跨集团表警告与命名习惯
第二个前置步骤是定义逻辑系统。执行事务码SALE,依次展开Basis settings -> Logical System,点击「Define Logical System」。此时系统会弹出警告:「Caution: The table is cross-client」。这个警告的意思是:逻辑系统所存储的数据库表对每个集团共享,也就是说,你在任意一个集团里修改逻辑系统数据,其他集团看到的也会变。
不少第一次接触这个界面的同学,见到警告就犹豫,不知道该不该继续。这里我说明一下:逻辑系统是SAP用来唯一标识一个系统实例的名字,后续Client Copy、ALE、RFC、跨系统数据交换都依赖它。复制集团之前,必须给目标集团绑定一个逻辑系统。这个警告不是阻止你操作,是提醒你这是一次全局修改,不是某个集团的私有配置。
确认后继续,进入逻辑系统列表界面。点「New Entries」,输入逻辑系统名称QAS,名称栏输入一段描述,例如「Test of Logical Systems」。保存后系统会弹出请求号(Request)界面,让你把这次修改挂到一个传输请求下。
逻辑系统名称在SAP里有长度限制,最多10位。常见的命名习惯有两种:一种直接用目标集团号相关的前缀,比如QAS、QAS790;另一种用「系统ID+用途缩写」,比如生产系统DEV、测试系统QAS。命名时要考虑团队里能不能一眼看出这个逻辑系统属于哪个环境。我见过有人随手起了个A1,半年后自己都忘了A1是哪个系统,排查跨系统问题时非常痛苦。
2.3 保存时的请求号:新安装系统没有请求号的解决办法
定义逻辑系统并保存后,系统会弹出一个Request选择框。如果这台服务器是新安装的ECC,基本没有现成的自定义请求可用,此时要么选一个已有的开发请求,要么直接新建一个。
新建请求的操作不复杂:请求框里选择「New」,系统会生成一个新的请求号,描述可以写成「Create Logical System QAS」。保存后,逻辑系统的定义就被记录到这个请求里了。这里有一个常见误区:有些人觉得请求号是开发阶段才需要的东西,Basis配置阶段可以忽略。实际上,逻辑系统定义属于跨集团的基础配置,不挂请求保存不完整,后续分配逻辑系统时可能找不到可用的记录。
请求号的作用还有一个延伸:往后你在790集团里的所有定制修改,只要勾选了自动记录,都会生成新的请求。这些请求积累起来,日后可以通过SCC1传输到其他集团。所以从一开始就把请求体系建好,后续做定制传输就有一条干净的链路。
保存完逻辑系统后,别急着离开SALE。回到SALE主界面,展开Basic Settings -> Logical Systems -> Assign Logical System to Client,这就要开始把逻辑系统绑定到集团了。点进去之前,心里要清楚:当前界面上显示的是系统里所有集团,前几个000、001、066是系统默认自带的,不要动它们。后续操作只针对我们要新建的790测试集团。
3. 定义790测试集团并完成首次登录:参数设置与SAP*激活
前置条件准备好之后,真正定义790集团的操作其实很快。但这一步的参数选择直接决定后续定制、测试、传输是否顺畅,值得逐项说清楚。
3.1 分配逻辑系统到客户端:790的参数逐项说明
在SALE的Assign Logical System to Client界面,点击「New Entries」,系统会进入集团明细设置界面。这里定义的就是新的790测试集团。逐项字段如下:
| 参数 | 填写值 | 说明 |
|---|---|---|
| Client | 790 | 新集团号 |
| City | 按实际城市填写 | 描述性字段,不影响功能 |
| Logical system | QAS | 上一步定义好的逻辑系统 |
| Std currency | RMB | 集团通货,按业务需要选择 |
| Client role | Customizing | 集团角色,决定用途 |
| Automatic recording of changes | 勾选 | 自动记录定制修改 |
| Cross-Client Object Changes | Changes to Repository and cross-client Customizing allowed | 允许修改Repository与跨集团定制 |
| Protection level | 0 | 最低保护级别 |
| CATT/E-CATT | 勾选 | 允许CATT与ECATT测试工具 |
逐个解释关键字段。Client role这里选Customizing,意味着这个集团是给定制开发用的。如果后续要模拟生产环境,可以选Production;日常练习建议就用Customizing。Automatic recording of changes勾选后,在这个集团里做的定制会自动挂到请求号下面,省去手动记录的麻烦。Cross-Client Object Changes选择「Changes to Repository and cross-client Customizing allowed」,表示允许对资源库和跨集团定制做更改,这是开发测试集团的标准配置。
Protection level设置为0,是最低保护级别。数字越小保护越松,0意味着允许CATT操作、允许覆盖,适合做开发测试。Production或关键集团建议提高保护级别。因为后续可能要跑SECATT测试脚本,所以勾选「Ecatt and catt allowed」,让测试工具能在790集团运行。
保存时系统会弹出提示「当更改逻辑系统时小心」,直接回车确认。再看到「Data was saved」的提示,就说明790集团已经定义成功。此时打开SCC4也能看到790的记录,确认集团角色、逻辑系统、保护级别都已经生效。
3.2 SAP*在790登录失败:RZ10参数文件导入与login/no_automatic_user_sapstar
790集团定义完成后,按常规流程,应该用默认账号SAP和默认密码PASS登录新集团。但这里有一个新安装ECC 6.0的特殊情况:系统默认的SAP账号在非000集团是关闭的。直接登录会报错或者提示密码不对,这是大部分转载教程没讲透的地方。
解决方法是回000集团,执行事务码RZ10,先把服务器现有的profile文件导入进来。操作路径是菜单Utilities -> Import profiles -> of active servers。这一步的目的是把当前激活服务器上的profile文件装载到RZ10的维护界面里,导入完成后界面会显示三条profile记录,其中一条会显示「Profile import executed correctly」。
导入profile之前,RZ10的profile搜索帮助是空的。很多操作手册直接让你在RZ10里选profile,完全没提导入这一步,结果新手根本找不到可选的profile文件。顺序很重要:先Import profiles,再回RZ10初始界面点Profile搜索帮助,此时才能看到已装载的profile列表。
选择你要修改的profile文件。profile名称一般是「系统标识_实例号_计算机名」的结构,例如JHG_DEVBMGSOO_SAPIDES。前一段JHG是ECC服务器系统标识,后一段SAPIDES是操作系统计算机名。不同机器的profile名称不同,选你自己服务器上对应的那一个即可。
选好profile后,在Edit Profile选项里选择「Extended maintenance」扩展维护,然后点击Change。此时进入参数维护界面,点击Parameter按钮新建参数。用搜索帮助查到参数名login/no_automatic_user_sapstar,数值填0,然后点击Copy,保存。
事务码:RZ10 菜单:Utilities -> Import profiles -> of active servers Profile:选择本机对应的profile文件 参数:login/no_automatic_user_sapstar = 0这个参数的意思是什么?login/no_automatic_user_sapstar默认值为1,表示禁止SAP用户自动登录非000集团。设为0之后,SAP账号在790集团里就可以正常登录了。这一步修改完成后,需要停止服务器再重新启动,系统才会读取新的参数文件并生效。注意这里说的停止服务器,在实际操作中一般指停止应用服务器实例,不是整个操作系统的重启。等实例完全停止,再重新启动,RZ10的参数就加载进去了。
3.3 从000复制到790:SCCL后台作业排程与执行
参数生效后,用SAP*账号和密码pass登录790集团。能进系统说明账号激活成功了,接下来就是正式的Client Copy操作。
执行事务码SCCL,进入本地集团复制界面。在这个界面上,选择源集团000,目标集团790,复制方法选择「本地复制」。SCCL界面会显示当前系统的所有集团,确认源和目标正确后,点击「Schedule as Background Job」按钮,系统会弹出后台作业排程的提示。
点进去之后,直接回车确认,再点击「Schedule Job」按钮进入后台作业设置。这里可以选择立即执行或定时执行。第一次做Client Copy,我建议选择「立即」,这样方便盯着SCC3看日志。数据量小的话几分钟就完成,数据量大则可能跑几十分钟到数小时。
排程完成后,系统会弹出提示告知作业已排程,并提醒可以用SCC3查看Copy日志。回车确认,后台作业就开始复制了。复制过程中,目标集团790里的表会被写入大量数据,此时不要用其他账号登录790,否则可能出现锁表冲突,导致复制中断。源集团000在复制期间也应保持静止,避免数据不一致。
后台作业复制完成后,SCCL界面会更新状态,但最终确认结果还是要看SCC3的日志。这一步走完,790集团就已经有了和000一致的基础数据,可以开始后续的定制和开发了。
4. Client Copy避坑排查:网传转载资料最常见的五个错
网上关于Client Copy的资料,大量是同一篇文章转载出来的,很多地方连错误都一模一样。这一章把我在实际操作中遇到的典型问题按「现象 -> 原因 -> 解决」的格式整理出来,全部对应这套流程里的真实环节。
4.1 找不到逻辑系统:定义完却无法分配
现象:在SALE里完成了逻辑系统QAS的定义,也保存了请求号,但回到Assign Logical System to Client界面时,搜索不到QAS。
原因:逻辑系统定义保存后,没有回到列表确认记录真正写入。保存操作如果弹出了错误提示,或者请求号没有成功建立,定义其实没有生效。有些人保存时看到系统Message一闪而过没细看,就以为完成了。
解决:回到Define Logical System界面,检查列表中是否已经有QAS这一行。有记录但搜索不到,可以用搜索帮助重新进去看,或者用SE16N查逻辑系统表。没有记录则重新New Entries,保存时务必看到请求号生成,再到列表里确认。这个步骤检查完再继续后面的分配操作。
4.2 搜索帮助为空:新装系统没导入profile
现象:RZ10里点击Profile搜索帮助,列表里什么都没有,选不了profile文件,login/no_automatic_user_sapstar参数也就无处修改。
原因:新安装的ECC没有把当前服务器的profile导入到RZ10的维护视图。搜索帮助里没有值,不代表参数文件不存在,只是还没装载进来。
解决:先在RZ10菜单里执行Utilities -> Import profiles -> of active servers,等界面显示导入正确后,退回去再点Profile搜索帮助。这个时候三个profile文件就会出现在列表里。顺序不能反,先导入后搜索,这是最容易翻车的一步。
4.3 SAP*被限制定制:管理账号和定制账号混用
现象:SAP*账号能登录790集团,但执行某些事务码或保存定制时被拒绝,界面提示没有权限或不允许修改。
原因:SAP*是系统紧急管理账号,默认就不参与常规定制活动。DDIC同理。系统设计如此,不是权限配置坏了。
解决:回到000集团,用SU01复制DDIC创建一个定制账号JIAHG,分配SAP_ALL角色和足够权限,再用这个账号登录790集团做定制。日常开发测试全部用JIAHG,SAP*只保留为紧急入口。后面做Client Copy扩展操作时,这个账号才是真正的主力。
4.4 改了描述全局变:把跨集团表当普通配置改
现象:在790集团里修改逻辑系统的描述文字,保存后回到000集团查看,发现描述也变了。
原因:逻辑系统数据存储在一张跨集团共享的数据库表里。任何集团对它的修改,都是全局修改,这是系统表结构决定的,不是操作失误。
解决:跨集团配置数据只在第一次定义时修改,后续不要随意在测试集团里反复编辑。如果需要调整逻辑系统描述,先确认对生产集团的影响再动手。这个规律同样适用于其他跨集团表,例如集团表T000里的部分字段。理解了这个问题,也就理解了SALE警告的含义。
4.5 后台作业显示执行完成,SCC3里却没有复制记录
现象:SCCL排程成功,作业日志也显示执行完成,但SCC3的Copy日志里看不到这次复制的记录,或者日志显示错误。
原因:常见原因有三个:一是排程时源集团选错,复制了790到790自己;二是目标集团在SCC4里没有正确创建;三是复制方法选了只复制定制而忽略了数据。
解决:先回SCC4确认790记录正常存在,再进SCCL确认源集团是000,目标集团是790,复制方法选择完整复制。排程后立即到SCC3查看日志状态,如果日志显示Error,记录下出错的表名,到SE16N检查那张表在790里有没有数据,判断是否需要重新复制。Client Copy可以在失败后重新执行,SAP会先清空目标集团的对应表再写入,所以重来一次不影响数据一致性。
5. 复制完成后先做三件事:SCC3日志、用户主数据与请求状态
Client Copy跑完不等于万事大吉。复制只是一个数据搬运过程,搬完还要确认搬到的东西是完整的、可用的。这一章讲复制完成后优先做的三件事。
5.1 SCC3日志怎么读:状态、数据表与错误定位
执行事务码SCC3,进入Copy日志界面。选择目标集团790,确定后能看到本次复制的执行记录。日志里最重要的几个信息是:复制状态、复制方法、源集团、目标集团、开始时间和结束时间。
复制状态一般有几种:Scheduled表示已排程没执行;Running表示正在复制;Finished表示成功完成;Error表示执行失败。看到Finished之后,先用SE16N抽查几张表,确认790里真的有数据。比如查一下T000表:
SELECT MANDT, CCATEGORY, CCCATEGORY, LOGSYS FROM T000 WHERE MANDT IN ('000', '790');T000是集团主表,MANDT是集团号,CCATEGORY是集团角色,CCCATEGORY标识CATT是否允许,LOGSYS是逻辑系统。如果这个查询能同时返回000和790两行,且790行的LOGSYS为QAS,说明集团分配正确,复制的基础数据到位了。
再查逻辑系统主表:
SELECT LOGSYS, LOGTXT FROM TBDLS WHERE LOGSYS = 'QAS';这个查询用于确认逻辑系统QAS在主数据表里存在,描述和定义时一致。这两个表不用全查,抽查确认结构正确即可。如果日志显示Error,先记下错误里出现的表名,再用SE16N去目标集团查那张表。很多时候是单张表复制失败,重新执行SCCL就能覆盖修复。
5.2 用户主数据是否带过来了:SAP_ALL与SAP_USER的取舍
复制完成后要确认用户主数据的状态。SCCL复制Profile选择不同,用户数据的处理方式也不同。完整复制(SAP_ALL)会把用户主数据、角色分配、权限对象一起带过来。如果当初只选了定制复制,用户主数据不会过来,790集团里可能只有SAP*和DDIC这两个默认账号。
用SU01登录790集团看一眼就知道:直接输入JIAHG,如果系统能显示用户记录,说明用户主数据已经复制过来。查不到的话,两个办法:要么回000集团用SU01把JIAHG再次复制到790,要么重新执行一次SCCL,选择包含用户主数据的复制Profile。我个人偏好后者,因为一次性复制干净,比手工补用户更省事。
需要注意密码问题。复制过来的用户主数据里,密码字段可能还是旧状态。用SAP*登录790后第一件事,就是用SU01把JIAHG的密码改掉,确保后续都用这个账号操作。
5.3 在790里的定制修改如何记录:Client role与请求传输
790集团的Client role在定义时选的是Customizing,并且勾选了自动记录修改。这意味着在这个集团里做的所有定制修改,系统会自动挂到新的请求号下。
验证方式很简单:随便打开一个定制配置界面,改一个字段值保存,系统应该弹出请求号选择框,或者直接创建一个新请求并记录下来。如果保存时没有请求号出现,回去检查SCC4的集团设置,确认Automatic recording of changes是勾选状态。
请求状态确认无误后,后续的定制操作就有清晰的记录路径。等定制完成,用SCC1可以把这些请求传输到其他集团,实现配置复用。这个机制是SAP定制工作的核心,复制集团只是第一步,真正的定制和开发都建立在请求体系之上。
6. 进阶:本地复制跑通之后,再往SCC9远程复制走一步
6.1 本地复制、远程复制与定制传输:三者的边界
SCCL跑通的是最简单的场景:同一台服务器同一个系统内,从一个集团复制到另一个集团。生产环境里还有一种更常见的需求——从生产系统复制到独立的测试系统,这就涉及远程复制了。
| 事务码 | 类型 | 源 | 目标 |
|---|---|---|---|
| SCCL | 本地复制 | 本系统内某集团 | 本系统内另一集团 |
| SCC9 | 远程复制 | 其他SAP系统的集团 | 本系统的集团 |
| SCC1 | 定制传输 | 本系统某集团的请求 | 本系统另一集团 |
本地复制走的是数据库内部通道,速度快,不涉及网络。远程复制要先在SM59里配置RFC目标,把源系统连接信息建好,然后在两个系统里互相定义逻辑系统。FCC9的操作界面类似SCCL,但多了一个RFC连接选择,复制原理相同,只是数据通过RFC从远程系统拉取。
远程复制的前提条件有三条:目标集团已定义好逻辑系统并分配;RFC连接可用;源系统允许远程复制访问。第一次做远程复制建议先复制一个小集团或只复制用户数据测试连接,确认RFC通畅再执行完整复制。
6.2 复制后的检查清单与后续学习路线
完整的复制操作做完,我一般会按固定清单过一遍:登录790集团并确认SAP*能进;用定制账号JIAHG做一次SU01操作确认权限;SCC3日志显示Finished;SE16N抽查T000和TBDLS数据;做一次简单的定制修改确认请求自动记录。这套清单每次复制都走一遍,十分钟内就能判断集团是否可用。
复制好的790集团,最直接的用处就是当作独立的沙盒环境。后续可以在里面做物资流程(MM)的定制练习、导入测试数据、编写ABAP程序,甚至可以跑SECATT脚本验证业务流程。只要不碰000生产集团的逻辑系统和跨集团配置,这个测试集团里怎么折腾都不影响生产环境。
我第一次在模拟项目X上做Client Copy时,完全照网上的转载步骤走,结果卡在SAP*登录整晚无解。后来发现是RZ10里没先做Import profiles,profile搜索帮助里根本没有可选文件。从那以后,每次装完ECC服务器,我都先把Utilities -> Import profiles -> of active servers跑一遍,确认profile列表里有记录,再动集团复制流程。这套顺序走顺之后,Client Copy基本一次过。希望帮到你。
本文还有配套的精品资源,点击获取