SAP中一个非常重要的底层表格:BSID(应收账款的未清项明细)。
1. BSID 表的核心定位与业务背景
BSID是BusinessShortIndex forDebtors 的缩写,中文通常翻译为“应收账款未清项索引”。
核心功能:它存储了所有未清项管理的客户应收账款明细。简单来说,只要一笔客户相关的交易(如发票、预收款、贷项凭证等)还没有被完全核销(清账),它就会在BSID表中有一条记录。
数据来源:当你在SAP中执行一笔与客户相关的过账(如
FB70创建发票、F-29预收账款、F-22预提费用等),并且该总账科目被设置为“未清项管理”时,系统就会自动在BSID中生成一条记录。数据去向:一旦这笔交易被完全清账(例如,用
F-32收款完全核销了一张发票),对应的BSID记录就会被删除,同时系统会在BSAD(已清项明细)表中生成一条已清账的记录。关联表:
BSAD:应收账款的已清项明细。结构与BSID几乎完全一样,但存放的是已清账的记录。
BSIK:应付账款的未清项明细(供应商)。
BSAK:应付账款的已清项明细(供应商)。
业务意义:BSID是SAP应收账款模块最核心的底层表之一。任何关于客户未清款项的查询、报表、开发,几乎都离不开它。它提供了最细粒度的客户账龄分析、付款追踪和余额计算的基础数据。
2. BSID 表关键字段详细解析
下面我们将BSID的字段分为几个逻辑组来理解:
组 1:核心标识字段
这些字段唯一地标识了一条未清项记录。
| 字段名 | 数据类型 | 长度 | 业务含义与说明 |
|---|---|---|---|
| CLIENT | CLNT | 3 | 客户端。SAP系统多客户端的隔离标识。 |
| BUKRS | CHAR | 4 | 公司代码。标识这笔应收款属于哪个公司实体。 |
| KUNNR | CHAR | 10 | 客户账号。这是最重要的字段之一,标识这笔应收款是哪个客户的。 |
| UMSKS | CHAR | 1 | 特别总账标识。用于区分不同类型的业务。 • 空值:标准应收账款 • A:预收款(定金)• W:汇票• 其他:根据自定义配置(如担保、保函等) |
| UMSKZ | CHAR | 1 | 特别总账交易的备选指标。与UMSKS配合使用,进一步细分业务类型。 |
| AUGDT | DATS | 8 | 清账日期。对于未清项,此字段为0000-00-00或空。一旦被清账,此字段会更新为实际的清账日期(记录会转移到BSAD)。 |
| AUGBL | CHAR | 10 | 清账凭证编号。标识是哪张会计凭证清掉了此未清项。对于未清项,此字段为空。 |
组 2:会计凭证关联字段
这些字段将此未清项与原始的会计凭证行项目关联起来。
| 字段名 | 数据类型 | 长度 | 业务含义与说明 |
|---|---|---|---|
| BELNR | CHAR | 10 | 会计凭证编号。这是产生此未清项的原始凭证编号(如发票凭证)。 |
| GJAHR | NUMC | 4 | 会计年度。会计凭证所在的财务年度。 |
| BUZEI | NUMC | 3 | 会计凭证行项目。标识这是原始凭证中的第几行。 |
注意:BELNR+GJAHR+BUZEI这三个字段共同构成了一个唯一键,可以连接到总账的行项目表(BSEG)。
组 3:金额与货币字段
这些字段记录了未清项的金额信息。
| 字段名 | 数据类型 | 长度 | 业务含义与说明 |
|---|---|---|---|
| DMBTR | CURR | 15(2) | 本位币金额。这笔未清项在公司代码本位币下的金额。对于发票是正数(借方),对于贷项凭证是负数(贷方)。 |
| WRBTR | CURR | 15(2) | 交易货币金额。这笔业务原始过账时使用的货币金额。 |
| WAERS | CUKY | 5 | 货币码。交易货币的代码(如CNY, USD, EUR)。 |
| PSWBT | CURR | 15(2) | 附加本位币金额。如果启用了平行会计,此字段存储另一个评估范围(如集团会计)下的本位币金额。 |
| PSWSL | CUKY | 5 | 附加货币码。对应PSWBT的货币码。 |
| SHKZG | CHAR | 1 | 借贷标识。 • S(Soll) = 借方• H(Haben) = 贷方这是理解金额正负的关键!系统存储的DMBTR/WRBTR永远是正数,通过SHKZG来判断是借还是贷。 |
| XBLNR | CHAR | 16 | 参考凭证编号。业务人员常用的参考号,例如销售发票编号(与会计凭证编号BELNR不同)。这个字段在业务查询中非常常用。 |
组 4:账龄与关键日期字段
这些字段用于账龄分析和付款控制。
| 字段名 | 数据类型 | 长度 | 业务含义与说明 |
|---|---|---|---|
| BLDAT | DATS | 8 | 凭证日期。原始会计凭证的填制日期。 |
| BUDAT | DATS | 8 | 过账日期。原始会计凭证在系统中过账的日期。 |
| CPUDT | DATS | 8 | 输入日期。凭证录入系统的日期。 |
| ZFBDT | DATS | 8 | 基准日期。这是计算账龄最关键的核心日期!系统默认用这个日期来计算到期日和账龄。通常是发票上的付款条款所确定的日期。 |
| ZTERM | CHAR | 4 | 付款条件。例如“ZT01”代表“30天内付款,2%折扣”。 |
| VERZN | NUMC | 3 | 延期月份。付款可以延期的月数。 |
| ZLSCH | CHAR | 1 | 付款方式。如T(转账)、C(支票)等。 |
| ZLSPR | CHAR | 1 | 付款冻结标识。标识此项目是否因某种原因被冻结付款。 |
| MADAT | DATS | 8 | 最后催款日期。记录上次对此未清项进行催款的日期。 |
3. 实际业务场景示例
假设公司代码1000向客户00010001销售货物,通过FB70开具了一张发票。
发票凭证:
1900000001(会计年度 2024)销售订单号:
INV-2024-001(会存储在XBLNR字段)金额:USD 1000.00 (公司代码本位币为CNY,假设汇率7.2,则本位币金额为7200.00 CNY)
付款条件:30天内付款(
ZT30)过账日期:2024.05.20
此时,在BSID表中会产生一条记录,关键字段如下:
| 字段 | 值 | 解释 |
|---|---|---|
| CLIENT | 100 | 客户端100 |
| BUKRS | 1000 | 公司代码1000 |
| KUNNR | 00010001 | 客户00010001 |
| UMSKS | (空) | 标准应收账款 |
| AUGDT | 0000-00-00 | 未清账 |
| AUGBL | (空) | 未清账 |
| BELNR | 1900000001 | 发票的会计凭证号 |
| GJAHR | 2024 | 会计年度2024 |
| BUZEI | 1 | 凭证的第一行 |
| DMBTR | 7200.00 | 本位币(CNY)金额 |
| WRBTR | 1000.00 | 交易货币(USD)金额 |
| WAERS | USD | 交易货币是美元 |
| SHKZG | S | 借方(因为是应收账款增加) |
| XBLNR | INV-2024-001 | 销售订单号 |
| BLDAT | 2024-05-20 | 凭证日期 |
| BUDAT | 2024-05-20 | 过账日期 |
| ZFBDT | 2024-06-19 | 基准日期(基于过账日期+30天计算) |
| ZTERM | ZT30 | 付款条件 |
后续操作:
客户在2024年6月10日通过F-32支付了全部款项1000 USD。
系统会找到BSID中这张发票的记录。
将该记录从BSID表删除。
在BSAD表中创建一条完全相同的记录,但会更新
AUGDT(清账日期)=2024-06-10和AUGBL(清账凭证号)=1900000002(收款凭证号)。
4. 常见应用与注意事项
报表开发:编写ABAP程序或使用Query工具提取客户未清项明细,用于账龄分析、对账单、催款清单等。
数据查询:直接使用
SE16N等工具查询BSID,可以快速定位某张发票是否已付款,或者某个客户还有哪些未结款项。接口与增强:在与外部系统(如CRM、资金系统)集成时,常会读取BSID表获取最新的应收账款状态。
关键点:
永远不要直接修改BSID表!它是系统自动维护的索引表,所有数据变动都应通过标准的财务会计事务码(如FB70, F-32, F-44等)来完成。
理解未清项管理的概念是理解BSID/BSAD的前提。
在关联查询时,务必使用
CLIENT,BUKRS,KUNNR,BELNR,GJAHR,BUZEI等关键字段,以确保数据的准确性。