본문 바로가기

GSI 표준화

CO 평가뷰의 통화 환산 설정은 어떻게 하는게 좋을까? - (1) 구매

 

 

지난 글인 『CO 관련 원장, 통화, 평가뷰 - (3) 평가뷰』를 읽으셨다면 그룹통화와 평가뷰의 통화 환산은 어떤 방식으로 하면 좋을지 조금 의문이 남으실 수 있겠다.

 

이번 글에서는 그룹통화의 소스통화는 무엇으로 하면 좋겠는지를 간단한 기본 트랜잭션으로 살펴보고자 한다. 결산까지 들어가는 수준은 아니기 때문에 여기서의 결론은 잠정적일 수밖에 없다. 이 부분을 감안하고 봐주시기 바란다.

 

우선 지난 글에서 그룹통화의 통화환산은 아래와 같은 방식으로 세팅한 그림을 보여줬었다.

 

 

T-CODE: FINSC_LEDGER(통합 분개 원장 유지보수) '회사코드의 통화 환산 설정' 세팅 화면

 

 

그룹 통화(30)의 소스통화는 회사코드 통화(10)이고, 그룹 통화/그룹 평가(31)과 그룹 통화/손익센터 평가(32)의 소스 통화는 전표 통화(00)이다. 그런데 30이나 31, 32는 평가뷰는 다를지 몰라도 통화 자체는 모두 같지 않은가?

 

이 예시는 사실 내가 직접 생각해서 만든 건 아니고, 『Material Ledger in SAP S/4HANA』라는 책에서 보여준 예시 세팅을 참고로 한 것이다.

 

왜 이렇게 했을까? 사실 의문이 든다. (비록 평가뷰가 다르더라도) 통화는 동일한데 소스 통화가 다르다면 왜곡이 생기지 않겠는가? 나도 그 부분이 의문이어서 계속 테스트도 해보고 관련 Note도 찾아보고 했었다.

 

주로 참고했던 Note 목록은 다음과 같다.

 

2581071 - Currency conversion of a freely-defined currency type which is not defined as a local currency in FI

2380769 - Error message FINS_ACDOC_CUST 276 'Define how currency conversion of not integrated CO currencies works'
678180 - COIN: Unexpected values in CO document
314936 - Currency type in the controlling area

 

Note를 읽고 테스트도 해보니 위 책에서 30의 소스 통화를 10으로 한 것도 어느 정도 일리는 있다는 생각이 들었다. 그런 경우 이중 환산에 의해 금액 차이가 생기는 건 확실히 맞다. 하지만 그럼에도 아예 무시할만한 방식은 아니라고 보게 됐는데 지금부터 왜 그렇게 생각하게 됐는지 사례를 하나씩 살펴 보도록 하겠다.

 

 

Case 1. 회사코드 통화와 그룹 통화가 같은데 소스 통화가 다른 경우(USD, KRW, KRW)

Case 2. 소스 통화가 회사코드 통화와 같은 경우(USD, USD, KRW)

Case 3. 소스 통화가 그룹 통화와 같은 경우(KRW, USD, KRW)

Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)

 

 

위 네 가지 정도의 케이스가 있겠다. 소스 통화, 회사코드 통화, 그룹 통화가 모두 같은 경우는 환산 자체가 발생하지 않기 때문에 제외했다.

 

 

 


 

■ Case 기본 가정

우선 기본 가정을 짚고 가자. 아래 그림처럼 통화 환산이 세팅된 경우이다.

 

 

T-CODE: FINSC_LEDGER(통합 분개 원장 유지보수) '회사코드의 통화 환산 설정' 세팅 화면

 

 

지난 글의 캡쳐와는 달리 가장 첫줄의 설정에는 환율 유형과 환산일 유형이 회색으로 입력 불가능하게 되어 있다. 이는 내가 새로운 Note를 적용했기 때문인데 회사코드 통화와 그룹 통화가 같을 경우 별도의 환산이 필요 없이 그대로 값을 복사하도록 되어 있기 때문이다.

 

그 외의 나머지 통화는 모두 전표 통화(00)에서 환산되도록 설정해놨다. 필요하면 이 부분도 10으로 변경했을 때 어떻게 달라지는지 보도록 하겠다.

 

여기서 중요하게 새로 짚고 넘어갈 점이 있다. M/L의 평가뷰와 연결된 통화 유형은 여기서 소스 통화를 무엇으로 설정하든지 자재원장의 로직을 우선적으로 따른다는 점이다. 기본적으로 재고자산 계정(BSX)이 그렇다.

 

 

TCODE: MM03(자재 마스터 회계 1 탭) - 한국법인의 경우

 

TCODE: MM03(자재 마스터 회계 1 탭) - 미국법인의 경우

 

 

그럴 수밖에 없는 것이, 재고자산의 표준원가는 자재 마스터에 평가뷰에 따라 설정되어 있고 그 값을 쓰는 게 원칙상 맞기 때문이다.

 

위 그림처럼 회사코드 통화(10)일 때 1 달러, 그룹 통화/그룹 평가(31)일 때 1,197원, 그룹 통화/손익센터 평가(32)일 때 1,197원으로 설정되어 있으면 전표에도 이대로 찍힌다는 뜻이다. 아무리 전표 입력 시점에 환율이 다르고 환산 규칙이 다르다고 하더라도 적용되지 않는다. 자재 마스터가 우선이다.

 

두 번째로 중요한 점은 M/L 평가뷰의 통화 유형이 31, 32일 때, 회사코드 통화의 11, 12의 소스 통화를 무엇으로 설정하든지 간에 31, 32로부터 환산한다는 점이다. 이 내용은 2581071 - Currency conversion of a freely-defined currency type which is not defined as a local currency in FI에 명시되어 있는 부분이다.

 

 

If a valuated currency type is already calculated in the process (either currency type is used as an integrated currency in FI or used in a valuation view of material ledger) then the valuated currency type is used as base for calculation.

Example: Local currency in group valuation (11) is a freely definde currency while global currency in group valuation (31) is given in process Depending on the source currencies of the involved currency types 2 principle calculations are possible:

A) Source currency for both valuated currency types is transaction currency '00'. Then the following path for currency conversion is used: 31 -> 01 (convert to foreign) ; 01 -> 11 (convert to local)

B) Source currency for the valuated currency is different eg. '11' is using '00' and '31' is using '10'. Then the following path is used 31 -> 11 (convert to foreign)

SAP Note 2581071

 

 

T-CODE: FINSC_LEDGER(통합 분개 원장 유지보수) '글로벌 통화 환산 설정' 세팅 화면

 

11과 12의 평가뷰는 31, 32와 같기 때문에 소스 통화도 31, 32가 되어야 한다는 의미이다. 만약 31과 11의 소스 통화가 모두 전표 통화인 00이라면 먼저 31에서 01로 환산하고 다시 01에서 11로 환산한다고 한다. (규칙 A)

 

만약 31과 11의 소스 통화가 서로 다르게 세팅되었다면 그냥 31에서 11로 바로 환산한다고 한다. (규칙 B)

 

어떤 규칙이든 최초 소스가 되는 것은 31이나 32이다.

 

이 부분은 Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)를 통해서 직접 살펴보도록 하자.

 

이어서 우리 예시의 환율 가정을 살펴보자.

 

 

TALBE: TCURR(환율 테이블) USD와 KRW. T-CODE: OB08과 같은 내용이다.

 

 

TALBE: TCURR(환율 테이블) JPY와 USD. T-CODE: OB08과 같은 내용이다.

 

 

환율유형 'M'은 날짜별로 이렇게 달라지도록 해놨다. 구매입고와 송장 사이에 환율이 변동되는 가정을 적용했다. 

 

 

 


 

Case 1. 회사코드 통화와 그룹 통화가 같은데 소스 통화가 다른 경우(USD, KRW, KRW)

 

이 경우는 소스 통화가 USD, 회사코드 통화가 KRW, 그룹 통화가 KRW인 경우이다.

 

 

T-CODE: ME21N(구매오더 생성)

 

구매오더를 USD로 생성했다. 이렇게 하면 소스 통화는 USD가 된다. 대상 회사코드 통화가 KRW인 쪽으로 입고되도록 해두었다. 한국 법인에서 외화 거래롤 구매입고하는 경우라고 보면 되겠다.

 

T-CODE: MIGO를 통해 구매입고까지 해보자.

 

 

T-CODE: MIGO(자재 이동)

 

이 때 증빙일과 전기일을 모두 3월 1일자로 했다. 3월 15일부터 환율이 바뀌는데 그건 송장 처리 시 적용해보겠다. 정상적으로 입고 처리하고 회계 전표를 보면

 

 

T-CODE: FB03(회계 전표 조회)

 

이처럼 전표 통화가 USD로 생성되었다. 이 때 원재료의 금액은 1.25달러로 되어 있는데 이는 자재 마스터의 표준원가인 1,500원에 3월 1일 환율인 1,196.7을 적용했기 때문이다(1,500 ÷ 1,196.7 = 1.25).

 

상단의 '총계정원장 뷰'를 클릭하고 '조회 통화'를 클릭하면 원장의 통화 유형에 따라 전표 값을 확인해볼 수 있다.

 

 

'총계정원장 뷰'에서 '조회 통화'를 클릭했을 경우 팝업창

 

하지만 우리는 각각을 클릭했을 때의 결과를 따로 보기 귀찮으니 테이블 ACDOCA에서 직접 확인해보자.

 

 

테이블 ACDOCA(통합 원장 테이블) Case 1. 회사코드 통화와 그룹 통화가 같은데 소스 통화가 다른 경우(USD, KRW, KRW)의 구매 입고

 

 

위 그림처럼 환산된다. 이 경우 별다른 문제점은 없어 보인다. 지금부터 위와 같은 형태의 그림을 많이 보여드릴 테니 눈을 부릅뜨고 봐주시기 바란다.

 

위에서도 말했듯 우리 자재원장 세팅 상 자재원장의 통화 유형은 10, 31, 32이다. 이 세 가지 통화 유형에는 자재 마스터의 값을 참조해서 계산한다.

 

 

T-CODE: CKM3(자재원장 조회)

 

T-CODE: CKM3에서도 우리가 지정한 통화/평가뷰에 따라 금액을 조회해볼 수 있다. 

 

 

TABLE: MLDOC(자재원장 전표 테이블) S/4HANA부터 새로 생긴 테이블임

 

자재원장 테이블에서도 통화유형 10, 31, 32로 조회할 수 있다. 이어서 송장 처리도 해보자.

 

 

T-CODE: MIRO(송장 입력)

 

송장 입력 시의 날짜는 3월 17일로 했다. 이로써 구매 입고 시의 환율과 송장 처리 시의 환율이 달라지게 된다.

 

 

테이블 ACDOCA(통합 원장 테이블) Case 1. 회사코드 통화와 그룹 통화가 같은데 소스 통화가 다른 경우(USD, KRW, KRW)의 송장 처리

 

 

이렇게 된다. 입고 시의 환율(1,196.7)과 송장 처리 시의 환율(1,241.9)가 다르기 때문에 환율차이(KDM)로 45원이 생기게 된다. 

 

 

T-CODE: CKM3(자재원장 조회)

 

자재원장을 확인해보면 '환산 손익'이 '가격 차이'옆에 들어와있다. 이 내용은 다른 M/L 차이들과 함께 결산시점에 자재원장정산(CKMLCP)으로 반영되는 부분이다.

 

그런데 이 Case 1의 경우 통화 환산을 10 → 30이 아닌 00 → 30으로 바꾼다면 어떨까? 이 경우는 송장 처리 전표가 아래와 같이 바뀐다.

 

 

테이블 ACDOCA(통합 원장 테이블) Case 1. 회사코드 통화와 그룹 통화가 같은데 소스 통화가 다른 경우(USD, KRW, KRW)의 송장 처리

 

그룹 통화(30)일 때의 금액이 불일치한다. 이 부분은 사실 어쩔 수 없는 게 소스 통화의 값을 그대로 환산해서 가져왔기 때문이다. 소스 통화에서는 환율차이(KDM)이 0이므로 환산해도 0이다. 또한 환산도 현재 시점의 환율로만 한다.

 

 

따라서 회사코드 통화와 그룹 통화가 같은 경우라면 둘 사이의 환산 설정은 10 → 30으로 하는 게 맞다고 본다.

 

 

T-CODE: FINSC_LEDGER(통합 분개 원장 유지보수) '회사코드의 통화 환산 설정' 세팅 화면

 

이렇듯 Case 1의 경우 10 → 30만 설정하면 별다른 문제는 없어 보인다. 나머지 케이스도 확인해보자. 이후 케이스들은 구매오더 생성, 송장 처리 등의 화면 캡쳐는 생략하고 테이블 ACDOCA의 결과만 보도록 하자.

 

 

 


 

Case 2. 소스 통화가 회사코드 통화와 같은 경우(USD, USD, KRW)

 

소스 통화와 회사코드 통화가 같은 경우는 어떨까? 이 경우는 아마도 소스 통화 → 회사코드 통화의 환산은 1:1이므로 변경이 없을 것이고, 회사코드 통화 → 그룹 통화의 환산도 소스 통화 → 그룹 통화인 경우와 같을 것이므로 별 문제가 없을 것 같다. (물론 두 환산 모두 동일한 환산 기준을 적용했다는 가정 하에서 그렇다)

 

 

테이블 ACDOCA(통합 원장 테이블) Case 2. 소스 통화가 회사코드 통화와 같은 경우(USD, USD, KRW)의 구매 입고

 

테이블 ACDOCA(통합 원장 테이블) Case 2. 소스 통화가 회사코드 통화와 같은 경우(USD, USD, KRW)의 송장 처리

 

 

이 경우에는 송장 처리 시 그룹 통화(30)의 금액이 불일치한다. 그런데 이 경우는 30의 소스 통화를 00으로 하든 10으로 하든 불일치할 수 밖에 없다. 31과 32는 자재원장의 데이터를 읽어와서 GR/IR 계정(WRX)을 구매 입고 시와 동일한 금액으로 환산해서 온 반면, 30은 자재원장과 무관하므로 00이나 10의 값을 현재 기준 환율로 변환할 수 밖에 없기 때문이다.

 

그리고 11, 12일 때의 숫자도 다른데 이는 각각 31, 32에서 환산해오기 때문에 그렇다.

 

 

 


 

Case 3. 소스 통화가 그룹 통화와 같은 경우(KRW, USD, KRW)

 

이 경우도 문제가 생긴다. 그룹 통화의 환산이 10 → 30이므로, KRW → USD → KRW로 두 번 환산이 일어나면서 단수 차이가 발생하기 때문이다.

 

 

테이블 ACDOCA(통합 원장 테이블) Case 3. 소스 통화가 그룹 통화와 같은 경우(KRW, USD, KRW)의 구매 입고

 

테이블 ACDOCA(통합 원장 테이블) Case 3. 소스 통화가 그룹 통화와 같은 경우(KRW, USD, KRW)의 송장 처리

 

 

역시나 그렇다. GR/IR로 발생한 금액 106,000이 KRW → USD → KRW로 이중 환산되면서 단수 차이가 생겨난다. 이 경우는 차라리 10 → 30이 아니라 00 → 30으로 하는 게 어떨까?

 

 

테이블 ACDOCA(통합 원장 테이블) Case 3. 소스 통화가 그룹 통화와 같은 경우(KRW, USD, KRW)의 구매 입고

 

테이블 ACDOCA(통합 원장 테이블) Case 3. 소스 통화가 그룹 통화와 같은 경우(KRW, USD, KRW)의 송장 처리

 

 

이 때는 최소한 그룹 통화(30)의 금액은 제대로 맞춰진다. 다만 이렇게 변경해도 Case 2에서의 문제점은 상존한다.

 

 

따라서 회사코드 통화와 그룹 통화가 서로 다른 경우라면 둘 사이의 환산 설정은 00 → 30으로 하는 게 그나마 단수차이를 최소화하는 방법이다.

 

 

T-CODE: FINSC_LEDGER(통합 분개 원장 유지보수) '회사코드의 통화 환산 설정' 세팅 화면

 

그나마 최소화라지만, Case 2일 경우의 문제점을 지울 수 없기 때문에 고민스럽다.

 

 

 


 

Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)

 

 

테이블 ACDOCA(통합 원장 테이블) Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)의 구매 입고

 

구매 입고부터 문제가 생긴다. 재고 자산(BSX)의 금액이 10, 31, 32는 모두 자재 마스터의 것을 가져온 반면, 그룹 통화(30)은 거래 통화(00)를 환산해서 가져오기 때문이다.

 

테이블 ACDOCA(통합 원장 테이블) Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)의 송장 처리

 

송장 처리 시에도 마찬가지이다. 다시 00 → 30이 아니라 10 → 30으로 바꿔보면 어떨까?

 

테이블 ACDOCA(통합 원장 테이블) Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)의 구매 입고

 

테이블 ACDOCA(통합 원장 테이블) Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)의 송장 처리

 

 

그래도 틀어지는 건 여전하다. 

 

마지막으로 30, 31, 32를 모두 10으로부터 환산되게 바꾸는 것도 생각해볼 수 있는데 그 경우도 틀어진다.

 

 

테이블 ACDOCA(통합 원장 테이블) Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)의 구매 입고

 

이 경우에는 30에서는 환율차이(KDM)가 안 생기는 반면, 31, 32에서는 00 → 10 → 30에 따른 환율차이(KDM-ERN)이 별도로 발생한다.

 

테이블 ACDOCA(통합 원장 테이블) Case 4. 소스 통화가 회사코드 통화나 그룹 통화와는 아예 다른 경우(JPY, USD, KRW)의 송장 처리

 

 

송장 처리 시에도 31과 32는 구매 입고의 GR/IR 금액(WRX)인 104,292를 가져오는 반면, 30은 10의 금액을 현재 환율로 다시 환산하기 때문에 문제가 된다.

 

 

 


■ 결론

 

결론을 내기가 참 힘들다. 뭐가 됐든 그룹 통화(30)는 늘 문제가 생긴다. 통화 및 평가프로파일과 자재원장의 통화 유형 세팅을 10, 31, 32가 아니라 10, 30, 31이나 10, 30, 32와 같은 식으로 그룹 통화를 끼어서 넣었다면 문제가 없을 것 같으나 그렇지 않은 경우는 늘상 문제다.

 

실무에서 대안으로 생각해볼 수 있는 건 뭐가 있을까?

 

 

1. 자재원장의 통화 유형에 30을 포함시킨다.

 

위에서 말했던 대로다. 통화 유형 30을 자재원장에 포함시킨다. 그러면 그룹 통화(30)에 대한 분개는 자재원장의 로직을 타게 되므로 문제가 없을 것이다. 아래와 같은 식으로 T-CODE: 8KEM과 T-CODE: OMX2 세팅을 변경하면 되겠다.

 

 

T-CODE: 8KEM(통화 및 평가 프로파일)

 

T-CODE: OMX2(자재원장 유형 정의)

 

대신 이렇게 설정하면 CO 평가뷰는 법적 평가를 제외하고는 하나 밖에 못 쓴다. 최대 3개이기 때문이다.

 

 

2. 통화 유형 30을 포기한다. 31, 32로 대체한다.

 

아예 통화 유형 30은 무의미하다고 봐서 리포팅하지 않는 방법이다. 대신 그룹 통화에 해당하는 거래는 31이나 32를 통해서 보도록 한다. 이 경우 통합 원장에 30에 대한 값은 계속 들어오지만 통계적 정보로만 활용하고 마는 것이다.

 

대신 이 경우 그룹 평가뷰(31)에서는 법인 간 거래의 내부거래이윤이 제거된 채로 나오고, 손익센터 평가뷰(32)에서는 사업부 간 거래에 내부이체가격이 포함되어 나오는 건 감안해야 한다.

 

어차피 그룹 리포팅 시에는 내부거래이윤을 제거하는 게 필요하니 차라리 애초부터 빠져 있는 31을 보자는 생각이다.

 

 

3. 통화 환산 설정의 골든 룰은?

 

T-CODE: FINSC_LEDGER(통합 분개 원장 유지보수) '회사코드의 통화 환산 설정' 세팅 화면

 

글이 참 쓸데 없이 어려웠다. 다른 건 다 몰라도 이것만 챙겨가시면 되겠다.

 

마지막으로 통화 환산 설정은 어떻게 하는 게 좋을까? 그룹 통화와 회사코드 통화가 같은 경우는 고민 없이 10 → 30으로 지정하면 된다.

 

그룹 통화와 회사코드 통화가 다른 경우가 조금 갈리는데 이 경우 10 → 30으로 하면 소스 통화와 그룹 통화가 같을 때 이중 환산으로 금액이 틀어지는 경우가 생긴다. (Case 3. KRW → USD → KRW의 경우)

 

00 → 30으로 했을 때도 문제는 있는데 이 경우 00은 자재원장의 통화 유형이 아니므로 재고 자산(BSX) 금액을 표준원가 값을 복사해오지 않는다. 환산을 두 번 거치게 된다. (Case 4. JPY → USD → KRW의 경우) 또는 GR/IR의 금액도 과거 GR의 금액의 복사해오지 않고 새로 환산을 하게 된다. (Case 2. USD → USD → KRW의 경우)

 

 

환산 방법 Case 2. USD → USD → KRW의 경우 Case 3. KRW → USD → KRW의 경우 Case 4. JPY → USD → KRW의 경우
10 → 30 X X X
00 → 30 X O X

 

결국 차이를 그나마 줄여주는 건 00 → 30일 때인데 어차피 나머지의 경우가 다 틀어지기 때문에 큰 의미는 없다고 본다. 결론적으로 나는

 

 

1. 회사코드 통화와 그룹 통화가 같은 경우의 환산은 10 → 30으로 한다.
2. 나머지의 환산은 모두 00으로부터 되도록 한다.

 

 

이렇게 해보겠다.

 

 

 


 

▶ 앞으로는...

 

우선 앞으로 이 블로그를 통해서는 위 그림과 같은 환산 세팅을 기준으로 다른 트랜잭션도 검증해보도록 하려고 한다. 그룹 리포팅을 위한 통화 유형은 30이 아니라 31을 쓴다고 가정한다.

 

이 글 다음으로는 FI의 채권/채무 반제 시 평가뷰에 따라 환산손익이 발생하는 부분을 먼저 살펴보고, 그 이후에는 법인 간 거래에서 STO(Stock Transfer Order) 시 내부거래이윤이 표기되는 부분도 살펴보고자 한다.

 

갈 길이 멀다, 멀어...