简介:SAP PS模块详细配置手册面向ERP实施顾问、项目系统管理员及正在搭建项目核算体系的企业用户,围绕项目从计划、执行到结算的全流程配置展开,帮助读者厘清组织架构、WBS与财务集成之间的参数关系。压缩包仅含1个PDF文件,大小约1.17MB,内容按企业结构、PS模块配置、网络设置等章节编排,涵盖控制区域激活项目管理、项目编码掩码、WBS项目类型与优先级、项目参数文件、责任人指定、字段选择与自定义字段,以及网络类型、控制码和预算成本集成等关键配置点,目录层级清晰,便于按事务码定位操作。已有155人学习下载,适合作为实施前梳理配置逻辑、上线后排查参数问题的案头参考;由于文档由OCR扫描生成,个别文字可能存在识别偏差,实际使用时需结合系统版本校验。
1. 拿到 SAP PS 模块详细配置手册的第一天,多数人卡在 OKKP
我见过太多人接手 PS 配置时的第一反应:翻开 SAP PS 模块详细配置手册,直接跳到 3.1,在 OKKP 里把项目管理勾上,然后打开 CJ20N 准备建项目,系统回一句“项目系统未激活”。配置本身没错,问题出在这套环境根本没准备好——GUI 补丁对不上、client 不允许更改、控制范围的组件压根没保存。PS 是横跨 FI、CO、MM 的模块,环境不对,后面 OPSA、OPSB 配得再漂亮也全是白工。这份笔记按实际装环境的顺序重排:先对版本和客户端,再动企业结构和 WBS,最后到成本、预算、结算,中间把踩过的坑摊开讲,末尾给一套能自己验证跑通的最小闭环。适合刚接 PS 实施、需要照着配一遍的人。
2. 环境与客户端对齐:IDE、Client 999 与 Oracle 9.2i 这套底子怎么还原
2.1 把手册 Part 1 的环境记录拆开看
配置手册的第一部分写得很朴素:System ID 是 IDE,Client 999,数据库 Oracle 9.2i,应用服务器和路由走内网段。这几行信息量其实不小。999 一般是定制沙箱 client,不是生产;Oracle 9.2i 说明这套系统有些年头,界面是经典 SAP GUI 那一代;能写出具体服务器地址,说明手册作者是在自己搭的测试环境里一步步点出来的,不是抄官方文档。照着这种手册配,事务码大概率还能用——OPSA、OPSB、OPUJ、OPSC 这些是跨版本很稳定的东西,但你得清楚哪些地方会跟新系统不一样。
| 组件 | 手册里的记录 | 现在常见做法 | 需要先确认的点 |
|---|---|---|---|
| 系统标识 | IDE | 沿用或新建 | SAP Logon 里的系统 ID 必须与服务端一致 |
| Client | 999 | 999 或另建 100/200 | 999 多为定制沙箱,角色在 SCC4 里可改 |
| 数据库 | Oracle 9.2i | 由服务端决定 | 客户端侧无关,只影响后台参数和补丁策略 |
| 前端 | 经典 SAP GUI | 7.70 这条线起步 | 补丁级别要和服务器语言包对得上 |
| 登录语言 | 中英文混用 | 统一 EN | 中文登录时事务码描述会和手册对不上 |
最容易被忽略的是最后一行。手册目录里写的是英文术语,比如“Define project coding mask”“Create project profile”,你中文登录进去,菜单文字对不上,找十分钟找不到入口。我一般第一件事就是把登录语言固定成 EN,等配置跑通了再切回中文给业务看。
2.2 SAP GUI 的安装与补丁对齐
GUI 装错版本,后面全是玄学问题:有的屏幕字段显示不全,有的保存按钮点下去没反应,最坑的是某些下拉框直接空白。安装顺序我一般这么走:先把旧版 GUI 彻底退干净(任务管理器里确认 saplogon.exe 没有残留进程),再装主程序,最后单独打补丁包。32 位和 64 位要选对,老系统配老脚本的环境,32 位反而更稳;新机器纯手工操作,64 位没毛病。
# 装完后确认 GUI 主程序和补丁是不是预期那条线 $exe = 'C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe' if (Test-Path $exe) { $v = (Get-Item $exe).VersionInfo "{0} / {1}" -f $v.FileVersion, $v.ProductVersion } else { "没找到 saplogon.exe,换 64 位目录再试:C:\Program Files\SAP\FrontEnd\SAPgui" }这段脚本查的是主程序文件版本。FileVersion 对应 GUI 主线(比如 7.70),ProductVersion 里通常带补丁号,两个都要看:主线对了补丁低,照样出怪问题。路径分 x86 和 64 位两条,脚本里只写了一條,找不到就换另一条。批量分发的时候可以用安装介质里的 NwSapSetup.exe 走静默参数,包名以你手上介质里的 setup 目录为准,别照抄网上的写法。
提示:补丁级别不要比服务器语言包新太多,反过来也一样。差一两个补丁没事,差一个大版本,中文界面和 ALV 报表最容易先崩。
2.3 连接、端口和 client 副本
装完 GUI 只是有了壳,连不上服务器等于零。建连接之前先做一次端口探测,比在 SAP Logon 里反复试错快得多。应用服务器的 dispatcher 端口规则是 32 加实例号:实例号 00 就是 3200,实例号 01 就是 3201;消息服务器是 36 加实例号。手册里的服务器地址是内网段,直接拿来测就行。
# 探测应用服务器 dispatcher 端口;实例号 00 -> 3200,01 -> 3201 Test-NetConnection -ComputerName 192.168.0.5 -Port 3200 -InformationLevel Detailed结果里 TcpTestSucceeded 为 True 才算网络通。不通先别怀疑 SAP,查防火墙和路由。通了但登不上,再看系统编号填错没有——SAP Logon 里“系统编号”填的是实例号(两位),不是系统 ID。系统 ID 是 IDE,系统编号是 00 或 01,这两个字段每年都有人填反。
登录进去之后,第一站是 SCC4 看 client 角色。这一步很多人跳过,然后在 OPSA 保存时收到一句“客户端设置不允许更改”,回头查半天配置,其实是客户端被设成了不允许更改。999 如果是定制沙箱,角色应该是“定制传输客户端”或测试类,允许改;如果被设成生产类,你怎么点都存不进去。需要一份干净的开发环境,用 SCCL 做 client 本地拷贝或远程拷贝,拷之前把目标 client 里的用户锁掉,拷完记得重新生成用户主数据。
2.4 配置前先把基线记下来
手册第一部分有个“硬件环境和文档更改记录”,这个习惯值得抄。我一般在动手配之前,先写一份环境基线文件,把 SID、client、GUI 版本、补丁、实例号、数据库版本、负责人、日期全记上,后面出问题逐条对,比翻聊天记录快。
# 每次新建配置环境时先落一份基线,和手册的"文档更改记录"对齐 cat >> ps_env_baseline.txt <<'EOF' SID: IDE Client: 999 GUI: 7.70 / patch 见 saplogon 关于页 DB: Oracle 9.2i Instance: 00 Baseline Date: 2025-01-01 Owner: 某运维 EOF这份文件不占地方,但真出事的时候是救命的东西——尤其是配置从开发 client 传到测试 client 之后行为不一致,第一件事就是比对两边的基线和传输请求记录。环境这一层确认完,才轮到真正打开 OKKP。
3. 企业结构与主数据骨架:OKKP、OPSJ、OPSA、OPSC 的落地顺序
3.1 OKKP:把项目管理在控制范围里打开
PS 的第一颗螺丝不在 PS 菜单里,在控制范围里。企业结构没搭好之前,OKKP 里那个勾选项是灰的或者根本没意义。正确顺序是:公司代码建好、会计年度变式和货币定好、控制范围建好并分配公司代码,然后才进 OKKP 的“激活组件”页签勾项目系统。
| 页签/选项 | 作用 | 前置条件 | 常见误解 |
|---|---|---|---|
| 基本数据 | 控制范围货币、会计年度变式 | 公司代码已分配 | 货币改了会影响整个控制范围的历史数据 |
| 激活组件 | 勾选项目系统等组件 | 控制范围已存在 | 以为勾完立刻全局生效 |
| 成本核算 | 成本核算相关默认 | 组件已激活 | 与 PS 计划参数文件是两回事 |
勾完保存,一定要退出重新登录再试 CJ20N。这一步不是迷信,用户缓冲区里的组件激活状态确实会滞后。还有个更隐蔽的情况:控制范围激活了 PS,但你的用户没有分配到这个控制范围对应的公司代码权限,进 CJ20N 依然报错,报错内容还跟“未激活”很像。所以配之前先确认自己用的账号是全能账号,别拿业务账号硬试。
提示:控制范围一旦激活 PS 并且已经有项目数据,不要再去取消这个勾。取消不掉还算运气好,取消掉了历史项目的成本归集会出问题。
3.2 企业结构图形核对:公司代码、控制范围、业务范围
手册第二部分只有一张企业结构图,看着像装饰,其实是整份配置的地基。项目定义上挂的公司代码决定这个项目记账记到哪套账,控制范围决定成本能不能跨公司代码归集,业务范围、利润中心决定报表口径。这三层任何一层没对齐,后面预算控制和结算都会歪。
核对方法很土但有效:在 SPRO 里打开企业结构图形,从公司代码一路点到控制范围、业务范围、工厂、采购组织,把手册里画的那张图和你系统里的实际结构一格一格对。对不上就别往下走,先把组织结构补全。我见过一个环境,公司代码分配了两个控制范围,PS 配到一半发现成本记到了错误的控制范围,全部推倒重来。
3.3 编码掩码 OPSJ、项目类型与责任人 OPS6
项目编号不是随便输的,它由编码掩码约束。OPSJ 里定义掩码,规则是特殊字符加占位符:特殊字符(比如短横线、斜杠)只能出现在你定义的位置,占位符的位数决定项目编号能有多长。举个常见的组合:
| 位置 | 含义 | 示例 |
|---|---|---|
| 第 1 位 | 固定前缀,标识项目大类 | P |
| 第 2-3 位 | 年份后两位 | 25 |
| 第 4-6 位 | 流水号 | 001 |
| 最终编号 | 拼接结果 | P25001 |
配置步骤按这个顺序走:先在 OPSJ 定掩码,再在同一节点下建项目类型(用来区分不同工作包分类),然后给 WBS 定优先级(资源冲突时决定谁先干),最后用 OPS6 指定 WBS 责任人。责任人这一步别省,它决定了后续工作流和报表里的责任归属,很多环境配完发现报表里责任人一栏全空,就是这里没填。
提示:编码掩码一旦有项目在用,就不要缩短位数或者挪动特殊字符的位置。已有编号会直接对不上,改回来的成本比新建一个掩码高得多。
3.4 项目参数文件 OPSA 与字段选择 OPUJ/OPUK
OPSA 是整份手册里最核心的一个事务码,项目参数文件把前面所有零散配置串起来。它的关键页签不多,但每一格都影响后面的行为:
| 页签 | 关键内容 | 配错会怎样 |
|---|---|---|
| 基本数据 | 参数文件 ID、编码掩码、项目类型、责任人 | 建项目时提示编号不符合掩码 |
| 组织数据 | 公司代码、工厂、业务范围、利润中心 | 成本记到错误科目或错误利润中心 |
| 计划 | 计划参数文件 OPSB | 成本计划里没有可用计划版本 |
| 预算 | 预算参数文件 OPS9 | 预算功能点了没反应 |
| 结算 | 结算参数文件、分配结构 | 结算时找不到接收方 |
字段选择是另一个容易翻车的地方。OPUJ 和 OPUK 两个都要看,一个管 WBS 相关屏幕的字段状态,一个管另一层字段选择,实际生效的是挂在项目参数文件上的那一套。字段状态有四档:隐藏、显示、必输、可选。新手最常见的误操作是把一堆字段设成必输,结果业务建项目时被拦在半路,一个个电话打过来问为什么填不完。
自定义字段用 OPS1 建,建完必须挂到字段选择上才会显示,而且字段长度定了就改不了,只能新建一个。校验(Validation)那部分用前置条件加检查加消息,消息类型尽量用 E 或 W,别用 A,A 会直接把整个事务中断掉,用户连哪里错了都看不出来。增强(Enhancement)不是必须项,先把标准校验跑通再说。
3.5 网络三件套:OPSC、OPSU、OPUU 与 CO82
WBS 是骨架,网络是血肉。网络的配置链条比 WBS 长,四个对象必须一起看:
| 对象 | 事务码 | 关键参数 | 影响范围 |
|---|---|---|---|
| 网络类型 | OPSC | 网络类型、参数文件、编号范围 | 决定活动类型和默认行为 |
| 网络参数 | OPUV | 排程、确认、物料相关默认 | 影响作业能不能带物料 |
| 控制码 | OPSU | 能力需求、外部处理、确认 | 决定作业能否排产、能否确认 |
| 网络参数文件 | OPUU | 默认控制码、工作中心 | 新建网络时的默认值来源 |
| 编号范围 | CO82 | 编号范围对象与区间 | 没有区间,网络根本存不了 |
顺序上,先 OPSC 定义网络类型,再 OPUV 给它挂参数,OPSU 定义控制码(这一步决定作业带不带能力、带不带物料),OPUU 建网络参数文件并把控制码设成默认,最后在 CO82 里给对应的编号范围对象建区间。少了最后一步,前面配得再好,保存时也是一句冷冰冰的“编号范围不存在”。
排程参数 OPU6 和确认参数 OPST 通常跟这条链一起配:OPU6 决定网络的排程方向和提前后期,OPST 决定确认时能不能部分确认、要不要校验日期。这两处配完,才轮得到第 4 章的成本和预算。
4. 成本预算与结算接线:OPSB、OPS9、KA06 该按什么顺序配
4.1 计划参数文件 OPSB 与易成本计划 OKKT
成本计划能不能用,取决于 OPSB。它定义哪些成本要素可以计划、用哪个版本、计划的时间范围到哪一年。配置的时候先确认 CO 版本已经存在,再去 OPSB 里挂计划版本,最后回到 OPSA 的“计划”页签把 OPSB 挂上去。三步少一步,项目里点“计划成本”就是空白。
易成本计划(Easy Cost Planning)是另一条线,链路更长:先用 OKKT 建成本核算变式,把变式分配给计划参数文件,再用 OKTZ 定义成本组件结构。成本组件结构决定了成本按什么维度拆开显示,配得太粗,报表上看不出钱花在哪;配得太细,业务录入时被一堆成本组件淹没。我一般的取舍是:先只拆三到四个大类,跑通一轮再细拆。
提示:OKKT 里引用的成本核算变式如果被别处删了,易成本计划会静默失效——界面上还能点,算出来是零。改配置之前先查一遍依赖。
4.2 预算参数文件 OPS9 与容差、免检成本要素 OPTK
预算控制是 PS 最容易被业务挑战的功能:要么卡得太死,业务做不了事;要么形同虚设,超支了系统一声不吭。OPS9 里的几个参数决定这个尺度:
| 参数 | 常见取值 | 说明 |
|---|---|---|
| 预算版本 | 0 或自定义版本 | 与计划版本分开管理 |
| 可用性控制 | 0 / 1 / 2 | 关闭、仅警告、报错,具体对应关系以系统 F1 帮助为准 |
| 容差上下限 | ±10% 左右 | 超出容差才触发检查 |
| 免检成本要素 | 少量 | 通过 OPTK 指定,不参与预算检查 |
容差不要一开始就设 0,否则业务第一笔采购申请就被拦,士气直接崩。先给 10% 缓冲,跑一个季度看实际偏差再收紧。免检成本要素用 OPTK 维护,通常是那些金额小、笔数多、跟项目主成本无关的科目,比如零星运费。配完预算参数文件,回到 OPSA 的“预算”页签挂上去,再在项目定义上设默认预算参数文件,这样新建项目自动带出。
4.3 结算与结果分析:KA06、分配结构、KEI1、OKG1 到 OKG5
结算这条线是整个 PS 配置里最容易烂尾的部分。链路是:KA06 维护结算成本要素,建分配结构,建 PA 传输结构 KEI1,建结算参数文件并挂到项目参数文件,最后定义结算规则确定策略。每一步都是上一步的前提,顺序错了就报“未找到分配结构”或者“结算参数文件未分配”。
分配结构决定成本怎么从项目流到接收方(成本中心、资产、订单)。原则是:先按成本要素分组,再给每组指定结算接收方类别。PA 传输结构是给获利能力分析用的,如果这个环境不接 CO-PA,这一步可以跳过,但要明确跳过,别配了一半留着。
结果分析的链条是 OKG1 维护结果分析码、OKG2 维护版本、OKG3 定义估值方法、OKG5 定义分配、OKG4 定义更新。这条链的坑在于版本:结果分析版本和 CO 版本不是一回事,配完记得在项目定义上指定默认结果分析码,否则跑出来是空的。KA06 在这里出现两次,一次给结算,一次给结果分析,成本要素要分开建,别图省事复用。
4.4 版本参数文件 OPTS 与信息系统
版本参数文件 OPTS 管的是项目版本(不是 CO 版本),用于项目快照和对比。信息系统那三个事务码——OPUR 定义项目视图、OPTX 定义数据库选择参数文件、OPSM 定义整体参数文件——属于“配完能看报表”的收尾工作。很多人配完前面所有东西,报表一跑是空的,问题就在这里:视图没选对字段,或者数据库选择参数文件限制了数据范围。这三处配完,后面验证章节的报表才有意义。
5. 配置排查:五类翻车现场、成因和后悔药
5.1 现象:OKKP 里勾了项目系统,CJ20N 还说未激活
原因通常有三个:一是勾完没保存就切屏了,回来以为已经生效;二是保存了但用户缓冲区没刷新;三是这个用户根本没分配对应的控制范围权限,报错文案跟“未激活”几乎一样。
解决顺序是:回 OKKP 确认勾选状态是保存后的样子,退出系统重新登录,再进 CJ20N。还是不行就用一个有全权限的账号试一次,如果全权限账号能进,问题在权限不在配置。最后检查控制范围是否分配到了你正在用的公司代码——这一层最容易被跳过,因为 OKKP 界面上看不出公司代码分配关系。
5.2 现象:新建项目时编号一输就被拒,提示格式不符合
原因是 OPSJ 里定义的掩码和你输的编号对不上。常见情况是掩码里特殊字符的位置被挪过,或者占位符位数不够。还有一种:掩码改过了,但项目参数文件 OPSA 还引用着旧掩码,界面上显示的是新规则,实际校验用旧的。
解决:先打开 OPSJ 看当前掩码
本文还有配套的精品资源,点击获取