一、TVARVC 是什么?
TVARVC(Table of Variables and Conditions)是 SAP 系统中的中央变量存储表,用于管理跨模块的全局参数。它支持三种数据类型:
-
单值(如系统开关、阈值)
-
参数(复杂逻辑参数)
-
选择条件(范围值,如
COMPANY_CODE IN (1000,2000)
)
典型应用场景:
✅ 报表行数限制
✅ 接口目标系统配置
✅ 增强/BADI 开关控制
✅ 权限检查的静态值
✅ 工作流条件范围
二、如何维护 TVARVC?
⚙️ 事务代码:STVARV
1. 进入维护界面
TCODE: STVARV " 在 SAP 命令框输入
2. 创建新变量
字段 | 说明 |
---|---|
Variable Name | 必填,建议以 Z_ 开头(如 Z_MAX_ROWS ) |
Description | 清晰描述用途(强烈建议详细填写) |
Parameter | 类型:S (单值)、P (参数)、C (选择条件)→ 最常用 C |
Value Assignment | 选 Manual Entry (手动维护) |
Value Area | Global (全局生效)或 User-dependent (按用户隔离) |
⚠️ 点击 【Maintain Values】 进入值配置界面
3. 配置变量值
根据参数类型配置:
-
单值 (
S
):直接输入值(如1000
) -
选择条件 (
C
):OPTION LOW HIGH EQ
1000
→ = 1000
BT
1000
2000
→ BETWEEN 1000 AND 2000
💡 支持多行条件(逻辑
OR
关系)
4. 保存与传输
-
按 Ctrl+S 保存,生成传输请求(需审批传递至生产系统)
-
生产系统修改需 严格审批流程
三、关键操作示例
场景:限制报表最大输出行数
-
变量名:
Z_REPORT_MAX_LINES
-
参数类型:
S
(单值) -
值:
5000
-
ABAP 调用代码:
DATA lv_max_lines TYPE i. CALL FUNCTION 'RS_VARIABLE_CONTENTS' EXPORTING variable = 'Z_REPORT_MAX_LINES' IMPORTING value = lv_max_lines.
在报表中校验:
IF lines(lt_data) > lv_max_lines. ...
四、高频问题与避坑指南
❓ 如何查找变量被哪些程序使用?
在 STVARV 界面:
-
输入变量名(如
Z_*
) -
点击工具栏 【Where-Used List】(Shift+F6)
-
使用代码搜索工具
RS_ABAP_SOURCE_SCAN
⚠️ 必须遵守的安全规范
-
权限管控:通过角色限制
S_TABU_NAM
权限 -
命名规范:禁用
SAP_
/DDIC_
等系统前缀 -
生产变更:禁止直接修改!需走测试→传输流程
-
敏感数据:不在 TVARVC 存储密码等加密信息
五、最佳实践总结
实践要点 | 说明 |
---|---|
描述清晰 | 每个变量必须填写详细用途说明 |
作用域最小化 | 优先用 User-dependent 替代 Global |
定期清理 | 每季度审计未使用的 Z_* 变量 |
版本记录 | 在描述中标注修改人和日期(如 [2025-06]CR#123@UserX] ) |
🔗 扩展阅读:
SAP Note 2158336:TVARVC 常见问题
官方文档:SAP Help Portal - Managing Variables