关于BSEG表

BSEG和其他六个表关系:

今天在编写一个程序,发现直接从簇表BSEG里抓取数据,非常费时,不如搞清楚科目的特性,然后从其他表中抓取。

BSEG里两个字段SAKNR,HKONT的区别
    SE11
里的解释是
    SAKNR: G/L account number.
    HKONT:General ledger account

HKONT里放的是凭证真实的总帐科目,SAKNR放的是供应商或客户的统驭科目.
    
如果某凭证行项目不是统驭科目,SAKNR是空的,如果你输入正常的统驭科目凭证,这两个字段是相同的,但当你输入特殊总帐凭证时,SAKNR里存的是统驭科目,HKONT放的是特殊总帐科目

BSAS+BSIS+BSAK+BSIK+BSAD+BSID = BSEG

BSAS │ BSIS ==>all GL documents总账

BSAK │ BSIK ==>all AP documents 供应商

BSAD │ BSID ==>all AR documents 客户

 

具体得关系,我还是搞不太清楚   以下为引用,终于搞明白了!

BKPF 是财务凭证抬头,

BSEG 是财务凭证行项目。在财务凭证记账的时候,数据被插入 BKPF BSEG,如果有必要,数据同时插入以上六张表中的一个未清表。做清帐的时候,数据从六张表中的一个未清表删除,同时插入对应的已清表。 BSEG 使用BUKRS ( Company code )BELNR ( Document No )GJAHR ( Fiscal Year )BUZEI (Line Item )字段与其它表关联.

BSAD:应收明细(已清帐)
    BSID
:应收明细(未清帐)
    BSAS
:总帐明细(已清帐)
    BSIS
:总帐明细(未清帐)
    BSAK
:应付明细(已清帐)
    BSIK
:应付明细(未清帐)

BSEG主要通过凭证号”“会计年度”“行号和这六张表关联
一般情况下一笔业务产生的凭证都是未清的,那么:如果该业务行是客户相关的,则被记录到BSID
如果该业务行是供应商相关的,则被记录到BSIK
无论和客户相关还是和供应商相关,都是和总帐相关,所以也会有记录到BSIS
但是如果这笔业务被清帐了,则相应的记录会从BSIS转移到BSAS

一般情况下:应收账款、预收账款、其他应收款、应收汇票等科目既和客户相关,又和未清项管理的总帐科目相关;
应付账款、预付账款、其他应付款、应付汇票等科目既和供应商相关,又和未清项管理的总帐科目相关;
其他总帐科目一般不启用未清项管理,所以记录一般都放在BSIS中。
BSEG
本身是一个 Cluster Table(簇表)BSEG就是由上述的六大表的集成,当要读取”BSEG”Table时就等于去读取那六个表,这样你可以想像它读起来会就多慢。对於簇表或Pool Table,都是SAP系统本身在使用的,因此簇表本身是不存在资料库实体的,虽然是可以在ABAP使用,不过还是有一些限制:

1.不能使用select distinct or group by语法

2.不能使用Native SQL

3.不能使用specify field names after the order by clause

4.不能在建立次索引

5.查询时一定要用KEY FIELD

你可能感兴趣的:(关于BSEG表)