一、PROJ 表核心概述
PROJ 是 SAP PS(Project System)模块中的关键主数据表,用于存储项目在项目定义(Project Definition)层级的基本信息。每一个项目在该表中均对应一条独立记录,作为 WBS 元素、网络活动等下级结构的根节点,是整个项目结构的起点。
主要特征说明:
- 表类型:透明表(Transparent Table)
- 逻辑数据库:IMA、PSJ
- 对象编号规则:OBJNR 字段以 "PD" 开头(例如 PD00000001),标识项目定义级别的对象
- 增强结构支持:可通过客户自定义结构 CI_PROJ 扩展字段
PROJ (项目定义)
├──> PRPS (WBS元素) via PSPNR→PSPHI
├──> JEST (对象状态) via OBJNR
├──> TJ20 (状态参数文件) via STSPD/STSPR
├──> TCJ04 (负责人) via VERNR
├──> TCJ05 (申请人) via ASTNR
├──> T001 (公司代码) via VBUKR
├──> TKA01 (控制范围) via VKOKR
└──> CEPC (利润中心) via PRCTR
二、核心字段分类详解
1. 项目标识类字段(主键与编码信息)
| 字段名 |
数据类型 |
业务含义 |
关键要点 |
| MANDT |
CLNT(3) |
客户端标识 |
SAP 系统的逻辑分区单位,区分不同客户端环境 |
| PSPNR |
NUMC(8) |
项目定义内部编号 |
主键字段,系统自动生成且不可修改的唯一数字编号 |
| PSPID |
CHAR(24) |
项目外部编号 |
业务主键,由用户输入,如 "P-2025-001" |
| PSPID_EDIT |
CHAR(24) |
编辑后的项目编号 |
用于追踪项目编号的历史变更记录 |
2. 项目描述与文本相关字段
| 字段名 |
数据类型 |
业务含义 |
应用场景 |
| POST1 |
CHAR(40) |
项目简短描述(第一行) |
必填项,常作为项目名称,在各类报表中显示 |
| POSTU |
CHAR(40) |
项目大写格式描述 |
用于标准化输出和统一界面展示 |
| KIMSK |
CHAR(24) |
WBS 元素短码选择掩码 |
定义 WBS 编码生成规则的模板 |
3. 组织架构与责任人字段
| 字段名 |
数据类型 |
业务含义 |
关联配置 |
| VERNR |
NUMC(8) |
项目负责人编号(项目经理) |
关联 TCJ04 表获取人员信息 |
| VERNA |
CHAR(30) |
负责人姓名 |
系统自动带出,用于审批流程中的角色识别 |
| ASTNR |
NUMC(8) |
申请人编号 |
关联 TCJ05 表 |
| ASTNA |
CHAR(30) |
申请人姓名 |
表示项目创建时的发起人信息 |
| VBUKR |
CHAR(4) |
公司代码 |
核心组织字段,决定财务记账主体,关联 T001 表 |
| VKOKR |
CHAR(4) |
控制范围 |
成本核算管理范围,关联 TKA01 表 |
| VGSBR |
CHAR(4) |
业务区域 |
用于业务细分管理,关联 TGSB 表 |
| PRCTR |
CHAR(10) |
利润中心 |
内部绩效评估维度,关联 CEPC 表 |
| KOSTL |
CHAR(10) |
成本中心 |
成本归集单元,关联 CSKS 表 |
| FUNC_AREA |
CHAR(16) |
功能范围 |
如销售、研发、管理等分类,关联 TFKB 表 |
| STORT |
CHAR(10) |
地点/位置 |
项目实际物理位置,关联 T499S 表 |
4. 时间控制相关字段
| 字段名 |
数据类型 |
业务含义 |
业务逻辑说明 |
| ERDAT |
DATS(8) |
记录创建日期 |
系统自动填充,记录首次录入时间 |
| AEDAT |
DATS(8) |
最后修改日期 |
每次保存操作后自动更新 |
| PLFAZ |
DATS(8) |
计划开始日期 |
作为项目周期基准,驱动下级 WBS 的排程推导 |
| PLSEZ |
DATS(8) |
计划结束日期 |
与 PLFAZ 共同构成项目的总计划周期 |
| SPROG |
DATS(8) |
预测开始日期 |
支持滚动预测场景下的动态调整 |
| EPROG |
DATS(8) |
预测结束日期 |
项目进度发生变化时进行更新使用 |
| TRMEQ |
CHAR(1) |
是否允许活动日期反写 WBS 日期 |
标记位控制机制,影响排程逻辑流向 |
5. 状态与审批管理字段
| 字段名 |
数据类型 |
业务含义 |
技术关联 |
| OBJNR |
CHAR(22) |
对象编号 |
核心状态字段,以“PD”开头,关联 JEST 和 JCDS 表 |
| STSPD |
CHAR(7) |
项目定义状态参数文件 |
关联 TJ20 表,定义可用的系统状态流转路径(如 CRTD → REL → TECO) |
| STSPR |
CHAR(7) |
WBS 元素状态参数文件 |
同样关联 TJ20 表,控制 WBS 层级的状态迁移 |
| INACT |
CHAR(1) |
非活动标记 |
值为 X 表示该项目已设为非活动状态,相当于逻辑删除 |
状态管理补充说明:
- 系统状态(以 I 开头)存储于 TJ02 / TJ02T 表中
- 用户状态(以 E 开头)存储于 TJ30 / TJ30T 表中
- 当前有效状态实例记录在 JEST 表
- 历史状态变更轨迹保存在 JCDS 表
6. 财务控制类字段
| 字段名 |
数据类型 |
业务含义 |
配置点说明 |
| PWHIE |
CURR(5) |
WBS 货币 |
设定项目级别交易使用的货币单位 |
| KZBWS |
CHAR(1) |
特殊库存评估标识 |
控制项目内库存的价值计算方式 |
| BESTA |
CHAR(1) |
项目库存启用标志 |
决定是否开启项目库存功能 |
| ABGSL |
CHAR(6) |
结果分析码 |
关联 TKKAA 表,用于项目成果分析(RA)的数据归集与报告 |
7. 计划与排程配置字段
| 字段名 |
数据类型 |
业务含义 |
关联配置表 |
| SCPRF |
CHAR(12) |
WBS 排程参数文件 |
关联 TCXPS 表,定义排程执行逻辑 |
| ZSCHM |
CHAR(7) |
利息计算方案 |
关联 TPI01 表,用于项目资金成本测算 |
| IMPRF |
CHAR(6) |
投资计量参数文件 |
关联 TAPRF 表,适用于资本性项目管理 |
| FMPRF |
CHAR(6) |
付款计划参数文件 |
关联 TBP1C 表,支持客户项目收款安排 |
| PPROF |
CHAR(6) |
计划参数文件 |
关联 TBP1C 表,定义 CO 模块中的计划编制规则 |
| PGPRF |
CHAR(6) |
分销参数文件 |
关联 TPGPRF 表,用于收入确认的分摊处理 |
| SMPRF |
CHAR(7) |
模拟参数文件 |
关联 TCN54 表,支持 what-if 分析场景 |
8. 集成与扩展性字段
| 字段名 |
数据类型 |
业务含义 |
典型集成场景 |
| ZUORD |
NUMC(1) |
网络分配标识 |
1 表示项目定义级;2 表示 WBS 元素级 |
| LOGSYSTEM |
CHAR(10) |
逻辑系统 |
用于 ALE/IDoc 实现跨系统数据传输 |
| PARGR |
|
|
|
注:原内容中未完整提供 PARGR 字段的详细信息,仅保留字段名占位。
合作伙伴确认流程
通过关联 V_TVPG_S 表实现客户与供应商的协同管理。
删除标识字段(LOEVM)
数据类型:CHAR(1)
说明:标记是否已删除。若值为 X,则表示该记录已被标记删除,并可参与归档处理。
申请人编号(ASTNR)
数据类型:NUMC(8)
说明:用于标识项目申请人的唯一编号。
关联表:TCJ05,应用于立项审批流程中。
用户自定义字段(USR00–USR05)
数据类型:CHAR(20/10)
业务含义:系统预留的字符型扩展字段,可直接在报表开发中使用。
用户字段关键字ID(SLWID)
数据类型:CHAR(7)
说明:作为用户自定义字段的关键字索引。
关联表:TCN00。
动态项目处理器参数文件(DPPPROF)
数据类型:CHAR(8)
说明:指定动态项目处理所使用的配置参数文件。
关联表:AD01C_PROF。
增强结构支持
可通过 CI_PROJ 结构添加客户化自定义字段,最多支持累计255个自定义字段。
核心外键关联关系
PROJ (项目定义)
├──> PRPS (WBS元素) via PSPNR→PSPHI
├──> JEST (对象状态) via OBJNR
├──> TJ20 (状态参数文件) via STSPD/STSPR
├──> TCJ04 (负责人) via VERNR
├──> TCJ05 (申请人) via ASTNR
├──> T001 (公司代码) via VBUKR
├──> TKA01 (控制范围) via VKOKR
└──> CEPC (利润中心) via PRCTR
典型应用场景分析
场景一:项目立项审批流程
SQL 查询示例:
-- 查询待审批项目
SELECT PSPID, POST1, VERNR, ASTNR, ERDAT, OBJNR
FROM PROJ
WHERE VBUKR = '1000'
AND AEDAT >= '20250101'
AND OBJNR IN (SELECT OBJNR FROM JEST WHERE STAT = 'I0002') -- CRTD状态
场景二:基于项目经理的多维度数据分析
SQL 查询示例:
-- 统计各经理负责项目数量
SELECT VERNR, VERNA, COUNT(*) AS Project_Count,
SUM(CASE WHEN INACT = '' THEN 1 ELSE 0 END) AS Active_Projects
FROM PROJ
WHERE VKOKR = 'A000'
GROUP BY VERNR, VERNA
场景三:项目状态变更的历史追溯
SQL 查询示例:
-- 查询项目状态变更历史
SELECT JCDS~UDATE, JCDS~UTIME, TJ30T~TXT04, TJ30T~TXT30
FROM PROJ
INNER JOIN JCDS ON PROJ~OBJNR = JCDS~OBJNR
INNER JOIN TJ30T ON JCDS~STAT = TJ30T~ESTAT
WHERE PROJ~PSPID = 'P-2025-001'
AND TJ30T~SPRAS = 'ZH'
关键注意事项说明
编码规则设定
PSPID 的生成规则由事务码 OPSK 进行配置,直接影响项目创建时的自动编码逻辑。
状态联动机制
项目定义的状态(如 REL - 释放、TECO - 技术完成、CLSD - 关闭)会向下级联作用于所有相关的 WBS 元素及网络活动。
增强字段数量限制
PROJ 表与 CI_PROJ 扩展结构合计支持的字段总数不得超过255个。建议在系统非高峰时段进行激活操作,避免影响业务运行。
系统版本差异提示
在 S/4HANA 环境中,部分字段长度有所调整,例如利润中心(PRCTR)字段由原来的10位扩展至24位。
访问权限管理
通过授权对象 C_PRPS_KOK 实现对项目定义数据的细粒度访问控制。
常用关联查询参考(ABAP环境)
" 获取项目完整信息(含WBS数量)
SELECT proj~pspid, proj~post1, proj~verna,
COUNT( DISTINCT prps~posnr ) AS wbs_count,
jest~stat AS current_status
FROM proj
LEFT JOIN prps ON proj~pspnr = prps~psphi
LEFT JOIN jest ON proj~objnr = jest~objnr AND jest~inact = ''
WHERE proj~vbukr = p_company_code
GROUP BY proj~pspid, proj~post1, proj~verna, jest~stat
总结说明
本内容全面梳理了 PROJ 表在 SAP PS 模块中的结构设计、关键关系与实际应用,适用于开发人员、系统配置员以及业务分析岗位参考使用。建议结合 SE11 或 SE16N 事务码,并借助项目档案查看功能(CJ03)进行实时数据验证以确保准确性。