SAP的多幣種功能風傳是其一大賣點。SAP屠夫寫過若干關於匯率的文章,可惜不是做財務的,看不太懂,下文僅列出我所遇到的關於MM和SD模組的匯率問題。
1、我能想到的幾種Currency:
local currency, company code currency, account currency, price currency, document currency, posting currency, group currency, parallel currency等等。不甚了了。
2、匯率就是不同幣種的轉換關係。業務模組涉及到幣種及匯率的地方有:定價時的定價貨幣、單據中的單據貨幣、財務記賬用的記賬貨幣、公司設定的本位幣等。他們的關係如下:
- 定價時:定價貨幣到單據貨幣的轉換;
- 過賬時:單據貨幣到本位幣的轉換;
- 收付時:付款貨幣到本位幣的轉換;
3、極端的情況下,可能會有這樣的業務情景:銷售或採購業務以美元定價,訂單以歐元簽訂,財務記賬用本位幣英鎊,付款用人民幣。那每兩步都要用到外幣匯率轉換。
4、不同幣種之間的轉換有多種類型,比如買入匯率、賣出匯率、中間匯率等,
SAP
將之定義成匯率類型。匯率類型用
OB07
維護。
SAP
中MM和SD模組涉及到的匯率類型主要有:
- 歐元區內用的匯率類型
EURO
;
- 歐元區內與歐元區外用的匯率類型
EURX
;
-
其他常規公司使用的平均類型
M
;
5、M類型是財務記賬用的類型。除非在OBBS中設定了替代類型,前文描述的各種貨幣之間的轉換都按M讀取匯率值。匯率值存在表TCURR中,用OB08維護。
6、SAP
在
SD
的設計中,允許使用者在客戶主要資料中維護匯率類型,路徑是
Sales Area Data à Sales à Exch. Rate Type
,欄位是
KNVV-KURST
。針對次客戶的訂單及後續開票都將按照人工維護的匯率類型去讀取匯率。如果改欄位沒有被維護,系統將使用匯率類型
M
,標準程式
LV69AF18
中有寫入程式碼。
7、銷售訂單抬頭會計視圖有個
Exch.rate-acct.
欄位(
VBKD-KURRF
),如果被維護,它將被參考到發票(
VBRK-KURRF
),作為發票記賬時的匯率類型。注意,發票中的匯率類型不能修改,僅從訂單參考,如果沒有被維護,同樣也要使用匯率類型
M
。銷售訂單中另一個匯率(
VBKD-KURSK
)用來執行從定價貨幣到單據貨幣的匯率轉換,在手工修改訂單的單據貨幣時,此匯率將參考客戶的匯率類型、定價日期從
TCURR
中讀取匯率作為預設值,手工修改的將優先於此預設值。
8、存貨增減
GR
、
GI
記賬都使用本位幣,不存在幣種間匯率轉換問題,其記賬值,採用的是成本價(移動平均或標準價)。
9、發票中有兩處涉及到匯率的欄位,一是第
6
點說的抬頭匯率
VBRK-KURRF
,它只用於財務記賬,即根據此匯率將發票總額轉換到本位幣,再以這個數字記財務憑證。另一個是行項目匯率
VBRP-KURSK
,這是用於定價條件的匯率轉換,即定價貨幣到發票貨幣(可人工設定的單據貨幣)的轉換。
VBRP-KURSK
的來源受單據到發票的拷貝關係控制,具體欄位是
TVCPFLP-PFKUR
。
TVCPFLP-PFKUR
欄位可選項有:
- A - Copy from sales order
- B - Price exchange rate = Accouting rate
- C - Exchange rate determination according to billing date
- D - Exchange rate determination according to pricing date
- E - Exchange rate determination according to current date
- F - Exchange rate determination according to date of services rendered
例如,如果選擇
B
,行項目的匯率將直接拷貝自抬頭的匯率(
VBRK-KURRF
)。
10、定價中的匯率轉換是定價貨幣到單據貨幣的轉換,轉換匯率儲存在
KOMV-KKURS
中,它總是根據定價日期作為限制條件來讀取匯率的。
11、匯率表
TCURR
是跨
Client
級的,與公司代碼無關。讀取參數有匯率類型、本幣、外幣、日期、換算因子(是一比一還是一百比一)。程式
LSCUNUXX
中含有若干計算匯率的函數,編程時可借來一用:
- INCLUDE LSCUNU01. "CALCULATE_EXCHANGE_RATE
- INCLUDE LSCUNU02. "CONVERT_TO_FOREIGN_CURRENCY
- INCLUDE LSCUNU03. "CONVERT_TO_LOCAL_CURRENCY
- INCLUDE LSCUNU04. "READ_EXCHANGE_RATE
- INCLUDE LSCUNU05. "READ_NOTATION
- INCLUDE LSCUNU06. "KURS_IN_MENGENNOTATION
- INCLUDE LSCUNU07. "KURS_IN_PREISNOTATION
12、可以在增強裡人工幹預定價的匯率轉換,此增強是
RV61AFZB
:
USEREXIT_XKOMV_BEWERTEN_INIT
。這裡可以截獲更改定價貨幣時的匯率轉換,經測試,銷售訂單、銷售開票、採購訂單、採購收票動作都將進入此增強。可用的變數有
[X]KMOV
、
[X]KOMP
、
[X]KOMK
。
13、
MM
模組中供應商沒有類似
SD
的設計與設定。
PO
抬頭
Delivery/Invoice
視圖可維護
PO
貨幣及
PO
貨幣與本位幣的轉換匯率,同時可以將此匯率固定,正常情況下它將作為收票時的匯率。如果手工修改的匯率值與
OB08
的匯率值不一樣,他們的差異將會在
GR
的會計憑證中體現(
IDES
中預設記賬科目是
Foreign currency revaluation losses
和
Income from price differences of own goods
),差額是新匯率減去預設匯率的值乘以數量再乘以預設匯率(直接匯率時用乘,間接匯率用除)。
手工匯率從多於預設匯率和手工匯率少預設匯率記賬還不一樣。
14、採購收票時可以在抬頭
Details
視圖人工指定匯率,前提是
PO
中沒有
Fix
匯率。要想在MIRO處手工指定匯率,必須
先輸入匯率再輸入
PO
號碼,否則匯率是灰色的。
15
、收付款清帳時,可在建立FI憑證時在
Currency/Rate
欄位人工輸入從而幹預外幣匯率。前提是公司代碼的設定沒有指定預設匯率。