在 OBBH 里你能选到的“Substitution(替代)”字段/值并不是系统写死的,而是先在 GGB1 里"画"出来的——GGB1 就是 OBBH 可引用规则的"字段仓库"。具体逻辑如下:
预定义位置
事务码:GGB1
菜单:IMG → 财务会计 → 凭证 → 替代 → 定义替代先建一个替代 ID(如 Z_SUBST_001)
在步骤里写"先决条件"和"替换"两行逻辑:
– 先决条件决定"什么时候触发"
– 替换行决定"把哪个字段换成什么值"
这里的"字段"就是 OBBH 里能看到的全部字段来源;值可以是:常量(Const)
另一个字段(Field-Field)
用户出口(Exit,写 ABAP 代码返回任意值)
集合(Set,用 GS01/GS02 维护的科目范围、成本中心列表等)
让 OBBH 能引用
事务码:OBBH选公司代码 + 调用点(1 抬头/2 行项目/3 整凭)
在"替代"栏位按 F4,系统列出所有在 GGB1 里已保存且已激活的替代 ID;选中即可
保存后,生成程序 RGUGBR00 会在后台把 GGB1 写的逻辑编译成可执行代码,凭证录入时就自动替换
字段范围控制
如果 GGB1 里找不到你想替换的字段,要先把它"放出来":表 GB01 中把该字段的 BEXCLUDE 置空(或运行 RGUGBR00)
对于调用点 3(完全凭证),BOOLCLASS = 015 默认把所有字段都锁了,需要按 Note 391309 释放
一句话:OBBH 里看到的"Substitution"字段/值,全部来自 GGB1 的预定义;GGB1 写完激活后,OBBH 只是"把它分配到某个公司代码 + 调用点"而已。