SAP簇表(cluster table)BSEG使用方法

来源:互联网 发布:迪杰斯特拉算法 详解 编辑:程序博客网 时间:2024/05/17 23:38
1、BSEG可以拆分成6张表
BSAS+BSIS+BSAK+BSIK+BSAD+BSID = BSEG 
2、6张表说明
cleared(已清帐)opened(未清帐) BSASBSISGL documents  总账BSAKBSIKAP documents  供应商BSADBSIDAR documents  客户
3、表关系
BSEG主要通过“公司代码”、“凭证号”、“会计年度”、“行号”和这六张表关联。
BKPF 是财务凭证抬头,BSEG 是财务凭证行项目。在财务凭证记账的时候,数据被插入BKPF 和 BSEG,如果有必要,数据同时插入以上六张表中的一个未清表。

做清帐的时候,数据从六张表中的一个未清表删除,同时插入对应的已清表。一般情况下一笔业务产生的凭证都是未清的,那么:如果该业务行是客户相关的,则被记录到BSID;如果该业务行是供应商相关的,则被记录到BSIK;无论和客户相关还是和供应商相关,都是和总帐相关,所以也会有记录到BSIS;但是如果这笔业务被清帐了,则相应的记录会从BSI*转移到BSA*  

一般情况下:应收账款、预收账款、其他应收款、应收汇票等科目既和客户相关,又和未清项管理的总帐科目相关;应付账款、预付账款、其他应付款、应付汇票等科目既和供应商相关,又和未清项管理的总帐科目相关;
其他总帐科目一般不启用未清项管理,所以记录一般都放在BSIS中。  

4、BSEG特点: 
BSEG本身是一个 Cluster Table(簇表),BSEG就是由上述的六大表的集成,当要读取”BSEG”Table时就等于去读取那六个表,这样你可以想像它读起来会就多慢。对於簇表或Pool Table,都是SAP系统本身在使用的,因此簇表本身是不存在资料库实体的,虽然是可以在ABAP使用,不过还是有一些限制:
  • 不能使用select distinct or group by语法
  • 不能使用Native SQL
  • 不能使用specify field names after the order by  clause
  • 不能在建立次索引
  • 查询时一定要用KEY FIELD


拓展HANA平台数据库表设计思想:

HANA是列式的内存存储,所以取数的性能已经不是问题了,所以也不需要像传统ECC那样需要这么多表做缓存了,例如基于HANA平台开发的最新产品 Simple Finance就将财务相关的表大幅缩减只剩BKPF、BSEG了,为了传统代码能走新HANA平台运行,所有被砍掉的表都用同名的VIEW来替代了

原创粉丝点击