非公制單位到公制單位的轉換邏輯詳解及SAP測量單位的一些常識說明

非公制單位到公制單位的轉換邏輯詳解及SAP測量單位的一些常識說明

作者:袁雲飛(AlbertYuan)- 微信號yuanalbert

以下內容均爲原創,希望對初學者有一些輔助作用,本人主要從事MM/QM/WM的相關工作,不專業處請多多指點,十足乾貨,碼字不易,且行且珍惜,你們的關注就是我努力的動力,轉載請引用出處,感激不盡;

一般非公制單位到公制單位換算時會產生大量小數問題,SAP一般會利用特殊的換算方法來保存這種中間過程的計算方式而非僅僅存放一個換算結果,這樣的好處是可以減少累計誤差。

SAP在換算公式的設計上頗費工夫,一般按照換算結果爲5位小數的原則進行設計,所以如果我們中間加入一些單位,並且利用它換算到公制單位(也就是SI單位)的時候,超過了5位小數設計,系統一般會報錯。

一般錯誤爲:“message “Field overflow …” (BM398) or message V1384”

那麼SAP是如何來設計這種非公制單位到公制單位的換算公式的呢?

下表就能看出來,其實SAP是利用將計算的分之分母都設計合適的值來保存這樣的換算公式的,這樣當在計算的時候可以儘可能少的產生累積誤差:

在看懂這個表前,我們需要有些知識去了解SAP中的可測量單位的配置特點;
在這裏插入圖片描述
這裏有三個設置,分別是建立維度分類、ISO代碼、測量單位。

維度分類是爲了更好區分和管理各種類型的單位,例如,長度類,面積類,溫度類等,而且每個單位維度分類裏都會維護一個SI單位(“SYSTEME INTERNATIONAL” unit.)這個單位就是一個公制單位,那麼其他在這個維度中的單位的具體維護裏都會維護與這個SI單位的換算關係,所以說SI單位就是一個單位轉到到另一個單位的基礎。

後面的測量單位也根據不同的分類維度進行了維護。當然還包含了一個沒有任何維度的類。這種沒有維度的分類裏面的單位就是零散的,不需要設置與SI單位的轉換方式數據;當然也就談不上自動轉換了;

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在維度分類裏可以看到不但進行了分類,還爲每一個類設置了一個SI單位,這個單位就是這個單位分類中的標準單位,其也是一個ISO國標單位。

並且從上圖可以看出,每個維度分類裏都設置了這個維度對應在各個指標上的指數計算方式。

比如長度單位,其計算方式就是長度單位爲1。如果是米的話則爲1*101,如果是加速度,則如果是每秒多少米的單位就是,長度乘以上時間的開方。

在後面的測量單位裏,不同維度類裏其他的單位,不管是不是ISO單位,都需要設計一個和這個SI單位的轉換關係,以便系統能理解他們之間非公制到公制存在這樣一個轉換關係。
在這裏插入圖片描述
在單位中這個單位被自動標記出來。
在這裏插入圖片描述
從上面就能看出,SAP的轉換規則是被設計成一個分數的方式,這樣在運算前和運算中不會存在任何小數問題,避免了累積誤差,只有結果會按要求進行精度保留。

例如,1英寸=0.0254米。不過對於沒有被歸類到各種維度裏的單位,都會被歸類到非維度單位組,則裏面的單位的轉換關係就是1:1。

真實的SAP計算規則比這個複雜但原理都是這樣的,公式邏輯爲:

A * measurement unit = (A * N/D * 10**E + K) * SI unit

A = number of measurement units
N = numerator
D = denominator
E = exponent (only required in the case of very large or very small
numbers)
K = additive constant (only required for temperature conversions)

上面幾個字母就對應的是這幾個值:如果從一個SI的標準單位轉換到這個維度的其他單位系統就是用這個其他單位裏對標準單位的轉換因子進行計算。

比如物料的基本單位是MM毫米,但採購單位是M米。則在GR的時候系統就會做上面的轉,然後數量到庫存裏的單位就是轉換後的MM了。

這種維度中的各單位轉換是不用再物料主數據裏維護轉換關係的。如果單位裏沒有這種轉換關係或使用的是非維度類的單位,則必須在物料裏維護自定義的轉換關係。
在這裏插入圖片描述
下面就能看懂這個表了:

Length:長度
Exact conversion | SAP conversion
1 inch = 0,0254 Meter | 254/10000 = 0,0254
1 foot = 0,3048 Meter | 3048/10000 = 0,3048
1 yard = 0,9144 Meter | 9144/10000 = 0,9144
1 mile = 1,609344 Kilometer | 75438/46875 = 1,6093440000

Surface:表面積
Exact conversion | SAP conversion
1 square inch = 6,4516 Square centimeter| 16129/2500 = 6,4516
1 square foot = 0,09290304 Square meters| 7099/76413 = 0,0929030401
1 square yard = 0,83612736 Square meters| 70325/84108 = 0,8361273601

Volume:體積
Exact conversion | SAP conversion
1 minimum = 0,06161152 Milliliter | 4009/65069 = 0,616115201
1 cubic inch = 16,387064 Milliliter | 48391/2953 = 16,3870640027
1 cubic foot = 28,316846592 Liter | 94465/3336 = 28,3168465228
1 cubic yard = 0,764554857984 Cubicmeter| 41393/54140 = 0,7645548578
1 dry pint = 0,5506105 Liter | 46493/84439 = 0,5506104999
1 liquid pint = 0,473176473 Liter | 47038/99409 = 0,4731764730
1 gallon = 3,785411784 Liter | 92065/24321 = 3,7854117841

Weight:重量
Exact conversion | SAP conversion
1 avdp. ounce = 28,349523125 Grams | 32687/1153 = 28,3495229835
1 avdp. pound = 0,45359237 Kilograms | 24445/53892 = 0,4535923699
1 short ton = 0,90718474 Tons | 24445/26946 = 0,9071847399
1 long ton = 1,016046909 Tons | 61861/60884 = 1,0160469089

爲了避免舍入錯誤的出現,在多個單位可選的情況下,我們一般建議選擇最小的單位作爲基本單位,答案不言而喻。庫存管理上系統總是使用基本單位進行管理的,並且小數總是3位。

以上爲本章全部內容,希望對小夥伴們有所幫助;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章