SAP ABAP์์ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋ ๋ํ๋๋ ์ต์ ์ค ํ๋๊ฐ ๋ฐ๋ก Fixed Point Arithmetic์ด๋ค. ๋๋ถ๋ถ ์ด ์ต์ ์ ๋ํด ๊น์ด ์๊ฐํ์ง ์๊ณ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์๊ณ ๋์ด๊ฐ์ง๋ง, ์ค์ ๋ก๋ ๊ธ์ก ๊ณ์ฐ, ์์์ ์ฒ๋ฆฌ ๋ฑ ํต์ฌ ๋ก์ง์ ํฐ ์ํฅ์ ์ฃผ๋ ์ค์ ์ด๋ค. ์ด ์ค์ ์ด ์ ์กด์ฌํ๋์ง, ์ฒดํฌ๋ฅผ ์ ํ ๊ฒฝ์ฐ ์ด๋ค ํ์์ด ์ผ์ด๋๋์ง ์ด๋ฒ ํฌ์คํ ์์ ์์๋ณด๋๋ก ํ์.
1. Fixed Point Arithmetic์ด๋?
Fixed Point Arithmetic์ ABAP ํ๋ก๊ทธ๋จ์์ ์์์ ์๋ฆฟ์๋ฅผ ๊ณ ๋ คํ ๊ณ์ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋๋ก ์ง์ ํ๋ ์ค์ ์ด๋ค. ์ด ์ต์ ์ด ํ์ฑํ(์ฒดํฌ) ๋์ด ์์ผ๋ฉด, TYPE P, DEC, CURR, QUAN๊ณผ ๊ฐ์ ์์์ ์ ๊ฐ์ง๋ ์ซ์ ํ์ ์ด ์ค์ ์ฐ์ฐ์์๋ ์์์ ๊น์ง ํฌํจํ์ฌ ์ ํํ๊ฒ ๊ณ์ฐ๋๋ค.
๋ฐ๋๋ก ์ด ์ต์ ์ ๋นํ์ฑํ(๋ฏธ์ฒดํฌ) ํ๋ฉด, ํด๋น ์ซ์๋ค์ ๋ด๋ถ์ ์ ์ ํํ๊ฐ๋ง ์ฌ์ฉ๋์ด ๊ณ์ฐ๋๋ฉฐ, ์์์ ์ ๋ฌด์๋๋ค.

โ
์ฒดํฌํ๋ฉด → ์ค์ ๊ณ์ฐ
โ ์ฒดํฌํ์ง ์์ผ๋ฉด → ์ ์์ฒ๋ผ ๊ณ์ฐ
2. ์์ : ๊ฒฐ๊ณผ๊ฐ ์ ์ด์ํ๊ฒ ๋์ฌ๊น?

โ
Fixed Point Arithmetic ์ฒดํฌ ์
๊ณ์ฐ: 10.50 / 2.00 = 5.25
์ถ๋ ฅ: 5.25
โ ์ฒดํฌํ์ง ์์์ ์
val1 = 10.50 → ๋ด๋ถ ์ ์ ๊ฐ = 1050
val2 = 2.00 → ๋ด๋ถ ์ ์ ๊ฐ = 200
๊ณ์ฐ: 1050 / 200 = 5.25
BUT! ์ ์ ์ฐ์ฐ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ ์ค๊ฐ ๊ฒฐ๊ณผ๋ ์ ์ 5
result๋ DECIMALS 2 → 5 → 0.05๋ก ์ถ๋ ฅ๋จ
โ ์ฆ, ๊ธฐ๋ํ ๊ฒฐ๊ณผ 5.25 ๋์ 0.05๋ผ๋ ์๋ฑํ ๊ฐ์ด ๋์จ๋ค.
3. ์ ์ด๋ฐ ์ค์ ์ด ์กด์ฌํ ๊น?
1) ๊ณผ๊ฑฐ ์์คํ ์ ํ์ ํธํ์ฑ์ ์ํด
์ด๊ธฐ SAP ์์คํ ์ ํ๋์จ์ด๋ ์ฑ๋ฅ์์ ์ด์ ๋ก ์ ์ ๊ธฐ๋ฐ ๊ณ์ฐ์ด ์ผ๋ฐ์ ์ด์๋ค. ๋น์์๋ ๋ถ๋ ์์์ ์ฐ์ฐ์ด ๋นํจ์จ์ ์ด์๊ณ , ๋๋ถ๋ถ์ ๋น์ฆ๋์ค ๊ณ์ฐ์ ์ ์ ๋จ์๋ก๋ ์ถฉ๋ถํ๋ค. ์ด ์ต์ ์ ๊ทธ๋ฌํ ๋ ๊ฑฐ์ ์ฝ๋์์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํ ์ค์ ์ด๋ค.
2) ํผํฌ๋จผ์ค ๊ณ ๋ ค
์ ์ ๊ณ์ฐ์ ๋ถ๋ ์์์ ๊ณ์ฐ๋ณด๋ค ๋น ๋ฅด๊ณ ๊ฐ๋ณ๋ค. ๋๋์ ๊ณ์ฐ์ ์ฒ๋ฆฌํ ๋๋ ์ ์ ์ฐ์ฐ์ด CPU ๋ถ๋ด์ ์ค์ด๋ ๋ฐ ์ ๋ฆฌํ๋ค. ๊ทธ๋์ ์ด๊ธฐ์๋ ์ ์ ๊ธฐ๋ฐ์ ๊ณ์ฐ์ด ๊ธฐ๋ณธ๊ฐ์ด์๋ ๊ฒ์ด๋ค.
3) ๊ฐ๋ฐ์ ์๋๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด
๊ธ์ก ๊ณ์ฐ ๋ฑ์์ ์ ํ๋๊ฐ ์ค์ํ ๊ฒฝ์ฐ์๋ง ์์์ ๊ณ์ฐ์ ๋ช ์์ ์ผ๋ก ํ์ฉํ๋๋ก ํด์, ๊ฐ๋ฐ์์ ์๋๋ฅผ ์ฝ๋๋ก ๋๋ฌ๋ด๋ ์ฒ ํ์ด ๋ฐ์๋ ์ค์ ์ด๋ค. ๋ฌด์กฐ๊ฑด ์์์ ๊ณ์ฐ์ด ๋๋ ๊ฒ์ด ์คํ๋ ค ์๋์น ์์ ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์๋ ์๊ธฐ ๋๋ฌธ์, ๋ช ์์ ์ค์ ์ด ํ์ํ๋ค.
๐ก์ ๋ฆฌํด ๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฆฌํ ์ ์๊ฒ ๋ค.
| ํญ๋ชฉ | ์ค๋ช |
| ๊ธฐ์ ์ ์ด์ | ์ด๊ธฐ ABAP์ ๋ฉ๋ชจ๋ฆฌ·์๋ ์ ์ฝ์ด ์ปธ๊ณ , ์์์ ๊ณ์ฐ์ ๋ฌด๊ฒ๊ณ ๋๋ ธ์ |
| ์ค๊ณ ์ฒ ํ | ๊ฐ๋ฐ์๊ฐ ์๋๋ฅผ ๋ช ํํ ๋๋ฌ๋ด๋ ๋ฐฉ์ → ๋ช ์์ ์ผ๋ก "์ ํํ ๊ณ์ฐ์ด ํ์ํ๋ค"๋ผ๊ณ ์ ์ธ |
| ERP ์ ๋ฐ ๊ณ ๋ ค | SAP๋ ํ๊ณ๋ง ๋ค๋ฃจ์ง ์์ผ๋ฉฐ, ์ ์ ๊ณ์ฐ์ด ์ฃผ๊ฐ ๋๋ ๋ชจ๋๋ ๋ง์์ |
| ์ญ์ฌ์ ๋งฅ๋ฝ | 1980~90๋ ๋ ๋ฉ์ธํ๋ ์ ๊ธฐ๋ฐ ํ๊ฒฝ์ ํ๊ณ ๋ฐ์ |
4. ์ธ์ ๊ผญ ์ฒดํฌํด์ผ ํ ๊น?
| ์ํฉ | Fixed Point Arithmetic ์ฒดํฌ ์ฌ๋ถ |
| ๊ธ์ก ๊ณ์ฐ (์: ๋จ๊ฐ × ์๋) | โ ๋ฐ๋์ ์ฒดํฌ |
| ๋น์จ, ํผ์ผํธ ๊ณ์ฐ | โ ๋ฐ๋์ ์ฒดํฌ |
| ๋จ์ํ ์กฐ๊ฑด ๋น๊ต๋ ์นด์ดํธ | โ ์ ํ ์ฌํญ |
SAP๋ ํ๊ณ ์ค์ฌ ERP์ง๋ง, ABAP ์ธ์ด์ ๊ธฐ์ ์ ์ถ๋ฐ์ ์ ์ฑ๋ฅ๊ณผ ์ ์ฐ์ฑ์ด์๋ค. ๊ทธ๋์ Fixed Point Arithmetic์ “๊ธ์ก ๊ณ์ฐ์ด ํ์ํ ๋๋ง ๋ช ์์ ์ผ๋ก ์ฌ์ฉํ๋ผ”๋ ๊ตฌ์กฐ๋ก ์ค๊ณ๋์๊ณ , ์ค๋๋ ์๋ ๊ธ์ก ์ฐ์ฐ์ด ์ผ๋ฐํ๋์๊ธฐ์, ์ฌ์ค์ ํ์๋ก ๋ณด๋ ๊ฒ์ด ๋ง๋ค.
์ง๊ธ์ ํ๋์จ์ด ์ฌํญ์ด ๋ง์ด ์ข์์ก๊ธฐ ๋๋ฌธ์ ๊ณผ๊ฑฐ์ฒ๋ผ ์์์ ๊ณ์ฐ์ผ๋ก ์ธํ ๋ฉ๋ชจ๋ฆฌ·์๋ ์ ์ฝ์ด ์์ผ๋ฏ๋ก ๊ณ ๋ฏผ์์ด ํธํ ์ฒดํฌํ๊ณ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค.
ํน์ ๊ธฐ์กด ๋ ๊ฑฐ์ ์คํ ๋ค๋ ํ๋ก๊ทธ๋จ์ Enhancement ์ถ๊ฐ ์ ( user-exit routine, VOFM routine(SD), enhancement source code in ๋ฑ ) ๊ธ์ก ๊ณ์ฐํ ๋ ์์์น ๋ชปํ ๊ฐ์ด ๋์จ๋ค๋ฉด Fixed Point Arithmetic ์ค์ ์ฌํญ์ ํ๋ฒ ์์ฌํด ๋ณด๋๋ก ํ์.