本文对SAP中物料单位的小数点位数、取整位数、显示位数做简要阐述。
1.1.1 物料单位的小数点的定义
如下图所示,事务代码CUNI设置物料的单位以及小数点,在图标1、图标2处可设置小数点。
图标1处:代表显示的位数
图标2处:代表取整位数
如下图所示,设置单位PC 的小数点(decimal places)为0位,即不带小数点,设置小数点取整位数(decimal places rounding)为0,代表将进行取整。
在下文中,将以单位PC为例,演示相应的效果。
1.2 场景说明
下文中,将创建一个物料ZMRP014,设置物料的基本单位为PC,然后查看物料的小数点对BOM、生产订单、采购订单、库存移动等不同应用的影响。
1.2.1 设置物料的单位为PC
设置物料ZMRP014的基本单位为PC
1.2.2 BOM维护
如下图所示,事务代码CS01创建产成品ZMTO的BOM,在该BOM中输入组件物料ZMRP014,输入每个产成品ZMTO需要ZMRP014的数量为1.111PC,系统中可以输入小数点,同时系统提示会进行“小数点问题”。
批量导入BOM的数据时,也可以导入小数点的数量。
1.2.3 生产订单维护
事务代码CO01创建产成品ZMTO的生产订单,数量分别为1个、10个、100个,查看原材料的需求数量,具体如下:
1.创建数量为1个的生产订单,根据上文刚刚维护的BOM系统带出来的组件数量为1.111,但由于单位中设置了取整,系统进行向上取整,取整的结果如下图所示,因此带出来的组件数量(ZMRP014)的数量为2个。
2.创建数量为10个的生产订单,按照BOM中的定义,系统确定需要组件11.11,向上取整后,如下图所示,组件(ZMRP014)的数量为12个
3.创建数量为100个的生产订单,按照BOM中的定义,系统确定需要组件111.1,向上取整后,如下图所示,组件(ZMRP014)的数量为112个.
4.手工修改组件(ZMRP014)的数量
如下图所示,修改数量为111.110,系统出现提示,回车后,即可输入小数点。
1.2.4 原材料采购影响
事务代码ME21N,创建物料ZMRP014的采购订单,输入采购数量11.11,系统自动确定出数量为11,当再次输入11.11,系统保持数量为11.11不变。
1.2.5 物料移动影响
事务代码MB1C对物料ZMRP014进行货物移动,输入数量10.110,即系统中支持货物移动时有小数点。
1.3 系统逻辑说明
1.3.1 数量的小数点长度控制
如下图所示,创建单位为PC的物料(ZMRP014)的采购订单,输入数量10.1111(四位小数点),系统将会提示不符合数字格式。
查看采购订单中的数量对应的字段为EKPO- MENGE,该字段的小数点长度仅为3位,因此无论单位如何设置,系统只允许输入3位。
1.3.2 单位的取整与显示
事务代码CUNI中设置单位的取整小数点和显示小数点,
本例中的物料ZMRP014的单位PC设置为不同的显示小数点和取整小数点下对BOM和生产订单有不同影响,具体影响如下表所示。
单位设置 | BOM影响 | 生产订单影响 | ||||
显示小数点 | 取整小数点 | BOM输入 | BOM显示 | 生产订单需要1个 | 生产订单需要10个 | 生产订单需要100个 |
0 | 0 | 1.111 | 1.111 | 2 | 12 | 112 |
0 | 0 | 1 | 1 | 1 | 10 | 100 |
0 | 2 | 1.111 | 1.111 | 1.120 | 11.110 | 111.100 |
0 | 2 | 1 | 1 | 1 | 10 | 100 |
2 | 2 | 10.111 | 10.111 | 1.12 | 11.12 | 111.1 |
2 | 2 | 10 | 10.00 | 1.00 | 10.00 | 100.00 |
1.3.3 小结
我们要区分三者之间的差异:
单位的小数点位数、单位的取整位数、单位的小数点显示,这三者是由不同的方式(字段)进行控制的。
1、数量的小数点位数
单据中的数量可以输入的小数点位数是由字段本身的属性确定的,如本例中在采购订单中的输入数量时,数量可输入的小数点位数时由数量对应的字段EKPO-MENGE中定义的小数点长度限制的,一般均为共十三位、其中三位为小数点。
2.单位的取整位数
事务代码CUNI中定义的单位的取整位数,总的逻辑是系统会自动进行取整,取整的方式是向上取整,系统取整后,可以手工输入更多位数的数量。
具体而言,取决于不同的应用,系统取整的方式不尽相同。
3、单位的小数点位数的显示
事务代码CUNI中定义的小数点位数,系统显示的长度取显示长度和输入长度中的更长位数的。具体而言,以在BOM中数量组件数量为例
输入1,当定义为显示小数点为0位,则显示1,当定义为显示小数点为2位,则显示1.00
输入1.111,当定义为显示小数点为0位,则显示1.111,当定义为显示小数点为2位,则显示1.111.