솔루션 홈
일반회계

SAP 법인카드 처리현황 — 자동으로 들어온 건과 직접 넣는 건

카드사에서 수신한 사용내역과 직접 등록하는 내역을 한 목록에서 보되, 손대면 안 되는 건은 잠가 두는 화면입니다.

법인카드 사용내역은 두 경로로 들어옵니다. 카드사가 매일 밀어 넣는 건과 담당자가 직접 입력하는 건입니다.

연계되는 카드사는 보통 한 곳이고, 나머지 카드는 사용내역을 손으로 넣어야 합니다. 문제는 이 둘이 한 테이블에 섞이고, 여기에 이미 전표가 만들어진 건까지 더해진다는 점입니다. 카드사가 보낸 값을 고치면 다음 수신에 되돌아가고, 전표가 나간 건을 고치면 장부와 어긋납니다. 그래서 이 화면은 줄마다 왜 잠겼는지를 먼저 표시하고, 고칠 수 있는 건만 입력칸을 열어 둡니다.

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

  • 사용내역 — ZTFIA0020(법인카드 사용내역) 구조 그대로
  • 카드 목록 — ZTFIA0010(카드 마스터)의 상태 '정상' 카드만 제공
  • 권한 — ZTFIA0100(재무팀) 등록 여부로 전체/본인 카드 조회 분기
  • 잠금 기준 — BANK_CODE '012' IF 건, BELNR 가 채워진 건
항목내용
업무 영역재무회계(FI) · 법인카드 사용내역
Namespacezui5.cardproc
셸 구조조회조건 영역(우측 조회) + 편집 가능한 사용내역 목록
화면 수조회·편집 화면 1개
데이터사용내역 32건 (IF 16 · 수기 16) · 카드 9매
성격조회·등록형(CRUD) — IF 건과 전표 생성 건은 잠금
UI 테마sap_horizon 단일 적용

실제 화면 9종 둘러보기

조회하면 줄마다 잠금 사유가 보입니다 → 고칠 수 있는 건만 수정·등록하고 → 자릿수 점검을 거쳐 저장합니다.

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

Main.view.xml
사용내역 목록 — 잠금과 원천이 먼저
사용내역 목록 — 잠금과 원천이 먼저 — 변경 다음 칸이 잠금과 원천입니다. IF 수신 건인지 수기 등록 건인지, 왜 잠겼는지가 카드번호보다 앞에 놓입니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
금액 컬럼
승인금액·환율·공급가액·부가세
승인금액·환율·공급가액·부가세 — 국내 건은 승인금액이 공급가액과 부가세로 나뉘고, 해외 건은 현지 금액에 환율을 곱해 원화로 환산됩니다. 환가료는 카드사 IF 건에만 값이 있습니다.
가맹점 컬럼
가맹점 정보와 회계처리 상태
가맹점 정보와 회계처리 상태 — 국내 건은 사업자번호·상호·주소·업종이 채워지고 과세구분이 01입니다. 해외 건은 사업자번호가 없고 과세구분이 99로 들어갑니다.
IF 건만
카드구분 필터 — IF 건만 보기
카드구분 필터 — IF 건만 보기 — 연계 카드사 건만 추리면 전부 잠금 상태입니다. 입력칸이 모두 읽기 전용이라 값은 볼 수 있지만 바꿀 수 없습니다.
삭제 차단
IF 건 삭제 — 차단
IF 건 삭제 — 차단 — 잠긴 건을 지우려 하면 몇 건이 IF 건이고 몇 건이 전표 생성 건인지 나눠서 알려 주고 막습니다.
수정 가능 건
수기 · 미처리 — 입력칸이 열림
수기 · 미처리 — 입력칸이 열림 — 연계 대상이 아닌 카드이면서 아직 전표가 없는 건만 남기면 카드번호·승인번호·금액 칸이 모두 열립니다.
등록
등록 — 신규 사용내역
등록 — 신규 사용내역 — 새 라인은 연계 대상이 아닌 카드로 열리고 국내 기본값이 들어갑니다. 승인일자와 시각은 현재 시점으로 채워집니다.
해외 전환
해외 전환 — 기본값 자동 세팅
해외 전환 — 기본값 자동 세팅 — 해외로 바꾸면 거래구분이 매입으로, 과세구분이 99로 바뀌고 가맹점 사업자번호 칸이 잠깁니다. 통화와 환율도 국가에 맞게 들어갑니다.
저장 검증
저장 검증 — 승인번호 자릿수
저장 검증 — 승인번호 자릿수 — 국내 승인번호가 8 또는 10자리가 아니면 사양서 문구 그대로 안내하고 저장을 막습니다.

조작 방법

  1. 승인/매입일자를 확인합니다. 기본값은 최근 한 달입니다.
  2. 카드구분회계처리 라디오로 연계 건과 수기 건, 처리 여부를 갈라 봅니다.
  3. 목록에서 잠금 칸을 먼저 봅니다. IF 잠금과 전표 잠금은 대응 방법이 다릅니다.
  4. 등록으로 연계 대상이 아닌 카드의 사용내역을 추가합니다.
  5. 해외사용을 바꾸면 국가·통화·거래구분·과세구분이 자동으로 맞춰집니다.
  6. 저장 시 승인번호 자릿수와 필수값을 점검합니다. 국내는 8 또는 10자리입니다.

잠금·기본값·자릿수 규칙

잠금 판정과 국내·해외 기본값, 승인번호 자릿수가 이 화면의 뼈대입니다.

수정 가능 여부 (사양서)

  BANK_CODE = '012'  (연계 카드사 IF 수신 건)
     → 체크박스 및 모든 조회 필드 수정 불가

  BANK_CODE ≠ '012'
     BELNR 공란   → 체크박스 및 모든 필드 수정 가능
     BELNR 존재   → 체크박스 및 모든 필드 수정 불가

해외사용 여부에 따른 기본값

  FORE_USE = '1' 국내
     국가코드 KR · 통화 KRW · 거래구분 '01' 승인
     AQUI_WON = ACKAMOUNT
     가맹점 사업자번호·상호·주소·업종 입력 (과세구분 01)

  FORE_USE = '2' 해외
     거래구분 '03' 매입 · 과세구분 '99'
     가맹점 사업자번호 · 상호 · 주소 · 업종명 비활성
     원화환산 = 현지 액면금액 × 적용환율

승인/매입번호 자릿수
  국내 : 8 또는 10자리
     11자리 이상이면 저장 불가
     "승인번호 8 or 10자리를 수정하시거나 해외사용여부를 수정하세요."
  해외 : 22~23자리
항목산식 · 규칙
잠금 판정연계 카드사 IF 건이거나 전표가 생성된 건
조회 권한재무팀 등록 사용자는 전체, 그 외는 본인이 사용자·처리자인 카드만
국내 기본값국가 KR · 통화 KRW · 거래구분 01 · 원화환산 = 승인금액
해외 기본값거래구분 03 · 과세구분 99 · 가맹점 정보 비활성
승인번호 자릿수국내 8·10자리 / 해외 22~23자리
환가료·봉사료·할인연계 카드사 IF 건에만 존재하는 항목
원천 구분IF 수신 / 수기 등록

잠금 사유를 나눠서 보여 주는 이유

둘 다 '못 고침'이지만 대응이 다릅니다. IF 건은 카드사에 요청해야 하고, 전표 생성 건은 역분개부터 해야 합니다. 그냥 잠김이라고만 하면 담당자가 어디로 가야 할지 모릅니다. 삭제를 막을 때도 몇 건이 어느 사유인지 나눠서 알려 줍니다.

건별 상태 3종

같은 목록이지만 줄마다 할 수 있는 일이 다릅니다.

상태들어온 경로입력칸할 수 있는 일
IF 수신연계 카드사항상 잠금값 확인만 가능, 수정·삭제 불가
수기 · 미처리담당자 직접 등록열림등록·수정·삭제 모두 가능
수기 · 전표생성담당자 등록 후 회계처리잠금전표와 어긋나지 않도록 고정

세 상태가 목록에서 바로 갈리므로 고칠 수 있는 줄만 골라 작업하면 됩니다.

조회조건

필드필수설명
Company code필수변경 못함. 로그인 사용자 → 사번 → 사원 Vendor 순으로 기본값 결정
승인/매입(취소)일자필수기본값 현재일자 −1개월 ~ 현재일자
카드번호 · 승인번호선택카드 마스터 목록에서 선택
Fiscal Year · Document Number선택회계처리된 건을 전표로 추적
해외사용 여부필수전체 / 국내 / 해외
카드구분 · 회계처리선택연계/수기, 처리완료/미처리

결과 컬럼

컬럼의미 · 표시
변경 · 잠금 · 원천신규/수정 표시, 잠금 사유, IF/수기 구분
카드번호 · 카드사카드 마스터에서 선택
해외사용 · 거래구분국내/해외와 승인/매입 구분
승인/매입번호 · 승인번호 · 승인시간카드사 승인 정보
승인금액 · 통화 · 적용환율현지 금액과 환산 기준
공급가액 · 부가세 · 원화환산국내는 세액 분리, 해외는 환산액
환가료연계 카드사 IF 건에만 값 존재
가맹점 사업자번호·상호·주소·업종·과세구분매입공제 판단 근거
회계처리 · 전표번호전표 생성 여부와 전표 키

보조 기능

컬럼의미 · 표시
등록연계 대상이 아닌 카드로 신규 라인 추가
삭제잠긴 건이 섞이면 사유를 나눠 알리고 차단
저장필수값과 승인번호 자릿수를 점검한 뒤 반영

SAP 표준 기능 매핑

카드사 수신은 인터페이스가, 전표 생성은 표준이 담당합니다. 이 화면은 그 사이를 맡습니다.

표준역할이 화면에서의 확장
카드사 인터페이스사용내역 자동 수신IF 건을 화면에서 잠가 덮어쓰기 충돌을 막음
FB60 관점카드 비용 전표전표 생성 후에는 이 화면에서 잠김
USR21 · ADCP · LFB1사용자·사번·사원 Vendor회사코드 기본값 결정

운영 데이터 소스 매핑

항목SAP 원천비고
사용내역ZTFIA0020CRUD 대상 테이블
카드 마스터ZTFIA0010상태 '정상' 카드만 Search help 제공
재무팀ZTFIA0100전체 조회 권한 판정
사업장J_1BBRANCH사업장 정보
첨부SRGBTBRELGOS 첨부 관계

도입 시 확인이 필요한 부분

연계 카드사 코드가 회사마다 다르고 여러 곳일 수도 있습니다. 잠금 대상 카드사를 설정 테이블로 빼면 계약이 바뀌어도 프로그램을 고치지 않아도 됩니다. 재무팀 사용자 등록(ZTFIA0100)도 유지보수 뷰로 관리해야 인사이동 때 권한이 따라갑니다.

참고 CDS 뷰

사용내역을 조회할 때는 카드 마스터를 붙이고 잠금 사유를 계산한 뷰가 편합니다.

@AbapCatalog.sqlViewName: 'ZCCARDPROC'
@EndUserText.label: '법인카드 사용내역 (Z)'
define view Z_C_CARD_TRANSACTION
  as select from ztfia0020 as Usage
    left outer join ztfia0010 as Card on  Usage.bukrs    = Card.bukrs
                                      and Usage.card_num = Card.zcardno
    left outer join lfa1      as CardUser on Card.user = CardUser.lifnr
{
  key Usage.bukrs         as Bukrs,
  key Usage.card_num      as CardNo,
  key Usage.aqui_coll     as AcquireNo,
      Usage.ackdate       as ApprovalDate,
      Usage.ackno         as ApprovalNo,
      Usage.fore_use      as ForeignUse,
      Usage.purchaseflag  as TransactionType,
      Usage.ackamount     as ApprovalAmount,
      Usage.valueofsupply as SupplyValue,
      Usage.vat           as VatAmount,
      Usage.aqui_won      as AmountKrw,
      Usage.aqui_rate     as ExchangeRate,
      Usage.exch_comm     as ExchangeFee,
      Usage.merc_socno    as MerchantTaxNo,
      Usage.merc_name     as MerchantName,
      Usage.mccname       as MerchantCategory,
      Usage.bank_code     as CardCompany,
      Usage.origin        as DataOrigin,
      Usage.belnr         as AccountingDoc,
      CardUser.name1      as CardUserName,
      // 수정 가능 여부 — IF 건이거나 전표가 있으면 잠금
      case when Usage.bank_code = '012' then 'IF'
           when Usage.belnr <> '' then 'DOC'
           else '' end as LockReason
}

사용내역을 조회하거나 전표와 대조할 때 쓰는 참고용 설계입니다. 잠금 사유를 뷰에서 계산해 두면 화면과 보고서가 같은 기준을 씁니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 편집 가능한 사용내역 목록
조회조건sap.m.Input · DatePicker · RadioButtonGroup 3종
편집 목록sap.ui.table.Table — 변경·잠금·원천·카드번호 4컬럼 고정
조건부 잠금editable 을 카드사·전표번호에 바인딩
기본값 세팅해외사용 전환 시 국가·통화·거래구분·과세구분 자동 반영
자릿수 점검입력 즉시 안내 + 저장 시 차단
CSVBlob + UTF-8 BOM — 28개 항목

잠금 컬럼을 앞쪽에 고정한 이유

이 화면에서 가장 먼저 알아야 할 것은 '이 줄을 내가 고칠 수 있는가'입니다. 금액이나 가맹점을 확인한 뒤에야 잠긴 것을 알면 이미 시간을 쓴 뒤입니다. 변경·잠금·원천을 카드번호 앞에 고정해 두면 목록을 훑는 순간 갈립니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.cardproc) · ko 로케일 · sap_horizon
Component.js조회조건 모델 · 결과 모델 초기화
view/Main.view.xml조회화면 + 편집 가능한 사용내역 목록
controller/Main.controller.js조회 · 필터 3종 · 편집 · 등록/삭제 · 저장 · CSV
model/ModelMock.js권한 분기 · 잠금 판정 · 기본값 세팅 · 자릿수 점검 · 저장
model/formatter.js원천 · 잠금 · 금액 · 환율 · 회계처리 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스 — 사양서 메시지 원문 포함
localdata/cardproc.json사용내역 시뮬레이션 데이터

검증 결과

화면 구성에 쓴 데이터는 IF 수신분과 수기 등록분이 섞인 사용내역입니다.

데이터규모구성
사용내역32건IF 16 · 수기 16 · 해외 13
잠금 상태IF 16 · 전표 3수정 가능 13건
카드 · 카드사9매 · 4곳원화환산 44,870,465원
검증 항목결과
카드번호가 카드 마스터에 존재 · 카드사 일치통과
연계 카드사는 원천 IF, 그 외는 수기(MU)통과
국내는 거래구분 01, 해외는 03통과
국내 승인번호 8·10자리 · 해외 매입번호 22~23자리통과
국내는 국가 KR · 통화 KRW · 원화환산 = 승인금액통과
국내는 승인금액 = 공급가액 + 부가세 · 가맹점 정보 보유통과
해외는 가맹점 사업자번호 없음 · 과세구분 99 · 부가세 0통과
해외는 원화환산 = 현지금액 × 환율 · 달러환산 보유통과
환가료·봉사료·할인은 IF 건에만 존재통과
화면 렌더링 — 목록 → IF 잠금 → 등록 → 해외 전환 → 검증9/9

카드번호·가맹점·금액은 모두 검증용 데이터입니다.

자주 묻는 질문

연계 카드사 건은 왜 아예 못 고치나요?

카드사가 매일 다시 밀어 넣기 때문입니다. 화면에서 고쳐도 다음 수신에 되돌아가는데 담당자는 고쳤다고 믿게 됩니다. 값이 틀렸다면 카드사에 정정을 요청하거나, 회계 처리 단계에서 조정해야 합니다.

전표가 생긴 뒤에는 왜 잠기나요?

사용내역이 전표의 근거이기 때문입니다. 금액이나 가맹점을 뒤에 바꾸면 전표와 근거가 달라져 부가세 신고나 감사에서 설명할 수 없게 됩니다. 고쳐야 한다면 전표를 역분개한 뒤 다시 처리하는 순서가 맞습니다.

해외 건은 왜 가맹점 정보를 안 넣나요?

해외 가맹점은 국내 사업자번호가 없고 매입세액공제 대상도 아닙니다. 입력해도 쓰이지 않는 값이라 사양서에서 비활성으로 지정했습니다. 대신 과세구분을 99로 넣어 국내 건과 구분합니다.

승인번호 자릿수를 왜 따지나요?

국내 승인번호는 8 또는 10자리, 해외 매입번호는 22~23자리로 체계가 다릅니다. 자릿수가 어긋났다는 건 해외 건을 국내로 넣었거나 번호를 잘못 옮겨 적었다는 뜻입니다. 저장 전에 걸러 두면 나중에 카드사 원본과 대조할 때 헤매지 않습니다.

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

사용내역은 커스텀 테이블이고 카드 목록은 카드 마스터에서 가져옵니다. 여기서 정리한 내역이 비용 전표의 근거가 되고, 전표가 생기면 이 화면은 읽기 전용으로 바뀝니다. 같은 카드의 청구내역은 청구현황 화면에서 이어 봅니다.

법인카드 사용내역 관리, 지금 쓰는 SAP 위에서 확장해 보세요

어느 줄이 왜 잠겼는지 화면에서 갈리면 카드사 수신과 수기 입력이 서로 부딪히지 않습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

법인카드카드 사용내역ZTFIA0020승인번호해외사용매입공제OpenUI5