SAP 내부거래 대사 — 우리 장부와 상대 장부가 맞는가
관계사별 내부거래를 매출과 매입으로 갈라 모으고, 양쪽 장부가 맞는지 대사하는 화면입니다.
연결재무제표를 만들려면 그룹 안에서 주고받은 거래를 지워야 합니다. 그런데 지우려면 양쪽 금액이 같아야 합니다.
우리는 100을 매출로 잡았는데 상대는 98을 매입으로 잡았다면 2가 남습니다. 이 차이를 연결 단계에서 찾으면 이미 늦습니다. 표준 관계사 거래 구조를 그대로 이어받아 월 단위로 대사하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 관계사 — 거래 상대 법인(
vbund)과 명칭 - 계정유형 — 매출(AR) · 매입(AP) 구분(
koart) - 거래처 — 관계사에 대응하는 고객·공급업체 코드(
vencus) - 전표 — 전표번호(
belnr) · 라인(buzei) · 전기일 · 증빙일 - 회사코드 — 우리 쪽 법인(
bukrs)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 연결결산 |
| Namespace | zui5.icrecon |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 관계사별 대사 목록 |
| 화면 수 | 조회 화면 1개 |
| 데이터 | 내부거래 56건 |
| 성격 | 조회형(Read-Only) — 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 1종 둘러보기
회사코드·관계사·기간으로 조회하면 내부거래가 나옵니다 → 매출과 매입을 대조하고 → 차이가 난 관계사를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드를 고릅니다. 우리 쪽 법인입니다.
- 관계사로 특정 상대만 볼 수 있습니다.
- 기간을 지정합니다. 월 단위로 대사하는 것이 일반적입니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 매출 합계와 매입 합계를 관계사별로 비교합니다.
- 차이가 나면 전표 단위로 내려가 어느 건이 빠졌는지 찾습니다.
- 결과는 CSV 다운로드로 내려받아 관계사와 대조합니다.
대사 규칙
같은 거래를 양쪽에서 본 금액이 일치해야 합니다.
우리 쪽 매출(AR) ↔ 상대 쪽 매입(AP)
우리 쪽 매입(AP) ↔ 상대 쪽 매출(AR)
차이 = 우리 금액 − 상대 금액
차이 = 0 → 일치 — 연결에서 그대로 제거
차이 ≠ 0 → 원인 확인 — 기간 귀속 · 환율 · 누락
월 단위로 대사하는 이유
연결은 분기나 연 단위로 하지만 대사는 월마다 해야 합니다. 차이가 누적되면 어느 달에 생겼는지 찾는 데만 시간이 걸립니다. 월 단위로 맞춰 두면 연결 시점에는 확인만 하면 됩니다.
차이가 생기는 네 가지 이유
| 이유 | 상황 | 조치 |
|---|---|---|
| 기간 귀속 차이 | 출고와 입고 월이 다름 | 다음 달 자동 해소 |
| 환율 차이 | 해외 관계사와 환율이 다름 | 환산 기준 통일 |
| 전표 누락 | 한쪽만 전기됨 | 누락 측 전기 |
| 금액 불일치 | 단가나 수량 착오 | 거래 내역 대조 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 bukrs | 필수 | 우리 쪽 법인 |
관계사 vbund | 선택 | 거래 상대 법인 |
계정유형 koart | 선택 | AR 매출 / AP 매입 |
기간 budat | 필수 | 전기일 From~To |
거래처 vencus | 선택 | 고객 또는 공급업체 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
회사코드 bukrs · bukrsTx | 우리 쪽 법인 |
관계사 vbund · vbundTx | 거래 상대 법인 |
계정유형 koart · koartTx | 매출(AR) / 매입(AP) |
거래처 vencus · vencusTx | 대응 고객·공급업체 |
전표번호 belnr · 라인 buzei · 연도 gjahr | 거래 전표 |
증빙일 bldat · 전기일 budat | 날짜 정보 |
| 금액 · 통화 | 거래 금액 |
| 매출 합계 · 매입 합계 | 관계사별 집계 |
| 차이 | 양쪽 금액 차이. 0이 아니면 경고 색 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FBL5N · FBL1N | 개별항목 조회 | 관계사 기준으로 묶어 대사 |
FS10N | 계정 잔액 | 관계사별 잔액 확인 |
BSEG | 전표 라인 — 관계사(VBUND) | 조회 원천 |
T880 | 거래 상대 법인 마스터 | 관계사 명칭 |
KNA1 · LFA1 | 거래처 마스터 | 대응 코드 |
도입 시 확인이 필요한 부분
전표에 관계사 코드가 채워져 있어야 대사가 가능합니다. 거래처 마스터에 관계사를 지정해 두면 전기 시 자동으로 들어가지만, 설정이 빠진 거래처는 내부거래인데도 잡히지 않습니다. 관계사 거래처 목록과 마스터 설정을 먼저 맞춰야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCICRECON'
@EndUserText.label: '내부거래 대사 (Z)'
define view Z_C_INTERCOMPANY_RECON
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 t880 as Affiliate on Line.vbund = Affiliate.rcomp
{
key Line.bukrs, key Line.belnr, key Line.gjahr, key Line.buzei,
Line.vbund as Vbund,
Affiliate.name1 as VbundTx,
Line.koart,
coalesce( Line.kunnr, Line.lifnr ) as Vencus,
Header.bldat, Header.budat,
Line.dmbtr, Header.waers
// 매출·매입 합계와 차이는 관계사 단위로 집계하는 소비 뷰에서 계산
}
where Line.vbund <> ''
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 대사 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 대사 테이블 | sap.m.Table — 관계사 그룹, 소계 행 |
| 차이 표시 | sap.m.ObjectStatus — 일치 / 차이 발생 |
| 금액 | sap.m.ObjectNumber — 매출·매입 인접 배치 |
관계사별 소계를 넣은 이유
대사는 관계사 단위로 합니다. 전표를 아무리 나열해도 관계사별 합계가 없으면 결국 엑셀로 옮겨 합산하게 됩니다. 관계사가 바뀌는 지점마다 소계를 넣으면 그 자리에서 상대 장부와 대조할 수 있습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.icrecon) · ko 로케일 |
view/Main.view.xml | 조회조건과 대사 테이블 |
controller/Main.controller.js | 조회 · 관계사 집계 · 차이 계산 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
model/formatter.js | 금액 · 일자 · 차이 색 포맷터 |
localdata/icrecon.json | 내부거래 56건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 관계사별 매출 합계 = 라인 금액 합계 | 통과 |
| 관계사별 매입 합계 = 라인 금액 합계 | 통과 |
| 차이 = 매출 합계 − 매입 합계 | 통과 |
| 모든 라인에 관계사 코드 존재 | 통과 |
| 관계사·거래처 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 후 캡처 | 통과 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
관계사 코드가 안 들어간 거래는 어떻게 찾나요?
거래처 마스터에서 관계사가 지정되지 않은 그룹사 거래처를 찾습니다. 설정이 빠지면 내부거래인데도 일반 거래로 잡혀 연결에서 제거되지 않습니다.
기간 귀속 차이는 어떻게 처리하나요?
다음 달에 자동으로 해소되는 것이 보통입니다. 다만 결산 기준일을 넘나드는 건은 한쪽에서 미착이나 미청구로 조정해 맞춥니다.
해외 관계사는 환율 때문에 항상 차이가 나는데요?
환산 기준을 통일해야 합니다. 그룹 전체가 같은 환율을 쓰도록 정하거나, 외화 금액으로 대사하고 환산 차이는 별도 관리합니다.
SAP 표준 기능과 어떻게 이어지나요?
관계사 정보는 전표 라인에 표준 필드로 기록됩니다. 이 화면은 그 정보로 거래를 관계사별로 묶고 매출·매입을 대조해, 연결 전에 차이를 찾게 하는 확장입니다.