SAP B1 学习笔记 - 易混淆字段名(持续更新中)
背景
在 SAP B1 的单据中,由于同一单据时常对应着多个后台表单,且后台表单内包含的字段信息往往远大于单据显示出来的,在配置时经常出现多个字段混淆、无系统信息提示字段名模糊的情况,这里总结常见的易混淆难查找的后台字段名。
字段名查询方法
1)系统信息显示
打开【查看】下的【系统信息】,将鼠标停放在需要查询的字段上,即可查看表单内大部分字段的后台【表名】、【列名】以及【选中字段内容】:
2)查询向导
需要查询的表单,可以在此输入其英文缩写名称,按【Tab】键,会返回该表单所有列的列名(单据字段仅能显示表单内的部分列,若有被隐藏不显示的列,在此处查找才能获得完整版)。
如下图,点击鼠标右键,点击【复制表】,可将该表所有列名复制去 Excel。在 Excel 内可以实现一键查找。
模块
1. 营销单据金额
1.1 相关概念
博主通过查看单据是否显示【营销单据】下新建的用户定义字段来判断单据是否属于营销单据,查出以下 18 个单据:
- 销售:销售报价单;销售订单;交货;退货请求;退货;预售款申请;应付发票;营收贷项凭证;应收预留发票
- 采购:采购申请;采购报价单;采购订单;采购收货单;采购退货单;采购退货请求;采购退货;预付款申请;应付发票;应付预留发票
故,其后所列举的字段名称适用于以上所有单据。
先补充一些概念:
- 本币:本币是公司向当地税务部门报税时使用的国家货币。
- 外币:相对于本币有汇率的其他货币,如本币设定为人民币时,欧元、美元、港币均为外币。
- 系统货币:系统基于国家货币自动确定的货币。
- 业务伙伴货币:与您签订协议的业务伙伴的货币。
其中,【业务伙伴货币】在业务伙伴使用外币时可选,从内容上相当于【外币】,而【业务伙伴货币】特指该业务伙伴所使用外币,而【外币】为统称且需要用于统一管理所有种类外币汇率。
在系统列名中,使用 本币、外币、系统货币 进行区分,如下图。在使用过程中,系统货币 使用频率相对于 本币、外币 较低。
1.2 字段名
由于营销单据的常规部分和【内容选项卡】分别对应后台单据的一张主表和一张子表,且命名方式均为 OXYZ 和 XYZ1( 详见《SAP B1 常用表单的 中英文名称&路径》),这里分主表内的金额信息和子表内的金额信息进行总结。
1)主表(OXYZ)
单据总金额 - 含税含折扣 | 折后单据总税额 | 单据折扣金额 | |
本币 | DocTotal | VatSum | DiscSum |
外币 | DocTotalFC | VatSumFC | DiscSumFC |
系统货币 | DocTotalSy | VatSumSy | DiscSumSy |
示例
注意图中数据对应
2)子表(XYZ1)
单价 | 折后单价 | 单价- 含税不含折扣 | 行总计- 不含税含折扣 | 折后行税额 | 行总计- 含税不含折扣 | |
本币 | PriceBefDi | Price | PriceAfVAT | LineTotal | VatSum | GTotal |
外币 | TotalFrgn | VatSumFrgn | GTotalFC | |||
系统货币 | TotalSumSy | VatSumSy | GTotalSC |
其中 PriceBefDi、Price、PriceAfVAT 仅有本币类型,如使用外币,则会根据过账日期汇率自动转化为本币金额,下一小节 1.3 部分会举例。
示例
注意图中数据对应
补充:单据折扣和行折扣
折扣:输入数为百分率。单据折扣得到的结果是因折扣减去的金额,而不是最终金额。
两种折扣互不影响,对于最终结果有叠加效果。虽然字段名一致,但是 OXYZ.VatSum 和 XYZ1.VatSum 代表的内容并不一致。子表物料若为多行,XYZ1.VatSum 会按比例分配最终实际结果,即 OXYZ.VatSum,下一小节 1.3 部分会举例。
1.3 进阶示例
以下总结三个测试案例,分为 简单案例、复杂案例、外币案例。如下图,例图中均是从同一单据中通过 SQL 抽出主表和子表的表格内金额数据,均为本币类型。
便于对应,再次列出字段名对应信息。
主表(OXYZ):
单据总金额 - 含税含折扣 | 折后单据总税额 | 单据折扣金额 |
DocTotal | VatSum | DiscSum |
子表(XYZ1):
单价 | 折后单价 | 单价 - 含税含折扣 | 行总计 - 不含税含折扣 | 折后行税额 | 行总计 - 含税不含折扣 |
PriceBefDi | Price | PriceAfVAT | LineTotal | VatSum | GTotal |
1)简单案例
设置:
- 物料种类为 1 种,数量为 2
- 无行折扣,单据折扣为 10%
- 税为销项税 17%
2)复杂案例
设置:
- 物料种类为 2 种,数量均为 1
- 物料1 无行折扣,物料2 行折扣为 10%,单据折扣为 10%
- 税为销项税 17%
3)外币案例
1.4 公式总结
由 1.3 小节案例,逐步总结各字段之间的关系公式如下:
PriceBefDi - 物料信息自带
Price = PriceBefDi * XYZ1.DiscPrcnt(行折扣率)
XYZ1.VatSum = Price * OXYZ.DiscPrcnt(单据折扣率) * 税率
OXYZ.VatSum = (SUM(LineTotal) - DiscSum) * 税率
= SUM(LineTotal) * (1 - OXYZ.DiscPrcnt) * 税率
= SUM(XYZ1.VatSum)
GTotal = PriceBefDi * (1 + 税率)
PriceAfVAT = GTotal / Quantity(行个数)
LineTotal = Price * Quantity(行个数)
DiscSum = SUM(LineTotal) * OXYZ.DiscPrcnt(单据折扣率)
DocTotal = SUM(LineTotal) - DiscSum - OXYZ.VatSum
= (SUM(LineTotal) - DiscSum) * (1 - 税率)
= SUM(LineTotal) * (1 - OXYZ.DiscPrcnt) * (1 - 税率)
由此可见,其中 DocTotal、VatSum、DiscSum 为单据金额使用信息;PriceBefDi 为物料金额使用信息;Price、LineTotal 为单据金额计算过程信息;PriceAfVAT、GTotal 为单据金额概念信息。
--------------
(to be continued)