안녕하세요. 아는 형입니다.
지난 글 TPM_Migration을 수행을 위한 사전 Setting에 대해 알아보자 에서는 TPM_MIGRATION을 돌리기 전에 챙겨야 할 사전 Config Setting을 다뤘습니다. 이번 글에서는 그 설정을 바탕으로 실제로 TPM_MIGRATION을 실행해서 TR Migration을 수행하는 과정을 정리합니다.
설정만 해놓고 실행을 안 해보면 사실 뭐가 문제인지 감이 잘 안 옵니다. 그런데 막상 실행 버튼을 누르면, 또 그 나름대로 챙겨야 할 게 한가득입니다. 이번 글에서는 그 실행 과정에서 순서대로 뭘 봐야 하는지, 어떤 로그를 체크해야 하는지를 실제 프로젝트에서 진행한 순서 그대로 풀어보겠습니다.
TR Migration, 정확히 뭘 하는 작업인가
본격적으로 들어가기 전에 개념을 한번짚고 넘어가겠습니다. ECC에 있던 기존 TR 금융거래 데이터를 S/4HANA TRM의 새로운 데이터 구조에 맞게 변환하는 작업, 이게 TR Migration입니다. FI Migration과 헷갈리시는 분들이 많은데, 사실 역할이 완전히 다릅니다.
- FI Migration = 회계 데이터 전환 (전표, FI 구조 중심)
- TR Migration = 금융거래·Position 데이터 전환 (Position, 발생/이연, 평가 정보 중심)
FI Migration이 끝났다고 TR 쪽의 데이터 전환이 자동으로 따라오는 게 아니라는 점, 여기서 한 번 짚고 넘어가겠습니다. 저도 프로젝트 초반에는 FI Migration만 끝나면 TR도 알아서 정리되는 줄 알았는데, 전혀 아니었습니다.
전체 흐름 한눈에 볼까요
정리하면 이렇습니다. ECC에 있던 TR 거래가 먼저 FI Migration을 거쳐서 회계 데이터가 S/4HANA 방식으로 바뀝니다. 그다음이 TPM_MIGRATION 차례인데, G01~G03이 공통 설정을 먼저 정비해두고, H01~H03이 회사코드별로 실제 거래 데이터를 변환합니다. 이 순서가 다 끝나야 비로소 S/4HANA TRM에서 정상적으로 조회하고 쓸 수 있는 상태가 됩니다.
실무적으로는 딱 이 정도만 기억해두시면 됩니다. G01은 설정 변환, H01은 실제 데이터 변환, H03은 기존 거래의 Position 생성. 나머지는 이 세 가지를 보조하는 단계라고 생각하면 흐름이 잡힙니다.
실행 전, 사전 설정을 한번 짚어 봅시다
본격적인 실행에 앞서 TR_Migration 사전 Config Setting을 진행합니다. SE09로 CTS를 생성하고, BD91에서 Logical System을 점검한 뒤, FSCM > TRM > 거래관리자 > 일반 설정 > 툴 > 전환 > 전환 커스터마이징 경로에서 마이그레이션 유형을 설정하고 커스터마이징 요청을 지정합니다. 이 부분은 TPM_Migration을 수행을 위한 사전 Setting에 대해 알아보자 에서 이미 다뤘으니 참고하시면 됩니다.
이후 Conversion of Accounting to SAP S/4HANA 2단계 Data Migration을 진행하고, 그게 끝나야 비로소 TR Migration으로 넘어갈 수 있습니다.
자, 여기까지가 배경이고 이제 진짜 실행이 시작되는 지점입니다. 아래 그림을 볼까요? 우리가 사전에 TR Migration 설정을 위한 사전 Setting을 한 곳이 거래관리자 > 툴 > 전환 > 전환 커스터마이징 > 마이그레이션 유형 설정 및 커스터마이징 요청에 지정 이 곳에서 설정을 진행했었습니다. 그 밑에 보면 “전환 프로그램” 이라고 보이시지요? 요기서 전환작업을 진행하고, 이때 실행되는 프로그램의 T-Code가 TPM_MIGRATION입니다. 사전 Configration이 끝났다면 아래 두번째 그림처럼 회사코드를 입력하는 화면이 뜨게 되는데 회사코드를 입력하고 엔터를 치면 위쪽에는 전환단계 G01~G03, 아래쪽에는 회사코드별 전환단계 H01~H03이 나타납니다.


G01~G03: 공통 설정을 변환하는 단계을 알아보자
먼저 TR 데이터를 변환하기 전에 필요한 공통 설정을 정비하는 단계, G01~G03부터 실행합니다. G단계는 회사코드와 무관하게 돌아가는 공통 Customizing·설정 정보를 변환하는 단계입니다.
| 단계 | 주요 기능 |
|---|---|
| G01 | 기존 OTC 거래 발생/이연(Accrual/Deferral) Customizing 변환 |
| G02 | 기존 Position List 조회 Variant 변환 |
| G03 | SAP Release 및 Migration Type에 따라 추가적인 공통 변환 작업 수행 |
한 줄로 정리하면, G단계는 TR 데이터를 변환하기 전에 필요한 공통 설정을 정비하는 단계입니다.
G01 — Convert OTC Customizing for Accruals/Deferrals
기존 OTC Accrual/Deferral Customizing을 새로운 중앙 Accrual/Deferral 구조로 변환하는 작업입니다. 쉽게 말하면 과거 TBB4 기준 설정을, TPM44가 사용할 수 있는 Update Type 기반 설정으로 바꾸는 작업입니다.
새로운 Accrual/Deferral Framework에서는 특히 다음 개념이 중요합니다.
- Update Type
- Usage = Accrual/Deferral
- Accrual/Deferral Procedure
- Reset Procedure / Difference Procedure
- Accrual 대상 Flow와 발생/이연 Update Type 연결
- FI Posting 관련 Account Determination
SAP Help에서도 기존 TBB4 Customizing을 사용했다면 OTC: Convert Customizing for Accrual/Deferral Migration Step으로 변환할 수 있다고 설명합니다.
G01은 거래 데이터 자체를 변환하는 게 아닙니다. “어떤 Flow를 어떤 Update Type으로 Accrual 처리할 것인가”라는 Rule/Customizing을 변환하는 작업입니다. 그래서 보통 DEV/Customizing System에서 수행하고 CTS를 통해 QAS/PRD로 전달하는 성격이 강합니다.
G02 — Convert Display Variants in Position List
기존 Position List에서 사용하던 Display Variant를 변경된 Position List 구조에 맞게 변환하는 단계입니다. 회계 로직이나 거래금액을 건드리는 게 아니라, 사용자가 Position List를 조회할 때 쓰던 Layout/Display Variant의 호환성을 확보하는 작업이라고 보시면 됩니다. SAP Release Note에서도 G02를 Company Code-independent conversion step으로 분류합니다.
회계 영향은 없습니다. 자산/부채/수익/비용 금액을 변경하는 Step이 아니라 조회·표시 설정을 변환하는 Step이라는 점, 헷갈리지 않으셨으면 합니다.
G03 — 여기는 반드시 실제 시스템의 Step Description을 확인하세요
이 부분을 보면 표준 Conversion from Enterprise 2.0 to ERP 6.0 EhP3 기준으로는 G03이 존재하지 않고 G01/G02만 있습니다. 그런데 다른 Business Function이나 Migration Type이 같이 선택되어 있으면 추가 G Step이 나타날 수 있습니다. Correspondence Framework Conversion 같은 경우에도 Company Code-independent Customizing Conversion Step이 존재하고, SAP는 Step 번호가 Migration Type에 따라 달라질 수 있다고 명시합니다.
그래서 여러분 시스템에서 예를 들어 G03 xxxx Convert Customizing ...이라고 표시된다면, 그 화면에 뜨는 명칭을 기준으로 판단하셔야 합니다. 문서나 블로그에 나온 명칭만 믿고 넘어가면 안 되는 지점입니다.
실제로 G01을 돌려보면서 확인한 것들
우선 G01을 선택하고 테스트 버튼을 눌러 테스트 결과 이상없는지를 확인합니다.

테스트 로그를 확인해보면 위에는 녹색, 아래에는 노란색으로 경고가 나오는데, 우리가 체크해야 하는 부분은 바로 이 노란색 부분입니다. 노란색 메시지는 흐름 유형으로 현재 갱신유형을 지정하는 동안 오류가 발생했다는 내용인데, 각 흐름별로 VTBFHAPO, TRDT_FLOW 흐름에서 사용 내역이 있는지를 봐야 합니다.
사용 내역이 있으면 해당 흐름이 잘 처리되도록 IMG 설정을 조정해줘야 하고, 해당 흐름으로 조회했을 때 별도 내역이 없다면 그냥 진행하면 됩니다. VTBFHAPO-SFHAZBA에서 흐름을 체크해보고 데이터가 있는지 확인하는 방식인데, 흐름정보를 넣고 건수가 있는지 확인하시면 됩니다.TRDT_FLOW Table의 경우에는 TRDT_FLOW-DIS_FLOWTYPE에서 흐름 존재 여부를 확인하였습니다


G01/G02/G03을 실행하는 시점에 TRGT_MIG_CC_PT 테이블을 확인해보면 데이터가 0으로 유지됩니다. G01/G02/G03 실행 후 TRGT_MIG_CC_PT 값이 0인지 확인하는 게 체크포인트입니다.

여기서 많이 헷갈리시는 부분인데, G01~G03은 회사코드별로 실행하는 게 아닙니다. 전체 시스템에 딱 1회만 진행하면 됩니다.
1차 실행 결과 다음과 같이 실행됨으로 표시되고, “전환단계 G01을 실행했습니다”라는 메시지를 확인할 수 있습니다. G02, G03도 동일한 방식으로 진행하면 되는데, G03을 실행하면 Workbench CTS가 하나 더 생성되니 참고하세요.


H01~H03: 회사코드별 실제 거래 데이터를 변환하는 단계
G단계까지 진행했으면, 이제 진짜 회사코드별로 기존 TR 거래 데이터를 변환하는 작업, H01~H03으로 넘어갑니다.
| 단계 | 주요 기능 |
|---|---|
| H01 | 기존 거래 발생/이연 데이터 변환 |
| H02 | 기존 Business Transaction Valuation Class 조정 |
| H03 | 기존 OTC 거래 Quantity Position 생성 |
이미지에 보면 H01~H05까지 존재하는데, 저희 프로젝트에서는 SAP Notes 권고에 맞추어 H01~H03까지만 수행했습니다. 이 중에서 H03이 S/4HANA Conversion에서 특히 중요합니다. S/4HANA에서는 Money Market 같은 OTC 거래도 Quantity Ledger를 사용하기 때문에, ECC에서 이미 생성돼 있던 기존 거래에 대해 S/4HANA에서 쓸 수 있는 Position 정보를 새로 만들어줘야 하거든요. 이 부분은 나중에 별도 세션을 Hedge 관계 초기화와 엮어서 좀 더 자세히 풀어보겠습니다.
H01 — OTC: Convert Accruals/Deferrals
이 Step이 가장 중요합니다. G01이 “Rule”을 바꿨다면, H01은 기존 OTC 거래에 이미 발생되어 있는 Accrual/Deferral History를 새 Framework가 사용할 수 있게 변환합니다.
예를 들어 기존에 거래번호 100001, 원금 10억, 이자기간 1/1~3/31 건에 대해 TBB4를 이용하여 1/31까지 발생 처리가 완료되어 있다고 해봅시다. 새로운 TPM44는 “이 거래는 과거에 어디까지 Accrual했는가?”를 알아야 합니다. 그 연결을 만들어 주는 핵심 Conversion이 바로 H01입니다.
따라서 H01이 안 되어 있으면 TPM44 수행 시 대표적으로 다음과 같은 오류가 발생할 수 있습니다.
Accrual/deferral data in CoCd XXXX has not been converted
(TPM_AD822)
SAP 표준 메시지에서도 이 경우 TPM_MIGRATION → OTC: Convert Accruals/Deferrals 수행을 안내합니다. 혹시 이 에러 보신 분 계신가요? H01을 건너뛰고 바로 TPM44를 돌려보면 십중팔구 만나게 되는 메시지입니다.
H02 — Adjust Valuation Classes in Business Transactions
기존 OTC 거래에 저장되어 있는 Valuation Class와 Business Transaction 간의 관계를, 새로운 Position Management 구조에 맞게 조정하는 Step입니다. SAP 표준 Release Note에서는 Optional로 정의되어 있습니다.
그래서 무조건 수행하는 Step이라기보다는, 기존 거래가 존재하고 새로운 Valuation Class·Position Management 설정의 영향을 받으며 Migration documentation에서 해당 거래가 대상이라고 판단될 경우 수행하는 형태입니다.
이부분은 고객사에서 특히 TPM1을 활용한 평가를 활용 하고 있다면 변화 사항에 대해 잘 점검을 진행해야 합니다. 그리고 H02도 일반적으로 FI 전표를 생성하기 위한 작업이 아니라는 점은 짚고 넘어가야 합니다.
Treasury Subledger에서 Financial Transaction → Business Transaction → Position → Valuation Class 간의 정합성을 맞추는 데이터 변환으로 이해하는 게 좋습니다.
H03 — Generate Quantity Positions
S/4HANA Conversion에서 상당히 중요하게 봐야 하는 Step입니다. 기존 OTC 거래를 기준으로 Quantity Ledger·Quantity Position을 생성합니다.
SAP Community의 SAP Product Expert 답변에서도 FIN_TRM_LR_FI_AN 활성화 후 기존 OTC 거래의 Quantity Ledger 정보를 채우기 위해 H03 OTC: Generate Quantity Positions를 실행한다고 설명합니다.
예를 들어 정기예금, Nominal 10,000,000,000 KRW짜리 Money Market 거래가 있다면, 기존에는 Cash Flow만 존재하던 이 거래에 대해 새로운 Position Management에서 사용할 수 있도록 Quantity Position = 10,000,000,000 KRW에 해당하는 Position 정보를 구축한다고 이해하면 됩니다.
S/4HANA에서는 Money Market Transactions에 대한 Quantity Ledger 사용이 중요한 Simplification 변화입니다. 그래서 ECC Release Note에서는 H03이 Optional이었다 하더라도, S/4 Conversion에서는 해당 Simplification Item 적용 여부를 반드시 판단해야 합니다.
특히 S/4 HANA FI Migration 이후 TPM26 – 수량 원장 포지션에 대한 포지션 리스트 프로그램을 실행해보면 실행이 안되는 것을 알 수 있는데, 이 H03 실행 후에는 Quantity Positions이 실행되면서 해당 리포트를 사용할 수 있게 변화가 발생합니다.
H단계 실행하면서 확인한 데이터 변화는 무엇일까요
H단계는 G단계와 다르게 회사코드별로 1번씩 진행해야 합니다. 저희 프로젝트에서는 1000, 4000 두 개 회사코드에 대해 각각 진행했습니다.
H01 실행 후에는 Accrual Data가 삭제됩니다. VTBFHAPO 테이블의 데이터 건수가 줄어드는 것으로 확인할 수 있고, 동시에 TRGT_MIG_CC_PT에는 레코드가 추가됩니다. 이게 바로 Migration이 실제로 일어났다는 신호입니다.



H03도 동일한 방식으로 수행하는데, 수행 후에는 TRGT_MIG_CC_PT에 금융상품 수만큼 데이터가 추가됩니다.

1차 Conversion 후 데이터 검증 (ECC vs S/4HANA)
ECC와 S/4HANA 간 데이터가 동일한지 확인하는 단계입니다. 여기서 대부분 놓치는 부분이, TR Migration 이전 단계인 1차 Conversion 검증과 TR Migration 이후 검증을 헷갈리시는 경우가 많다는 겁니다. 각각 확인 시점이 다릅니다.
FI Migration 이후 다음과 같이 Standard+CBO 테이블 기준 데이터가 정상적으로 이관되었는지 확인을 하는 것을 1차 Conversion 검증이라 하겠습니다.
그림처럼 TR 관련 주요 테이블을 Conversion 전 ECC에서 미리 건수를 점검하고, FI Migration 이후 점검을 진행합니다.

2차 TR Migration 후 데이터 검증
1차 Conversion 이관 데이터 점검 이후에는 TR Migration을 진행하게 되는데, TR Migration이 끝난 뒤에는 VTBFHAPO 데이터가 감소했는지를 확인합니다. 앞서 H01 실행 후 Accrual Data가 삭제된다고 말씀드린 것과 같은 맥락으로, 이 감소 여부가 곧 Migration이 정상적으로 반영됐는지를 보여주는 지표입니다.
그림을 보면 VTBFHAPO의 숫자가 57,290건 -> 42,332건으로 감소한 것을 볼 수 있습니다. 이것은 정상으로 H03 실행에 따른 발생/이연 흐름의 삭제가 주요 원인입니다.

정리하며
G단계는 1회, H단계는 회사코드별로 — 이 순서만 헷갈리지 않으면 TPM_MIGRATION 자체는 그렇게 어려운 작업은 아닙니다.
다만 설정값을 실행했을 때 발생할 수 있는 그 영향도에 대해 알지를 못해 처음 실행시 고민을 하게 되지요. 물론 실제로 손을 대다 보면 로그 하나하나, 테이블 값 하나하나 다 신경 쓰이는 게 사실이지만요. 분명 위에 내용이 프로젝트 수행하시는데 조금이라도 도움이 되실 거라 생각합니다.
다음 글에서는 TR Migration 이후 Standard Program 검증을 하면서 발생했던 S/4 HANA Conversion 후 외환거래에 매입/매도 부분이 안보인다면? 이슈에 대해 한번 정리해보겠습니다.외환 거래를 사용하는 고객사가 있다면 관심을 가지고 볼만한 이야기가 아닐까 생각됩니다.
참고 자료
이번 글을 쓰면서 참고했던 SAP 공식 문서와 커뮤니티 Q&A를 정리해둡니다. 저와 비슷한 상황을 겪으신 분들이라면 원문도 한 번씩 살펴보시길 권합니다.
TPM_MIGRATION 개요
- SAP Help Portal – Migration guide (TPM_MIGRATION 툴 소개)
- SAP Community Blog – Migration for the Transaction Manager
- SAP Help Portal – Business Partner Conversion and Treasury Migration during Upgrade to ECC 6.0
G01~H02 단계 트러블슈팅
- SAP Community Q&A – TPM_MIGRATION (Conversion Category 6, G01/G02/H01 단계 설명)
- SAP Community Q&A – Issue in TPM_Migration (G01, G02, H01, H02 실행 순서)
- SAP Community Q&A – TPM_MIGRATION has not been executed yet for MM, FX, Derivatives
H01 / TPM_AD822 에러
- SAP Community Q&A – TPM44 실행 시 TPM_AD822 에러 (Accrual/deferral data has not been converted)
- SAP Knowledge Base Article 3443740 – How TPM44 determines the item type: accrual or deferral
- SAP Community Q&A – TPM44 new accrual functionality for OTC deals (FIN_TRM_LR_FI_AN 활성화 관련)
