수출 솔루션 · 수출 신용장 대금 결제

수출 신용장 선적기일·제시기한 점검 — 신용장 조건과 실제 선적·서류 제시를 건마다 견주어 점검 필요 건을 가려내는 수출 대금 결제 점검 화면

최종 선적기일 · 제시 기한 · 허용 과부족 한도 · 분할 선적 누적 · 개설은행별 점검 비율 · 선적 전 L/C 의 의도적 예외 — 소개 영상과 실제 화면 7종, 그리고 CDS 코드까지

소개 영상1분 43초8개 장면음성 안내·자막처음 화면 → 점검 필요 건 → 판정 유형별 → 선적 건 상세 → 월별 → 대사 결과

개발 배경 — 이 앱을 사용해야 하는 이유

수출 담당자가 신용장 건에서 반복해서 묻는 질문은 거의 같습니다. 정해진 날짜 안에 선적했는가, 허용된 금액 안에서 선적했는가, 정해진 기한 안에 서류를 냈는가. 이 세 답이 판매오더 · 납품 · 은행 통지 · 엑셀로 흩어져 있어서, 지금은 선적이 끝나거나 서류를 낼 때쯤 사람이 신용장 사본과 선적 자료를 한 건씩 맞춰 봅니다.

이 화면은 그 맞춰 보는 일을 한 화면에 올렸습니다. 신용장에 적힌 최종 선적기일 · 유효기간 · 허용 과부족 · 제시기간과 실제 선적일 · 누적 선적 금액 · 서류 제시일을 같은 선적 한 건 위에 나란히 놓고, 어긋나는 자리를 선적기일 경과 · 허용 한도 초과 · 제시기한 경과 · 서류 미제시 네 갈래로 가립니다. 어디까지나 점검 도구입니다. 신용장 조건 충족 여부와 하자 처리의 최종 판단은 회사와 거래 은행이 하며, 이 글과 화면의 제시기간 · 환율 · 기준 비율은 모두 샘플 가정값입니다.

한 줄 요약 — 판매오더나 납품 조회 화면은 거래 한 건을 보여 줍니다. 이 화면의 값은 그 다음에 있습니다: 신용장 조건을 건마다 다시 계산해 실제 선적과 견주고, 어긋나는 자리를 네 갈래로 나누고, 요약이 건별 값과 어긋나지 않는다는 것을 매번 검산합니다.

핵심 포인트 여섯 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 신용장 조건을 건마다 다시 계산한다허용 한도와 제시 기한을 L/C 금액 · 허용 과부족 · 선적일 · 제시기간으로 건마다 구해 실제 값 옆에 둡니다. 경과 일수와 초과 금액이 한 칸에 바로 나옵니다.신용장 사본에서 날짜와 비율을 찾아 엑셀에서 더하고 빼며, 건수가 많으면 마감 직전에 몰아서 맞춥니다.
② 어긋남을 네 갈래로 가른다선적기일 경과 · 허용 한도 초과 · 제시기한 경과 · 서류 미제시 중 건마다 한 가지 유형을 붙입니다. 금액이 큰 유형부터 보면 됩니다.지연이 있었다는 사실만 알고 어느 건이 어떤 조건을 넘었는지는 건건이 열어 봐야 합니다.
③ 분할 선적은 누적으로 본다한 L/C 를 여러 차수로 나누어 선적해도 차수마다 누적 선적과 미사용 잔액을 이어서 계산하고, 누적이 허용 한도를 넘는 차수를 짚습니다.차수별 금액을 따로 보다가 마지막 차수에서야 한도를 넘은 것을 발견합니다.
④ 제시 기한은 유효기간을 넘지 않는다제시 기한을 선적일 + 제시기간과 유효기간 만기 중 이른 날로 구해, 선적이 늦을수록 제시 여유가 줄어드는 건을 놓치지 않습니다.제시기간만 세다가 유효기간이 먼저 끝나는 건을 놓칩니다.
⑤ 선적 전 L/C 는 예외로 따로 센다선적일이 없는 L/C 는 판정에서 빼고 유효기간 만기까지 남은 일수와 함께 별도로 집계합니다. 점검 대상에 섞이지 않습니다.아직 선적하지 않은 L/C 가 지연 건처럼 보여 진짜 점검 건을 가립니다.
⑥ 요약이 어긋나지 않는지 매번 검산한다대사식 8종과 의도적 예외 1종을 화면 안에서 보여 주고, 검사 건수 161건에서 차이 0건을 확인할 수 있습니다.요약 숫자가 맞는지는 만든 사람의 말에 의존합니다.

같은 선적이 조건 안이기도 하고 밖이기도 한 이유

신용장은 선적과 서류 제시에 여러 날짜 조건을 겁니다. 이 화면의 샘플 정책은 선적 경과 = 선적일 − 최종 선적기일, 제시 기한 = min(선적일 + 제시기간, 유효기간 만기), 허용 한도 = L/C 금액 × (1 + 허용 과부족 %) 로 둡니다. 선적이 기일 안이라도 서류를 늦게 내면 제시기한 경과가 되고, 서류를 제때 내도 선적이 기일을 넘었으면 선적기일 경과가 됩니다. 한 건에 조건이 둘 이상 겹칠 수 있다는 뜻이라, 이 화면은 유형은 먼저 해당하는 하나만 붙이되 해당하는 사유는 모두 판정 내용에 적습니다.

제시기간 21일 같은 값은 신용장마다 다를 수 있어 샘플 가정값으로만 쓰였습니다. 실제 조건은 신용장 원문에 적힌 값을 따라야 하며, 어느 값을 어떻게 읽어 올지는 도입 때 정할 일로 남겨 두었습니다.

분할 선적은 차수를 넘어 누적으로 봐야 한다

한 L/C 를 두세 번에 나누어 선적하면 차수마다 금액은 작아 보여도 누적이 허용 한도를 넘는 일이 생깁니다. 샘플에도 마지막 차수에서 누적 선적이 허용 과부족 5%를 넘는 L/C 한 건이 있습니다. 이 화면은 차수마다 누적 선적과 미사용 잔액을 이어서 보여 주고, 한도를 넘은 차수와 넘은 외화 금액을 한 칸에 둡니다. 외화 금액은 통화별로만 모으고, 원화는 가정 환율로 환산해 차수별 값이 누적 환산의 차이로 정해지도록 하여 L/C 단위 합이 어긋나지 않게 했습니다.

사용 방법

  1. 조회조건을 입력합니다. 회계연도(필수, 4자리)만 정하면 되고, 거래처 · 개설은행 · 통화 · 판정 유형 · 선적일 범위 · 판정은 필요할 때만 고릅니다. 비워 두면 전체입니다.
  2. 조회 버튼을 누르거나 입력 칸에서 Enter 키를 누릅니다. 화면을 처음 열면 기본 조건으로 자동 조회됩니다.
  3. 요약 지표 여섯 개를 확인합니다. 선적 건수 · 판정 대상 건수 · 점검 필요 건수 · 선적 금액 · 점검 필요 선적 · 대사 차이 건수입니다.
  4. 탭을 옮겨 가며 봅니다. 선적 명세 → 월별 → 개설은행별 → 판정 유형별 → 통화별 → 대사 결과 순서입니다.
  5. 표의 행을 눌러 상세 창을 엽니다. 선적 행은 그 건의 상세를, 요약 행은 그 조건에 속한 선적 건 목록을 함께 보여 줍니다. 닫기 버튼이나 ESC 키로 닫습니다.
  6. CSV 내려받기를 누르면 지금 보고 있는 탭의 조회 결과가 UTF-8 CSV 로 내려받아집니다.

숫자를 믿을 수 있는가 — 검증 결과

화면을 만들기 전에 대사식을 먼저 세우고, 선적 36건의 판정과 L/C 33건의 누적 · 잔액 · 원화 합, 요약 23행을 원천 칸에서 다시 구해 저장값과 견주었습니다. 결과는 모두 차이 0건이며, 아래 대사식은 화면의 대사 결과 탭에서 직접 확인할 수 있습니다.

대사식검사 건수차이 건수
L/C 개설 금액 = 선적 합계 + 미사용 잔액 (원화, L/C별)330
월별 선적 합계 = 건별 선적 합계90
개설은행별 선적 합계 = 건별 선적 합계50
판정 유형별 선적 합계 = 건별 선적 합계50
통화별 선적 합계 = 건별 선적 합계40
허용 한도 = L/C 금액 × (1 + 허용 과부족 %) 재계산330
제시 기한 = min(선적일 + 제시기간, 유효기간) 재계산360
점검 필요 건수: 유형별 합계 = 건별 판정360

위 여덟 개 식의 검사 건수를 모두 더하면 161건이고 차이는 0건입니다. 이와 별도로 의도적 예외 1종을 두었습니다. 선적일이 없는 L/C 5건은 판정을 할 수 없는 것이 정상이므로 대사 차이 건수에 섞지 않고 건수만 따로 기록합니다. 날짜 조회조건(선적일 범위)도 서버에서 직접 걸러지는 것을 확인했습니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 표준 컨트롤(조회조건 · 요약 지표 · 탭 · 표 · 상세 창)과 Horizon 테마외부 차트 라이브러리를 들이지 않아 사내망 반입 심사 부담이 작습니다.
집계·판정 로직선적 한 건을 판정하고 월 · 개설은행 · 판정 유형 · 통화로 다시 모으는 서비스 로직한 건에는 먼저 해당하는 조건 하나만 유형으로 붙여 같은 건이 두 유형에 중복 집계되지 않게 했습니다.
OData 구성화면은 OData V2 서비스를 읽습니다. 서비스 주소는 앱 설정의 상대 경로 하나이고, 선적 명세 · 월별 · 개설은행별 · 판정 유형별 · 통화별 · 대사 결과가 각각 읽기 묶음으로 열려 있습니다.조회조건은 필터로, 정렬은 정렬 지정으로 서비스에 보내고, "전체" 선택은 필터에서 빼는 방식이라 서버로 코드값을 보내지 않습니다. 운영에서는 이 서비스 주소만 SAP 서비스로 바꾸면 됩니다.
모델 설정총 건수는 응답에 함께 받고, 요청 실패와 빈 결과는 구분해 알립니다.실패와 "없음"을 같은 화면으로 보이면 담당자가 데이터가 없는 줄 알고 지나칩니다.
테마sap_horizonSAP 표준 화면과 같은 결이라 현업이 낯설어하지 않습니다.
항목내용
솔루션수출 솔루션
업무 영역영업(SD)
대상 영역수출 신용장 대금 결제
관련 기준서-
SAP 표준 T-codeVA03 · VL03N · VF03 · FBL5N
화면 성격조회·점검 화면(분류·집계·대사)
데이터 연동OData V2
테마sap_horizon

SAP 표준 기능을 그대로 이어받은 부분

판매오더의 거래처 · 통화 · 금액, 납품 문서의 실제 출고일, 청구 문서의 금액, 고객 개별 항목의 미결 정보는 표준 데이터 구조의 칸을 그대로 씁니다. 이 화면은 새 거래를 만들지 않고, 표준이 이미 가진 값을 신용장 조건과 견주는 관점을 더합니다. 신용장 조건 자체(최종 선적기일 · 유효기간 · 허용 과부족 · 제시기간)를 어디에 저장하는지는 고객사마다 달라 확인 필요입니다.

실행 화면

아래는 검증용 샘플 데이터로 실제 렌더링한 화면 7종입니다. 사용 순서대로 — 처음 연 화면, 점검 필요 건, 월 · 개설은행 · 판정 유형 탭, 한 건의 상세, 대사 결과 — 놓았습니다.

처음 열었을 때와 점검 필요 건만 보기

처음 연 화면은 한 번에 많이 보여 주되, 사람이 확인할 건만 추려 보는 길이 바로 옆에 있습니다.

처음 열었을 때
처음 열었을 때 — 조회조건과 요약 지표, 선적 명세 탭이 한 화면에 열립니다.

화면 맨 위 안내 문구는 신용장 조건을 어떻게 견주는지 한 번 읽어 두라는 용도입니다. 회계연도 기본값(2026)으로 자동 조회되어 선적 41건 · 판정 대상 36건 · 점검 필요 8건이 요약 지표에 뜨고, 선적 금액은 8,933.8백만 원, 점검 필요 선적은 1,610.0백만 원입니다. 표 마지막 쪽에 판정과 판정 내용이 있고, 선적일이 비어 있는 행은 선적 전 L/C 라 판정에서 빠집니다.

점검 필요 건만 보기
점검 필요 건만 보기 — 판정을 점검 필요로 고르고 조회하면 8건만 남습니다.

조회조건의 판정을 "점검 필요"로 바꾸고 조회 버튼(또는 Enter)을 누르면 이상 없는 건이 빠지고 사람이 확인할 건만 남습니다. 요약 지표도 같은 조건으로 다시 계산되어 선적 건수 · 판정 대상 건수 · 점검 필요 건수가 모두 8 로 맞춰집니다. 담당자는 이 목록을 위에서부터 열어 보면 됩니다.

월 · 개설은행 · 판정 유형 — 같은 선적을 세 방향으로 다시 모으기

건별 표는 하나지만 질문은 세 가지입니다. 어느 달에 몰렸나, 어느 은행과의 거래에서 반복되나, 어떤 이유가 큰가. 탭만 바꾸면 같은 조회조건 위에서 답이 나옵니다.

월별 요약
월별 요약 — 선적월마다 점검 필요 건수와 비율을 견주고, 비율이 기준 이상이면 점검 필요로 표시합니다.

선적월마다 선적 건수 · 점검 필요 건수 · 선적기일 경과 건수 · 제시기한 경과 건수와 금액, 점검 필요 비율이 한 줄에 놓입니다. 샘플에서는 3월이 60.00%(5건 중 3건), 8월이 40.00%, 6월이 33.33% 로 기준 30.00%(가정값)를 넘어 점검 필요로 표시되고, 7월과 9월은 25.00% 로 기준 아래입니다. 행을 누르면 그 달의 선적 건이 상세 창에 열립니다.

개설은행별 요약
개설은행별 요약 — 개설은행마다 점검 필요 비율과 평균 제시 소요 일수를 견줍니다.

개설은행마다 선적 건수 · 점검 필요 건수와 비율, 선적 금액, 평균 제시 소요(일)가 놓입니다. 샘플에서는 Pacific Trade Bank 가 30.00%(10건 중 3건), Meridian Overseas Bank 가 33.33%(6건 중 2건)로 기준에 닿아 점검 필요로 표시됩니다. 같은 은행에서 반복되는지 보면 서류 보완 요청이나 은행과의 사전 협의 순서를 정하는 데 쓸 수 있습니다.

판정 유형별 요약
판정 유형별 요약 — 점검 필요 8건을 네 가지 유형으로 나누어 건수와 금액 비중을 봅니다.

유형마다 건수와 선적 금액, 금액 비중을 보여 줍니다. 샘플에서는 이상 없음 28건(81.98%) 외에 제시기한 경과 3건(607.0백만 원), 선적기일 경과 3건(539.3백만 원), 허용 한도 초과 1건(249.2백만 원), 서류 미제시 1건(214.4백만 원)이 나옵니다. 금액이 큰 유형부터 확인하면 점검 순서가 정해지고, 행을 누르면 해당 선적 건이 열립니다.

한 건을 열어 보기와 대사 결과

숫자를 의심할 때 내려가는 길과, 숫자가 맞는다는 것을 확인하는 길입니다.

행 클릭 상세
행 클릭 상세 — 선적 한 건의 최종 선적기일 · 선적일 · 제시 기한 · 서류 제시일 · 허용 한도를 모아 보여 줍니다.

표의 행을 누르면 열리는 상세 창입니다. 이 건은 최종 선적기일이 3월 25일인데 3월 28일에 선적해 선적 경과 +3일로 "선적기일 경과"가 나옵니다. 서류는 제시 기한(4월 9일)보다 하루 앞선 4월 8일에 냈으므로 제시 쪽은 문제가 없다는 점이 요점입니다. 한도 초과 외화는 0 이라 금액 조건도 정상이며, 닫기 버튼이나 ESC 키로 닫습니다.

대사 결과
대사 결과 — 정합성 대사식 8개와 의도적 예외 1개의 검사 건수 · 차이 건수를 보여 줍니다.

대사 결과 탭은 화면의 숫자가 어긋나지 않는지를 화면 안에서 보여 줍니다. 검사 건수 161건에서 차이 건수는 0건이고, 선적 전 L/C 5건은 의도적 예외 행으로 분리되어 차이 건수에 섞이지 않습니다. 대사식 좌변과 우변이 함께 나와 어디가 맞는지 바로 확인할 수 있습니다.

화면 뒤에서 일어나는 일

조회 한 번에 화면은 같은 조회조건으로 여섯 묶음(선적 명세 · 월별 · 개설은행별 · 판정 유형별 · 통화별 · 대사 결과)과 요약 지표를 읽습니다. 판정은 선적 건별로 한 번 정해져 저장된 값을 모든 묶음이 같이 쓰기 때문에, 탭을 옮겨도 같은 건이 다른 유형으로 바뀌지 않습니다. 선적일 범위는 서버 필터로 걸러지며, 선적일이 없는 L/C 는 범위 조건에서 빠집니다.

판정 규칙 — 조건에서 사용자 조치까지

한 건에는 아래 순서대로 가장 먼저 해당하는 조건 하나를 유형으로 붙이고, 해당하는 사유는 판정 내용에 모두 적습니다. 제시기간 · 기준 비율 · 환율은 샘플 가정값이며, 회사의 정책표로 바꿔 쓰는 자리입니다.

판정 조건결과 상태사용자 조치
선적일이 없는 L/C(차수 00)판정 제외(의도적 예외)유효기간 만기까지 선적 계획을 확인합니다. 선적 후 다시 조회합니다.
선적일 > 최종 선적기일점검 필요 — 선적기일 경과선적 지연 사유를 확인하고 신용장 조건 변경 여부를 거래 은행과 점검합니다.
누적 선적 금액 > L/C 금액 × (1 + 허용 과부족 %)점검 필요 — 허용 한도 초과차수별 선적 금액을 확인하고 초과분의 처리를 점검합니다.
서류 제시일 > 제시 기한점검 필요 — 제시기한 경과제시 지연 사유와 은행 통지를 확인합니다.
제시 기록 없음 + 제시 기한 < 기준일점검 필요 — 서류 미제시서류 제시 여부와 대금 회수 일정을 확인합니다.
위 어느 조건에도 해당하지 않음이상 없음별도 조치 없음.
월 · 개설은행 · 통화 요약의 점검 필요 비율이 30.00% 이상요약 행 점검 필요(가정값)해당 조건에 속한 선적 건을 상세 창에서 확인합니다.

산출과 대사 순서

순서산출·대사 항목산식
1허용 한도(외화)L/C 금액 × (1 + 허용 과부족 %)
2누적 선적 · 미사용 잔액차수별 선적 금액의 누계 / 미사용 잔액 = L/C 금액 − 누적 선적
3제시 기한min(B/L 일자 + 제시기간, 유효기간 만기)
4경과 일수선적 경과 = 선적일 − 최종 선적기일 / 제시 경과 = (제시일 또는 기준일) − 제시 기한
5원화 환산선적 금액 × 가정 환율(통화별) — 차수별 원화는 누적 환산의 차이로 구함
6L/C 단위 대사L/C 원화 금액 = Σ 선적 + 미사용 잔액
7요약 대사Σ 월별(개설은행별 · 판정 유형별 · 통화별) 선적 금액 = Σ 건별 선적 금액
8재계산 대사허용 한도와 제시 기한을 원천 칸에서 다시 구해 저장값과 견줌
9점검 필요 건수 대사Σ 판정 유형별(점검 필요) 건수 = 건별 점검 필요 건수
10의도적 예외선적 전 L/C 건수 — 대사 차이와 분리

조회조건

조회조건필수·기본값적용 탭비고
회계연도필수 · 2026전체4자리
거래처선택(전체)선적 명세
개설은행선택(전체)선적 명세 · 개설은행별
통화선택(전체)선적 명세 · 통화별
판정 유형선택(전체)선적 명세 · 판정 유형별
선적일 시작/종료선택(비움)선적 명세날짜 범위 — 선적일이 없는 L/C 는 범위 조건에서 빠집니다
판정선택(전체)모든 탭이상 없음 · 점검 필요 · 판정 제외

결과 컬럼

컬럼의미산출식
L/C 번호 · 선적 차수 · 거래처 · 개설은행 · 통화선적 한 건의 기본 정보판매오더 · 거래처 마스터 · 신용장 조건에서 가져옴(신용장 조건 원천은 확인 필요)
L/C 금액 · 이번 선적 · 누적 선적 · 미사용 잔액(외화)분할 선적의 진행차수별 선적 금액의 누계, 미사용 잔액 = L/C 금액 − 누적 선적
최종 선적기일 · 선적일(B/L 일자)선적 조건과 실제신용장 조건 · 납품 실제 출고일(B/L 일자는 확인 필요)
선적 경과(일)양수면 기일 경과선적일 − 최종 선적기일
제시 기한 · 서류 제시일 · 제시 경과(일)서류 제시의 조건과 실제min(선적일 + 제시기간, 유효기간 만기) / (제시일 또는 기준일) − 제시 기한
허용 한도 · 한도 초과(외화)허용 과부족을 반영한 한도와 초과분L/C 금액 × (1 + 허용 과부족 %) / max(누적 선적 − 허용 한도, 0)
판정 · 판정 내용사람이 볼 건인지와 해당 사유판정 규칙 표의 위에서부터 첫 번째로 해당하는 조건(내용에는 모두 표시)

파일 구성

앱 폴더/
  index.html · readme.html · Component.js · manifest.json
  controller/  BaseController.js · Main.controller.js
  view/        Main.view.xml · DetailDialog.fragment.xml
  model/       formatter.js · ErrorHandler.js
  css/ · i18n/
  odata/       서비스 선언(metadata.xml) · 서비스 로직(service.js) · 데이터(json/)
  media/       intro.mp4 · intro_poster.jpg

SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 연계되는지

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 판매오더 · 납품 · 청구 · 고객 항목을 보는 일은 표준 화면이 이미 충분하며, 이 화면은 그 값을 신용장 조건과 견주는 자리를 채웁니다.

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

하고 싶은 일SAP 표준표준에서 걸리는 자리이 화면이 하는 일
판매오더의 거래처 · 통화 · 금액 보기VA03오더 한 건씩 열어야 하며, 신용장 조건과 견주는 열은 없습니다선적 건마다 L/C 금액과 허용 한도를 한 표에 모아 보여 줍니다
납품 문서의 실제 출고일 보기VL03N출고일은 보이지만 신용장의 최종 선적기일과 같은 표에 놓이지 않습니다최종 선적기일과 선적일을 한 행에 두고 경과 일수를 계산합니다
선적 건의 청구 금액 확인VF03청구 한 건씩 열어야 하며 L/C 단위 누적은 직접 만들어야 합니다분할 선적의 누적 · 미사용 잔액을 차수마다 이어서 보여 줍니다
고객 개별 항목에서 미결 확인FBL5N잔액 · 항목 중심이라 제시 기한과 견주는 열이 없습니다제시 기한과 서류 제시일의 차이를 건마다 계산합니다
신용장 조건(선적기일 · 유효기간 · 허용 과부족 · 제시기간) 보관-표준 칸이 정해져 있지 않고 고객사 관리 방식이 다르며 확인 필요조건 원천을 CDS 뷰 하나로 모아 읽는 것을 전제로 합니다
조건과 실제가 어긋난 건의 유형 분류없음표준에 없습니다. 보통 엑셀로 만듭니다네 갈래 유형으로 가르고 월 · 은행 · 통화별로 다시 모읍니다

T-code 별 연계 지점

T-code이름연계
VA03판매오더 조회거래처 · 통화 · 금액과 수주 조건을 확인합니다. 이 화면의 L/C 번호로 해당 오더를 찾아 열어 봅니다.
VL03N납품 조회실제 출고일을 이 화면의 선적일 칸과 견줍니다. B/L 일자를 어디에 저장하는지는 시스템마다 달라 확인 필요입니다.
VF03청구 문서 조회선적 건의 청구 금액을 확인합니다. 이 화면의 선적 금액과 청구 금액이 맞는지 볼 때 씁니다.
FBL5N고객 개별 항목 조회제시 이후 대금 회수 결과와 미결 항목을 확인합니다. 대금 회수는 이 화면의 범위 밖이며 별도 점검 대상입니다.

기존 화면이나 리포트를 없애야 하나요? 없애지 않습니다. 신용장 개설 · 통지 · 매입 · 대금 회수는 회사와 거래 은행이 쓰는 체계에 그대로 두고, 이 화면은 선적과 서류 제시가 조건 안에 있는지 미리 점검하는 보조 화면으로 함께 둡니다.

S/4HANA 분석 스택과의 자리

S/4HANA 에는 표준 CDS 분석 쿼리와 Fiori 분석 앱, Analysis for Office 같은 분석 도구가 있습니다. 이 화면은 그 위치를 대신하지 않고, 신용장 조건 점검이라는 한 가지 질문에 맞춘 CDS 뷰와 화면을 더하는 쪽입니다. 구체적인 Fiori 분석 앱 이름은 고객 시스템의 버전과 활성화 상태에 따라 달라 이 글에서는 쓰지 않으며, 확인 필요로 남깁니다. 같은 CDS 뷰 위에 Analysis for Office 시트를 얹어 쓰는 것도 가능합니다.

확장 포인트 — 운영에서 실제로 손대는 자리

자리무엇을 손대나비고
신용장 조건 원천최종 선적기일 · 유효기간 · 허용 과부족 · 제시기간을 어느 테이블에서 읽을지 정합니다고객사마다 달라 첫 번째 합의 항목입니다
선적일(B/L 일자) 원천납품 실제 출고일을 쓸지 별도 선적 자료의 B/L 일자를 쓸지 정합니다선적일 기준이 바뀌면 경과 일수가 바뀝니다
서류 제시 기록서류 제시일을 어디에 남기는지에 따라 제시 여부 조건을 바꿉니다표준 칸이 정해져 있지 않아 확인 필요
정책값제시기간 기본값과 점검 필요 비율 기준을 정책표 값으로 둡니다. 샘플은 21일 · 30.00% 이며 모두 가정값회사와 거래 은행 관행에 맞춰 정합니다
환율 유형과 기준일원화 환산에 어느 환율 유형 · 어느 날짜를 쓸지 정합니다샘플은 통화별 가정 환율
확장 필드와 권한확장 필드(서류 제시일 등)와 판매 조직 · 회사코드 권한을 집계 단계에 겁니다드릴 단계에만 걸면 합계로 새어 나갑니다

분석 지표 정의표

지표산식·판정 기준대응 기능원천 데이터비고
선적 경과(일)선적일 − 최종 선적기일 (양수면 점검 필요)선적 명세 · 월별납품 · 신용장 조건신용장 조건은 확인 필요
제시 기한min(선적일 + 제시기간, 유효기간) — 제시일이 이후면 점검 필요선적 명세선적일 · 신용장 조건제시기간은 샘플 가정값(21일)
허용 한도L/C 금액 × (1 + 허용 %) — 누적 선적이 넘으면 점검 필요선적 명세 · 판정 유형별판매오더 · 신용장 조건외화 기준
점검 필요 비율(%)점검 필요 건수 ÷ 선적 건수 × 100 (30.00% 이상이면 요약 행 점검 필요)월별 · 개설은행별 · 통화별집계기준 비율은 샘플 가정값
평균 제시 소요(일)서류 제시일 − 선적일 의 평균개설은행별선적일 · 제시 기록제시 기록이 있는 건만 평균

CDS 구성 — 기준 표에서 서비스까지

뷰 레이어 구성

SAP 에서 같은 일을 하려면 아래처럼 기준 표 · 기본 뷰 · 큐브 · 분석 쿼리 · 권한 · 서비스의 순서로 나누어 만듭니다. 화면이 읽는 OData 서비스는 맨 아래 서비스 층이 대신합니다.

레이어뷰·객체하는 일왜 나누나
① 기준정책 표 · 신용장 조건 표제시기간 기본값과 점검 필요 비율 기준, 신용장별 선적기일 · 유효기간 · 허용 과부족기준값을 코드가 아닌 표로 두어 회사가 바꿀 수 있게 합니다
② 기본ZI_ExportLcShipment선적 한 건의 거래처 · 통화 · 금액 · 실제 출고일원천 조인을 한 곳에 모아 위 뷰가 같은 선적을 쓰게 합니다
③ 누적ZI_ExportLcCumulative같은 L/C 의 차수별 누적 선적 금액누적 계산을 한 번만 해 한도 판정이 같은 값을 쓰게 합니다
④ 큐브ZI_ExportLcCheck허용 한도 · 제시 기한 · 경과 일수 · 판정 유형판정을 한 번만 정해 모든 쿼리가 같은 값을 쓰게 합니다
⑤ 쿼리ZC_ExportLcQuery · ZC_ExportLcMonth화면용 필터 · 정렬 · 표시 주석, 월별 요약화면 요구와 계산 로직을 분리합니다
⑥ 권한ZC_ExportLcQuery (DCL)판매 조직별 접근 제한집계 단계에 권한을 걸어 합계로 새지 않게 합니다
⑦ 서비스Z_UI_ExportLcServiceOData 서비스 정의와 바인딩화면이 읽는 서비스 주소를 한 곳에서 관리합니다

① 기준 표 — 정책값과 신용장 조건

제시기간 기본값과 점검 필요 비율 기준은 정책 표에, 신용장마다 다른 선적기일 · 유효기간 · 허용 과부족은 조건 표에 둡니다. 코드에 박아 두면 고객사마다 소스를 고쳐야 하므로 표로 빼 두고 현업이 유지하게 합니다. 아래 조건 표는 신용장 정보를 담는 자리의 스케치이며, 실제 원천은 고객사 신용장 관리 방식에 따라 확인이 필요합니다.

" ─────────────────────────────────────────────────────────────
" zexlc_policy — 점검 정책값
" 역할 : 제시기간 기본값, 점검 필요 비율 기준.
" 나눈 이유 : 기준값이 코드에 있으면 정책이 바뀔 때마다 이송이 필요하다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '신용장 점검 정책값'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zexlc_policy {
  key mandt        : mandt not null;
  key bukrs        : bukrs not null;
  pres_days_dflt   : abap.int4;        " 제시기간 기본값(일)
  need_rate_pct    : abap.dec(5,2);    " 점검 필요 비율 기준(%)
}
" ─────────────────────────────────────────────────────────────
" zexlc_lcterm — 신용장 조건(스케치)
" 역할 : L/C 번호별 선적기일 · 유효기간 · 허용 과부족 · 제시기간.
" 주의 : 실제 원천은 고객사 신용장 관리 방식에 따라 확인 필요.
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '신용장 조건'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table zexlc_lcterm {
  key mandt      : mandt not null;
  key lc_no      : abap.char(12) not null;
  vbeln          : vbeln_va;           " 연결된 판매오더
  issue_bank     : abap.char(4);
  waers          : waers;
  lc_amt         : abap.dec(15,2);
  tol_pct        : abap.dec(5,2);      " 허용 과부족(%)
  latest_ship    : abap.dats;          " 최종 선적기일
  expiry_date    : abap.dats;          " 유효기간 만기
  pres_days      : abap.int4;          " 제시기간(일)
}

② 기본 뷰 — 선적 한 건의 원천을 한곳에

신용장 조건 · 판매오더 · 납품 문서를 이어 선적 한 건당 한 행을 만듭니다. 선적일은 납품 실제 출고일로 가정했으며, B/L 일자를 별도 자료에서 가져오는 고객사는 이 뷰의 해당 칸만 바꾸면 됩니다. 문서 흐름의 유형 조건은 고객 시스템에 맞춰 확인이 필요합니다.

" ─────────────────────────────────────────────────────────────
" ZI_ExportLcShipment — 선적 한 건당 한 행
" 역할 : 신용장 조건 + 납품 실제 출고일 + 차수의 단일 원천.
" 나눈 이유 : 이후 모든 뷰가 같은 선적 정의를 쓰게 한다.
" ─────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '수출 신용장 선적 기본'
define view entity ZI_ExportLcShipment
  as select from zexlc_lcterm as lc
    inner join   vbak          as so on so.vbeln = lc.vbeln
    inner join   vbfa          as fl on fl.vbelv = so.vbeln
                                    and fl.vbtyp_n = 'J'          " 후속 문서 = 납품(확인 필요)
    inner join   likp          as dl on dl.vbeln = fl.vbeln
{
  key lc.lc_no                      as LcNo,
  key dl.vbeln                      as DeliveryNo,                " 차수는 납품 순번으로 매김(확인 필요)
      so.kunnr                      as CustId,
      so.vkorg                      as SalesOrg,
      lc.issue_bank                 as IssBank,
      lc.waers                      as Curr,
      lc.lc_amt                     as LcAmt,
      lc.tol_pct                    as TolPct,
      lc.latest_ship                as LatestShip,
      lc.expiry_date                as ExpiryDate,
      lc.pres_days                  as PresDays,
      dl.wadat_ist                  as BlDate,                    " 선적일 갈음값 — B/L 일자 원천은 확인 필요
      @Semantics.amount.currencyCode: 'Curr'
      dl.netwr                      as ShipAmt                    " 납품 금액 — 원천 칸은 확인 필요
}

③ 누적 뷰 — 차수를 넘어 누적으로

분할 선적의 허용 한도 판정은 차수별 금액이 아니라 누적 금액으로 해야 합니다. CDS 에서는 같은 L/C 의 앞선 차수를 자기 조인으로 모아 합산합니다. 차수가 많은 대용량에서는 미리 집계한 뷰나 AMDP 로 바꾸는 쪽을 검토합니다.

" ─────────────────────────────────────────────────────────────
" ZI_ExportLcCumulative — 차수별 누적 선적
" 역할 : 같은 L/C 의 앞선 차수까지 합한 금액을 낸다.
" 나눈 이유 : 한도 판정이 누적 계산을 다시 하지 않게 한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '수출 신용장 누적 선적'
define view entity ZI_ExportLcCumulative
  as select from ZI_ExportLcShipment as cur
    inner join   ZI_ExportLcShipment as prv
      on  prv.LcNo       = cur.LcNo
      and prv.DeliveryNo <= cur.DeliveryNo
{
  key cur.LcNo,
  key cur.DeliveryNo,
      cur.Curr,
      @Semantics.amount.currencyCode: 'Curr'
      sum( prv.ShipAmt ) as CumShip
}
group by cur.LcNo, cur.DeliveryNo, cur.Curr

④ 큐브 뷰 — 판정을 한 번만

허용 한도 · 제시 기한 · 경과 일수 · 판정 유형을 이 뷰에서 한 번 정하고, 이후 모든 쿼리가 같은 값을 읽습니다. 유형은 규칙 순서의 첫 조건 하나만 붙입니다.

" ─────────────────────────────────────────────────────────────
" ZI_ExportLcCheck — 선적 건별 판정
" 역할 : 허용 한도 · 제시 기한 · 경과 일수 · 판정 유형을 낸다.
" 나눈 이유 : 판정을 한 곳에서만 정해 탭을 옮겨도 같은 건이 바뀌지 않게 한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '수출 신용장 선적 판정'
define view entity ZI_ExportLcCheck
  as select from ZI_ExportLcShipment as s
    inner join   ZI_ExportLcCumulative as c
      on c.LcNo = s.LcNo and c.DeliveryNo = s.DeliveryNo
{
  key s.LcNo,
  key s.DeliveryNo,
      s.SalesOrg,
      s.IssBank,
      s.Curr,
      s.ShipAmt,
      c.CumShip,
      s.BlDate,
      s.LatestShip,
      dats_days_between( s.LatestShip, s.BlDate )          as ShipLateDays,
      cast( s.LcAmt * ( 100 + s.TolPct ) / 100
            as abap.dec(15,2) )                            as MaxAmt,
      case when dats_add_days( s.BlDate, s.PresDays, 'NULL' ) < s.ExpiryDate
           then dats_add_days( s.BlDate, s.PresDays, 'NULL' )
           else s.ExpiryDate end                           as PresDeadline,
      case
        when dats_days_between( s.LatestShip, s.BlDate ) > 0     then 'LATESHIP'
        when c.CumShip > s.LcAmt * ( 100 + s.TolPct ) / 100      then 'OVERAMT'
        else 'OK' end                                      as CheckCode
      " 제시기한 경과 · 서류 미제시는 제시 기록 뷰를 붙여 같은 방식으로 이어 간다(확인 필요)
}

⑤ 분석 쿼리 — 화면이 읽는 모양으로

큐브를 그대로 노출하지 않고 화면에서 쓰는 필터와 정렬, 표시 주석만 붙인 쿼리 뷰를 둡니다. 회계연도는 필수 필터로 걸어 전 기간을 한 번에 읽는 일을 막습니다. 월별 · 개설은행별 · 통화별 묶음은 같은 큐브를 다른 그룹으로 읽는 쿼리를 따로 둡니다.

" ─────────────────────────────────────────────────────────────
" ZC_ExportLcQuery — 선적 명세 화면용 쿼리
" 역할 : 필터 · 정렬 · 표시 주석. 계산은 큐브에서 이미 끝났다.
" 나눈 이유 : 화면 요구가 바뀌어도 계산 로직은 건드리지 않는다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '신용장 선적 명세'
@Metadata.allowExtensions: true
define view entity ZC_ExportLcQuery
  as projection on ZI_ExportLcCheck
{
      @UI.lineItem: [{ position: 10 }]
  key LcNo,
  key DeliveryNo,
      SalesOrg,
      @UI.lineItem: [{ position: 20 }]
      @Consumption.filter: { selectionType: #SINGLE, multipleSelections: true }
      IssBank,
      @UI.lineItem: [{ position: 30 }]
      Curr,
      @UI.lineItem: [{ position: 40 }]
      ShipAmt,
      @UI.lineItem: [{ position: 50 }]
      CumShip,
      @UI.lineItem: [{ position: 60 }]
      BlDate,
      @UI.lineItem: [{ position: 70 }]
      @Consumption.filter: { selectionType: #SINGLE, multipleSelections: true }
      CheckCode
}
" ─────────────────────────────────────────────────────────────
" ZC_ExportLcMonth — 월별 요약 쿼리
" 역할 : 선적월마다 선적 건수와 점검 필요 건수를 센다.
" 나눈 이유 : 요약도 건별과 같은 큐브를 읽어 합계가 어긋나지 않게 한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '신용장 월별 요약'
define view entity ZC_ExportLcMonth
  as select from ZI_ExportLcCheck
{
  key substring( BlDate, 1, 6 )                       as YmCode,
      count( * )                                      as ShipCnt,
      sum( case when CheckCode <> 'OK' then 1 else 0 end ) as NeedCnt
}
group by substring( BlDate, 1, 6 )

⑥ 접근 제어 — 판매 조직 단위로

권한은 집계 단계에 겁니다. 상세 단계에만 걸면 합계에서 남의 몫이 뺄셈으로 드러납니다. 아래 권한 객체는 판매오더의 판매 조직 권한을 쓰는 예이며, 고객사의 권한 설계에 맞춰 확인이 필요합니다.

" ─────────────────────────────────────────────────────────────
" ZC_ExportLcQuery — DCL
" 역할 : 판매 조직 권한이 있는 선적 건만 읽게 한다.
" 나눈 이유 : 전사 합계와 자기 몫의 차이로 남의 숫자가 드러나지 않게.
" ─────────────────────────────────────────────────────────────
@EndUserText.label: '신용장 선적 명세 권한'
@MappingRole: true
define role ZC_ExportLcQuery {
  grant select on ZC_ExportLcQuery
    where ( SalesOrg ) = aspect pfcg_auth( V_VBAK_VKO, VKORG, ACTVT = '03' );
}

⑦ 서비스 정의와 바인딩 — 화면이 부르는 서비스

쿼리를 서비스로 노출하는 마지막 층입니다. 화면의 앱 설정에는 서비스 주소가 상대 경로 하나로 적혀 있어, 운영에서는 Binding 을 게시한 뒤 이 주소만 바꾸면 됩니다.

" ─────────────────────────────────────────────────────────────
" Z_UI_ExportLcService — Service Definition
" 역할 : 화면이 읽는 묶음을 한 서비스로 노출한다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label: '수출 신용장 점검 서비스'
define service Z_UI_ExportLcService {
  expose ZC_ExportLcQuery as LcShipment;
  expose ZC_ExportLcMonth as LcMonth;
}
" Service Binding : OData V2 - UI 로 만들어 게시한다.

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래 항목은 코드가 아니라 합의입니다.

해야 할 일정하지 않으면누가
신용장 조건 원천(선적기일 · 유효기간 · 허용 과부족 · 제시기간)조건을 읽지 못해 판정이 비어 첫 회의에서 막힙니다수출팀 · 무역금융
B/L 일자 원천(납품 출고일 또는 별도 선적 자료)경과 일수가 시스템마다 달리 나옵니다수출팀 · 물류
서류 제시 기록 방식제시기한 경과와 서류 미제시 건이 실제보다 많거나 적게 나옵니다수출팀 · 무역금융
환율 유형과 기준일원화 금액이 어느 환율인지 설명하지 못합니다회계팀
제시기간 기본값 · 점검 필요 비율 기준점검 필요 건이 너무 많거나 적어 신뢰를 잃습니다수출팀 · 회계팀
판매 조직 · 회사코드 권한합계 차이로 남의 숫자가 드러납니다보안 · 권한
서비스 활성화와 앱 설정의 서비스 주소 교체화면이 샘플 서비스를 계속 바라봅니다Basis · 개발
전송(TR) 순서기준 표가 없는 시스템에서 뷰가 먼저 활성화되어 오류가 납니다개발

운영 데이터로 갈 때

선적이 해마다 수천 건을 넘기면 먼저 막히는 곳은 판정이 아니라 누적 계산의 자기 조인입니다. 회계연도를 필수 조건으로 두고, 선적일 범위를 좁혀 읽게 하며, 누적 뷰는 미리 집계해 두는 쪽을 검토합니다. 응답 시간 기준은 고객사와 정해야 하며 이 글은 수치를 약속하지 않습니다. 샘플 41건에서의 응답은 운영 규모를 대표하지 않습니다.

자주 묻는 질문

도입 전에 가장 많이 나오는 질문을 숫자와 판정 · 화면과 사용 · 표준 SAP 와의 관계 · 도입과 운영으로 묶었습니다. 이 글은 점검 도구를 소개하며 신용장 하자 여부나 대금 지급의 판단을 대신하지 않습니다.

숫자와 판정

점검 필요는 어떤 조건에서 나오나요?

네 가지 중 하나라도 해당하면 점검 필요입니다. 선적일이 최종 선적기일을 넘은 경우, 같은 L/C 의 누적 선적 금액이 허용 한도를 넘은 경우, 서류 제시일이 제시 기한보다 늦은 경우, 제시 기록이 없는데 제시 기한이 기준일까지 지난 경우입니다. 모두 해당하지 않으면 이상 없음입니다.

제시 기한은 어떻게 구하나요?

선적일(B/L 일자)에 제시기간을 더한 날짜와 신용장 유효기간 만기 중 이른 날짜입니다. 샘플의 제시기간은 21일이며 가정값입니다. 실제 값은 신용장 조건에 적힌 제시기간을 따라야 하므로 화면은 그 값을 바꿔 쓰는 자리로 열어 둡니다.

허용 한도는 어떻게 구하나요?

L/C 금액에 허용 과부족 비율을 반영한 값, 즉 L/C 금액 × (1 + 허용 과부족 %)입니다. 같은 L/C 의 누적 선적 금액이 이 값을 넘으면 허용 한도 초과입니다. 샘플의 허용 과부족은 L/C 마다 0% · 5% · 10% 로 둔 가정값입니다.

한 건이 여러 조건에 해당하면 어떻게 되나요?

판정 유형은 규칙 순서(선적기일 경과 → 허용 한도 초과 → 제시기한 경과 → 서류 미제시)에서 가장 먼저 해당하는 하나만 붙습니다. 그래서 한 건이 두 유형에 중복 집계되지 않고 유형별 건수의 합이 판정 대상 건수와 같습니다. 해당하는 사유는 판정 내용 칸에 모두 적어 사람이 놓치지 않게 합니다.

외화 금액은 어떻게 합산하나요?

통화가 다른 외화 금액은 더하지 않습니다. 통화별 탭은 통화마다 외화를 따로 모으고, 합계는 가정 환율로 환산한 원화 금액으로 냅니다. 분할 선적의 차수별 원화는 누적 환산 금액의 차이로 구해 한 L/C 의 원화 합이 L/C 원화 금액과 어긋나지 않게 했습니다.

선적 전 L/C 는 왜 판정에서 빠지나요?

선적일이 없으면 최종 선적기일을 넘었는지, 제시 기한이 언제인지 정할 수 없기 때문입니다. 이런 L/C 는 판정에서 빼고 유효기간 만기까지 남은 일수와 함께 따로 보여 줍니다. 샘플에서는 5건이며 대사 차이 건수에 섞지 않습니다. 선적 후 다시 조회하면 판정 대상이 됩니다.

대사 결과의 검사 건수 161건은 무엇을 센 건가요?

정합성 대사식 8종이 각각 검사한 대상(L/C · 월 · 은행 · 유형 · 통화 · 선적 건)의 수를 모두 더한 값입니다. 모두 좌변과 우변이 같아 차이는 0건입니다. 선적 전 L/C 5건은 의도적 예외라 이 161건과 별도로 기록합니다.

화면과 사용

처음 열면 무엇이 보이나요?

회계연도 기본값으로 자동 조회되어 요약 지표 여섯 개와 선적 명세 탭이 열립니다. 조회조건을 바꾼 뒤에는 조회 버튼이나 입력 칸에서 Enter 키를 눌러 다시 조회합니다. 초기화 버튼은 입력한 조건을 비웁니다.

조회조건 중 반드시 넣어야 하는 것은 무엇인가요?

회계연도(4자리)뿐입니다. 거래처 · 개설은행 · 통화 · 판정 유형 · 선적일 범위 · 판정은 선택이며 비워 두면 전체입니다. "전체"는 해당 조건을 필터에서 빼는 방식이라 서버로 코드값을 보내지 않습니다.

점검 필요 건만 보려면 어떻게 하나요?

판정 조건을 "점검 필요"로 고르고 조회합니다. 이상 없음 건과 판정 제외 건이 빠지고 요약 지표도 같은 조건으로 다시 계산됩니다.

행을 누르면 무엇이 열리나요?

선적 행은 그 건의 최종 선적기일 · 선적일 · 제시 기한 · 허용 한도 · 판정 내용을 모은 상세 창이 열립니다. 월 · 개설은행 · 판정 유형 · 통화 요약 행은 그 조건에 속한 선적 건 목록이 함께 열립니다. 닫기 버튼이나 ESC 키로 닫습니다.

내려받은 CSV 에는 무엇이 들어 있나요?

지금 보고 있는 탭의 조회 결과가 UTF-8 CSV 로 내려받아집니다. 조회조건으로 걸러진 행만 담기며 다른 탭의 내용은 들어 있지 않습니다.

월 · 은행 · 통화 요약의 점검 필요 기준은 무엇인가요?

요약 행의 점검 필요 비율(점검 필요 건수 ÷ 선적 건수)이 30.00% 이상이면 그 행을 점검 필요로 표시합니다. 이 기준은 샘플 가정값이며 회사의 정책표로 바꿔 쓰는 자리입니다. 비율이 낮아도 개별 점검 필요 건은 선적 명세에서 따로 보입니다.

표준 SAP 와의 관계

SAP 표준 화면으로는 왜 안 되나요?

표준 화면으로도 판매오더 · 납품 · 청구 · 고객 개별 항목을 한 건씩 볼 수 있습니다. 다만 신용장의 최종 선적기일과 허용 한도, 제시 기한을 실제 선적과 견줘 월 · 은행 · 통화별로 다시 모으는 표는 표준에 없어 보통 엑셀로 만듭니다. 이 화면은 그 자리를 채웁니다.

표준 T-code 와는 어떻게 오가나요?

선적 건의 거래처와 금액은 VA03 으로, 선적(출고) 일자는 VL03N 으로, 청구 금액은 VF03 으로 확인합니다. 대금 회수 뒤 미결 항목은 FBL5N 에서 봅니다. 표준 화면에서 본 값은 이 화면 선적 명세에서 L/C 번호로 다시 찾습니다.

신용장 조건은 어디서 가져오나요?

최종 선적기일 · 유효기간 · 허용 과부족 · 제시기간 같은 신용장 조건을 어느 테이블에 담는지는 고객사의 신용장 관리 방식에 따라 달라 확인 필요입니다. 이 화면은 조건이 담긴 원천을 CDS 뷰 하나로 모아 읽는 것을 전제로 합니다.

신용장 개설 · 매입 · 대금 회수 업무를 대체하나요?

대체하지 않습니다. 개설은행과의 통지 · 서류 매입 · 대금 회수는 회사와 거래 은행이 쓰는 방식 그대로 두고, 이 화면은 선적과 서류 제시가 신용장 조건 안에 있는지 미리 점검하는 보조 화면입니다.

기존 업무 절차를 바꿔야 하나요?

바꾸지 않습니다. 조회 → 탭 이동 → 행 클릭 세 가지만 배우면 되고, 점검 필요로 나온 건을 어떻게 처리할지는 지금의 절차를 따릅니다.

도입과 운영

이 화면이 신용장 하자 여부를 판정해 주나요?

판정하지 않습니다. 신용장 조건 충족 여부와 하자 처리는 이 글에서 원문으로 확인한 내용이 아니므로 화면에 쓰지 않았습니다. 이 화면은 샘플 정책값에 따라 분류 · 집계 · 대사를 돕는 점검 도구이며, 최종 판단은 회사와 거래 은행이 합니다.

점검 필요로 나온 건은 하자인가요?

하자로 단정하지 않습니다. 점검 필요는 신용장 조건과 실제 선적 · 제시가 기준에서 갈린다는 뜻이며 원인은 확인 필요입니다. 네 가지 유형은 확인 순서를 정하는 데 쓰고 결론은 사람이 냅니다.

운영 시스템에 붙이려면 무엇이 필요한가요?

신용장 조건 원천 · 선적일 원천 · 제시 기록 방식 · 환율 유형 · 정책값을 정하고, CDS 뷰를 만들어 서비스로 게시한 뒤 앱 설정의 서비스 주소를 바꾸면 됩니다. 소요 시간은 합의 속도에 달려 있어 이 글은 기간을 약속하지 않습니다.

권한과 보안은 어떻게 되나요?

판매 조직 · 회사코드 권한을 CDS 접근 제어로 집계 단계에 걸어, 합계로 남의 몫이 드러나지 않게 합니다. 화면은 OpenUI5 표준 컨트롤만 쓰고 외부 전송이 없습니다.

선적이 많아지면 느려지지 않나요?

운영 규모에서는 선적 차수별 누적 계산과 조인이 먼저 부담이 됩니다. 회계연도 필수 조건 · 선적일 범위 제한 · 미리 집계한 뷰를 검토합니다. 샘플 41건의 응답 속도는 운영 규모를 대표하지 않으므로 응답 시간 기준은 고객사와 정해야 합니다.

제시기간이나 허용 과부족 기준이 바뀌면 어떻게 하나요?

제시기간 기본값과 점검 필요 비율 기준은 정책표로 분리되어 있어 코드를 고치지 않고 현업이 갱신합니다. 신용장마다 다른 허용 과부족과 제시기간은 신용장 조건 원천에서 건별로 읽습니다.

이 글의 숫자는 실제 거래인가요?

아닙니다. 가상의 해외 거래처 7곳과 개설은행 5곳, L/C 33건으로 만든 검증용 샘플이며, 환율 · 제시기간 · 기준 비율 · 기준일(2026-09-30)은 모두 가정값입니다. 실제 거래처 · 거래 자료는 쓰지 않았습니다.