수출 솔루션

수출 네고 매입 정산 점검 — 환가료와 수수료를 다시 계산해 은행 통지서·장부와 맞춰 보는 수출 화면

환가료 · 수수료 재계산 · 하자와 조건부 매입 점검 · 입금 부족 후보 · 은행·통화별과 월별 대사 — 소개 영상과 실제 화면 8종, 그리고 CDS 코드까지

소개 영상블로그 목차 순서대로 · 음성 안내와 자막 포함9개 장면도입 포인트 → 재계산 → 점검 필요 → 입금 정산 → 대사

도입 포인트 — 이 앱을 사용해야 하는 이유

수출 대금을 은행에 네고하면 은행은 매입 금액에서 환가료와 수수료를 떼고 나머지를 입금합니다. 재무 담당이 월마감마다 받는 질문은 같습니다. 은행이 뗀 환가료와 수수료가 약정대로인가, 개설은행에서 대금은 예정일에 제대로 들어왔는가, 하자가 풀리지 않은 채 남은 건은 없는가. 지금 이 세 답은 은행 통지서 · 입금 전표 · 네고 서류를 엑셀 한 장에 붙여 놓고 눈으로 맞추는 일에 흩어져 있습니다. 이 앱은 세 답을 한 화면에 붙여, 건마다 계산기를 두드리는 일과 “어느 건이 아직 안 들어왔나” 하는 확인을 줄입니다.

한 줄 요약 — 네고 건마다 입금 예정일과 환가료 일수를 다시 구하고, 환가료와 수수료를 다시 계산해 은행 통지서 · 장부의 순입금과 맞춰 봅니다. 만기가 지났는데 정산이 없는 건, 해소되지 않은 하자, 입금이 부족한 건은 원인을 단정하지 않고 “점검 필요”로만 올립니다. 환가료·수수료의 정당성과 상환청구 여부의 최종 판단은 회사와 거래 은행이 합니다.

핵심 포인트 여섯 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 환가료와 수수료를 건별로 다시 계산합니다일수와 환가료율, 수수료율과 최소 수수료를 적용한 재계산 값이 은행 통지 값 옆에 놓입니다.통지서를 보고 계산기로 한 건씩 맞춰 봅니다.
② 만기가 지나도 정산이 없는 건을 찾습니다입금 예정일을 5일(가정)을 넘겼는데 정산 통지가 없으면 점검 필요로 올립니다.입금 전표가 없는 건은 목록에 나타나지 않아 월마감 뒤에야 알게 됩니다.
③ 해소되지 않은 하자가 보입니다하자별 해소 여부와 경과 일수를 보고, 오래 풀리지 않은 조건부 매입을 올립니다.하자는 네고 서류 속에만 있어 후속 확인이 사람 기억에 의존합니다.
④ 입금 부족을 상환청구 후보로 가립니다네고 외화 금액이 입금 + 공제 + 부족으로 나뉘고, 부족 금액은 원화 후보 금액으로 적힙니다.부족 입금은 계정 잔액에 섞여 뒤늦게 발견됩니다.
⑤ 장부와 은행 통지를 맞춰 봅니다장부 순입금이 은행 통지 순입금과 다르면 차이 금액이 건마다 남습니다.월 합계와 건별 합계를 따로 모아 마지막에 맞춰 봅니다.
⑥ 계산 근거를 같은 자리에서 열어 봅니다행을 누르면 환가료 일수 · 요율 · 하자 · 정산이 한 창에 열리고, 조회조건은 전부 OData 조건으로 보입니다.숫자를 의심하면 파일을 다시 열어 수식을 따라가야 합니다.

이런 회사에 맞습니다

외화로 수출하고 은행에 네고(매입)로 대금을 앞당겨 받는 제조 · 무역 기업의 재무 · 외환 담당 조직입니다. 네고 건과 입금 전표가 SAP 에 쌓여 있고, 은행 통지서의 환가료 · 수수료를 어떤 형태로든 데이터로 얻을 수 있는 환경이면 같은 구조로 붙습니다. 반대로 네고 없이 송금으로만 대금을 받는 회사에는 맞지 않습니다.

이 앱이 하지 않는 일

은행에 이의를 제기하거나 상환청구를 하지 않습니다. 약정 조건은 회사와 은행이 원문으로 확인해야 하고, 화면의 환가료율 4.8 ~ 5.4% · 수수료율 0.10% · 유예 5일 · 하자 14일 · 허용 차이 1,000원 · 월 점검 비율 30%는 모두 샘플 가정값입니다. 이 앱은 “어디부터 들여다봐야 하는가”를 가려 주는 점검 도구입니다.

실행 화면

실제 브라우저에서 검증용 샘플 데이터로 띄운 화면 8종을 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 하는 자리이고 왜 그렇게 두었는지를 아래에 적었습니다. 숫자는 모두 같은 자료에서 나온 것이라 화면끼리 서로 맞춰 보셔도 됩니다. 거래처 · 은행 · 네고 번호는 모두 가상입니다.

화면의 구성

맨 위에 조회조건, 그 아래에 요약 숫자 일곱 개, 그 아래에 탭 여섯 개가 세로로 쌓입니다. 탭의 숫자는 그 조건으로 조회된 행 수입니다. 오른쪽 위 버튼은 지금 보고 있는 탭을 CSV 로 내려받습니다.

처음 열었을 때 — 조회조건 · 요약 숫자 · 네고 명세
처음 열었을 때 — 조회조건 · 요약 숫자 · 네고 명세 — 조회조건 한 줄, 요약 숫자 일곱 개, 그 아래 탭 여섯 개가 한 화면에 놓입니다. 화면을 열면 기본 조건으로 바로 조회합니다.

필수 조건은 회계연도 하나뿐입니다. 요약 숫자는 네고 36건, 판정 대상 34건, 점검 필요 17건, 매입 금액 8,744.1백만원, 미결제 매입 잔액 1,552.4백만원, 환가료·수수료 재계산 35.4백만원, 대사 차이 0건입니다. 판정에서 빠진 2건은 환매 처리가 끝난 건이라 처음부터 세지 않습니다. 금액은 모두 백만원 단위입니다.

판정을 점검 필요로 고른 화면 — 17건만 보기
판정을 점검 필요로 고른 화면 — 17건만 보기 — 판정을 점검 필요로 고르면 모든 탭과 요약 숫자가 그 조건으로 다시 조회됩니다. 네고 명세에는 17건만 남습니다.

조회조건은 전부 OData $filter 로 서비스에 전달됩니다. 전체를 고르면 조건을 빼는 것이지 특정 코드를 넘기는 것이 아닙니다. 판정 유형이나 은행 · 통화 · 네고일 기간을 함께 걸면 어느 은행의 어느 달 건이 몰렸는지 바로 좁혀집니다.

하자와 입금 — 점검의 본체

하자 내역 — 미해소 경과 일수와 하자 수수료
하자 내역 — 미해소 경과 일수와 하자 수수료 — 하자(서류 불일치) 한 건마다 해소 여부 · 경과 일수 · 하자 수수료를 보여 줍니다. 해소되지 않은 채 오래된 건은 점검 필요로 올라옵니다.

하자가 있는 채로 매입한 건은 조건부 매입이라, 개설은행이 승인하지 않으면 상환청구로 돌아올 수 있습니다. 샘플에서는 하자 9건 중 미해소 3건이고, 네고일부터 14일(가정)을 넘긴 2건을 점검 필요로 올립니다.

입금 정산 — 개설은행 입금 · 공제 · 부족 금액
입금 정산 — 개설은행 입금 · 공제 · 부족 금액 — 네고 외화 금액이 개설은행 입금 + 공제 + 부족으로 나뉘는지 건별로 보여 줍니다. 부족 금액은 환율을 곱해 상환청구 후보(원)로 적습니다.

정산 통지가 도착한 29건이 여기 오고, 입금이 예정일보다 5일(가정)을 넘게 늦었거나 부족한 건은 점검 필요입니다. 통화가 다르면 외화 금액을 그대로 더하지 않고 건 단위로만 보여 줍니다.

은행·통화별 · 월별 · 대사

은행·통화별 — 통화를 섞지 않는 합계
은행·통화별 — 통화를 섞지 않는 합계 — 은행과 통화를 한 쌍으로 묶어 네고 금액 · 환가료 · 수수료 · 순입금을 합칩니다. 은행 통지 값과 재계산 값의 차이가 한 줄에 나란히 있습니다.

외화 금액은 통화별로만 더하고 원화 합계는 가정 환율로 환산한 매입 금액 기준입니다. 점검 필요 비율이 30% 이상인 쌍은 따로 표시해 어느 은행의 어느 통화부터 볼지 정하게 합니다.

네고월별 — 재계산 순입금과 장부 순입금의 차이
네고월별 — 재계산 순입금과 장부 순입금의 차이 — 네고월마다 재계산한 순입금과 장부 순입금을 한 줄로 비교하고, 미결제 매입 잔액을 함께 보여 줍니다.

월마감 때 가장 먼저 보는 탭입니다. 월별 합계와 은행·통화별 합계가 어긋나면 대사 결과 탭에 차이로 올라오고, 점검 필요 비율이 높은 달은 그 달의 네고 건부터 확인합니다.

대사 결과 — 정합성 대사 6건과 의도적 예외 1건
대사 결과 — 정합성 대사 6건과 의도적 예외 1건 — 산출식이 서로 맞물리는지 6가지로 검사한 결과를 검사 건수 · 차이 건수 · 최대 차이로 보여 줍니다.

매입 − 환가료 − 수수료 − 하자 수수료 = 순입금, 건별 합계 = 은행·통화별 합계 = 월별 합계, 네고 = 입금 + 공제 + 부족 같은 등식입니다. 샘플에서는 6가지 모두 차이 0이고, 환매 처리 2건은 차이와 섞이지 않게 의도적 예외로 따로 셉니다.

행 상세

행 상세 다이얼로그 — 네고 건과 연결된 하자 · 정산
행 상세 다이얼로그 — 네고 건과 연결된 하자 · 정산 — 네고 건 한 줄을 누르면 환가료 · 수수료 · 순입금의 재계산 값과 은행 통지 값, 그리고 연결된 하자 내역과 입금 정산이 한 창에 열립니다.

숫자를 의심할 때 화면을 옮기지 않고 같은 자리에서 근거를 봅니다. 은행·통화별이나 월 행을 누르면 그 묶음에 속한 네고 건이 아래 표로 열립니다.

SAP 표준 기능 확장 포인트

이 앱은 SAP 표준을 대체하지 않습니다. 표준이 이미 잘하는 일은 표준에 맡기고, 표준이 끊기는 자리만 이어 붙이는 쪽으로 만들었습니다. 어디까지가 표준이고 어디서부터 이 앱인지를 먼저 적습니다.

표준으로 되는 것과 안 되는 것

하고 싶은 일SAP 표준표준에서 걸리는 자리이 앱이 하는 일
수출 청구 · 수주 조회VF03 · VA03문서 한 건씩 열어야 하고 외화 금액과 통화를 모아 보려면 따로 목록을 뽑아야 합니다상업송장 번호 · 외화 금액 · 통화를 네고 한 줄로 모읍니다
매입 · 입금 · 수수료 전표 조회FB03 · FBL5N전표와 개별 항목은 보이지만 “어느 네고 건의 환가료인가”를 이어 주지 않습니다네고 건별로 매입 · 환가료 · 수수료 · 순입금을 한 줄에 놓습니다
환가료 · 수수료 비용 계정FBL3N비용 계정 잔액만 보이고 요율과 일수로 맞는지는 알려 주지 않습니다요율 · 일수 · 최소 수수료로 재계산해 은행 통지 값과 비교합니다
은행 통지서 데이터—표준에 정해진 자리가 없습니다. 스캔 문서나 별도 테이블 · 외부 시스템에 둡니다통지 값을 입력 계약으로 받아 재계산 값 옆에 놓습니다
하자 · 조건부 매입 점검—표준에 없습니다. 보통 네고 서류철과 엑셀로 관리합니다하자별 해소 여부와 경과 일수를 보고 점검 필요로 올립니다
입금 부족 · 상환청구 후보—표준에 없습니다. 부족 입금은 계정 잔액에 섞여 보입니다외화 부족 금액과 원화 후보 금액을 건별로 적습니다

T-code 별 연계 지점

이 앱이 표준 거래의 어느 자리를 이어받는지를 적었습니다. 운영에 올릴 때 “기존 조회를 없애야 하느냐”는 질문이 꼭 나오는데, 대부분은 없애지 않고 둡니다 — 증빙 확인과 감사 대응은 표준 거래가 맡는 편이 안전합니다.

T-code이름연계
VF03청구 문서 조회상업송장 번호와 외화 금액 · 통화. 네고 금액의 근거입니다.
VA03판매오더 조회거래처와 결제 조건. 일람출급인지 기한부인지를 가져오는 자리입니다.
FB03회계 전표 조회매입 · 입금 · 수수료 전표. 장부 순입금의 근거입니다.
FBL5N고객 계정 개별 항목정산 통지가 없는 미결제 항목과 입금 청산 내역을 확인합니다.
FBL3NG/L 계정 개별 항목환가료 · 수수료 비용 계정의 전기 내역을 확인합니다.

데이터가 어디서 오는가

수출 쪽은 청구 문서(VBRK · VBRP)와 판매오더(VBAK · VBAP), 회계 쪽은 전표(BKPF · BSEG)와 고객 미결 · 청산 항목(BSID · BSAD), 거래처는 KNA1 에서 옵니다. 다만 은행 통지서의 환가료 · 수수료 · 공제 금액은 표준 테이블에 정해진 자리가 없어서, 이 사례에서는 샘플 가정값을 쓰고 운영에서는 회사의 통지 데이터로 바꿔 끼웁니다. 어느 테이블에서 가져올지는 도입에서 가장 먼저 정해야 하는 항목입니다.

산출 순서

단계내용데이터 지점
① 네고 건외화 금액 × 매입 환율 = 매입 금액(원)청구 문서 · 회계 전표
② 환가료 일수네고일부터 입금 예정일까지(일람출급은 우편 일수 가정, 기한부는 선적일 + 기한부 일수)—
③ 환가료매입 금액 × 환가료율(연 %, 가정) × 일수 ÷ 365—
④ 수수료max(10,000원, 매입 금액 × 0.10%) (가정)—
⑤ 하자 수수료하자 1건당 30,000원(가정)—
⑥ 순입금 재계산매입 − 환가료 − 수수료 − 하자 수수료고객 · G/L 개별 항목
⑦ 대사은행 통지 · 장부 순입금과 비교, 은행·통화별 · 월별 합계와 맞춤—

CDS 구성

이 사례의 화면은 서비스가 내려 준 엔티티셋 여섯 개를 그대로 바인딩합니다. 운영에서는 그 서비스 뒤를 CDS 뷰와 재계산 로직으로 채웁니다. 아래는 그때 만드는 뷰를 레이어 순서대로 적은 것입니다.

코드는 스케치입니다. 필드 이름과 표준 뷰 이름은 릴리스 · 환경에 따라 다르므로, 그대로 붙여 넣기 전에 View Browser(F2170) 로 실제 이름을 확인해야 합니다. 은행 통지 데이터는 원천이 확인되지 않아 뷰에 넣지 않고 입력 계약으로만 두었습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZI_NegoBase청구 문서에서 송장 번호 · 외화 금액 · 통화를 한 줄로네고 한 건의 정의를 한 곳에 둡니다.
기준ZI_NegoTerms결제 조건 · 환가료율 · 수수료율 · 최소 수수료약정이 바뀌어도 이 뷰만 고칩니다.
기준ZI_NegoBankNotice은행 통지 환가료 · 수수료 · 입금 · 공제 입력통지 원천이 정해지면 여기만 연결합니다.
명세ZC_NegoCheck재계산과 은행 통지 · 장부 비교, 판정 코드화면의 네고 명세 탭이 읽습니다.
명세ZC_NegoDisc하자 해소 여부와 경과 일수하자 내역 탭이 읽습니다.
집계ZC_NegoBankCurr은행·통화별 합계통화를 섞지 않는 집계의 한 끝입니다.
접근ZC_NegoCheck 의 DCL회사코드 · 거래처 단위 권한합계로 남의 숫자가 드러나지 않게 합니다.

① 네고 기본 뷰

네고 한 건의 기준이 되는 외화 금액과 통화를 한 곳에서 정합니다. 네고 대상 청구를 어떻게 식별할지(결제 조건 · 지급 방법 · 사용자 정의 표시)는 회사가 정할 일이라 도입에서 합의해야 합니다.

@EndUserText.label: '네고 기본'
@AbapCatalog.viewEnhancementCategory: [#NONE]
define view entity ZI_NegoBase
  as select from vbrk
    inner join vbrp on vbrp.vbeln = vbrk.vbeln
{
  key vbrk.vbeln      as InvNo,            "상업송장(청구) 번호
      vbrk.kunag      as CustId,
      vbrk.fkdat      as BlDate,           "선적일 기준일 — 회사 기준 확인 필요
      vbrk.zterm      as PayTerm,
      vbrk.waerk      as Curr,
      @Semantics.amount.currencyCode: 'Curr'
      vbrp.netwr      as FcAmt
}

② 약정 조건 뷰

환가료율과 수수료율은 은행과 약정으로 정해지므로 코드에 넣지 않고 조건 테이블에서 읽습니다. 샘플의 4.8 ~ 5.4% · 0.10% · 최소 10,000원은 가정값입니다.

@EndUserText.label: '네고 약정 조건'
define view entity ZI_NegoTerms
  as select from znegoterms     "사용자 정의 약정 테이블 — 이름은 확인 필요
{
  key bank_code     as BankCode,
  key valid_from    as ValidFrom,
      int_rate      as IntRate,          "환가료율(연 %)
      fee_rate      as FeeRate,          "수수료율(%)
      fee_min       as FeeMin,           "최소 수수료
      grace_days    as GraceDays         "만기 후 유예 일수
}

③ 은행 통지 입력 뷰

은행 통지서의 값은 표준 테이블에 자리가 없습니다. 스캔 · 전자 수신 결과를 담는 테이블이나 외부 시스템 연계 결과를 이 뷰가 한 줄로 받게 하면, 위 뷰들은 원천이 바뀌어도 그대로 둘 수 있습니다.

@EndUserText.label: '은행 통지 입력'
define view entity ZI_NegoBankNotice
  as select from znegonotice    "사용자 정의 통지 테이블 — 원천 확인 필요
{
  key inv_no        as InvNo,
      int_bank      as IntBank,          "환가료(은행 통지)
      fee_bank      as FeeBank,          "수수료(은행 통지)
      recv_fc       as RecvFc,           "개설은행 입금(외화)
      deduct_fc     as DeductFc,         "개설은행 공제(외화)
      settle_date   as SettleDate
}

④ 재계산과 판정 뷰

환가료와 수수료를 다시 계산하고 은행 통지 · 장부와 비교해 판정 코드를 붙입니다. 우선순위(제외 → 만기 경과 → 미해소 하자 → 입금 부족 → 장부 차이 → 환가료 차이 → 수수료 차이)를 이 뷰의 CASE 순서로 못 박아, 화면은 판정 결과만 읽습니다.

@EndUserText.label: '네고 재계산·판정(스케치)'
define view entity ZC_NegoCheck
  as select from ZI_NegoBase       as n
    inner join   ZI_NegoTerms      as t on t.BankCode = n.BankCode
    left outer join ZI_NegoBankNotice as b on b.InvNo = n.InvNo
{
  key n.InvNo,
      n.Curr,
      /* 환가료 재계산 = 매입 금액 × 환가료율 ÷ 100 × 일수 ÷ 365 */
      cast( n.NegoKrw * t.IntRate / 100 * n.IntDays / 365 as abap.dec(17,0) ) as IntCalc,
      /* 수수료 재계산 = max(최소 수수료, 매입 금액 × 수수료율) */
      cast( case when n.NegoKrw * t.FeeRate / 100 > t.FeeMin
                 then n.NegoKrw * t.FeeRate / 100 else t.FeeMin end
            as abap.dec(17,0) )                                                as FeeCalc,
      b.IntBank,
      b.FeeBank,
      case
        when n.ExcFlag = 'X'                                  then 'EXC'
        when n.Overdue > t.GraceDays and b.SettleDate is null then 'OVERDUE'
        when n.DiscOpen > 0 and n.OpenDays > 14               then 'OPENDISC'
        else 'OK'
      end                                                                      as CheckCode
}

⑤ 하자 뷰

하자는 네고 한 건에 여러 줄이 달릴 수 있어 별도 뷰로 둡니다. 해소 여부와 해소일을 어디서 가져올지(서류 관리 시스템인지 사용자 정의 테이블인지)는 도입에서 정해야 합니다.

@EndUserText.label: '네고 하자 내역(스케치)'
define view entity ZC_NegoDisc
  as select from znegodisc      "사용자 정의 하자 테이블 — 원천 확인 필요
{
  key inv_no       as InvNo,
  key disc_no      as DiscNo,
      disc_code    as DiscCode,
      resolved     as Resolved,
      resolve_date as ResolveDate,
      /* 해소되지 않았으면 기준일까지, 해소됐으면 해소일까지의 경과 일수 */
      case when resolved = 'Y'
           then dats_days_between( nego_date, resolve_date )
           else dats_days_between( nego_date, $session.system_date ) end as OpenDays
}

⑥ 은행·통화별 집계 뷰

외화 금액은 통화가 다르면 더하지 않으므로 은행과 통화를 묶음의 키로 둡니다. 월별 집계도 같은 방식으로 만들고, 두 집계의 매입 금액 합이 같은지를 대사식으로 검사합니다.

@EndUserText.label: '은행·통화별 합계(스케치)'
define view entity ZC_NegoBankCurr
  as select from ZC_NegoCheck
{
  key BankCode,
  key Curr,
      count( * )                         as NegoCnt,
      @Semantics.amount.currencyCode: 'Curr'
      sum( FcAmt )                       as FcAmt,
      sum( NegoKrw )                     as NegoKrw,
      sum( IntCalc )                     as IntCalc,
      sum( IntBank )                     as IntBank,
      sum( IntBank ) - sum( IntCalc )    as DiffInt
}
group by BankCode, Curr

⑦ 접근 제어

집계 단계에서 권한을 걸어야 합계와 전체의 차이로 남의 숫자가 드러나지 않습니다. 권한 객체와 필드 이름은 회사의 권한 설계에 따라 달라지므로 아래는 모양만 보인 스케치입니다.

@EndUserText.label: '네고 점검 접근 제어(스케치)'
@MappingRole: true
define role ZC_NEGOCHECK_DCL {
  grant select on ZC_NegoCheck
    where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}

운영 전환에서 정해야 할 항목

정할 것정하지 않으면정하는 쪽
네고 건의 식별 방법(결제 조건 · 지급 방법)네고 건이 일반 청구와 섞여 대상이 달라집니다외환 · 재무 담당
환가료율 · 수수료율 · 최소 수수료의 원천재계산 값이 샘플 가정값에 머뭅니다외환 담당 · 거래 은행
은행 통지서 데이터의 원천과 수신 방식은행 통지 값과 비교할 수 없습니다외환 담당 · IT
만기 후 유예 일수와 환가료·수수료 허용 차이점검 필요 건이 너무 많거나 적게 나옵니다외환 담당 · 재무
하자 해소 정보를 남기는 곳미해소 하자를 판정할 수 없습니다수출 서류 담당
환매 처리 건의 장부 반영 기준판정 제외 건과 장부가 어긋납니다재무 · 회계

OData 서비스 계약

화면은 서비스 이름 nego_srv 하나만 부르고, 경로는 모두 상대 경로입니다. 엔티티셋은 여섯 개입니다 — NegoSet(네고 명세) · DiscSet(하자 내역) · SettleSet(입금 정산) · BankSet(은행·통화별) · MonSet(네고월별) · ReconSet(대사). 펑션 두 개 GetTotalNetCalc(재계산 순입금 합계)와 GetMaxOverdueDays(최대 만기 경과 일수)는 선택 파라미터 NegoYm 을 받습니다. 조회조건은 전부 $filter 로 가고 “전체”는 조건을 빼는 방식이며, 총건수는 $inlinecount=allpages 로 받습니다. 같은 계약을 지키는 운영 서비스로 경로만 바꾸면 화면을 고치지 않고 연결됩니다.

자주 묻는 질문

도입 상담과 데모에서 받을 만한 질문들을 네 묶음으로 나누어 적었습니다.

계산과 규칙

화면의 재계산 값은 은행 청구가 틀렸다는 뜻입니까?

아닙니다. 이 화면은 분류 · 재계산 · 대사를 돕는 점검 도구입니다. 은행 약정 조건과 환율 적용 시점이 샘플 가정과 다를 수 있어서, 차이가 나도 “점검 필요” · “확인 필요”로만 표시하고 원인을 단정하지 않습니다. 최종 판단은 회사와 거래 은행이 합니다.

환가료는 어떻게 다시 계산합니까?

매입 금액(원) × 환가료율(연 %) × 환가료 일수 ÷ 365 입니다. 일수는 네고일부터 입금 예정일까지이고, 일람출급은 네고일에 우편 일수(가정)를 더해 예정일을 구하며 기한부는 선적일에 기한부 일수를 더합니다. 환가료율은 은행별 샘플 가정값입니다.

수수료는 어떻게 다시 계산합니까?

매입 금액의 0.10%이고 1건당 최소 10,000원입니다. 하자가 있으면 하자 1건당 30,000원을 따로 더합니다. 순입금(재계산)은 매입 금액에서 환가료 · 수수료 · 하자 수수료를 뺀 값입니다. 요율과 최소 금액은 모두 샘플 가정값이라 실제 약정서로 확인해야 합니다.

차이가 얼마까지는 정상으로 봅니까?

환가료와 수수료는 은행 통지 값과 재계산 값이 1,000원(가정 허용 차이)을 넘게 다를 때 점검 필요로 올립니다. 반올림이나 일수 계산 방식 차이로 생기는 작은 차이를 걸러 내기 위한 값이며, 회사 기준에 맞게 서비스의 기준 값을 바꾸면 같은 규칙으로 다시 판정합니다.

한 건에 여러 문제가 겹치면 어떻게 표시합니까?

가장 앞선 유형 하나로 표시합니다. 우선순위는 제외 → 만기 경과 → 미해소 하자 → 입금 부족 → 장부 순입금 차이 → 환가료 차이 → 수수료 차이 → 정상 순입니다. 다른 문제는 상세 다이얼로그의 차이 칸에 숫자로 그대로 남아 사라지지 않습니다.

환매 처리가 끝난 건은 어떻게 됩니까?

판정에서 제외하고 의도적 예외로 따로 셉니다. 샘플에서는 2건이며 매입 금액 386.1백만원입니다. 정합성 대사의 차이 건수와 섞이지 않게 분리해 두었고, 대사 결과 탭에서 제외 건수와 금액을 확인할 수 있습니다.

만기 경과 미결제는 며칠부터입니까?

입금 예정일을 5일(가정 유예) 넘겼는데 정산 통지가 없는 건입니다. 샘플에서는 3건입니다. 유예 일수는 가정값이므로 실제 거래 은행과 결제 조건에 맞게 바꿔야 합니다.

데이터와 검증

숫자가 맞는지 어떻게 확인했습니까?

재계산 검증 10종(V1~V10)과 정합성 대사 6종(R01~R06)으로 샘플 전수를 검사했습니다. 입금 예정일 · 환가료 · 수수료 · 순입금의 재계산, 하자 건수와 수수료의 합, 네고 = 입금 + 공제 + 부족, 은행·통화별 합계 = 건별 합계 = 월별 합계가 포함되고, 검사 건수는 9건에서 36건까지이며 차이는 모두 0입니다.

화면의 요약 숫자는 따로 검증했습니까?

했습니다. 네고 36 · 판정 대상 34 · 점검 필요 17 · 매입 금액 8,744.1 · 미결제 매입 잔액 1,552.4 · 환가료·수수료 재계산 35.4(백만원)를 화면과 별도 스크립트가 각각 구해 같은 값임을 확인했습니다. 스크립트는 화면 코드를 쓰지 않고 데이터만 읽어 처음부터 다시 계산합니다.

샘플 데이터는 실제 자료입니까?

아닙니다. 거래처 6곳 · 은행 3곳 · 네고 번호는 모두 가상이고, 화면과 서비스를 검증하려고 만든 자료입니다. 점검 화면이 가려내야 하는 사례(만기 경과 3 · 미해소 하자 2 · 입금 부족 2 · 장부 순입금 차이 3 · 환가료 차이 4 · 수수료 차이 3)를 일부러 넣어 두었습니다.

점검 필요 17건은 어떻게 나뉩니까?

판정 대상 34건 중 17건이고 나머지 17건은 정상입니다. 17건은 만기 경과 3, 미해소 하자 2, 입금 부족 2, 장부 순입금 차이 3, 환가료 차이 4, 수수료 차이 3으로 나뉩니다. 입금 정산 탭에서는 정산 건 기준으로 입금 부족과 입금 지연이 따로 올라옵니다.

미결제 매입 잔액에는 무엇이 들어갑니까?

정산 통지가 아직 없는 네고 건의 매입 금액입니다. 만기가 아직 오지 않은 건도 들어가므로 만기 경과 건과는 다른 숫자입니다. 은행·통화별 합계와 네고월별 합계의 미결제 잔액이 서로 같은지도 대사식으로 검사합니다.

외화 금액은 어떻게 더합니까?

서로 다른 통화의 외화 금액을 그대로 더하지 않습니다. 외화는 은행·통화 단위로만 묶고, 원화 합계는 통화별 가정 환율로 환산한 매입 금액을 씁니다. 샘플 환율은 가정값이며 실제 고시값이 아닙니다.

화면 사용

필수 조회조건은 무엇입니까?

회계연도 하나입니다. 거래처 · 매입 은행 · 통화 · 판정 유형 · 네고일 시작/종료 · 판정은 선택이며, 비워 두면 전체입니다. 화면을 처음 열면 기본 조건으로 자동 조회합니다.

조회 버튼은 어디에 있습니까?

조회조건 영역 입력칸들의 가장 오른쪽에 있고 바로 옆에 초기화가 있습니다. 입력칸에서 Enter 를 눌러도 같은 조회가 실행됩니다.

탭은 어떤 순서로 봅니까?

네고 명세 → 하자 내역 → 입금 정산 → 은행·통화별 → 네고월별 → 대사 결과 순서가 자연스럽습니다. 숫자를 의심할 때는 어느 탭에서든 행을 눌러 연결된 명세를 아래 표로 엽니다.

CSV 로 내려받으면 무엇이 들어갑니까?

지금 보고 있는 탭의 조회 결과가 UTF-8(BOM) CSV 로 내려옵니다. 조회조건이 걸려 있으면 걸린 결과만 들어갑니다. 엑셀에서 한글이 깨지지 않도록 BOM 을 붙였습니다.

도입과 운영

운영 데이터는 어떻게 연결합니까?

앱 설정(manifest)의 서비스 경로를 운영 OData 서비스로 바꾸고, 같은 엔티티셋과 프로퍼티 계약(키 · EDM 타입 · $filter)을 지키면 화면을 고치지 않고 연결됩니다. 은행 통지 데이터의 원천은 먼저 정해야 합니다.

은행 통지서의 환가료 · 수수료는 어디서 가져옵니까?

표준 테이블에 정해진 자리가 없어서 확인이 필요합니다. 은행 통지서를 스캔 · 전자 수신하는 방식에 따라 별도 테이블이나 외부 시스템에 있을 수 있어, 회사가 그 위치를 정한 뒤 서비스가 읽어 오게 합니다. 이 사례에서는 샘플 가정값입니다.

기존 네고 정산 업무를 대체합니까?

대체하지 않습니다. 네고 서류 처리와 입금 전표 반영은 기존 방식과 표준 거래에 그대로 두고, 이 화면은 정산이 끝난 뒤 또는 월마감 전에 들여다볼 건을 가리는 용도로 씁니다.

데이터가 많아지면 느려지지 않습니까?

조회는 서버에서 조건으로 거르고 스크롤 페이징으로 나누어 받으므로 행 수가 늘어도 화면은 필요한 만큼만 받습니다. 운영에서는 재계산을 서비스 쪽(CDS 계산식이나 ABAP 클래스)에서 하고 결과만 내려 줍니다.

권한은 어떻게 겁니까?

네고 건과 하자 · 정산 내역은 거래처 · 회사코드 · 은행 계정 단위로 권한을 걸어야 합니다. 집계 단계에서 걸어 두어야 합계와 전체의 차이로 남의 숫자가 드러나지 않습니다. 운영 서비스에서는 표준 권한 객체를 CDS 의 접근 제어로 옮기는 방식을 씁니다.

외부 라이브러리나 외부 전송이 있습니까?

화면은 OpenUI5 표준 컨트롤만 씁니다. 계산에 외부 서비스나 AI 를 쓰지 않으므로 숫자가 밖으로 나가지 않습니다.

검토용 자료는 무엇입니까?

목차의 “검토용 자료 다운로드”를 누르면 이 글의 내용과 화면을 담은 PowerPoint(.pptx) 가 브라우저에서 바로 만들어져 내려옵니다. 경영지원 · 재무 담당이 도입 여부를 검토할 때 쓰도록 만든 자료이며 서버로 전송하지 않습니다.