솔루션 홈
일반회계

SAP 대량전표 입력 — 엑셀 수십 건을 신호등으로 관리하기

엑셀 양식으로 올린 전표를 포맷·마스터·차대까지 미리 점검해 신호등으로 나누고, 통과한 건만 골라 전기하는 화면입니다.

전표 수십 건을 한 번에 올릴 때 가장 무서운 건 절반만 들어가는 상황입니다.

어디까지 전기됐는지 모른 채 다시 올리면 중복 전표가 생기고, 안 올리면 빠진 건을 찾아야 합니다. 그래서 이 화면은 올리는 단계와 전기하는 단계를 완전히 분리합니다. 업로드할 때 포맷·마스터·차대 균형까지 미리 점검해 전표마다 신호등을 달고, 전기는 담당자가 고른 건만 실행합니다. 에러가 섞인 채로는 아예 실행되지 않습니다.

SAP 표준 구조를 그대로 이어받은 부분

  • 전표 구조 — BKPF 헤더 + 라인의 전기키·계정·금액 그대로
  • 전기키 — TBSL 의 차대 구분과 계정유형을 그대로 사용
  • 전기 처리 — ZFI_DOCUMENT_POSTING 호출, BDC 모드는 화면에서 지정
  • 양식 배포 — SMW0 에 저장된 업로드 양식을 내려받아 사용
항목내용
업무 영역재무회계(FI-GL) · 전표 일괄 전기
Namespacezui5.massdoc
셸 구조실행조건 영역(우측 전표전기) + 전표 목록 + 라인 상세, 에러 필터
화면 수조회·실행 화면 1개 + 전표 라인
데이터전표 23건 · 라인 56건 (정상 16 · 에러 7)
성격등록형(Batch Input) — 전기는 표준 펑션이 수행
UI 테마sap_horizon 단일 적용

실제 화면 10종 둘러보기

양식을 업로드하면 전표마다 신호등이 붙습니다 → 전기대상 선택으로 통과한 건만 고르고 → 전표전기로 한 번에 처리합니다.

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

Main.view.xml
초기 화면 — 파일과 BDC 모드
초기 화면 — 파일과 BDC 모드 — 파일 경로와 BDC 모드를 지정합니다. 초기값은 사양서대로 background processing(N)이며, 오류를 눈으로 확인하려면 display errors only(E)로 바꿉니다.
업로드 점검
양식 업로드 — 신호등 부여
양식 업로드 — 신호등 부여 — 올리는 즉시 전표마다 점검이 돌고 작업전(노랑)과 에러(빨강)로 나뉩니다. 이 단계에서는 전기하지 않습니다.
전표 라인
전표 선택 — 라인 상세
전표 선택 — 라인 상세 — 전표를 고르면 전기키·차대·계정/거래처·금액·적요가 열립니다. 차변과 대변 합계를 함께 보여 줘 균형이 맞는지 바로 확인됩니다.
선택 없이 전기
선택 없이 전기 — 차단
선택 없이 전기 — 차단 — 선택된 라인이 없으면 에러로 막습니다. 사양서에 명시된 처리입니다.
에러 목록
에러만 보기 — 반려된 전표
에러만 보기 — 반려된 전표 — 점검에서 걸린 전표만 남깁니다. 메시지에 오류 코드와 사유가 함께 표시됩니다.
에러 포함 선택
에러 포함 선택 — 전기 차단
에러 포함 선택 — 전기 차단 — 에러 전표가 섞이면 몇 번 전표가 문제인지 알려 주고 실행을 막습니다. 일부만 들어가는 상황을 원천적으로 막는 장치입니다.
전기대상 선택
전기대상 선택 — 작업전만
전기대상 선택 — 작업전만 — 버튼 하나로 전기 가능한 전표만 골라 줍니다. 에러 전표는 선택에서 빠집니다.
전기 확인
전기 확인 — 건수·금액·BDC 모드
전기 확인 — 건수·금액·BDC 모드 — 사양서대로 전기 여부를 팝업으로 한 번 더 확인합니다. 어떤 모드로 몇 건, 얼마가 들어가는지 보여 줍니다.
전기 결과
전기 완료 — 전표번호 반환
전기 완료 — 전표번호 반환 — 생성된 전표번호가 메시지로 돌아옵니다. 펑션명과 적용된 BDC 모드도 함께 남습니다.
최종 상태
신호등 갱신 — 생성완료
신호등 갱신 — 생성완료 — 전기된 전표는 초록으로 바뀌고 전표번호가 채워집니다. 에러 전표는 빨강으로 남아 다음 작업 대상이 됩니다.

조작 방법

  1. 엑셀 다운로드로 양식을 받아 전표를 작성합니다. 한 전표에 여러 라인을 이어 씁니다.
  2. 엑셀양식 업로드로 파일을 올리면 즉시 점검이 돌고 전표마다 신호등이 붙습니다.
  3. BDC 모드를 고릅니다. 평소에는 background processing(N), 원인을 봐야 할 때는 display errors only(E)입니다.
  4. 전표를 선택하면 아래에 라인 상세가 열립니다. 차변·대변 합계로 균형을 확인합니다.
  5. 전기대상 선택으로 작업전 전표만 고른 뒤 전표전기를 누릅니다. 확인 팝업을 거쳐 실행됩니다.
  6. 에러만 보기로 반려된 전표를 추려 메시지대로 고친 뒤 다시 올립니다.

업로드 점검과 전기 규칙

점검은 업로드 시점에 몰아서 하고, 전기 단계에서는 통과한 건만 다룹니다.

업로드 단계 (신호등 부여)
  필수필드  회사코드 · 증빙일 · 전표유형 · 통화키 · 전기키 · 계정 · 금액
  포맷      날짜 8자리 · 금액 숫자 변환 · 소문자는 대문자로 변환
  마스터    공급업체 → LFA1,  고객 → KNA1,  전기키 → TBSL
  차대      차변 합계 = 대변 합계
     → 통과 : YELLOW(작업전)     실패 : RED(에러)

전기 단계
  선택 없음        → 에러 처리
  에러 전표 포함   → 에러 처리 (번호를 알려 줌)
  확인 팝업 후     → ZFI_DOCUMENT_POSTING (화면에서 고른 BDC 모드)
     → 성공 : GREEN(생성완료) + 전표번호     실패 : RED
항목산식 · 규칙
E01 필수필드회사코드·증빙일·전표유형·통화키·전기키·계정·금액 중 누락
E02 날짜 포맷증빙일·전기일이 8자리 날짜가 아님
E03 금액 포맷숫자로 변환되지 않는 금액 (예: 천단위 구분·단위 표기)
E04 전기키TBSL 에 정의되지 않은 전기키
E05 공급업체LFA1 에 없는 공급업체 코드
E06 고객KNA1 에 없는 고객 코드
E07 차대 균형차변 합계와 대변 합계 불일치

점검을 업로드 시점에 몰아 둔 이유

전기 단계에서 실패하면 이미 일부가 들어간 상태일 수 있습니다. 업로드할 때 전부 점검해 두면 전기 버튼을 누르는 시점에는 통과한 건만 남아 있어 결과가 예측 가능합니다. 담당자도 무엇을 고쳐야 하는지 미리 알 수 있어 양식을 한 번에 정리할 수 있습니다.

신호등 3단계

사양서의 신호등 구분을 그대로 썼습니다. 전표마다 지금 어느 단계인지가 색으로 드러납니다.

신호등상태의미다음 작업
YELLOW작업전점검을 통과해 전기를 기다리는 상태전기대상 선택으로 한 번에 고를 수 있음
RED에러점검에서 걸렸거나 전기에 실패한 상태메시지의 코드·사유를 보고 양식 수정
GREEN생성완료전기가 끝나 전표번호를 받은 상태전표번호로 표준 조회 화면에서 확인

업로드와 전기를 나눴기 때문에 노랑에서 초록으로 가는 단계를 담당자가 직접 통제합니다.

실행 조건

필드필수설명
파일이름필수작성한 업로드 양식 경로
BDC 모드필수N background / A display all / E display errors only. 초기값 N
전기대상 선택보조작업전 전표만 한 번에 선택
에러만 보기보조반려된 전표만 추려 보기

결과 컬럼

컬럼의미 · 표시
상태작업전 / 생성완료 / 에러 — 사양서의 YELLOW·GREEN·RED
번호양식의 전표 순번. 에러 전표를 찾는 기준
회사코드 · 증빙일 · 전기일전표 헤더 필수 항목
유형 · 통화 · 환율전표유형과 통화. 외화 건은 환율 표시
금액 · 라인차변 합계와 전표의 라인 수
헤더 텍스트전표 헤더 텍스트
전표번호전기 성공 시 채워지는 SAP 전표번호
Result message성공 내용 또는 오류 코드와 사유

전표 라인

컬럼의미 · 표시
항목 · 전기키 · 차대라인 키와 TBSL 전기키, 차/대 구분
계정 / 거래처G/L 라인은 계정, BP 라인은 공급업체·고객
금액 · 코스트센터 · 적요라인 금액과 원가 귀속처, 설명

SAP 표준 기능 매핑

전기는 표준 펑션이 수행합니다. 이 화면은 앞단에서 걸러 내고 뒷단에서 결과를 신호등으로 정리합니다.

표준역할이 화면에서의 확장
ZFI_DOCUMENT_POSTING전표 전기 펑션업로드한 전표를 건별로 넘겨 일괄 전기
FB01 관점전표 입력화면 입력 대신 양식으로 대체, 전기 자체는 표준 로직
TBSL전기키차대 구분과 계정유형 검증 기준
SKB1 · T001계정·회사코드 마스터계정 유효성과 회사코드 확인
SMW0양식 저장소업로드 양식을 로컬로 배포
FB03 관점전표 조회반환된 전표번호로 결과 확인

운영 데이터 소스 매핑

항목SAP 원천비고
전표 헤더BKPF회사코드 · 증빙일 · 전기일 · 유형 · 통화 · 환율 · 헤더텍스트
전표 라인전기키 · 계정 · 금액TBSL 로 차대와 계정유형 판정
공급업체 · 고객LFA1 · KNA1업로드 시 존재 여부 확인
전기 처리ZFI_DOCUMENT_POSTINGBDC 모드는 화면 지정값 사용
양식SMW0엑셀 다운로드로 배포

도입 시 확인이 필요한 부분

전기 펑션이 받는 필드 구성과 필수 여부는 회사 설정에 따라 달라집니다. 필드상태그룹에 따라 코스트센터나 세금코드가 필수가 되는 계정이 있어, 업로드 점검에 그 규칙을 함께 반영하면 전기 실패를 더 줄일 수 있습니다. 전표유형별 번호범위와 전기기간 열림 여부도 사전 확인 대상입니다.

참고 CDS 뷰

전기 결과를 되짚을 때는 전표 헤더와 라인에 전기키 정보를 붙인 뷰가 편합니다.

@AbapCatalog.sqlViewName: 'ZCMASSDOC'
@EndUserText.label: '대량전표 전기 결과 (Z)'
define view Z_C_MASS_DOC_RESULT
  as select from bkpf as Header
    inner join      bseg as Line on  Header.bukrs = Line.bukrs
                                 and Header.belnr = Line.belnr
                                 and Header.gjahr = Line.gjahr
    left outer join tbsl as PostKey on Line.bschl = PostKey.bschl
{
  key Header.bukrs   as Bukrs,
  key Header.belnr   as Belnr,
  key Header.gjahr   as Gjahr,
  key Line.buzei     as Buzei,
      Header.bldat   as DocDate,
      Header.budat   as PostingDate,
      Header.blart   as DocType,
      Header.waers   as Waers,
      Header.kursf   as ExchRate,
      Header.bktxt   as HeaderText,
      Header.usnam   as CreatedBy,
      Line.bschl     as PostingKey,
      PostKey.koart  as AccountType,
      Line.shkzg     as DebitCredit,
      Line.hkont     as GlAccount,
      Line.lifnr     as Vendor,
      Line.kunnr     as Customer,
      Line.wrbtr     as Amount,
      Line.kostl     as CostCenter,
      Line.sgtxt     as ItemText
}

전기 결과를 확인하거나 업로드 이력을 되짚을 때 쓰는 참고용 설계입니다. 전기는 표준 펑션이 담당합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 실행조건 영역 · 전표 목록 · 라인 상세
실행조건sap.m.Input · sap.m.ComboBox — 우측 끝에 전표전기
전표 목록sap.ui.table.Table — 다중선택, 상태·번호·회사코드 3컬럼 고정
신호등sap.m.ObjectStatus + 아이콘 · RowSettings.highlight
라인 상세전표 선택 시 cellClick 으로 라인 표시
선택 보조전기대상 선택 버튼 — 작업전 상태만 addSelectionInterval
CSVBlob + UTF-8 BOM — 양식 · 결과 2종

전표와 라인을 두 단으로 나눈 이유

목록에 라인까지 펼치면 전표 수십 건이 수백 줄이 되어 신호등이 묻힙니다. 위에는 전표 단위로 상태와 금액만 보여 주고, 확인이 필요한 전표를 고르면 아래에 라인이 열리게 했습니다. 차대 합계도 라인 영역에서 함께 보여 줘 균형이 깨진 전표를 바로 짚을 수 있습니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.massdoc) · ko 로케일 · sap_horizon
Component.js실행조건 모델 · 결과 모델 초기화
view/Main.view.xml실행조건 + 전표 목록 + 라인 상세
controller/Main.controller.js양식 다운로드 · 업로드 점검 · 선택 · 전기 · 에러 필터 · CSV
model/ModelMock.js업로드 점검 7종 · 신호등 부여 · 전기 시뮬레이션
model/formatter.js신호등 · 금액 · 일자 · 환율 · 차대 · 계정/거래처 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스 — 오류 메시지 포함
localdata/massdoc.json업로드 양식 샘플 (정상·에러 혼재)

검증 결과

화면 구성에 쓴 데이터는 정상 전표와 점검에 걸리는 전표를 섞어 만든 업로드 양식입니다.

데이터규모구성
업로드 전표23건매입송장 · 고객청구 · 외화지급 · 일반대체 (정상 16 · 에러 7)
전표 라인56건G/L · 공급업체 · 고객 라인 혼재
점검 규칙7종필수필드 · 날짜 · 금액 · 전기키 · 공급업체 · 고객 · 차대균형
검증 항목결과
모든 전표에 라인 존재 · 헤더 라인수와 일치통과
정상 전표는 차변 합계 = 대변 합계통과
정상 전표는 필수필드 보유 · 날짜 8자리통과
전표유형·통화·환율이 등록 목록과 일치통과
전기키가 TBSL 에 정의 · 차대·계정유형 일치통과
G/L 라인은 계정, BP 라인은 파트너 보유통과
공급업체는 LFA1, 고객은 KNA1 에 존재통과
E01~E07 각 에러가 실제 위반 조건과 일치통과
번호 연속·중복 없음 · BDC 모드 3종통과
화면 렌더링 — 업로드 → 라인 → 차단 2종 → 선택 → 전기10/10

전표 금액·거래처는 모두 검증용 데이터입니다.

자주 묻는 질문

에러가 섞이면 통과한 건까지 막는 이유는?

사양서에 명시된 처리이기도 하고, 실무에서도 그 편이 안전합니다. 일부만 전기되면 어디까지 들어갔는지 확인하는 데 시간이 더 듭니다. 에러를 먼저 고쳐 전부 통과시킨 뒤 한 번에 전기하는 흐름이 결과적으로 빠릅니다. 급하면 [전기대상 선택]으로 작업전 건만 골라 먼저 처리할 수 있습니다.

업로드할 때 차대 균형까지 보는 이유는?

전기 단계에서 걸리면 펑션 호출이 실패하면서 원인을 찾기 어렵습니다. 업로드 시점에 합계를 맞춰 보면 어느 전표의 차변과 대변이 얼마나 벌어졌는지 라인 상세에서 바로 확인됩니다. 양식 작성 단계의 실수는 여기서 대부분 걸립니다.

BDC 모드는 언제 바꾸나요?

평소에는 background processing(N)으로 화면 없이 처리합니다. 전기가 계속 실패하는데 메시지만으로 원인을 알기 어려울 때 display errors only(E)로 바꾸면 실패한 화면이 표시되어 어떤 필드에서 막혔는지 볼 수 있습니다.

금액 포맷 오류는 어떤 경우인가요?

엑셀에서 천단위 구분이나 '원' 같은 단위가 붙은 채로 저장된 경우입니다. 숫자로 변환되지 않아 전기 시 0원으로 들어가거나 실패합니다. 업로드 시점에 변환을 시도하고 실패하면 반려합니다.

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

전기 자체는 ZFI_DOCUMENT_POSTING 이 수행하고 결과는 BKPF·BSEG 표준 구조에 그대로 남습니다. 이 화면은 그 앞단에서 양식을 점검해 통과한 건만 넘기고, 뒷단에서 전표번호와 메시지를 모아 신호등으로 보여 주는 역할을 합니다.

대량전표 전기, 지금 쓰는 SAP 위에서 확장해 보세요

올리기 전에 걸러 내면 절반만 들어가는 사고가 사라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

대량전표전표 업로드BDC전기키TBSLFIOpenUI5