SAP S/4HANA FICO 入门 55:FI 凭证替代、调用点与用户出口


SAP S/4HANA FICO 入门 55:凭证替代与用户出口

SAP S/4HANA FICO 入门 55:FI 凭证替代、调用点与用户出口

本集从上一课的 FI 校验切换到 FI 替代。校验负责判断数据是否合规,并在失败时发出消息;替代则在满足前提条件时,自动把目标字段改成常量、另一个字段的值,或用户出口计算出的结果。课程使用经典事务码 GGB1 定义规则、用 OBBH 分配并激活,还演示了凭证抬头、行项目和用户出口三类场景。

视频信息

  • 原视频:SAP FICO FOR BEGINNERS | FULL COURSE | DAY 32
  • 视频时长:1 小时 05 分 55 秒
  • 视频地址:https://www.youtube.com/watch?v=ygQdUsMgvqU
  • 本文范围:校验语义复核、销售开票问答、GGB1OBBH、常量替代、字段到字段替代、行项目替代、用户出口
  • 截图规则:只引用原视频中的 SAP 系统画面;Excel、PowerPoint 等非 SAP 画面不直接使用,相关内容已翻译成中文表格,并依据 SAP 官方资料校正

一、先修正上一课的校验逻辑

课程开头重新解释了上一集的日期校验。布尔校验的执行顺序是:前提条件成立后,系统计算“检查条件”;检查结果为真时通过,为假时才触发消息。因此,如果业务规则是“过账日期不得早于凭证日期”,检查表达式应是:

BKPF-BUDAT >= BKPF-BLDAT
检查结果含义系统处理
过账日期等于或晚于凭证日期校验通过,不报错
过账日期早于凭证日期按规则中的消息类型提示或阻止

不要把“需要报错的条件”直接写成检查条件。校验表达式描述的是“什么情况算正确”,不是“什么情况算错误”。

OB28 中上一课的 FI 校验分配

二、校验与替代不是一回事

课程用非 SAP 课件解释了二者差异,下面将其翻译成中文结构:

对比项校验 Validation替代 Substitution
目的判断现有输入是否满足规则自动生成、复制或覆盖目标字段
结构前提条件 + 检查条件 + 消息前提条件 + 替代方法
条件满足后的动作执行检查执行字段替换
失败或结果检查为假时发消息不需要“检查为假”的消息结构
典型场景必填、字段组合、日期关系默认值、字段同步、复杂派生

替代会改变凭证数据,因此设计时应比校验更谨慎。能由标准字段状态、默认值或业务应用直接完成的要求,不要重复做成替代;必须覆盖用户输入时,还要明确业务责任和审计影响。

三、课堂中的销售开票问答:正确的流程边界

正式进入替代前,课程回答了“销售订单与非销售订单应收”的问题。自动字幕和口述中有几处容易误解,正确关系如下:

场景正确入口或处理说明
不基于销售订单的客户发票FB70直接在 FI 创建客户发票
创建销售订单VA01不是 VF01VF01 用于开票
基于前序销售凭证创建开票凭证VF01开票完成后,满足条件时向会计传输
开票凭证因错误未传入会计先修正根因,再在 VF02 释放到会计VF02 不是自动修复会计错误的工具
取消开票凭证VF11若原开票已过账到会计,取消时通常需要相应冲销会计影响;若尚未传入会计,则不会产生这组会计分录
SD 收入科目确定VKOA课程口述被字幕识别成了其他拼写,正确事务码是 VKOA

这段属于概念问答,不是本集替代配置的一部分。本文保留它,是为了避免把 FI 手工应收、SD 开票和会计传输混成一个步骤。

四、经典 FI 替代的对象模型

经典配置可以拆成四层:

层次需要决定的问题本集示例
应用与调用点在什么处理时机、对哪类数据执行Financial Accounting,调用点 1 或 2
替代规则规则容器和业务含义SKPI_HSKPI_L
步骤前提条件成立后替代哪个字段公司代码为 SKPI 时替代参考号或文本
组织分配与激活哪个公司代码实际启用该规则OBBH 分配并设置激活级别

FI 常见调用点如下:

调用点名称主要数据范围本集是否实际配置
0001凭证抬头BKPF 抬头字段
0002行项目BSEG 行项目,可读取部分抬头字段
0003完整凭证需要整张凭证或跨行关系的数据只提到,未完成矩阵替代配置

调用点不仅决定字段列表,也决定系统在凭证处理的哪个阶段执行规则。不要把抬头字段、单行字段和整张凭证逻辑混在同一个调用点中。

五、在 GGB1 创建抬头替代

进入 GGB1 后,选择 Financial Accounting → Document header,然后创建抬头替代。课程使用:

  • 替代名称:SKPI_H
  • 描述:Substitution Header Level
  • 应用范围:Financial Accounting
  • 调用点:1,Document header

在 GGB1 中创建抬头替代 SKPI_H

SKPI_HSKPI_L 和公司代码 SKPI 都是课程环境中的自定义示例,不是 SAP 标准对象,也不是生产命名建议。实际项目应采用可追踪业务用途、所属模块和组织范围的命名规范。

5.1 前提条件

课程的前提条件是:

BKPF-BUKRS = 'SKPI'

这表示只有当前凭证公司代码为 SKPI 时,步骤中的替代动作才执行。替代步骤没有校验规则里的“检查条件 + 消息”;它只判断前提条件,然后执行替代方法。

5.2 在 OBBH 分配并激活

定义完成后进入 OBBH,按公司代码、调用点和替代名称进行分配。课程给 SKPI 分配调用点 1,并填写激活级别 1

在 OBBH 为 SKPI 分配调用点 1 并激活

SAP 官方说明的激活级别不只是“开/关”:

激活级别含义
0不激活
1激活
2激活,但批输入处理除外

选择级别时必须考虑接口、批处理和后台导入路径,不能只验证前台手工事务。

六、方法一:常量替代

常量替代适合把目标字段固定成预先定义的值。课程把凭证抬头参考号 BKPF-XBLNR 替换成 SUBS 24/05,后续又改成 Sagar。这两个值只是教学占位符,不能直接当成生产规则。

抬头参考号使用常量 SAGAR 的替代步骤

FB60 测试时,满足前提条件并触发屏幕检查后,参考号显示为 SUBS 24/05

FB60 中参考号被常量替代

这张画面只证明字段在界面中的替代行为,不把它扩展解释成“凭证已经成功过账”。生产验证还要检查最终会计凭证、接口路径、批处理、权限和后续报表。

常量替代的风险很直接:若规则把所有凭证参考号覆盖成固定字符串,将破坏外部单据追踪、重复发票检查和审计检索。真实需求通常需要更窄的前提条件,或改用字段映射、用户出口生成有业务意义的值。

七、方法二:字段到字段替代

课程随后把“凭证抬头文本” BKPF-BKTXT 设置为来自“参考号” BKPF-XBLNR。规则表达为:

目标字段:BKPF-BKTXT
来源字段:BKPF-XBLNR
前提条件:BKPF-BUKRS = 'SKPI'

把抬头参考号复制到凭证抬头文本

这种方式不需要写程序,适合直接复制已有字段。但是课程又增加了一个步骤,先把参考号替换为常量 Sagar,再把参考号复制到抬头文本。最终两个字段都会显示该值。

这说明步骤顺序会影响结果:

  1. 步骤 1:把 BKPF-XBLNR 复制到 BKPF-BKTXT
  2. 步骤 2:把 BKPF-XBLNR 覆盖成常量。
  3. 若希望文本拿到覆盖后的新值,复制步骤必须在新值已经存在之后执行,或重新设计步骤顺序。

实际配置前应把每一步的输入字段、输出字段和执行顺序画清楚,尤其要避免后续步骤覆盖前面步骤的结果。

八、公司代码范围由 OBBH 分配控制

课程测试了多个公司代码,并指出一个关键边界:即使某一步的前提条件没有限制公司代码,规则也不会因此自动对所有公司代码生效。经典 FI 替代仍需在 OBBH 按组织单位和调用点分配、激活。

课程演示中出现 SKPI23091000,它们都是环境示例。跨公司代码部署时要逐项确认:

检查项原因
公司代码是否已分配相同替代规则定义存在不等于组织单位已启用
调用点是否一致抬头规则与行项目规则不能互换
本地字段和业务流程是否一致不同公司代码可能使用不同凭证类型、科目与接口
激活级别是否覆盖批处理前台成功不代表批输入或接口路径一致

九、调用点 2:行项目文本替代

课程在 GGB1 的 Line Item 节点创建行项目替代 SKPI_L,并在 OBBH 为公司代码 SKPI 分配调用点 2、激活级别 1。目标是把抬头参考号复制到行项目文本:

目标字段:BSEG-SGTXT(行项目文本)
来源字段:BKPF-XBLNR(抬头参考号)

行项目文本从抬头参考号 BKPF-XBLNR 取值

FB70 的行项目明细中,画面字段标签为 HeaderText,对应本例的行项目文本,显示了从参考号派生的 SAGAR

FB70 行项目文本显示替代结果

这里仍应把 SAGAR 视为人工演示值。真实项目要验证多行凭证、税行、自动生成行、总账行与客户/供应商行,确保替代只作用于目标行。若条件依赖整张凭证或跨行汇总,应评估调用点 0003,但本集没有完成该配置。

十、方法三:用户出口

当常量和字段复制无法表达复杂逻辑时,可以选择 Exit,把目标字段交给自定义例程计算。课程举的概念例子是把凭证类型、凭证号、公司代码和会计年度连接成一个字符串。

在替代方法中选择 Exit

SAP 经典替代出口通常是 Uxyz 格式的 FORM 例程,例如 U100。出口所在 form pool 通过相应配置维护;SAP 官方资料指出可通过 GCX2/表 T80D 指定。课程只查看了系统中已有的 U100 代码,没有完成一个新的自定义出口,因此不能把本集理解为“用户出口已经开发并上线”。

课程查看已有的 U100 ABAP 例程

课堂把实现人员口述为管理员或 Basis,这里需要修正:

角色正确职责
FI/CO 功能顾问明确业务规则、调用点、前提条件、源字段、目标字段、示例与正反测试
ABAP 开发人员按设计实现和单元测试 FORM 例程,处理类型、长度、异常和性能
Basis/系统管理员负责传输、系统运行和权限等平台工作,不替代 ABAP 业务逻辑开发
业务与测试人员验证手工、接口、批处理、冲销和边界数据

用户出口应是复杂需求的最后手段。能用标准字段映射稳定完成的规则,不应为了“灵活”而增加代码和维护成本。

十一、上线前的设计与测试清单

检查项最低要求
业务目标说明为什么必须修改字段,以及修改后的业务含义
调用点明确使用抬头、行项目还是完整凭证
前提条件尽量限定公司代码、凭证类型、科目或业务来源,避免全局覆盖
替代方法常量、字段映射、出口三者中选择最简单且可审计的方法
步骤顺序写明每一步读取什么、写入什么,检查覆盖和连锁依赖
组织分配OBBH 核对每个公司代码、调用点和激活级别
正向测试条件成立时,目标字段按预期生成
反向测试条件不成立时,原字段保持不变
多行测试覆盖税行、自动行、客户/供应商行、总账行和多科目凭证
通道测试手工录入、接口、批输入、后台任务都要验证
最终凭证检查已过账凭证、冲销、审计追踪和下游报表,而不只看录入界面

在较新的 SAP S/4HANA 版本或不同部署版本中,还可能提供 Manage Substitution/Validation Rules 应用。是否可用取决于版本与业务范围;本集演示的是经典 GGB1 + OBBH 路径,两者不要混写成同一套界面步骤。

十二、本集完成边界

已完成或已说明本集没有完成
校验检查条件“真则通过、假则报错”的语义为参考号设计可投产的业务规则
销售订单、开票、释放到会计和取消开票的概念校正完整验证多个公司代码的生产部署
抬头常量替代以最终已过账凭证证明全部替代结果
抬头字段到字段替代及步骤顺序创建并交付新的自定义用户出口
行项目文本替代调用点 0003 的完整凭证/矩阵替代
用户出口的用途、职责分工和测试思路用户出口的代码实现与性能测试

SAP 官方资料

通过本集可以建立一个清晰判断:需要阻止错误输入时用校验;需要在明确条件下自动派生字段时用替代;只有标准替代方法不足时,才考虑由功能顾问设计、ABAP 开发实现的用户出口。

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
MCP自动发表文章
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

SAP S/4HANA FICO 入门 55FI 凭证替代调用用户出口
56. SAP S/4HANA FICOFI 验证、替代用户出口实战
SAP S/4HANA FICO 入门 54:FI 校验规则、GGB0 OB28
SAP S/4HANA FICO入门 35:财务凭证过账、显示行项目报表
SAP S/4HANA FICO 入门 43:扩展预扣税、供应商主数据缴税凭证
61. SAP S/4HANA FICO:销售税码自动确定 SD、MM、FI 集成
SAP S/4HANA FICO模块培训 36 - 凭证暂存批量过账设计
SAP S/4HANA FICO 入门 58:印度 GST 基础配置 Business Place
SAP S/4HANA FICO 入门 50:客户收款、未清项统驭科目
SAP S/4HANA FICO 入门 59:税务访问顺序、税码进项税测试
SAP S/4HANA FICO 入门 39:LSMW 续讲供应商业务伙伴配置
SAP S/4HANA FICO 入门 33:公司代码、SPRO 传输请求
SAP S/4HANA FICO 入门 51:训练系统刷新恢复检查
SAP S/4HANA FICO 入门 57:印度 GST 税务计算程序
SAP S/4HANA FICO 入门 60:GST 条件技术、Business Place 主数据
SAP S/4HANA FICO 入门 45:预提税排查、SAP Note 汇款 Challan
SAP S/4HANA MM模块培训 11 - 总账容差、凭证分割FI-MM集成科目
SAP S/4HANA FICO 入门 63:预扣税公式、FB60 测试 GST RCM
SAP S/4HANA FICO 入门 42:样本凭证、部分付款剩余项
SAP S/4HANA FICO 入门 34:留存收益、字段状态未清项管理