S/4 HANA Conversion 후 외환거래에 매입/매도 부분이 안보인다면?

안녕하세요. 아는 형입니다.

통합테스트 중에 신규로 외환 거래를 만드는 테스트를 하다가 신규건의 경우에는 입력하는 부분에 매입/매도 항목이 존재하여 반드시 입력을 하도록 되어있었는데 혹시나 해서 기존 거래들을 열어보니 이 항목이 아예 없었습니다. 왜 신규 건에만 매입/매도가 뜨고 기존 건에는 없는 걸까, 이게 이번 글의 시작입니다.

통합테스트하다가 발견한 이상한 점

S/4HANA 전환 프로젝트를 하다 보면 이런 순간이 종종 있습니다. 분명 똑같은 거래 유형인데, 신규로 만든 것과 ECC에서 넘어온 기존 거래의 화면이 미묘하게 다른 순간이요. 과거 건이므로 저도 처음엔 그냥 넘어가려다가, 아무래도 찜찜해서 한번 파보기로 했습니다.

신규 외환 거래를 생성하면 매입/매도 부분이 정상적으로 입력됩니다. 그런데 기존 거래들, 그러니까 ECC에서 마이그레이션되어 온 건들을 확인해보니 이 매입/매도 부분이 비어 있는 겁니다. 같은 트랜잭션 화면인데 왜 어떤 건 뜨고 어떤 건 안 뜨나 싶었죠.

혹시 여러분도 S/4HANA로 전환한 뒤에 기존 외환 거래 화면에서 뭔가 빠진 것 같은 느낌을 받으신 적 있나요? 마이그레이션 프로젝트 하시는 분들이라면 한 번쯤은 마주칠 만한 증상입니다.

 

원인은 거래통화(Trade Currency)가 비어 있어서였다

확인해보니 원인은 S/4HANA의 New FX Framework에서 필수로 쓰는 거래통화(Trade Currency)가 ECC 기존 외환거래에는 초기화되어 있지 않았기 때문이었습니다.

신규 거래는 S/4HANA 화면에서 생성할 때 거래통화와 매입/매도 방향이 함께 저장됩니다. 그러니 매입/매도 필드가 당연히 정상적으로 표시되는 거고요. 반면 ECC에서 넘어온 기존 거래는 과거 데이터 구조상 거래통화가 비어 있을 수 있고, 이 경우 시스템이 어느 통화를 매입하고 어느 통화를 매도한 거래인지 명확하게 결정하지 못해서 해당 필드를 표시하지 않거나 후속 처리에서 문제가 생길 수 있습니다.

정리하면 이렇습니다. 거래통화라는 필드 하나가, 화면에 매입/매도가 뜨느냐 안 뜨느냐를 가르는 열쇠였던 거죠.

TPM_MIG_TRADED_CURR로 거래통화 채우기

SAP는 이런 상황을 위해 초기화 프로그램을 별도로 제공합니다. 바로 TPM_MIG_TRADED_CURR입니다. 기존 FX Forward 및 FX Option 거래 중 거래통화 필드가 비어 있는 건들을 찾아서, 거래통화를 제안해주는 리포트입니다.

이 리포트를 실행하면 거래된 통화 필드가 입력되지 않은 모든 금융 거래가 리스트업되고, 각 건마다 거래통화 후보가 제안됩니다. 자세한 액티비티 순서는 SAP 공식 헬프 문서 – 거래 통화 초기화에 정리되어 있으니 참고하시면 좋습니다. 참고로 SAP는 이 초기화와 함께 순 오픈 익스포저의 헤징 관리 및 회계를 시작하거나 기존 헤징 관계를 초기화할 때, 헤징 분류 초기화(TPM_MIG_HEDGING_CLASS)와 헤징 관계 초기화(TPM_HREL_INIT) 리포트도 함께 안내하고 있습니다. 이 두 리포트는 나중에 헤징 관계 초기화를 다룰 때 좀 더 자세히 풀어보겠습니다.

1차: Amount Input으로 처리

실제로 처리한 순서를 그대로 옮겨보겠습니다. 먼저 Product Type을 입력하고 Amount Input 옵션을 선택했습니다.

Amount Input을 선택하면, 금액 입력 시 이 금액의 통화가 거래통화로 사용됩니다. SAP가 알아서 Trade Currency를 제안해주는 거죠. 여기서 Check Input을 눌러 오류를 체크하고, 문제가 없으면 SAVE 버튼을 클릭합니다.

이때 한 가지 헷갈릴 수 있는 부분이 있는데, 이 저장은 라인별로 하나씩 하는 게 아니라 Trade Currency가 제안된 건들이 한꺼번에 일괄 처리된다는 점입니다. 저도 처음엔 한 건씩 확인하고 저장해야 하나 싶었는데, 실제로는 그렇지 않았습니다.

그래도 남는 Indicator 0, 원인이 뭘까

Amount Input으로 처리하고 나니, 여전히 값이 채워지지 않은 건들이 남아 있었습니다. 이번 건에서는 1046개가 아직 값이 없는 상태로 남아 있더군요.

Amount Input으로 실행했는데 Indicator가 0으로 나오는 경우, 이건 시스템이 ECC 원본 데이터에서 어느 금액이 사용자가 입력한 금액인지 명확히 찾지 못했다는 뜻입니다. 가능한 원인은 여러 가지가 있습니다.

  • 거래가 오래된 릴리스에서 생성됨
  • BAPI 또는 인터페이스로 생성됨
  • 양쪽 금액이 모두 직접 입력됨
  • 거래 변경으로 원래 입력 기준이 불명확함
  • Conversion 과정에서 일부 입력지표가 이어지지 않음
  • 만기연장, 조기청산, 롤오버 등 복합 Activity 존재
  • 동일 통화쌍이지만 입력 방식이 일관되지 않음

이런 이유들 때문에 시스템이 판단을 못 하고 0으로 남겨두는 겁니다. 이 경우 다음 순서로 진행하는 게 좋습니다. Amount Input 결과에서 Indicator 0인 건들만 추출하고, 해당 거래만 Round Amount로 재실행한 다음, 그래도 0으로 남는 건들은 개별로 확인하는 순서입니다.

2차: Round Amount로 재처리

남아 있던 건들을 대상으로 이번에는 Round Amount를 선택했습니다.

Round Amount는 매입 금액이 0으로 끝나는 반올림 금액이면 매입 금액 통화를 거래통화로, 매도 금액이 0으로 끝나는 반올림 금액이면 매도 금액 통화를 거래통화로 판단하는 방식입니다. 실행해보니 나머지 0이었던 건들이 전부 제안되어 나오더군요.

여기서도 마찬가지로 Check Input을 눌러 오류를 체크한 다음 SAVE 버튼을 클릭했습니다.

저장을 진행하고 나서 다시 이전 거래를 조회해보니, 이번엔 정상적으로 Buy/Sell이 반영되어 있는 걸 확인할 수 있었습니다.

Amount Input과 Round Amount, 뭐가 다른가

정리하자면 이 리포트는 두 가지 결정 기준을 제공합니다. 이 둘의 차이를 표로 정리해봤습니다.

구분 Amount Input Round Amount
판단 기준 ECC 당시 사용자가 기준금액으로 입력한 금액 매입/매도 금액이 0으로 끝나는 반올림 형태인지
성격 원거래의 입력 의도를 직접 반영 금액 형태를 근거로 한 추정, 보완적 방식
우선순위 1차 처리 기준 1차에서 Indicator 0으로 남은 건의 2차 처리 기준

SAP가 이 프로그램에서 두 가지 결정 기준을 제공하는 이유도 결국 자동결정이 불가능한 기존 거래를 보완하기 위한 것입니다. 그래서 실무에서는 1차로 Amount Input 기준으로 자동 결정하고, 1차에서 Indicator 0으로 남은 거래만 2차로 Round Amount 기준으로 재결정하고, 그 결과 중 예외적인 건들만 샘플이나 개별로 검증한 뒤 저장하는 순서가 안전합니다.

마무리하며

사실 이 이슈, 별거 아닌 것처럼 보일 수도 있는데 막상 겪어보면 신규/기존 거래가 화면부터 다르게 보이니 처음엔 당황스럽습니다. 다행히 SAP가 이런 마이그레이션 갭을 메우는 리포트를 미리 준비해뒀다는 게 새삼 고마웠던 경험이었습니다.

다음에는 이번에 잠깐 언급했던 헤징 관계 초기화 쪽을 좀 더 파봐야 할 것 같습니다. 거래통화가 채워지고 나면 그 다음 단계에서 또 어떤 이야기가 기다리고 있을지, 그때 다시 풀어보겠습니다.

댓글 남기기