솔루션 홈
FBL3N · 자금

SAP 실현 환차손익 현황 — 결제되고 나서야 확정되는 손익

외화 채권·채무가 청산될 때 확정된 환차손익을 계정·통화별로 집계하고, 개별 전표까지 내려가는 화면입니다.

외화 거래는 돈이 실제로 오갈 때 손익이 확정됩니다. 청구할 때 환율과 받을 때 환율이 다르면 그 차이가 환차손익입니다.

결산 때 평가하는 미실현 손익과 달리 이건 되돌릴 수 없는 숫자입니다. 월별로 얼마나 실현되는지, 어느 통화에서 큰 건이 나오는지 봐야 합니다. 계정·통화별로 집계해 전표까지 내려가도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 4종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 환차손익 계정 — 외환차익(90851000) · 외환차손(90951000)
  • 계정 자동결정 — OB09 의 KDB/KDF 매핑
  • 환율 — 원거래 시점과 청산 시점(TCURR)
  • 전표 — 청산 전표와 원거래 전표
  • 통화 — 원거래 외화 통화
항목내용
기반 T-codeFBL3N · OB09 · OB08
업무 영역재무회계(FI) · 외환 관리
Namespacezui5.fxrealized
셸 구조DynamicPage + 조회조건 Panel + 집계 테이블(12열) + 상세 Dialog
데이터OData 미구현 — ModelMock 이 localdata JSON 을 fetch
인접 앱fxval 미실현 평가손익 · fxratechk 환율마스터 점검
UI 테마sap_horizon 단일 적용

실제 화면 4종 둘러보기

회사코드·회계연도·조회기간으로 조회하면 계정·통화별 집계가 나옵니다 → 차익과 차손, 순손익을 확인하고 → 행을 눌러 개별 전표로 내려갑니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

FBL3N — Main.view.xml
메인 화면 — 계정·통화별 집계
메인 화면 — 계정·통화별 집계 — 계정과목·손익구분·통화와 함께 건수·최소·최대·평균·합계가 표시되고 제목과 footer 에 차익 합계·차손 합계·순손익이 나옵니다.
FBL3N — 조회조건
우측 끝에 배치된 조회·초기화
우측 끝에 배치된 조회·초기화 — 버튼이 하단 Bar 가 아니라 조회조건 영역 안 오른쪽 끝에 있습니다. Select 는 변경 시, 최소금액은 Enter 시 즉시 재조회됩니다.
FBL3N — 손익구분 필터
차익만 / 차손만
차익만 / 차손만 — 손익구분으로 좁히면 해당 방향의 집계만 남습니다. 차익은 녹색, 차손은 빨강으로 구분됩니다.
FBL3N — 상세 Dialog
개별 전표와 환율 차이
개별 전표와 환율 차이 — 집계 행을 누르면 원거래 시점 환율과 청산 시점 환율, 그 차이로 발생한 손익이 전표 단위로 표시됩니다.

조작 방법

  1. 회사코드회계연도를 고릅니다.
  2. 조회기간을 시작월~종료월로 지정합니다. 시작이 종료보다 크면 오류가 납니다.
  3. 통화로 원거래 통화를 고릅니다. USD·EUR·JPY·CNY 입니다.
  4. 계정손익구분으로 차익·차손을 나눠 봅니다.
  5. 최소금액을 넣으면 그 이상인 전표만 집계됩니다. 큰 건만 볼 때 씁니다.
  6. 순손익을 확인합니다. 차익에서 차손을 뺀 값입니다.
  7. 집계 행을 누르면 개별 전표가 열립니다.

집계 기준

계정과 통화 조합으로 묶어 통계를 냅니다.

환차손익 = (청산 시점 환율 − 원거래 시점 환율) × 외화금액

집계 단위 = 계정 × 통화
  건수 · 최소금액 · 최대금액 · 평균금액 · 금액합계
  최초발생일 · 최종발생일 = 조회기간 내 전기일 최소·최대

순손익 = 차익 합계 − 차손 합계

최소금액 조건은 개별 전표 단위로 적용한 뒤 집계

최소·최대·평균을 함께 내는 이유

합계만 보면 큰 건 하나 때문인지 여러 건이 쌓인 것인지 알 수 없습니다. 평균 대비 최대값이 크게 벌어져 있으면 특정 거래 하나가 전체를 좌우한 것이고, 그 건을 먼저 확인해야 합니다.

환차손익 관련 앱 구분

구분내용성격
실현 손익 (이 앱)결제·청산 시점 확정되돌릴 수 없음
미실현 평가손익 (fxval)결산일 F.05 평가다음 기에 환입
환율마스터 점검 (fxratechk)TCURR 등록 정합성손익이 아닌 설정
순노출 (fxexposure)미청산 채권·채무 상계리스크 규모

조회조건

필드필수설명
회사코드 Bukrs필수1000 한국법인(KRW) · 2000 미국법인(USD)
회계연도 Gjahr필수2026
조회기간 MonatFrom~MonatTo필수1~8월. 시작>종료면 오류
통화 Waers선택전체 / USD / EUR / JPY / CNY
계정 Hkont선택90851000 외환차익 / 90951000 외환차손
손익구분선택전체 / 차익만 / 차손만
최소금액(이상)선택개별 전표 금액 기준 필터

결과 컬럼

메인 — 계정·통화별 집계 (12열)

컬럼의미
계정과목 · 계정명외환차익 / 외환차손
손익구분차익(녹색) / 차손(빨강)
통화원거래 외화 통화
건수해당 조합 전표 수
최소 · 최대 · 평균 · 합계금액 통계(현지통화)
최초발생일 · 최종발생일전기일 최소·최대
상세클릭 시 개별 전표

상세 Dialog — 개별 전표

컬럼의미
전표번호 · 전기일청산 전표
원거래 전표연결된 원거래
외화금액 · 통화거래 금액
원거래 환율 · 청산 환율두 시점 환율
환차손익 금액환율 차이 × 외화금액

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
FBL3NG/L 라인아이템환차손익 계정 조회 원천
OB09환차손익 계정 자동결정계정 매핑 근거
OB08 · TCURR환율 마스터두 시점 환율
BSEG · BKPF전표 라인과 헤더전표 상세
F.05외화 평가미실현 — 별도 앱

도입 시 확인이 필요한 부분

환차손익 계정이 회사마다 다릅니다. OB09 설정에서 계정별로 다른 차익·차손 계정이 매핑돼 있으면 조회 대상 계정도 그에 맞춰야 합니다. 계정 하나만 보고 있으면 다른 경로로 발생한 손익이 빠집니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCFXREALIZED'
@EndUserText.label: '실현 환차손익 집계 (Z)'
define view Z_C_FX_REALIZED
  as select from bseg as Line
    inner join      bkpf as Header   on Line.bukrs = Header.bukrs
                                   and Line.belnr = Header.belnr
                                   and Line.gjahr = Header.gjahr
    left outer join skat as AcctText on Line.hkont = AcctText.saknr
                                   and AcctText.spras = 'K'
{
  key Line.bukrs,
  key Line.gjahr,
  key Line.hkont as Account,
  key Header.waers as Currency,
      AcctText.txt50 as AccountText,
      Header.monat   as Period,
      count(*)       as DocCount,
      min( Line.dmbtr ) as MinAmount,
      max( Line.dmbtr ) as MaxAmount,
      sum( Line.dmbtr ) as TotalAmount,
      min( Header.budat ) as FirstDate,
      max( Header.budat ) as LastDate
      // 손익구분은 계정(90851000 차익 / 90951000 차손)으로 판정
}
where Line.hkont in ( '90851000', '90951000' )
group by Line.bukrs, Line.gjahr, Line.hkont, Header.waers,
         AcctText.txt50, Header.monat

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.f.DynamicPage + 조회조건 Panel + 집계 테이블
조회조건sap.m.Select · sap.m.Input · sap.m.CheckBox — 우측 끝에 조회·초기화
이벤트change · submit 핸들러로 조회 이력이 있으면 즉시 재조회
집계 테이블sap.ui.table.Table — 12열
손익구분sap.m.ObjectStatus — MessageType 값만 사용
요약제목·footer 에 차익·차손·순손익
상세sap.m.Dialog — 행 클릭으로도 열림

순손익을 footer 에 고정하는 이유

계정과 통화로 나뉜 집계를 훑다 보면 전체가 이익인지 손해인지 감이 사라집니다. 차익 합계와 차손 합계, 그 차이를 화면에 고정해 두면 세부를 보다가도 전체 그림으로 바로 돌아올 수 있습니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.fxrealized) · ko 로케일
view/Main.view.xmlDynamicPage · 조회조건 · 집계 테이블
view/DetailDialog.fragment.xml개별 전표 상세
controller/Main.controller.js조회 · 집계 · 순손익 산출
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 환율 · 손익 색 포맷터
i18n/i18n_ko.properties한국어 텍스트

검증 결과

검증 항목결과
금액합계 = 개별 전표 금액 합계 (전 조합)통과
평균금액 = 합계 ÷ 건수통과
순손익 = 차익 합계 − 차손 합계통과
손익구분이 계정과 정합통과
최소금액 필터가 전표 단위로 적용 후 집계통과
시작월 > 종료월이면 오류 메시지통과
화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처4/4
테마 런타임 확인sap_horizon

자주 묻는 질문

미실현 평가손익과 무엇이 다른가요?

실현은 결제가 끝나 확정된 손익이고 미실현은 결산일 시점 추정입니다. 미실현은 다음 기에 환입되지만 실현은 그대로 남습니다.

환차손익이 계속 한쪽으로 쏠리면요?

환율 추세와 거래 구조가 맞지 않는 것입니다. 수출이 많은데 계속 차손이면 헤지 전략을 검토할 시점입니다.

큰 건 하나만 빨리 찾으려면요?

최소금액에 값을 넣으면 그 이상인 전표만 집계됩니다. 평균과 최대값 차이가 큰 조합부터 상세로 내려가면 빠릅니다.

SAP 표준 기능과 어떻게 이어지나요?

환차손익 전기는 표준이 자동으로 처리합니다. 이 화면은 그 결과를 계정·통화로 묶고 통계와 드릴다운을 붙인 확장입니다.

환위험 관리, 지금 쓰는 SAP 위에서 확장해 보세요

실현 손익이 통화별로 보이면 헤지 판단의 근거가 쌓입니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

환차손익실현손익FBL3NOB09외환차익외환차손OpenUI5