솔루션 홈
일반회계

SAP 법인카드 마스터 — 자동 연계와 수기 관리를 한 화면에서

카드사에서 매일 넘어오는 카드와 직접 등록하는 카드를 한 목록에서 관리하면서, 자동 연계분은 손대면 안 되는 항목을 막아 두는 화면입니다.

법인카드 마스터는 두 갈래에서 들어옵니다. 카드사가 매일 아침 자동으로 밀어 넣는 카드와, 담당자가 직접 등록하는 카드입니다.

문제는 이 둘이 한 테이블에 섞여 있다는 점입니다. 자동으로 들어온 카드의 유효기간이나 한도를 화면에서 고쳐 봐야 다음 날 아침이면 카드사 값으로 되돌아갑니다. 고쳤다고 믿고 있다가 나중에 어긋난 것을 발견하게 됩니다. 그래서 이 화면은 어느 카드가 어디서 왔는지 먼저 표시하고, 자동 연계분은 카드사에서 주지 않는 항목(사용자·처리자·반납예정일)만 열어 둡니다. 등록과 삭제도 수기 카드에만 허용합니다.

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

  • 마스터 구조 — ZTFIA0010(법인카드 마스터) 필드 그대로
  • 사용자·처리자 — 사원 Vendor(LFA1) 코드로 연결
  • 회사코드 기본값 — USR21ADCPLFB1 순으로 결정
  • 자동 연계 — 카드사 인터페이스가 매일 07:00 갱신하는 항목은 화면에서 잠금
항목내용
업무 영역재무회계(FI) · 법인카드 마스터
Namespacezui5.cardmaster
셸 구조조회조건 영역(우측 조회) + 편집 가능한 카드 목록, 등록·삭제·저장
화면 수조회·편집 화면 1개
데이터카드 18매 (자동연계 8 · 수기 10) · 사원 7명
성격등록·수정형(CRU) — 자동 연계분은 일부 필드만
UI 테마sap_horizon 단일 적용

실제 화면 7종 둘러보기

조회하면 관리구분이 먼저 보입니다 → 연계 카드는 사용자·처리자만 고치고 → 수기 카드는 등록·삭제까지 합니다.

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

Main.view.xml
카드 목록 — 관리구분이 먼저
카드 목록 — 관리구분이 먼저 — 상태 다음 칸이 관리구분입니다. 자동연계 카드는 카드번호·한도금액 같은 입력칸이 잠겨 있고, 수기 카드는 그대로 고칠 수 있습니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
결제 정보
유효기간·상태·결제 정보
유효기간·상태·결제 정보 — 카드상태는 정상·정지·해지를 색으로 구분하고, 해지 카드에만 해지일자가 붙습니다. 결제일·계좌·은행은 카드사가 주는 값이라 자동연계분은 읽기 전용입니다.
사용자와 처리자
카드 사용자와 처리자 1~4
카드 사용자와 처리자 1~4 — 카드사에서 주지 않는 항목이라 자동연계 카드도 여기는 수정할 수 있습니다. 처리자는 최대 4명까지 두고, 3·4번은 요약해 보여 줍니다.
삭제 차단
자동연계 카드 삭제 — 차단
자동연계 카드 삭제 — 차단 — 카드사에서 넘어온 카드를 지우려 하면 몇 매가 해당하는지 알려 주고 막습니다. 지워도 다음 갱신에 다시 들어오기 때문입니다.
등록
등록 — 수기 카드사로 시작
등록 — 수기 카드사로 시작 — 새 라인은 자동연계가 아닌 카드사로 열립니다. 카드사 목록에서 연계 카드사를 고르면 되돌리고 안내합니다.
저장 검증
저장 검증 — 필수값 확인
저장 검증 — 필수값 확인 — 카드번호·사용자·한도금액이 비면 내역키를 알려 주고 저장을 막습니다.
카드사 필터
카드사로 좁혀 보기
카드사로 좁혀 보기 — 카드사를 고르면 그 카드만 남습니다. 카드번호·사용자·처리자 조건과 함께 쓸 수 있고, 처리자 조건은 1~4번 어디에 있든 걸립니다.

조작 방법

  1. 회사코드는 고정입니다. 카드번호·카드사·사용자·처리자로 범위를 좁혀 조회합니다.
  2. 목록에서 관리구분을 먼저 봅니다. 자동연계 카드는 카드사에서 주는 항목이 잠겨 있습니다.
  3. 카드 사용자와 처리자는 연계 카드도 수정할 수 있습니다. 인사이동이 있을 때 여기서 정리합니다.
  4. 등록으로 수기 카드를 추가합니다. 카드번호·사용자·한도금액이 필수입니다.
  5. 삭제는 수기 카드에만 적용됩니다. 연계 카드가 섞이면 차단됩니다.
  6. 저장으로 변경분을 한 번에 반영합니다. 저장 시 입력일시가 갱신됩니다.

편집 제한 규칙

연계 카드는 카드사가 주는 항목을 잠그고, 회사가 정하는 항목만 열어 둡니다.

관리구분에 따른 편집 범위

  자동연계 (현대카드)  매일 07:00 카드사 인터페이스로 갱신
     수정 가능 : 카드사(Vendor No) · 카드 사용자 · 처리자 1~4 · 반납예정일
     수정 불가 : 카드번호 · 유효기간 · 카드상태 · 해지·발급일자
                 결제일 · 결제계좌 · 결제은행 · 한도금액
     등록 불가 · 삭제 불가

  수기 (그 외 카드사)
     모든 항목 수정 가능 · 등록 · 삭제 허용
항목산식 · 규칙
관리구분 판정카드사 코드가 자동 연계 대상이면 연계, 아니면 수기
편집 잠금연계 카드는 카드사에서 주는 항목의 입력칸을 읽기 전용으로
등록 제한신규 라인은 수기 카드사로 열리고, 연계 카드사 선택 시 되돌림
삭제 제한연계 카드가 선택에 섞이면 몇 매인지 알리고 차단
필수값카드번호 · 카드 사용자 · 한도금액
처리자최대 4명 · 사용자와 같으면 안내

관리구분을 첫 화면에 둔 이유

이 화면에서 가장 먼저 알아야 할 것은 '이 카드를 내가 고칠 수 있는가'입니다. 카드번호나 한도를 보고 나서야 잠긴 것을 알면 이미 시간을 쓴 뒤입니다. 상태 바로 옆에 관리구분을 두면 목록을 훑는 순간 어느 카드가 연계분인지 갈립니다.

관리구분 2종

카드가 어디서 들어왔는지에 따라 화면에서 할 수 있는 일이 달라집니다.

관리구분출처갱신 주기화면에서 하는 일
자동연계카드사 인터페이스매일 07:00카드번호·한도·결제정보는 카드사 값 유지, 사용자·처리자만 관리
수기담당자 직접 등록수시카드사에서 연계되지 않는 카드를 직접 등록·수정·삭제

구분이 목록에 드러나 있어 카드사 갱신과 수기 수정이 서로 덮어쓰는 일이 없습니다.

조회조건

필드필수설명
회사코드필수변경 못함. 로그인 사용자 → 사번 → 사원 Vendor 순으로 기본값 결정
카드번호선택부분 입력 가능
카드사선택자동연계·수기 카드사 모두
카드 사용자선택사원 목록에서 선택
카드 처리자선택처리자 1~4 중 어디에 있든 검색

결과 컬럼

컬럼의미 · 표시
변경 · 관리구분신규/수정 표시와 자동연계/수기 구분
카드번호 · 카드사 · 종류카드 식별 정보와 개인/공용 구분
유효기간 · 카드상태 · 해지일자 · 발급일자카드 생애주기
결제일 · 결제계좌 · 결제은행출금 정보
한도금액카드 한도
카드 사용자 · 처리자 1~4사원 Vendor 로 연결. 연계 카드도 수정 가능
반납예정일개인카드 반납 예정 시점
내역키 · 입력일시마스터 키와 최종 변경 시각

보조 기능

컬럼의미 · 표시
등록수기 카드사로 신규 라인 추가
삭제선택 카드 삭제 — 자동연계 카드는 차단
저장변경분을 마스터에 반영, 입력일시 갱신

SAP 표준 기능 매핑

카드사 연계는 인터페이스가 담당합니다. 이 화면은 회사가 관리하는 항목만 책임집니다.

표준역할이 화면에서의 확장
카드사 인터페이스카드 마스터 자동 갱신연계분을 화면에서 잠가 덮어쓰기 충돌을 막음
LFA1 · LFB1사원 Vendor 마스터사용자·처리자 연결과 회사코드 기본값
USR21 · ADCP사용자·사번로그인 사용자로 회사코드 결정
FB60 관점카드 비용 전표사용자·처리자 정보로 비용 귀속 판단

운영 데이터 소스 매핑

항목SAP 원천비고
카드 마스터ZTFIA0010CRU 대상 테이블
카드사ZCARDCODE자동 연계 여부를 가르는 기준
사용자·처리자LFA1-LIFNR사원 Vendor 코드
회사코드 기본값USR21ADCPLFB1로그인 사용자 → 사번 → 사원 Vendor
권한FI 모듈 공통 권한사양서 권한 점검 요구사항

도입 시 확인이 필요한 부분

자동 연계 대상 카드사와 갱신 주기는 계약에 따라 다릅니다. 연계 카드사가 여러 곳이면 카드사 코드별로 잠금 대상을 지정할 수 있게 설정 테이블로 빼는 편이 낫습니다. 사원 Vendor 채번 규칙과 퇴사자 처리(사용자 공란 허용 여부)도 함께 정해야 합니다.

참고 CDS 뷰

카드 마스터를 청구내역과 연결할 때는 사용자·처리자 명칭을 붙인 뷰가 편합니다.

@AbapCatalog.sqlViewName: 'ZCCARDMST'
@EndUserText.label: '법인카드 마스터 (Z)'
define view Z_C_CORPORATE_CARD
  as select from ztfia0010 as Card
    left outer join lfa1 as CardUser on Card.user  = CardUser.lifnr
    left outer join lfa1 as Proc1    on Card.user1 = Proc1.lifnr
    left outer join lfb1 as UserCc   on CardUser.lifnr = UserCc.lifnr
                                    and Card.bukrs     = UserCc.bukrs
{
  key Card.bukrs        as Bukrs,
  key Card.zcardno      as CardNo,
      Card.zcardcode    as CardCompany,
      Card.cardprid     as ValidUntil,
      Card.cardstat     as CardStatus,
      Card.tmndate      as TerminationDate,
      Card.issuedate    as IssueDate,
      Card.settdate     as SettlementDay,
      Card.settnumb     as SettlementAccount,
      Card.settbank     as SettlementBank,
      Card.limit_amt    as CreditLimit,
      Card.user         as CardUserId,
      CardUser.name1    as CardUserName,
      Card.user1        as Processor1,
      Proc1.name1       as Processor1Name,
      Card.exp_date     as ReturnDueDate,
      // 자동 연계 카드 여부 — 편집 제한의 기준
      case when Card.zcardcode = '10' then 'X' else '' end as IsAutoLinked
}

카드 마스터를 조회하거나 청구내역과 연결할 때 쓰는 참고용 설계입니다. 자동 연계 카드의 갱신은 인터페이스가 담당합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 편집 가능한 카드 목록
조회조건sap.m.Input · sap.m.ComboBox — 우측 끝에 조회
편집 목록sap.ui.table.Table — 셀에 Input · ComboBox · DatePicker
조건부 잠금editable 을 관리구분에 바인딩해 연계 카드 입력칸을 읽기 전용으로
상태 표시sap.m.ObjectStatus · RowSettings.highlight — 신규·수정·해지
변경 추적라인별 isNew · isDirty 플래그와 툴바 미저장 표시
CSVBlob + UTF-8 BOM

입력칸을 잠그되 숨기지 않은 이유

값 자체는 봐야 합니다. 한도가 얼마인지, 결제일이 언제인지는 연계 카드도 확인 대상입니다. 숨기면 다른 화면을 찾아가야 하므로, 입력칸은 그대로 두고 읽기 전용으로만 바꿨습니다. 관리구분 표시와 함께 보면 왜 잠겼는지도 바로 이해됩니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.cardmaster) · ko 로케일 · sap_horizon
Component.js조회조건 모델 · 결과 모델 초기화
view/Main.view.xml조회화면 + 편집 가능한 카드 목록
controller/Main.controller.js조회 · 편집 · 등록/삭제 제한 · 저장 · CSV
model/ModelMock.jslocaldata JSON 읽기 · 편집 가능 필드 판정 · 저장 시뮬레이션
model/formatter.js관리구분 · 카드상태 · 처리자 · 금액 · 일자 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스 — 제한 안내 메시지 포함
localdata/cardmaster.json카드 마스터 시뮬레이션 데이터

검증 결과

화면 구성에 쓴 데이터는 자동연계 카드와 수기 카드를 섞은 마스터입니다.

데이터규모구성
카드 마스터18매자동연계 8 · 수기 10 (카드사 4곳)
카드 종류개인 14 · 공용 4상태 정상 15 · 해지 2
한도 · 사원551,000,000원사용자·처리자 연결 사원 7명
검증 항목결과
카드사가 정의 목록에 존재 · 자동연계 여부 일치통과
카드 종류·상태가 정의 목록과 일치통과
해지 카드만 해지일자 보유통과
유효기간·해지일자가 발급일자 이후통과
결제은행 등록 확인 · 결제일 1~31 · 한도 > 0통과
카드 사용자가 사원 목록에 존재 · 부서 일치통과
처리자 최대 4명 · 사용자와 중복 없음 · 중복 지정 없음통과
처리자가 1번부터 순서대로 채워짐통과
내역키·카드번호 중복 없음 · 입력일시 형식통과
화면 렌더링 — 목록 → 삭제 차단 → 등록 → 검증 → 필터7/7

카드번호·사용자는 모두 검증용 데이터입니다.

자주 묻는 질문

자동 연계 카드의 한도금액은 왜 못 고치나요?

카드사가 매일 아침 그 값을 다시 밀어 넣기 때문입니다. 화면에서 고쳐도 다음 갱신에 되돌아가는데, 담당자는 고쳤다고 믿고 있게 됩니다. 그래서 아예 입력칸을 잠가 혼선을 없앴습니다. 한도를 바꾸려면 카드사에 요청해야 합니다.

사용자와 처리자는 왜 연계 카드도 수정할 수 있나요?

카드사가 주지 않는 정보이기 때문입니다. 누가 그 카드를 쓰고 누가 비용을 처리하는지는 회사 내부에서 정하는 값이라, 연계 여부와 관계없이 화면에서 관리합니다. 반납예정일도 같은 이유로 열려 있습니다.

처리자를 4명까지 두는 이유는?

공용카드는 여러 부서가 나눠 쓰는 경우가 있고, 담당자 휴가나 인사이동에 대비해 예비 처리자를 두기도 합니다. 사양서에 네 자리가 정의돼 있어 그대로 따랐고, 화면에서는 1·2번을 편집칸으로 두고 3·4번은 요약해 보여 줍니다.

카드 처리자로 검색하면 어느 자리까지 찾나요?

1번부터 4번까지 모두 봅니다. 특정 담당자가 어느 카드를 맡고 있는지 확인할 때 자리를 몰라도 되도록 했습니다.

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

카드 마스터는 커스텀 테이블(ZTFIA0010)이고, 사용자·처리자는 사원 Vendor 마스터로 연결됩니다. 이 화면에서 정리한 마스터는 법인카드 청구현황 조회에서 카드번호로 이어지고, 비용 전표를 만들 때 사용자·처리자 정보가 귀속 판단 근거가 됩니다.

법인카드 마스터 관리, 지금 쓰는 SAP 위에서 확장해 보세요

어느 카드가 연계분이고 무엇을 고칠 수 있는지 화면에서 갈리면, 카드사 갱신과 수기 관리가 부딪히지 않습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

법인카드카드 마스터ZTFIA0010카드 처리자자동 연계FIOpenUI5