ABAP 数据字典中的参考表和参考字段是干什么的

本文深入探讨了SAP中QUAN和CURR类型字段的单位指定方式,通过参考表和参考字段确保商业数字的准确性,避免数字被误读,详细讲解了数据库表和结构中单位的三种定义方式。

大家最初在 SE11 中创建表和结构的时候都会遇到一个问题,如果设定了某个字段为 QUAN 或者 CURR 类型,也就是数量或金额的时候,总会要求输入一个参考表和参考字段,它是做什么用的呢?

这要从数字的本质说起,大家都知道一句话“数字会说话”,但是,商业数字不是代数,一个没有没有单位的商业数字,是不会说话的,就算说,也是瞎话。比如大家都看过的贺岁片《非诚勿扰》,葛优和范伟对那个伟大的划时代发明“分歧终端机”刚达成了200万的协议,马上就冒出来美元和英镑的分歧——数字是会被误读的。

SAP 可不会让这样的事情发生,对于数量和金额,SAP 要求必须指定单位,这个单位就是由参考表和参考字段来指定的。这样,在运行时,ABAP 运行时环境就可以准确获得这个数字的单位,从而确保谁看到这个数字都不会夸大或缩小。

知道了为什么,接下来就是解释怎么做。

对于数据库表来说:

1、参考表是当前表的情况最好解释,某条记录中的数量的单位就是它的参考字段所包含的值,比如 MARA 等主数据表里就是这样;

2、如果参考表是另外一个表,则原则上当前表中应该有一个字段将参考表做为外键表来使用,这样,某条记录中的数量的单位就是该记录的外键字段的值在参考表中对应的参考字段的值,比如 T031 这个表就是这样;

3、最不可理解的是字段的参考表也不是外键表,我完全不明白它的数值怎么跟单位对应起来,也许是程序控制?这需要 SAP 解释了。这样的例子也有很多,比如 STPO。

对于结构来说:

情况与上面类似,但是更多都是第三种无法解释的定义。

### SAP 中 SE11 的 Database View 功能与用途 #### 什么是 SE11 中的 Database View? 在 SAP 系统中,SE11 是用于管理 ABAP 字典对象的一个事务码。其中,“Database View”是一种基于一个或多个数据库表构建的虚拟表结构[^2]。它的主要作用是提供一种简化的方式,使开发者能够通过逻辑视图访问底层物理表中的数据。 #### Database View 的功能 Database View 提供了一种机制,可以在不修改原始数据库表的情况下,定义特定的数据集字段集合。以下是其核心功能: - **多表联合查询**:可以通过定义连接条件(Join Conditions),将两个或更多个表组合在一起形成一个新的逻辑视图。 - **字段筛选**:可以选择性地展示某些字段,而隐藏其他不需要的字段,从而减少不必要的数据暴露[^1]。 - **权限控制**:由于 Database View 只是一个逻辑层上的抽象表示,因此可以用来限制用户的访问范围,仅允许他们看到经过过滤后的数据[^1]。 #### Database View 的用途 Database View 在实际应用中有以下几个典型场景: - **简单跨表查询**:当需要从不同表格获取少量信息时,可以直接利用 Database View 实现基本联接操作而不必编写复杂的 SQL 查询语句。 - **报表生成支持**:作为前端应用程序或者报告工具的数据源之一,帮助快速搭建基础数据分析框架[^2]。 - **提高开发效率**:预先配置好常用的数据提取模式后,在后续项目实施过程中便能重复调用这些预设好的 views ,节省时间成本同时降低错误率。 尽管如此,需要注意的是,对于涉及复杂业务逻辑处理的情况,则可能更适合采用 CDS (Core Data Services) Views 或者直接编码实现更灵活的功能扩展[^1]。 ```sql -- 示例:创建一个多表关联的 Database View CREATE VIEW ZMMV001 AS SELECT A~MATNR, A~WERKS, B~MAKTX FROM MARA AS A INNER JOIN MAKT AS B ON A.MATNR = B.MATNR; ``` 此段代码展示了如何在一个名为 `ZMMV001` 的新 view 中选取物料编号 (`MATNR`)、工厂代码(`WERKS`)以及描述文字(`MAKTX`)三个字段,并且规定这两个表之间存在主键外键关系即材料号相匹配的前提条件下才显示记录项[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值