자금 솔루션 · 세금·공과금 납부

SAP 세금·공과금 납부 자금 다차원 분석 — 어느 세목과 은행에 몰렸고 납부 예정에서 왜 벗어났는지를 한 화면에서 읽는 자금 점검

세목·은행·법인·채널 겹쳐 보기 · 칸에서 원천 납부 라인까지 드릴스루 · 납부 예정 대비 차이와 일곱 요인분해 · 규칙에 걸리면 대기함으로 — 소개 영상과 실제 화면 22종, 그리고 CDS 코드까지

소개 영상블로그 목차 순서대로 · 자막 포함

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

월말이 다가오면 자금 담당과 세무 담당이 받는 질문은 대체로 세 가지입니다. 이번 달 세금과 공과금으로 나갈 돈이 얼마인가, 어느 세목과 어느 은행에 몰려 있는가, 자금 계획에 잡아 둔 납부 예정보다 늘었다면 무엇 때문인가. 지금은 이 답이 지급 전표 조회, 세목별 신고서, 은행 이체 내역, 엑셀로 만든 자금 계획표에 흩어져 있어 한 사람이 한나절 맞춰 봐야 겨우 나옵니다. 부가가치세와 원천세, 법인세, 관세, 지방세, 사회보험료는 납부 시점과 납부 채널이 서로 달라서, 합계가 맞아도 어느 세목이 계획과 어긋났는지는 숫자가 아니라 사람의 기억에 의존하기 쉽습니다.

이 앱은 그 자리를 메웁니다. 세금·공과금 납부 한 건 한 건을 세목 · 납부 은행 · 법인 · 납부 채널 · 신고 구분 · 기한 대비 · 처리 단계 · 환급 상계로 묶은 큐브로 한 번 읽어 두고, 사용자가 축을 끌어다 놓으며 같은 숫자를 여러 각도로 봅니다. 납부 예정과 실적의 차이는 일곱 요인으로 갈라 보여 주고, 그 숫자가 원천 납부 라인과 어긋나지 않는지 매번 스스로 검산합니다. 이 화면은 점검 도구이며, 신고와 납부에 관한 최종 판단은 회사와 세무 대리인이 합니다. 관련 법령은 법인세법 · 부가가치세법 · 국세기본법 등 제도 명칭으로만 언급하며 조문 번호와 세율은 확인 필요입니다.

한 줄 요약 — 세금·공과금 납부 자금은 “얼마 나가나”에서 끝나지 않습니다. 이 앱은 어느 세목과 은행에 몰렸고, 납부 예정에서 왜 벗어났으며, 무엇을 먼저 확인할 것인가까지 같은 숫자 위에서 보여 주고, 그 숫자가 원천 납부 라인과 1원도 어긋나지 않는지 매번 검산합니다.

핵심 포인트 일곱 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 축을 바꿔도 갈라지지 않는 피벗세목 · 납부 은행 · 법인 · 납부 채널 · 신고 구분 · 기한 대비 등 열 개 차원을 끌어다 놓아 행 3단계 · 열 2단계로 봅니다. 모든 배치가 한 번 읽은 같은 큐브에서 나와, 어느 배치에서도 총합이 1,303.96억으로 같았습니다.세목별 표, 은행별 표, 분기별 표를 따로 만들고 합계가 서로 다르면 표를 맞추는 회의를 엽니다.
② 칸에서 원천 납부 라인까지숫자를 누르면 그 칸을 이루는 납부 라인이 열리고, 원천 합계가 칸 금액과 같은지 그 자리에서 보입니다. 부가가치세 2026년 1분기 칸은 163건, 131.61억이 표와 일치했습니다.표준 조회를 다시 열어 세목과 기간 조건을 손으로 맞추고, 건수와 합계를 엑셀로 옮겨 비교합니다.
③ 납부 예정 대비 차이를 일곱 요인으로예정과 실적의 차이를 신고 세액 증가 · 감소 · 가산세·지연이자 · 환급 상계 효과 · 납부월 이동 · 예정 외 신규 납부 · 예정 납부 미발생으로 가르고, 합이 총차이와 맞는지 매번 검산합니다.엑셀에서 차이 금액만 구하고, 이유는 담당자에게 따로 물어 메일로 받습니다.
④ 늦게 내는 곳과 가산세가 먼저 보임기한을 8일 넘겨 낸 납부 비중과 가산세·지연이자율이 세목 · 은행 · 신고 구분별로 바로 보여, 납부 일정을 점검할 우선순위가 정해집니다.총액만 보고 지나가다 가산세 고지서를 받은 뒤에야 지연 건을 발견합니다.
⑤ 보는 사람에 맞춘 첫 화면경영 · 재무 · 자금 · 회계 역할을 바꾸면 먼저 놓이는 축과 측정값이 달라지며, 서버를 다시 부르지 않습니다.부서마다 다른 파일을 만들어 메일로 전달하고 숫자가 달라질 때마다 다시 맞춥니다.
⑥ 규칙에 걸리면 대기함으로네 가지 감시 규칙(지연 납부 비중 · 가산세·지연이자 · 납부액 예정 차이 · 기말 미납 잔액)을 서버가 하루 한 번 판정해 받을 역할의 대기함에 올립니다.담당자가 화면을 열어 보기 전에는 아무도 알 수 없습니다.
⑦ 사유와 보기가 남음차이가 난 행에 적은 변동 사유와 짜 둔 축 배치가 다음 달에도 따라옵니다. 보고용 PowerPoint도 현재 범위 그대로 내려받습니다.사유는 메일에서 찾고, 표는 매달 처음부터 다시 짭니다.

사례로 보는 효과

검증용 샘플 자료(2026년 1~9월, 원천 납부 라인 3,597건)에서 실적 납부액은 1,303.96억, 납부 예정은 1,289.70억이었고 차이는 +14.26억(+1.1%)입니다. 총액만 보면 “조금 늘었다”로 끝나는 숫자지만 요인분해는 다른 이야기를 합니다. 신고 세액 증가가 +47.14억, 신고 세액 감소가 −31.03억, 가산세·지연이자가 +4.23억, 환급 상계가 −10.49억, 예정 외 신규 납부가 +15.12억, 예정 납부 미발생이 −10.71억으로 크게 오르내리다 서로 상쇄되어 +14.26억이 됩니다. 일곱 요인의 합이 총차이와 맞는지는 범위 39개(전체와 차원 값별)에서 모두 0으로 확인했습니다. 점검할 곳은 총액이 아니라 신고 세액을 예정과 다르게 신고한 건과 예정에 없던 납부가 생긴 건입니다.

도입하면 달라지는 것

  • 월 자금 회의가 “표를 맞추는 시간”에서 “어느 세목이 왜 벗어났는지 보는 시간”으로 바뀝니다.
  • 납부 예정과 실적의 차이를 사람이 기억에서 설명하지 않고, 요인과 근거 납부 라인으로 설명합니다.
  • 가산세·지연이자와 기말 미납 잔액이 마감 뒤가 아니라 납부 기간 중에 대기함으로 올라옵니다.
  • 변동 사유와 보기가 남아 담당자가 바뀌어도 같은 질문을 처음부터 다시 하지 않습니다.

이런 회사에 맞습니다

여러 법인이 세목별로 세금과 공과금을 납부하고, 납부 은행과 납부 채널(전자납부 · 자동이체 · 창구 등)이 나뉘어 있어 자금 담당과 세무 담당이 매달 계획표와 실제 납부를 대조하는 회사에 맞습니다. 관세 · 부가가치세 · 원천세처럼 월 단위로 반복되는 납부가 많고, 가산세나 환급 상계가 간헐적으로 끼는 곳일수록 효과가 큽니다. 반대로 납부 건이 적고 세목이 한두 개뿐이라면 표준 화면만으로 충분할 수 있습니다.

실행 화면

사용 방법

  1. 조회조건 입력 — 기간(부터 · 까지)은 필수이며 기본은 2026년 1월~9월입니다. 법인은 선택이고, 비교 기준은 “납부 예정과 비교”가 기본입니다.
  2. 조회 — 조회조건 상자 안의 파란 [조회] 버튼을 누르거나 입력 칸에서 Enter 를 누릅니다. 기본 + 자동 조회로 저장한 보기가 있으면 화면을 열 때 자동으로 조회됩니다.
  3. 요약 확인 — 위쪽 다섯 가지 지표를 봅니다. 보는 사람(경영 · 재무 · 자금 · 회계)을 바꾸면 먼저 놓이는 축이 달라집니다.
  4. 탭과 축 이동 — 차원 칩을 끌어 행 축 · 열 축에 놓고, 측정값과 값 필터로 범위를 좁힙니다. 총합은 어떤 배치에서도 같습니다.
  5. 행 · 칸 클릭 — 행을 누르면 오른쪽 차트가 그 행의 요인으로 바뀌고, 숫자 칸을 누르면 원천 납부 라인이 열립니다.
  6. 내보내기 — [CSV]로 표를 내려받고, [해설]에서 읽은 내용을 PowerPoint 보고서로 받습니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 한 장짜리 분석 화면 — 조회조건 · 지표 · 레이아웃 보드 · 피벗 트리 표 · 차트조회부터 원천 라인까지 화면 이동 없이 같은 자리에서 끝나게 하려는 것입니다.
집계 · 판정 로직큐브를 다시 묶는 재집계 모듈, 요인분해 · 해설 · 에이전트를 계산하는 서비스 로직화면과 서비스가 같은 계산 규칙을 쓰므로 두 곳의 숫자가 갈라지지 않습니다.
데이터 연동OData V2 서비스 한 개 — 큐브 · 예정 큐브 · 원천 라인 · 사유 · 보기 · 에이전트 등 열네 개 엔티티셋과 펑션 세 개금액은 서비스가 계산하고 화면은 읽어 합산 · 배치만 합니다. 쓰기는 변동 사유 · 저장한 보기 · 에이전트 대기함에만 씁니다.
차트 · 보고서외부 라이브러리 없이 SVG 를 직접 그린 차트와, 브라우저 안에서 만드는 PowerPoint 보고서운영 화면에 외부 스크립트를 얹지 않기 위해서입니다.
테마sap_horizon (OpenUI5 1.120)SAP 화면과 같은 시각 언어로 맞춥니다.
SAP 표준 기능을 그대로 이어받은 부분 — 납부 전표와 계정 라인, 자금 계획 데이터는 표준 데이터 구조를 그대로 이어받습니다. 이 화면은 그 위에 조회 · 검증 관점을 더해 확장하며, 법정 · 세무 신고 자료는 표준 화면과 세무 대리인의 신고서에 그대로 남겨 둡니다.

처음 열었을 때 — 조회 한 번으로 지표 · 표 · 차트가 함께 뜹니다

조회 전에도 조회조건과 레이아웃 보드, 피벗 틀이 먼저 보입니다. 기간을 정하고 조회를 누르면 같은 큐브에서 나온 지표 · 표 · 차트가 한 번에 채워집니다.

조회 직후 — 지표 · 표 · 차트가 한 번에
조회 직후 — 지표 · 표 · 차트가 한 번에 — 기간 2026년 01월~09월, 납부 예정과 비교로 조회한 첫 결과입니다. 위쪽 다섯 가지 요약 지표와 왼쪽 피벗 표, 오른쪽 차트가 한 번의 읽기로 채워집니다.

기간 2026년 1월~9월, 납부 예정과 비교로 조회한 첫 결과입니다. 지표 다섯 개는 납부액 1,303.96억, 최대 세목 비중 28.3%(부가가치세), 가산세·지연이자율 0.32%, 8일 이상 지연 납부 비중 8.4%, 예정 대비 납부 차이 +14.26억입니다. 모두 같은 큐브에서 나온 값이며 표와 차트도 한 번의 읽기로 함께 채워집니다.

조회 조건 펼침
조회 조건 펼침 — 조회 직후에는 조회 조건이 한 줄 요약으로 접혀 표가 넓게 쓰입니다. 막대를 누르면 입력 칸이 다시 펼쳐집니다.

조회를 누르면 조건 상자는 한 줄 요약(법인 · 기간 · 비교 기준 · 금액 단위)으로 접혀 표가 넓어지고, 막대를 누르면 이 모습으로 돌아옵니다. 법인을 비우면 전체 법인이며, 기간은 필수입니다.

보는 사람에 맞춰 바뀌는 첫 화면

같은 숫자를 경영 · 재무 · 자금 · 회계가 각자 다른 질문으로 봅니다. 보는 사람을 바꾸면 먼저 놓이는 축과 측정값이 바뀌고, 서버를 다시 부르지 않습니다.

재무 — 세목 · 법인별 순 세부담
재무 — 세목 · 법인별 순 세부담 — 세목과 법인 축에 납부액 · 환급 상계 · 순 세부담이 먼저 놓입니다.

재무 담당은 환급 상계를 뺀 순 세부담이 세목과 법인별로 어떻게 다른지 먼저 봅니다. 순 세부담은 본세에서 환급 상계를 뺀 계산항목이며, 합계 칸에서 다시 계산한 값입니다.

자금 — 은행 · 채널별 납부와 미납 잔액
자금 — 은행 · 채널별 납부와 미납 잔액 — 납부 은행과 납부 채널 축에 납부액 · 기말 미납 잔액 · 8일 이상 지연 납부 비중이 놓입니다.

자금 담당은 어느 은행에서 얼마가 나가고 미납 잔액이 얼마인지 먼저 봅니다. 샘플에서는 가상 시중은행 A가 503.90억으로 가장 많고, 기말 미납 잔액은 8.78억입니다.

회계 — 신고 구분별 가산세 · 지연이자
회계 — 신고 구분별 가산세 · 지연이자 — 신고 구분과 세목 축에 납부액 · 가산세·지연이자 · 가산세·지연이자율이 놓입니다.

회계 담당은 정기 신고 · 예정·중간예납 · 수정·기한후 신고 가운데 가산세가 어디서 생기는지 먼저 봅니다. 수정·기한후 신고는 납부액 비중은 작아도 가산세·지연이자율이 높아 점검 필요 후보가 됩니다.

열 개 차원을 끌어다 놓고, 값으로 범위를 좁힙니다

차원 보관함의 칩을 행 축과 열 축으로 끌어다 놓으면 표가 바로 바뀝니다. 행 축은 3단계, 열 축은 2단계까지이며, 이 과정에서 서버를 다시 부르지 않습니다.

축을 바꾼 뒤의 표와 차트
축을 바꾼 뒤의 표와 차트 — 행 축을 납부 은행 · 신고 구분, 열 축을 기한 대비 · 측정값으로 바꾼 결과입니다.

조회 때 읽어 둔 큐브를 브라우저가 다시 묶습니다. 어떤 배치로 바꿔도 총합은 1,303.96억으로 같고, 열 축의 기한 대비(기한 내 · 1~7일 지연 · 8일 이상 지연)로 늦게 낸 금액이 은행별로 어떻게 나뉘는지 봅니다.

값 필터 — 여러 값 선택
값 필터 — 여러 값 선택 — 납부 은행 두 곳을 체크한 모습입니다. 값마다 이름 · 코드 · 라인 수가 보입니다.

값 필터에서 차원 하나를 고르면 읽어 둔 데이터 안의 값 목록이 라인 수와 함께 나옵니다. 차원 안에서는 or, 차원 사이에서는 and 로 걸러집니다.

좁힌 결과
좁힌 결과 — 적용하면 표 · 차트 · 지표가 선택한 범위로 바뀌고 "필터: 납부 은행 2" 표시가 붙습니다.

필터를 적용하면 지표의 납부액도 선택한 은행 범위의 값으로 바뀝니다. 필터는 서버 재조회 없이 읽어 둔 큐브 안에서 걸러집니다.

칸에서 원천 납부 라인까지 — 표의 숫자를 눈으로 확인합니다

표의 칸을 누르면 그 금액을 만든 원천 납부 라인이 열립니다. 칸 금액과 원천 합계가 같은지 머리에 표시되므로 숫자를 믿고 쓸 수 있는지 그 자리에서 확인합니다.

칸 → 원천 납부 라인
칸 → 원천 납부 라인 — 부가가치세 2026년 1분기 칸을 누르면 그 칸을 이루는 납부 라인 163건이 열립니다.

상단에 “표의 값과 일치”가 표시되고 원천 합계가 칸 금액 131.61억과 같습니다. 기본은 500행씩 페이징하며, 라인마다 납부일 · 문서번호 · 납부 은행 · 세목 · 납부 채널 · 기한 대비 · 본세 · 가산세·지연이자 · 납부액이 보입니다. [CSV]로 내려받을 수 있습니다.

기간별 요약 — 월별
기간별 요약 — 월별 — 행 축을 회계기간으로 바꾸면 9개월 납부 흐름이 한눈에 보입니다.

월별 납부액의 오르내림과 비중이 같은 데이터에서 재조회 없이 나옵니다. 월마다 납부 시점이 몰리는 세목을 찾는 데 씁니다.

계산항목 — 비율은 합계 칸에서 다시 계산합니다

가산세·지연이자율이나 지연 납부 비중처럼 비율은 칸마다 평균을 내면 틀립니다. 계산항목은 서비스가 정의한 식을 합계 칸에서 다시 계산합니다.

측정값 여러 개를 열로
측정값 여러 개를 열로 — 납부액 · 가산세·지연이자 · 기말 미납 잔액 세 가지 측정값을 열로 세웠습니다.

측정값을 여러 개 고르면 열 축에 측정값이 단계로 들어갑니다. 기말 미납 잔액은 기간을 합쳐도 끝 기간 값만 쓰는 측정값이라, 단순 합산한 값과 다릅니다.

납부 예정 대비 — 같은 표가 자금 회의 자료가 됩니다

예정 차이를 켜면 칸마다 실적 · 예정 · 차이 · 차이율이 나옵니다. 금액 기준과 비율 기준을 둘 다 넘을 때만 색을 칠하므로, 색이 칠린 칸은 정말 볼 가치가 있는 곳입니다.

예정 차이 켜기
예정 차이 켜기 — 실적 · 예정 · 차이 · 차이율 열이 나옵니다. 금액 기준 50백만원과 비율 기준 5%를 모두 넘는 칸에만 색이 붙습니다.

기준값은 입력 칸에서 바꿀 수 있습니다. 샘플에서 관세는 +5.35억(+2.2%)으로 가장 크게 벗어났지만 비율 기준 5%에는 못 미쳐 색이 붙지 않습니다. 두 기준을 함께 보는 이유입니다.

워터폴과 요인분해
워터폴과 요인분해 — 선택한 행의 납부 예정에서 실적 납부액까지의 요인을 막대로 보여 줍니다.

아래 표의 일곱 요인과 검산 줄에서 예정 + 요인 합 − 실적 = 0 을 확인합니다. 부가가치세 행은 예정 365.98억에 신고 세액 증가 +13.13억 등이 더해져 실적 368.47억이 됩니다.

변동 사유 기재
변동 사유 기재 — 차이가 난 행에 구분과 사유를 적습니다.

사유는 서비스에 저장되어 같은 조회 범위에서 다시 열 때 남아 있고 CSV와 해설 근거에도 실립니다. 사유 문구는 “점검 필요” 같은 표현으로 쓰는 것을 권합니다.

해설과 보고서 — 숫자는 서비스가, 문장은 초안으로

해설은 현재 범위를 읽어 요약과 점검 필요 항목을 정리합니다. 기본은 규칙 기반이며 모델 연결은 서비스 설정 하나로만 켜고 기본은 꺼져 있습니다. 해설은 숫자를 만들지 않습니다.

해설 — 규칙 기반 초안
해설 — 규칙 기반 초안 — 선택한 범위를 규칙으로 읽은 초안입니다. 근거 표와 보고서 내려받기가 함께 있습니다.

문장 속 숫자는 서비스가 계산한 값이고 문장 자체는 초안입니다. 이미 사유가 적힌 행은 건너뛰며, 해설에 쓴 숫자는 아래 근거 표를 펼쳐 확인합니다. [보고서 PPTX]는 현재 범위의 표와 차트를 담은 PowerPoint 를 브라우저 안에서 만들어 내려받습니다.

규칙에 걸리면 대기함으로 — 하루 한 번

에이전트는 감시 규칙을 점검해 걸린 항목을 받을 역할의 대기함에 올립니다. 실행은 하루 한 번으로 서버가 제한하고, 걸린 것이 없어도 활동 기록을 남깁니다.

규칙과 대기함
규칙과 대기함 — 감시 규칙 4개와 비어 있는 대기함이 열립니다.

규칙은 8일 이상 지연 납부 비중 5% 이상, 가산세·지연이자 1,500만원 이상, 납부액 예정 차이 5억원 이상, 기말 미납 잔액 8억원 이상입니다. 임계값은 샘플 설정이며 운영에서 조정합니다.

실행 결과
실행 결과 — [지금 실행]을 누르면 걸린 항목이 대기함에 올라가고 활동 기록이 남습니다.

샘플에서는 규칙 4건 중 3건이 걸렸습니다. 대기함 보고는 받을 역할의 관점으로 쓰이고, 보고의 숫자는 서비스가 계산한 값입니다.

같은 날 두 번째 실행
같은 날 두 번째 실행 — 두 번째 실행은 제한 안내와 함께 활동 기록에만 남습니다.

하루 한 번 제한은 화면이 아니라 서버가 판정하므로 화면을 여러 번 열어도 우회되지 않습니다. 운영에서는 배치 작업으로 같은 펑션을 호출하는 방식으로 연결하며, 이 글에서는 설명만 합니다.

짜 둔 축을 이름 붙여 저장해 둡니다

축 · 조회조건 · 측정값 · 표시 행 수 · 접힘 상태를 이름 붙여 저장합니다. 기본 보기로 지정하고 자동 조회까지 켜 두면 열자마자 조회된 채로 시작합니다.

현재 보기 저장
현재 보기 저장 — 보기 이름을 정하고 "다음에 열 때 이 보기로 시작", "열면 바로 조회"를 고를 수 있습니다.

저장 내용은 서비스의 보기 엔티티셋에 쌓이므로 사용자가 바뀌어도 같은 보기를 공유할 수 있습니다. 저장 전에 현재 축 배치 요약이 함께 보입니다.

저장한 보기 관리
저장한 보기 관리 — 적용 · 기본으로 · 자동 조회 · 이름 바꾸기 · 삭제를 한 곳에서 합니다.

메뉴의 “기본 배치로 되돌리기”는 저장한 보기를 지우지 않고 화면만 처음 배치로 돌립니다.

열 조합 상한과 좁은 화면

행 · 열 조합이 상한을 넘으면 반쯤 그린 표를 보여 주는 대신 범위를 좁히라는 안내를 띄웁니다. 좁은 화면에서는 차트가 표 아래로 내려갑니다.

열 축 상한 안내
열 축 상한 안내 — 열 축은 2단계까지이며 더 놓으려 하면 안내가 나옵니다.

이미 분기와 납부 채널이 열 축에 놓인 상태에서 하나 더 놓으려 하면 추가하지 않고 “열 축은 최대 2단계까지 둘 수 있습니다” 안내를 띄웁니다. 열 조합 수가 36을 넘는 경우에도 같은 방식으로 막습니다.

390px 폭
390px 폭 — 휴대폰 폭에서도 가로 스크롤 없이 지표가 줄바꿈되어 쌓입니다.

좁아지면 지표가 줄바꿈되고 조건 · 보관함이 세로로 놓이며 표가 아래로 내려갑니다. 표는 가로로 스크롤되고 위쪽 열 머리는 유지됩니다.

화면 뒤에서 일어나는 일

조회를 누르면 화면은 CubeSet 과 PlanSet 을 기간 · 법인 조건으로 한 번씩 읽습니다. 이후의 축 전환 · 역할 전환 · 값 필터 · 예정 차이 켜기는 모두 읽어 둔 큐브 안에서 브라우저가 다시 계산하므로 서버를 부르지 않습니다. 칸을 눌렀을 때만 ItemSet 에서 원천 납부 라인을 읽고, 요인분해 · 해설 · 에이전트는 서버의 펑션이 계산합니다. 쓰기는 변동 사유 · 저장한 보기 · 대기함 확인 상태에만 일어납니다.

납부 예정 대비 차이가 요인으로 갈라지는 순서

요인분해는 원천 납부 라인 한 건마다 하나의 요인에만 속하게 해서 합이 총차이와 어긋날 수 없게 만듭니다. 라인 유형과 예정 · 실적의 있고 없음으로 순서대로 판정합니다.

순서판정 조건요인사용자 조치
1예정 라인과 실적 라인이 같은 달에 모두 있고 본세가 다름신고 세액 증가(실적이 큼) · 신고 세액 감소(실적이 작음)신고 정정 · 수정 신고 여부를 확인합니다.
2같은 라인의 가산세·지연이자 차이가산세·지연이자납부 기한과 자동이체 등록을 확인합니다.
3같은 라인의 환급 상계 금액 차이환급 상계 효과환급 충당 · 상계 예정 여부를 확인합니다.
4예정 달과 실적 달이 다르고 조회 범위의 경계에 걸림납부월 이동납부 일정 변경 사유를 확인합니다. 범위에 두 달이 모두 들어 있으면 0이 됩니다.
5예정에 없는 실적 라인예정 외 신규 납부예정에 반영하지 못한 납부 사유를 확인합니다.
6예정만 있고 실적이 없는 라인예정 납부 미발생이연 · 취소 여부를 확인합니다.
검산예정 + 일곱 요인 합 − 실적CHK0 이 아니면 점검 필요로 보고 원천 라인을 확인합니다.

조회조건

필드필수기본값서비스에 보내는 조건
법인선택전체Comp eq '1000' (여러 개 선택 가능)
기간(부터) · 기간(까지)필수2026년 01월 · 2026년 09월Period ge '202601' and Period le '202609'
비교 기준필수납부 예정과 비교Version eq 'P0' (비교 안 함이면 읽지 않음)
금액 단위선택억원화면에서만 환산(서버 값은 원)

결과 컬럼

컬럼(측정값)의미산출식
납부액실제로 낸 금액본세 + 가산세·지연이자 − 환급 상계. 기간을 합치면 합산
본세신고 · 고지된 세액(가산세 제외)기간을 합치면 합산
가산세·지연이자기한을 넘겨 더 낸 금액기간을 합치면 합산
환급 상계환급금과 상계한 금액기간을 합치면 합산
기말 미납 잔액신고했지만 아직 내지 않은 세액기간을 합쳐도 끝 기간 값만 사용
순 세부담(계산항목)환급 상계를 뺀 실제 부담본세 − 환급 상계
가산세·지연이자율(%)본세 대비 가산 비중가산세·지연이자 × 100 ÷ 본세
8일 이상 지연 납부 비중(%)기한을 8일 넘겨 낸 납부액 비중8일 이상 지연 납부액 × 100 ÷ 납부액

좁은 화면에서 달라지는 것

720px 아래에서는 지표가 줄바꿈되고 조건 · 보관함이 세로로 놓입니다. 표와 차트는 위아래로 쌓이고 표는 가로로 스크롤됩니다. 390px 폭에서도 페이지 전체의 가로 스크롤은 생기지 않습니다.

파일 구성

앱 폴더/
  index.html · Component.js · manifest.json · readme.html
  controller/   화면 컨트롤러 (조회 · 축 · 드릴스루 · 요인분해 · 에이전트)
  view/         메인 화면과 대화창(원천 라인 · 변동 사유 · 해설 · 에이전트 · 보기 저장 · 값 필터)
  model/        재집계 · 차트 · 보기 저장 · 보고서(pptx) · 포매터
  css/ · i18n/
  odata/        서비스 정의(metadata) · 서비스 로직(service.js) · 공용 계산(calc.js) · 데이터
  media/        소개 영상 · 장면 목차

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

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 아래 표준 화면 구성은 시스템 버전에 따라 다를 수 있어 운영 시스템에서 확인이 필요합니다.

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

하고 싶은 일표준 화면으로이 앱이 더하는 것
세금·공과금 지급 실행자동 지급 프로그램으로 지급 제안 · 실행이 됩니다.지급이 끝난 뒤의 결과를 세목 · 은행 · 기한 대비로 겹쳐 보는 관점을 더합니다.
특정 계정의 라인 확인총계정원장 라인 조회로 조건을 입력해 봅니다.표의 칸에서 같은 조건의 라인으로 바로 내려갑니다.
계정 잔액 확인계정 잔액 조회로 기간별 잔액이 보입니다.기말 미납 잔액과 계정 잔액의 차이를 한 표에서 점검합니다.
현금 포지션 · 자금 계획현금 포지션 화면에서 계획을 봅니다.납부 예정과 실적의 차이를 일곱 요인으로 가르고 검산합니다.
법정 · 세무 신고표준 화면과 세무 대리인의 신고서로 처리합니다.해당 없음 — 이 앱은 내부 점검 용도이며 신고를 대신하지 않습니다.

T-code 별 연계 지점

T-code이름연계
F110자동 지급지급 실행 결과의 전표 라인이 이 앱의 원천 납부 라인이 됩니다. 이 앱에서 지연 납부가 많은 은행을 찾으면 지급 실행 일정과 지급 조건을 F110 쪽에서 점검합니다.
FBL3N총계정원장 라인 조회같은 계정 · 같은 전기일 범위로 라인을 조회해 이 앱의 원천 라인 건수와 합계를 대조합니다. 이 앱의 결과 → FBL3N 으로 원천을 확인하는 방향으로 오갑니다.
FB03전표 조회원천 라인의 문서번호로 전표를 열어 헤더 · 라인 · 계정 지정을 확인합니다.
FS10N총계정원장 계정 잔액세금 미지급 계정의 잔액과 이 앱의 기말 미납 잔액 차이를 점검합니다. 두 값이 다르면 점검 필요입니다.
FF7A현금 포지션자금 계획에 잡은 납부 예정과 이 앱의 납부 예정 큐브를 맞춰 봅니다.

운영 전환 때 기존 표준 리포트를 없앨 필요는 없습니다. 법정 · 감사 · 세무 신고 대응은 표준 화면에 남겨 두고, 이 앱은 납부 쏠림 · 지연 · 예정 대비 차이를 내부에서 점검하는 자리로 씁니다.

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

이 앱의 큐브는 표준 CDS 분석 쿼리와 같은 구조(차원 · 측정값 · 쿼리 · 권한)로 설계했으므로, 운영에서는 표준 분석 기능과 나란히 둘 수 있습니다. 표준 Fiori 분석 앱의 이름과 제공 범위는 시스템 버전에 따라 달라 확인하지 못한 항목은 적지 않았으며 확인 필요입니다. 엑셀 연동 분석 도구로 같은 쿼리를 읽는 방식도 가능합니다.

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

자리무엇을 손대나비고
세목 매핑계정 · 전표 유형을 이 앱의 세목(부가가치세 · 원천세 · 법인세 · 관세 · 지방세 · 사회보험료)으로 연결하는 기준 데이터코드가 아니라 데이터로 둡니다.
신고 구분 · 처리 단계정기 신고 · 예정·중간예납 · 수정·기한후 신고와 처리 단계의 판정 기준업무 정의는 확인 필요
납부 기한 기준기한 대비(기한 내 · 지연)를 가를 기준일세목별 기한은 가정값이며 확인 필요
확장 필드납부 건에 담당 부서 · 승인 번호 등을 더할 때 쓰는 확장 필드큐브 차원으로 더할 수 있습니다.
권한법인 · 은행 단위 접근 범위DCL 로 설계합니다.

분석 지표 정의표

지표산식 · 판정 기준대응 기능원천 데이터비고
납부액본세 + 가산세·지연이자 − 환급 상계피벗 표 · 차트지급 전표 라인표준 지급 결과를 이어받음
가산세·지연이자율가산세·지연이자 × 100 ÷ 본세지표 · 계산항목가산세 계정 라인높은 구분은 점검 필요
8일 이상 지연 납부 비중8일 이상 지연 납부액 × 100 ÷ 납부액지표 · 에이전트 규칙납부일 · 납부 기한임계 5%는 샘플 설정
기말 미납 잔액신고 후 미납 세액(끝 기간 값)지표 · 에이전트 규칙미결 항목 · 신고 전표임계 8억원은 샘플 설정
납부 예정 대비 차이실적 납부액 − 납부 예정액예정 차이 · 요인분해자금 예정 데이터금액 50백만원 · 비율 5% 모두 초과 시 색

CDS 구성 — 큐브부터 서비스까지

운영 데이터로 갈 때의 뷰 구성입니다. 객체 이름과 필드 이름은 설계 예시이며 실제 시스템 버전에 맞춰 확인 필요입니다. 표준 CDS 뷰 이름은 실재하는 것만 쓰고, 확인하지 못한 필드는 주석으로 표시했습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZTX_TaxTypeMap (테이블)계정 · 전표 유형을 세목 · 신고 구분 · 처리 단계로 매핑회계 · 세무 담당이 바꾸는 데이터라 코드와 분리합니다.
차원ZI_PayBankDimension은행 · 계좌를 은행 이름으로 묶는 차원같은 은행의 여러 계좌가 한 은행으로 모여야 쏠림 규칙이 의미가 있습니다.
큐브ZI_TaxPayCube월별 납부 · 가산세 · 환급 상계 · 미납 잔액 집계집계를 서버에서 끝내 화면이 읽기만 하게 합니다.
큐브ZI_TaxPayPlanCube납부 예정을 같은 축으로 집계실적 큐브와 같은 키를 써서 비교가 어긋나지 않게 합니다.
쿼리ZC_TaxPayQuery분석 쿼리 — 필터 · 집계 노출화면이 읽는 단 하나의 입구입니다.
권한ZR_TaxPayRole (DCL)법인 · 은행별 접근 범위같은 쿼리를 사람마다 다른 범위로 읽게 합니다.
서비스ZUI_TaxPay (정의 · 바인딩)OData V2 서비스로 게시화면의 서비스 주소와 연결됩니다.

① 매핑 기준 테이블 — ZTX_TaxTypeMap

계정과 전표 유형을 이 앱의 세목 · 신고 구분 · 처리 단계로 바꾸는 표입니다. 운영에서 가장 자주 바뀌는 부분이라 코드가 아니라 데이터로 두었습니다. 매핑이 비면 납부가 전부 “기타”로 모여 분석이 무의미해집니다.

" ─────────────────────────────────────────────────────────────
" ZTX_TaxTypeMap — 세목 · 신고 구분 · 처리 단계 매핑
" 이렇게 나눈 이유: 매핑은 세무 담당이 바꾸는 데이터라 뷰 코드와 분리한다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '세목 매핑'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table ztx_taxtypemap {
  key client     : abap.clnt not null;
  key glaccount  : abap.char(10) not null;  " 세금 · 공과금 계정
  key doctype    : abap.char(2) not null;   " 전표 유형
  tax_type       : abap.char(1) not null;   " V / W / C / D / L / I
  filing_code    : abap.char(1) not null;   " R 정기 · P 예정 · A 수정/기한후
  stage_code     : abap.char(2) not null;   " S1 신고 · S2 납부 · S3 정정 후 납부
}

② 차원 뷰 — ZI_PayBankDimension

은행 차원은 하우스 뱅크와 계정 ID를 묶어 은행 이름으로 보이게 합니다. 같은 은행의 여러 계좌가 하나의 은행으로 모여야 최대 은행 비중 같은 규칙이 의미가 있습니다.

" ─────────────────────────────────────────────────────────────
" ZI_PayBankDimension — 납부 은행 차원
" 이렇게 나눈 이유: 큐브는 은행 키만 알고, 이름과 정렬은 차원이 맡는다.
" ─────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #NOT_REQUIRED
@EndUserText.label : '납부 은행 차원'
@ObjectModel.representativeKey : 'HouseBank'
@Analytics.dataCategory : #DIMENSION
@Metadata.ignorePropagatedAnnotations : true
define view entity ZI_PayBankDimension
  as select from t012
{
  key bukrs   as CompanyCode,
  key hbkid   as HouseBank,
      banks   as BankCountry,
      bankl   as BankKey
      " 은행 이름은 표준 은행 마스터에서 연결 — 필드명은 시스템 버전에 따라 확인 필요
}

③ 큐브 — ZI_TaxPayCube

세금·공과금 납부 한 건을 월 · 세목 · 은행 · 채널 · 신고 구분 · 기한 대비 · 처리 단계 · 환급 상계로 묶어 본세 · 가산세 · 환급 상계 · 납부액 · 미납 잔액을 집계합니다. 화면의 큐브 한 행이 이 뷰의 한 행입니다.

" ─────────────────────────────────────────────────────────────
" ZI_TaxPayCube — 월별 납부 큐브
" 이렇게 나눈 이유: 집계와 판정(기한 대비 · 신고 구분)을 서버에서 끝낸다.
" 원천: 표준 분개 항목 뷰 I_JournalEntryItem — 필드명은 버전에 따라 확인 필요
" ─────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '월별 납부 큐브'
@Analytics.dataCategory : #CUBE
@ObjectModel.usageType : { serviceQuality : #D, sizeCategory : #XL, dataClass : #MIXED }
define view entity ZI_TaxPayCube
  as select from I_JournalEntryItem as je
    inner join   ztx_taxtypemap     as mp on  mp.glaccount = je.GLAccount
                                          and mp.doctype   = je.AccountingDocumentType
{
  key je.CompanyCode,
  key je.FiscalYear,
  key je.AccountingDocument,
  key je.LedgerGLLineItem,
      substring(je.PostingDate, 1, 6)           as Period,
      mp.tax_type                               as TaxType,
      mp.filing_code                            as Filing,
      mp.stage_code                             as Stage,
      je.HouseBank                              as HouseBank,
      case
        when dats_days_between(je.DueCalculationBaseDate, je.PostingDate) <= 0 then 'O'
        when dats_days_between(je.DueCalculationBaseDate, je.PostingDate) <= 7 then 'S'
        else 'L'
      end                                       as LateClass,
      @Semantics.amount.currencyCode : 'Currency'
      cast( je.AmountInCompanyCodeCurrency as abap.curr(23,0) ) as PayAmount,
      je.CompanyCodeCurrency                    as Currency
}
" 모든 세금 · 공과금은 원화로 납부하므로 통화 환산 없이 합산한다.
" 외화로 신고한 관세는 신고서의 원화 환산액을 본세로 둔다. group by 는 쿼리 단계에서 수행.

④ 예정 큐브 — ZI_TaxPayPlanCube

납부 예정은 자금 계획 데이터에서 같은 축으로 집계합니다. 실적 큐브와 키가 같아야 차이 계산이 어긋나지 않습니다.

" ─────────────────────────────────────────────────────────────
" ZI_TaxPayPlanCube — 납부 예정 큐브 (버전 P0)
" 이렇게 나눈 이유: 실적 큐브와 같은 키 · 같은 측정값으로 맞춰 차이를 구한다.
" 원천: 자금 예정 FDES — 필드명은 시스템 버전에 따라 확인 필요
" ─────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '납부 예정 큐브'
@Analytics.dataCategory : #CUBE
define view entity ZI_TaxPayPlanCube
  as select from fdes as pl
    inner join   ztx_taxtypemap as mp on mp.glaccount = pl.saknr
{
  key pl.bukrs                           as CompanyCode,
  key pl.dsart                           as PlanType,
  key pl.datum                           as PlanDate,
      'P0'                               as Version,
      substring(pl.datum, 1, 6)          as Period,
      mp.tax_type                        as TaxType,
      @Semantics.amount.currencyCode : 'Currency'
      pl.wrshb                           as PlanAmount,
      pl.waers                           as Currency
}

⑤ 분석 쿼리 — ZC_TaxPayQuery

화면이 읽는 단 하나의 입구입니다. 필터로 쓸 필드와 집계 방식을 여기서 정하고, 날짜 · 법인 필터는 필수로 둡니다.

" ─────────────────────────────────────────────────────────────
" ZC_TaxPayQuery — 분석 쿼리
" 이렇게 나눈 이유: 화면의 $filter 가 닿는 필드와 집계를 한곳에서 통제한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '세금·공과금 납부 분석'
@Analytics.query : true
@OData.publish : false
define view entity ZC_TaxPayQuery
  as select from ZI_TaxPayCube
{
  @AnalyticsDetails.query.axis : #ROWS
  @Consumption.filter : { selectionType : #INTERVAL, mandatory : true }
  Period,
  @AnalyticsDetails.query.axis : #ROWS
  @Consumption.filter : { selectionType : #SINGLE, multipleSelections : true }
  CompanyCode,
  @AnalyticsDetails.query.axis : #ROWS
  TaxType,
  @AnalyticsDetails.query.axis : #ROWS
  HouseBank,
  @AnalyticsDetails.query.axis : #COLUMNS
  @Semantics.amount.currencyCode : 'Currency'
  sum( PayAmount ) as PayTotal,
  Currency
}
group by Period, CompanyCode, TaxType, HouseBank, Currency

⑥ 접근 제어 — ZR_TaxPayRole (DCL)

같은 쿼리를 읽어도 법인 · 은행 단위로 볼 수 있는 범위를 나눕니다. 권한 오브젝트와 필드 이름은 회사의 권한 설계에 맞춰 확인 필요입니다.

@EndUserText.label : '납부 분석 접근 제어'
@MappingRole : true
define role ZR_TaxPayRole {
  grant select on ZI_TaxPayCube
    where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}
" 은행 단위 제한이 필요하면 하우스 뱅크용 권한 오브젝트를 추가 조건으로 둔다 — 확인 필요

⑦ 서비스 정의 · 바인딩 — ZUI_TaxPay

쿼리를 OData V2 서비스로 게시합니다. 화면이 쓰는 서비스 주소는 이 바인딩을 활성화한 뒤 교체합니다.

@EndUserText.label : '세금·공과금 납부 분석 서비스'
define service ZUI_TaxPay {
  expose ZC_TaxPayQuery as TaxPayQuery;
  expose ZI_TaxPayCube  as CubeSet;
  expose ZI_TaxPayPlanCube as PlanSet;
}
" 바인딩 유형 OData V2 - UI 로 만들고 게시한다.
" 서비스 활성화는 서비스 관리 화면(/IWFND/MAINT_SERVICE)이나 바인딩 게시에서 한다.

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래를 정하기 전에는 운영 데이터로 전환하지 않는 것을 권합니다.

해야 할 일무엇을 정하나정하지 않으면누가
세목 · 계정 매핑어느 계정과 전표 유형이 어느 세목인지납부가 기타로 쏠려 분석이 무의미해집니다.세무 · 회계 담당
신고 구분 · 처리 단계 정의정기 · 예정 · 수정 신고와 처리 단계의 판정 기준가산세 점검 후보가 틀리게 잡힙니다.세무 담당
납부 기한 기준기한 대비를 가를 기준일과 8일 기준지연 납부 비중이 실제와 달라집니다.세무 · 자금 담당
납부 은행 · 계좌 매핑같은 은행의 여러 계좌를 한 은행으로 묶는 기준같은 은행이 따로 보여 쏠림이 가려집니다.자금 담당
납부 예정 버전 확정 시점어느 시점의 계획을 예정으로 쓸지요인분해 기준이 흔들립니다.자금 담당 · 경영지원
환급 상계 처리 기준환급 상계를 납부액에서 어떻게 뺄지순 세부담이 달라집니다.세무 · 회계 담당
부호 규칙지급 · 환급의 부호합계가 거꾸로 나옵니다.회계 담당
권한 설계법인 · 은행별 접근 범위모든 사용자가 모든 법인을 봅니다.정보보안 · 자금 담당
성능 기준월 범위 · 법인 필수화와 응답 시간 목표대용량에서 조회가 느려집니다.IT 운영
대사 체계표준 T-code 와 맞출 항목과 주기숫자가 어긋나도 알아채지 못합니다.회계 · IT
전송(TR) 순서테이블 → 차원 → 큐브 → 쿼리 → DCL → 서비스활성화 오류가 납니다.IT 운영
서비스 활성화 · 주소 교체서비스 활성화 후 화면의 서비스 주소를 교체샘플 자료 상태로 남습니다.IT 운영
배치 등록에이전트를 하루 한 번 호출할 배치 작업화면을 열어야만 점검이 일어납니다.IT 운영

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

같은 샘플 자료에서 대사식마다 전수로 돌린 결과입니다. 도입 포인트의 사례(범위 39개에서 요인 합이 총차이와 일치)와 같은 숫자입니다.

대사식검사 건수차이 건수비고
큐브 총합 ↔ 원천 총합(측정값 6종 × 큐브 키 1,354)8,1240최대 차이 0
큐브 대사 결과(기간 9 × 측정값 6)540모두 일치
예정 큐브 ↔ 원천 예정 필드(5종 × 1,244행)6,2200예정 키가 원천에 없는 행 0
요인분해 검산(범위 39개, 예정 + 요인 − 실적)390최대 절대값 0
요인분해 실적 ↔ 큐브10의도적 예외 0건

운영 데이터로 갈 때

납부 전표가 수천만 건이 되면 집계 위치가 중요해집니다. 월 범위와 법인을 필수 파라미터로 두고, 큐브는 월 단위로 미리 집계한 뷰에서 읽도록 하며, 날짜와 법인 필드에 맞는 인덱스나 집계 테이블을 둡니다. 화면은 큐브를 한 번 읽어 브라우저에서 다시 묶으므로 한 번에 읽는 행이 수천 행을 넘지 않게 쿼리의 필수 조건을 설계하고, 응답 시간 목표는 회사의 기준에 맞춰 정합니다.

자주 묻는 질문

도입 검토와 데모에서 자주 나오는 질문을 네 묶음으로 정리했습니다.

숫자와 산식

이 앱은 무엇을 점검합니까?

세금·공과금 납부액을 세목 · 납부 은행 · 법인 · 분기 등으로 겹쳐 보고, 납부 예정과 실적의 차이를 요인으로 나눕니다. 점검 필요 항목을 찾는 도구이며, 최종 판단은 회사와 세무 대리인이 합니다.

금액은 어디서 계산합니까?

금액은 서비스가 계산하고 화면은 읽어 보여 줍니다. 요인분해 · 해설 · 에이전트 판정도 서비스 함수가 계산하며, 같은 계산 모듈을 화면의 재집계도 쓰므로 두 곳의 숫자가 갈라지지 않습니다.

외화로 신고한 관세는 어떻게 합산합니까?

모든 세금과 공과금은 원화로 납부하므로 통화 환산 없이 합산합니다. 외화로 신고한 관세는 신고서의 원화 환산액을 본세로 둡니다. 환산에 쓰는 환율 기준은 회사마다 달라 운영 전환 때 확인 필요입니다.

요인분해의 검산 줄은 무엇입니까?

예정 + 일곱 요인의 합 − 실적이 0인지 매번 확인하는 줄입니다. 0이 아니면 점검 필요 신호입니다. 이번 자료에서는 범위 39개(전체와 차원 값별) 모두 0이었습니다.

납부월 이동 요인이 0으로 나옵니다. 오류입니까?

아닙니다. 납부월 이동은 같은 건이 예정과 실적에서 다른 달에 잡힐 때 생기는 몫인데, 조회 범위에 두 달이 모두 들어 있으면 신고 세액 증가 · 감소 쪽에서 상쇄되어 0이 됩니다. 조회 범위의 끝 달에 걸치면 값이 나옵니다.

가산세·지연이자율은 왜 칸마다 평균 내지 않습니까?

비율은 칸마다 평균을 내면 큰 칸과 작은 칸이 같은 무게로 섞여 틀립니다. 그래서 가산세·지연이자와 본세를 먼저 합친 뒤 합계 칸에서 비율을 다시 계산합니다.

기말 미납 잔액은 왜 기간을 합쳐도 늘지 않습니까?

잔액은 흐름이 아니라 시점의 값이라 기간을 합칠 때 끝 기간의 값만 씁니다. 기간을 단순 합산하면 같은 미납이 매달 중복으로 잡혀 틀리기 때문입니다.

화면과 조작

축을 바꾸면 서버를 다시 부릅니까?

아닙니다. 조회 때 읽어 둔 큐브 안에서 브라우저가 다시 묶으므로 서버를 부르지 않고 총합도 바뀌지 않습니다. 이 점은 화면 검증에서 요청 수가 0건인 것으로 확인했습니다.

열 축은 왜 2단계까지입니까?

열 조합이 늘어나면 표가 가로로 길어져 읽기 어렵고 브라우저도 느려집니다. 열 조합이 36을 넘으면 반쯤 그린 표 대신 범위를 좁히라는 안내를 띄웁니다.

칸을 눌렀을 때 건수가 표와 다르면 어떻게 합니까?

화면 머리에 표시되는 “표의 값과 일치” 여부가 틀리면 점검 필요입니다. 원천 라인의 조회 조건과 큐브 정의가 어긋났다는 뜻이므로 매핑과 조회 범위를 확인합니다.

휴대폰에서도 쓸 수 있습니까?

좁은 폭에서는 지표가 줄바꿈되고 표 아래로 차트가 내려갑니다. 390px 폭에서 가로 스크롤 없이 열립니다. 다만 표는 가로로 스크롤해서 봅니다.

변동 사유는 어디에 저장됩니까?

서비스의 변동 사유 엔티티셋에 저장되며 키는 조회 범위와 행 경로입니다. 같은 조건으로 다시 열면 남아 있고 CSV와 해설 근거에도 실립니다.

저장한 보기는 사용자마다 따로입니까?

샘플에서는 서비스의 보기 엔티티셋에 쌓이는 방식입니다. 운영에서 사용자별 · 부서별 분리가 필요하면 권한 설계와 함께 키에 사용자 정보를 더합니다.

분석 기능

해설은 어떻게 만들어집니까?

기본은 규칙 기반입니다. 현재 범위의 숫자를 서비스가 계산한 뒤 정해진 문장 틀에 넣어 요약과 점검 필요 항목을 만듭니다. 모델 연결은 서비스 설정 하나로 켜며 기본은 꺼져 있고, 어떤 경우에도 해설은 숫자를 만들지 않습니다.

해설에 API 키가 필요합니까?

기본 규칙 기반 해설에는 필요 없습니다. 모델을 연결하더라도 키는 서비스 서버에만 두고 화면 · 설명서 · 이 글에는 두지 않습니다.

에이전트는 하루에 몇 번 돕니까?

하루 한 번입니다. 같은 날 두 번째 호출은 서버가 상태 LIMIT 으로 돌려주고 활동 기록에만 남깁니다. 걸린 것이 없어도 활동 기록은 남습니다.

에이전트 규칙의 임계값은 누가 정합니까?

샘플은 8일 이상 지연 납부 비중 5%, 가산세·지연이자 1,500만원, 납부액 예정 차이 5억원, 기말 미납 잔액 8억원입니다. 운영에서는 세무 · 자금 담당이 회사 기준에 맞게 정합니다.

보고서(PPTX)는 어떻게 만들어집니까?

브라우저 안에서 외부 라이브러리 없이 현재 범위의 지표 · 표 · 차트를 담은 PowerPoint 를 만들어 내려받습니다. 서버로 데이터를 보내지 않습니다.

도입과 운영

적용 시기와 범위는 어떻게 됩니까?

이 글의 숫자는 가상 샘플 자료이며 실제 거래와 무관합니다. 관련 법령의 시행일 · 세율 · 기한은 확인한 사실이 없어 가정값으로 두었고, 운영 적용 범위는 회사와 세무 대리인이 확인해야 합니다.

표준 T-code 를 대체합니까?

아닙니다. 표준 실행은 SAP 표준 T-code 가 담당하고 이 화면은 조회 · 검증 관점을 더해 확장합니다. 법정 · 세무 신고 대응은 표준 화면과 세무 대리인의 신고서에 그대로 남깁니다.

운영 연결에는 무엇이 필요합니까?

세목 매핑 확정, CDS 뷰 활성화, 서비스 활성화, 화면의 서비스 주소 교체, 권한 설계, 배치 등록입니다. 개발보다 정하는 일이 더 많으므로 운영 시점에 해야 할 일 표를 먼저 합의하는 것을 권합니다.

권한과 보안은 어떻게 설계합니까?

큐브에 법인 단위 DCL 을 걸고, 필요하면 하우스 뱅크 단위 조건을 더합니다. 화면은 서비스가 돌려주는 범위만 볼 수 있으며, 사유와 보기의 쓰기 권한은 별도로 나눌 수 있습니다.

대용량에서도 쓸 수 있습니까?

월 범위와 법인을 필수 조건으로 두고 큐브를 월 단위로 미리 집계하면 됩니다. 화면이 한 번에 읽는 큐브 행이 수천 행을 넘지 않도록 조건을 설계합니다.

세목이나 계정체계가 바뀌면 어떻게 합니까?

세목 매핑 테이블의 데이터만 고치면 되고 뷰 코드는 그대로입니다. 새 세목이 생기면 매핑 행과 차원 값만 더합니다.

신고나 납부 판단에 이 화면을 써도 됩니까?

이 화면은 점검 도구이며 최종 판단은 회사와 세무 대리인이 합니다. 가산세나 지연 후보는 “점검 필요”로만 표시하며, 신고 · 납부 의무에 관한 결론을 대신하지 않습니다.

샘플 자료의 은행 · 법인은 실제 이름입니까?

아닙니다. 모든 은행 · 법인 · 문서번호는 가상이며 실제 고객 · 계좌와 무관합니다.