4. 业务伙伴创建与维护流程
业务伙伴(Business Partner,简称 BP)在 SAP S/4HANA 中并不是一张“客户表”或“供应商表”,而是一个统一的主数据对象。客户、供应商、联系人等角色都挂接在同一个 BP 编号之下。理解这一点,是理解创建与维护流程的前提:我们维护的不是某个角色的孤立记录,而是“一个业务伙伴 + 若干角色 + 若干组织层级数据”的组合。本节围绕手工创建、集中维护、组织架构分配、时间相关数据以及保存逻辑展开,重点说明数据在保存时究竟发生了什么。
一、手工创建:从通用数据到角色数据
手工创建通常通过事务码 BP 进入维护界面。界面左侧是导航树,右侧是明细区域。创建时首先确定的是业务伙伴类别(如“组织”“自然人”“分组”),它决定了编号范围和字段布局。随后进入通用数据层,包括名称、地址、通信方式(电话、邮件)、税号等。这些数据与角色无关,无论该 BP 后续被用作客户还是供应商,都共享同一份通用数据。
通用数据维护完成后,需要为 BP 分配角色。角色决定了该 BP 能参与哪些业务流程:分配“客户(FI 客户/CRM 客户)”角色后,才能维护公司代码层、销售区域层数据;分配“供应商”角色后,才能维护采购组织层数据。一个 BP 可以同时拥有多个角色,这正是 S/4HANA 统一主数据的价值所在——同一家公司既是客户又是供应商时,只需一个 BP 编号。
二、集中维护:多层级数据的组织方式
BP 的数据按层级组织,越往下越具体。以客户角色为例,典型层级为:通用数据 → 公司代码层 → 销售区域层。公司代码层维护对账科目、付款条件、催款程序等财务相关字段;销售区域层维护销售组织、分销渠道、产品组相关的定价、装运、开票字段。供应商角色类似:通用数据 → 公司代码层 → 采购组织层。
集中维护的含义是:在同一个 BP 界面内,通过导航树切换不同层级,一次性完成所有必要数据的录入,而不需要在多个事务码之间跳转。这种集中式维护减少了数据割裂,但也要求维护人员清楚每个字段属于哪一层——因为层级决定了字段的作用范围。例如付款条件若维护在公司代码层,则该公司代码下所有销售区域共享;若某销售区域需要特殊付款条件,则需在更细层级覆盖。
三、组织架构分配:决定数据生效范围
组织架构分配是 BP 维护中最容易出错的部分。一个 BP 的客户角色数据,只有在分配了具体的公司代码、销售组织、分销渠道、产品组之后,才会在对应的业务场景中生效。换句话说,组织架构分配定义了“这条数据对谁可见、在哪个流程中可用”。
举例说明:某 BP 分配了客户角色,公司代码填 1000,销售区域填销售组织 1010 / 分销渠道 01 / 产品组 00。那么当销售订单使用销售组织 1010、渠道 01、产品组 00 时,系统才能找到该客户的销售区域数据。如果订单使用销售组织 1020,而该 BP 未维护 1020 的销售区域数据,则订单可能报错或取不到定价、装运条件。因此,组织架构分配不是“填了就行”,而是要与实际业务范围匹配。
四、时间相关数据:有效期控制
BP 的许多数据具有时间相关性,尤其是组织架构分配和某些角色数据。系统通过“起始日期”和“结束日期”来管理有效期。默认情况下,新建数据的起始日期为当天,结束日期为 9999-12-31,表示长期有效。当业务需要变更时,有两种处理方式:
- 直接修改:适用于纠错场景,直接覆盖原值,不保留历史。
- 时间切片新增:适用于正常变更,例如付款条件从 2025-01-01 起由 NT30 改为 NT45。此时系统会保留旧记录(结束日期 2024-12-31),并新增一条从 2025-01-01 生效的记录。这样在 2024 年的凭证仍能追溯到当时的付款条件。
时间相关数据的关键判断依据是:该字段是否影响历史凭证的追溯。影响追溯的字段(如付款条件、对账科目)建议用时间切片;纯描述性字段(如备注)可直接修改。维护时要注意日期区间不能重叠,否则系统会报错。
五、保存逻辑:校验、编号与变更凭证
点击保存按钮后,系统并非简单写入数据库,而是执行一系列动作。首先是校验:必填字段是否完整、组织架构分配是否有效、日期区间是否冲突、税号格式是否正确等。校验不通过时,系统会在界面底部列出错误消息,并阻止保存。
校验通过后进入编号分配。BP 编号可以外部给号(手工输入),也可以内部给号(系统按编号范围自动生成)。编号范围在配置中定义,通常按 BP 类别区分。内部给号时,系统从当前编号范围取下一个可用号,并确保唯一性。
最后是写入与变更记录。系统将数据写入 BP 相关底表,同时在变更凭证表(CDHDR 抬头、CDPOS 行项目)中记录本次操作:谁、何时、修改了哪个字段、旧值和新值分别是什么。这意味着任何 BP 变更都可追溯。对于审计和合规要求较高的企业,变更凭证是重要的核查依据。
六、一个完整的维护示例
假设需要为“示例科技有限公司”创建一个既是客户又是供应商的 BP,客户数据在公司代码 1000、销售组织 1010 / 渠道 01 / 产品组 00 下生效,供应商数据在采购组织 2000 下生效,付款条件自 2025-01-01 起生效。操作路径如下:
- 事务码 BP,选择“组织”类别,输入名称、地址、税号,保存通用数据。
- 分配角色“客户”和“供应商”。
- 客户角色下维护公司代码 1000 的对账科目、付款条件;再维护销售区域 1010/01/00 的定价和装运条件。
- 供应商角色下维护公司代码 1000 和采购组织 2000 的采购数据。
- 对付款条件字段使用时间切片,起始日期 2025-01-01,结束日期 9999-12-31。
- 保存,观察底部消息“业务伙伴已保存”,并记录系统分配的 BP 编号。
保存后可通过 BP 界面的“显示”模式或变更凭证报表(如 CDHDR/CDPOS 查询)验证数据是否正确落库。若后续需要修改,建议先以显示模式确认当前有效期,再决定是直接修改还是新增时间切片。掌握这套流程后,BP 的创建与维护就不再是零散字段的堆砌,而是一条从通用数据到组织架构、再到时间维度的完整数据链。