관리회계

대체가격 점검 — 사업부 사이 이전 단가를 정책가와 맞춰 보는 내부 거래 점검 화면

정책 대체가격 재계산 · 적용가와의 편차 · 표준원가 미달 · 시장가 초과 · 매입액 불일치 · 사업부 쌍과 월 단위 집계 · 단가 구성 8단계 · 아홉 가지 대사식 — 소개 영상과 실제 화면 8종, 그리고 CDS 코드까지

소개 영상1분 10초8개 장면음성 안내·자막처음 화면 → 조건 → 사업부 쌍 → 월별 추이 → 단가 구성 상세 → 대사 결과 → 정리

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

사업부끼리 반제품이나 제품을 넘길 때 적용하는 내부 거래 단가, 곧 대체가격은 해마다 같은 질문을 낳습니다. 정한 방법대로 계산한 단가와 실제로 적용한 단가가 같은가, 공급 사업부가 표준원가도 못 받고 넘기고 있지는 않은가, 수요 사업부가 외부에서 사는 값보다 비싸게 받고 있지는 않은가. 지금은 이 답이 단가표 · 표준원가 목록 · 사업부별 전기 내역에 흩어져 있어, 월마감마다 엑셀에 붙여 놓고 눈으로 대조합니다.

이 앱은 이전 건마다 정책 대체가격을 다시 계산해 적용 대체가격 옆에 놓고, 기준을 벗어난 건만 점검 필요로 가려냅니다. 건에서 사업부 쌍으로, 쌍에서 월로 모아 보고, 한 건을 열면 표준원가에서 적용 대체가격까지의 단가 구성 8단계가 펼쳐집니다. 그리고 그 숫자가 서로 맞는지를 아홉 가지 대사식으로 매번 검산합니다. 관련 기준서가 있는 영역이 아니라 관리회계 내부 점검이므로, 정책 방법과 기준은 회사가 정하고 이 화면은 그 기준에 맞는지를 봅니다.

한 줄 요약 — 단가표를 눈으로 대조하는 일을 줄이고, 걸린 건만 근거와 함께 열어 봅니다. 화면은 원인을 단정하지 않습니다. 점검 필요는 “근거를 확인하라”는 뜻이고, 최종 판단은 회사가 합니다.

핵심 포인트 여섯 가지

포인트고객이 얻는 것지금 방식이라면
① 정책가를 다시 계산해 옆에 놓는다원가가산 · 시장가 기준 · 협상가 중 품목마다 정한 방법으로 정책 대체가격을 계산해, 적용 대체가격과의 편차와 편차율을 건마다 보여 줍니다.단가표에서 기준단가를 찾아 가감율을 곱하고, 전기된 단가와 손으로 비교합니다.
② 네 가지 기준으로 걸러 낸다편차율 5% 초과 · 표준원가 미달 · 수요 매입액 불일치 · 시장가 초과를 한 건에 여러 개 걸려도 빠짐없이 표시하고, 걸린 기준을 점검 내용에 모두 적습니다.기준마다 다른 파일을 열고, 어떤 건이 어느 기준에 걸렸는지를 사람이 기억합니다.
③ 건 → 사업부 쌍 → 월로 모아 본다한 건은 작아도 쌍이나 월로 모으면 쏠림이 보입니다. 쌍 ±1.5%, 월 ±0.75%를 넘으면 그 집계 행도 점검 필요로 표시합니다.피벗을 새로 만들어 쌍별 · 월별 합계를 내고, 이전 명세와 합계가 맞는지 다시 확인합니다.
④ 단가 구성이 8단계로 펼쳐진다직접재료비 · 직접노무비 · 제조간접비에서 정책 기준단가 · 가감액 · 정책가 · 적용 편차 · 적용가까지 한 건의 산출 과정이 번호 순으로 보입니다.이 건의 정책가가 왜 이 값인지를 설명하려면 담당자가 직접 계산 과정을 다시 적어야 합니다.
⑤ 공급 이익과 수요 원가가 합쳐서 0이 된다공급 사업부의 이전이익 합계와 수요 사업부의 추가원가 합계는 전사 기준으로 서로 상쇄되어야 합니다. 이 등식을 화면이 매번 검산합니다.사업부별 손익은 맞는데 내부 거래 상계가 맞지 않아 연결 단계에서 뒤늦게 발견합니다.
⑥ 숫자는 서비스에서, 표시는 화면에서화면은 OData 서비스 하나만 바라보고 계산은 서비스가 합니다. 운영에서는 서비스 주소만 바꿔 연결하므로 화면을 다시 만들 일이 없습니다.화면마다 데이터를 따로 들고 있어 원천이 바뀔 때 화면까지 고칩니다.

단가표 대조는 두 번째 질문에서 멈춘다

“이 단가가 정책대로인가”까지는 단가표로 답할 수 있습니다. 하지만 바로 이어지는 질문, 곧 “정책대로인데 공급 사업부는 손해를 보고 있지 않은가”, “이 쌍 전체로는 어느 쪽으로 쏠렸는가”에서 대조 작업이 끊깁니다. 표준원가는 다른 목록에, 시장가는 또 다른 목록에 있기 때문입니다. 이 앱은 표준원가와 시장가 참조를 이전 명세에 같이 싣고, 한 건에 여러 기준이 걸리면 L1 → M1 → P1 → K1 순서로 대표 코드를 하나 보여 주면서 점검 내용에는 걸린 기준을 모두 적습니다.

정책대로인 건과 정책에서 벗어난 건을 같은 줄에 놓는다

점검 화면은 이상한 건만 보여 주면 되는 것처럼 보이지만, 실제로는 정상 건과 같은 표에 있어야 판단이 됩니다. 이 화면은 정상 건과 점검 필요 건을 같은 이전 명세에 두고, 점검 결과 조건으로 걸러 볼 수 있게 했습니다. 점검 필요 16건만 보고 싶으면 조건에서 고르고, 정상 건까지 포함한 흐름이 필요하면 비워 두면 됩니다.

집계 행의 합계가 명세와 어긋나면 점검 자체를 믿을 수 없다

사업부 쌍과 월 집계는 모두 이전 명세를 더해 만든 값입니다. 그래서 쌍 합계 · 월 합계가 이전 명세 합계와 1원도 다르지 않아야 하고, 이 앱은 그 등식을 대사식으로 두고 전수로 돌립니다. 대사 결과 탭은 아홉 가지 대사식의 검사 건수와 차이 건수를 그대로 보여 줍니다.

사용 방법

  1. 조회조건을 채웁니다. 회계연도는 필수이고, 전기 월 범위 · 공급 사업부 · 수요 사업부 · 대체가격 방법 · 점검 결과는 선택입니다. 비워 두면 전체입니다.
  2. 조건 줄 오른쪽 끝의 조회 버튼을 누르거나 입력칸에서 Enter 키를 누릅니다. 화면을 처음 열면 자동으로 한 번 조회됩니다.
  3. 조건 아래 요약 8개를 확인합니다. 점검 필요 이전 건과 사업부 쌍 숫자가 먼저 눈에 들어옵니다.
  4. 탭을 이전 명세 → 사업부 쌍 → 월별 추이 → 단가 구성 → 대사 결과 순서로 옮겨 가며 범위를 좁힙니다.
  5. 이전 명세 · 사업부 쌍 · 월별 추이 탭에서 행을 누르면 상세가 열립니다. 이전 건은 단가 구성 8단계를, 쌍과 월은 해당 이전 명세를 보여 줍니다.
  6. CSV 내려받기로 지금 보는 탭의 조회 결과를 내려받습니다(UTF-8, 엑셀에서 바로 열립니다).

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

샘플 자료 전체(이전 119건 · 단가 구성 952행 · 사업부 쌍 45행 · 월 9행)에 대해 아홉 가지 대사식을 전수로 돌린 결과입니다. 모두 차이 0입니다. 한편 점검 필요 16건은 대사 차이가 아니라 점검 화면을 시연하려고 일부러 넣은 예외(정책 이탈 · 표준원가 미달 · 매입액 불일치 · 시장가 초과)입니다.

대사식검사 건수차이
재료비 + 노무비 + 제조간접비 = 표준단가1190
정책 기준단가 + 가감액 = 정책 대체가격1190
정책 대체가격 + 적용 편차 = 적용 대체가격1190
정책 이전금액 + 편차금액 = 적용 이전금액1190
수량 × 적용 대체가격 = 이전금액(원 미만 반올림)1190
이전금액 − 표준원가금액 = 공급 이전이익1190
사업부 쌍 합계 = 이전 명세 합계450
월별 합계 = 이전 명세 합계90
전사 합산 — 공급 이전이익 − 수요 추가원가 = 0450

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 표준 컨트롤 · 조건 줄과 요약 · 다섯 개 탭의 표 · 상세 창외부 라이브러리 없이 표준 컨트롤만 써서 사내망 반입 심사 부담을 줄였습니다. 테마는 SAP Horizon 입니다.
데이터 연동OData V2 서비스 하나 — 엔티티셋 다섯 개와 펑션 하나탭마다 해당 엔티티셋에 바로 묶고, 조건은 $filter, 열 정렬은 $orderby, 스크롤은 $top · $skip 으로 보냅니다. 서비스 주소만 바꾸면 운영 서비스에 연결됩니다.
판정 · 집계 로직서비스 쪽 한 파일정책가 재계산과 점검 코드, 쌍 · 월 집계를 화면이 아니라 서비스가 판정합니다. 화면은 받은 값을 보여 주기만 합니다.
오류 안내메타데이터 실패 · 요청 실패 · 빈 응답을 구분하는 오류 처리“데이터가 없다”와 “연결이 안 된다”를 같은 빈 화면으로 보여 주면 점검 화면에서는 위험합니다.
앱 정보내용
업무 영역관리회계(CO)
관련 기준서 · 대상 영역- (대상 영역: 관리회계 · 대체가격)
SAP 표준 T-codeKSB1 · KE24 · KE30 · S_ALR_87013611 (원천 확인 연계)
화면 성격조회 · 점검 화면 (판단은 회사)
SAP 표준 기능을 그대로 이어받은 부분 — 표준원가는 품목 평가 데이터의 표준가를, 내부 거래 금액은 일반 원장 전표 라인을, 사업부 매핑은 프로핏센터 마스터를 이어받습니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다.

실행 화면

실제로 돌아가는 화면 8종을 사용 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 하는 자리이고 숫자를 어떻게 읽는지를 아래에 적었습니다. 숫자는 모두 같은 샘플 자료에서 나온 것이라 화면끼리 맞춰 보셔도 됩니다.

처음 열었을 때

조회 조건과 요약, 이전 명세가 한 화면에 세로로 놓입니다. 처음 여는 사람도 무엇을 고르면 무엇이 바뀌는지 바로 보이도록, 조건을 채우기 전에 올해 전체를 한 번 조회해 둡니다.

처음 연 화면 — 올해 이전 명세와 요약 8개
처음 연 화면 — 올해 이전 명세와 요약 8개 — 조건 · 요약 · 이전 명세가 한 화면에 뜹니다. 회계연도만 채워진 상태로 열리고 자동으로 한 번 조회됩니다.

위쪽 안내 띠는 대체가격이 무엇이고 어떤 기준에서 점검 필요로 표시하는지를 먼저 적어 둡니다. 요약 8개는 적용 이전금액 8,865.5백만 원, 정책 이전금액 8,849.8백만 원, 편차 +15.7백만 원(+0.18%), 공급 이전이익 1,376.1백만 원, 점검 필요 이전 16건, 점검 필요 사업부 쌍 8개, 정합성 대사 차이 0건입니다. 탭 머리의 숫자(119 · 45 · 9 · 952 · 9)는 각 탭의 행 수입니다.

조건으로 좁히기 — 공급 사업부와 점검 결과
조건으로 좁히기 — 공급 사업부와 점검 결과 — 공급 사업부와 점검 결과를 고르고 조회한 모습입니다. 조회 버튼은 조건 줄의 오른쪽 끝에 있습니다.

조건은 회계연도(필수) · 전기 월 시작과 종료 · 공급 사업부 · 수요 사업부 · 대체가격 방법 · 점검 결과입니다. 비워 두면 전체이고, 입력칸에서 Enter 키를 눌러도 조회됩니다. 초기화를 누르면 기본값으로 돌아가 다시 조회합니다. 요약 8개도 조회 범위에 맞춰 같이 바뀌므로, 사업부 하나만 골라 편차를 볼 수 있습니다.

모아서 보기 — 사업부 쌍과 월

이전 건 하나하나는 정책 안에 있어도 사업부 쌍이나 월로 모으면 한쪽으로 쏠릴 수 있습니다. 두 집계 탭이 그 쏠림을 먼저 보여 줍니다.

사업부 쌍 — 누가 누구에게 넘긴 단가가 벌어졌나
사업부 쌍 — 누가 누구에게 넘긴 단가가 벌어졌나 — 월 × 공급 사업부 × 수요 사업부로 이전 명세를 모아 편차율과 공급 이전이익을 나란히 둡니다.

한 건씩 보면 작은 편차도 쌍으로 모으면 방향이 보입니다. 쌍의 편차율이 ±1.5%를 넘으면 점검 필요로 표시하고, 이 자료에서는 45개 쌍 가운데 8개가 걸립니다. 행을 누르면 그 월 · 그 쌍의 이전 명세가 열립니다. 쌍의 이전금액 합계는 이전 명세 합계와 같아야 하며, 이 등식은 대사 결과 탭에서 매번 확인합니다.

월별 추이 — 편차가 쌓이는 달을 먼저 본다
월별 추이 — 편차가 쌓이는 달을 먼저 본다 — 달마다 정책 이전금액 · 적용 이전금액 · 편차율을 나란히 놓습니다.

월 편차율이 ±0.75%를 넘거나 점검 필요 이전 건이 3건 이상이면 그 달을 점검 필요로 표시합니다. 이 자료에서는 3월(−1.09%), 8월(+0.92%), 9월(+2.77%)이 걸립니다. 마감 회의에서는 걸린 달부터 열어 사업부 쌍과 이전 명세로 내려가는 순서가 가장 빠릅니다.

한 건을 열어 보기 — 단가 구성과 상세

점검 필요로 표시된 건이 왜 걸렸는지는 단가 구성에서 확인합니다. 표준원가에서 출발해 정책가를 거쳐 적용가까지 가는 길이 한 줄씩 보입니다.

단가 구성 — 표준원가에서 적용 대체가격까지 8단계
단가 구성 — 표준원가에서 적용 대체가격까지 8단계 — 이전 건마다 8단계로 펼쳐 둔 단가 구성입니다. 같은 건의 단계는 번호 순으로 이어집니다.

10 직접재료비 · 20 직접노무비 · 30 제조간접비가 표준원가를 이루고, 40 정책 기준단가 · 50 가감액 · 60 정책 대체가격이 정책가를, 70 적용 편차 · 80 적용 대체가격이 실제로 적용한 단가를 보여 줍니다. 단가 구성 탭은 이 단계를 모두 펼친 목록(952행)이라 방법별 · 단계별로 걸러 볼 수 있습니다.

이전 건 상세 — 정책가를 어떻게 얻었고 어디서 벗어났나
이전 건 상세 — 정책가를 어떻게 얻었고 어디서 벗어났나 — 이전 명세에서 행을 누르면 열리는 상세입니다. 정책가 산출 과정과 점검 내용을 함께 봅니다.

왼쪽은 이전 건의 식별 정보, 가운데는 기준단가 · 가감율 · 정책 대체가격 · 적용 대체가격 · 시장가 참조 · 편차율, 오른쪽은 금액과 점검 결과입니다. 이 건은 정책가 대비 편차율 +7.40%이고 적용 대체가격이 시장가 참조보다 높아 점검 필요로 표시됩니다. 점검 내용 칸에는 걸린 기준이 모두 적히며, 아래 표가 8단계 단가 구성입니다.

사업부 쌍 상세 — 쌍 안에서 편차가 큰 건 찾기
사업부 쌍 상세 — 쌍 안에서 편차가 큰 건 찾기 — 쌍 행을 누르면 그 월의 해당 쌍 이전 명세가 열립니다.

쌍의 편차율이 크면 그 안에서 어느 건이 끌었는지를 찾아야 합니다. 목록은 편차율을 눌러 정렬할 수 있어 위쪽에 큰 건이 모입니다. 원인은 화면이 단정하지 않습니다. 근거를 확인할 건을 골라 주는 데까지가 이 화면의 일입니다.

숫자를 믿을 수 있는가 — 대사 결과

점검 화면의 숫자가 틀리면 점검 자체가 의미가 없습니다. 화면이 스스로 대사식을 돌려 결과를 보여 줍니다.

대사 결과 — 아홉 가지 대사식의 검사 건수와 차이
대사 결과 — 아홉 가지 대사식의 검사 건수와 차이 — 단가 구성 · 정책가 · 적용가 · 금액 · 이전이익 · 쌍과 월 합계 · 전사 합산을 대사식별로 보여 줍니다.

대사식마다 검사 건수와 차이 건수, 최대 차이가 나옵니다. 아홉 가지 모두 차이 0건이며, 요약의 마지막 칸(정합성 대사 차이)이 이 탭의 합계입니다. 숫자가 의심될 때 가장 먼저 열 탭입니다.

화면 뒤에서 일어나는 일

화면은 조건을 모아 서비스에 한 번에 하나의 요청을 보내고, 돌아온 행을 그대로 표에 묶습니다. 탭마다 요청이 따로 나가므로 이전 명세에서 쌍 탭으로 옮겨도 다시 계산하지 않고 해당 집계를 받아 옵니다. 정책가 재계산 · 편차 · 점검 코드는 서비스가 정해 내려보내기 때문에, 화면에서 숫자를 고쳐 쓰는 자리가 없습니다.

점검 판정 규칙

판정 조건결과 상태사용자 조치
정책 대체가격 대비 편차율의 절댓값이 5% 초과 (코드 P1)점검 필요적용 단가의 근거(협의서 · 시스템 단가표)를 확인
적용 대체가격이 표준원가보다 낮음 (코드 L1)점검 필요공급 사업부 손실 이전 여부와 표준원가 개정 시점 확인
수요 사업부 매입액이 이전금액과 다름 (코드 M1)점검 필요양 사업부 전기 시점 · 금액 차이 확인
시장가 참조가 있는 품목에서 적용 대체가격이 시장가보다 높음 (코드 K1)점검 필요수요 사업부의 외부 구매 대안과 비교
사업부 쌍 편차율의 절댓값이 1.5% 초과 (코드 G1)점검 필요(쌍)쌍 안의 이전 명세를 열어 편차 큰 건 확인
월 편차율의 절댓값이 0.75% 초과 또는 점검 필요 3건 이상점검 필요(월)해당 월 이전 명세 확인
위에 해당하지 않음정상-

한 건이 여러 기준에 걸리면 L1 → M1 → P1 → K1 순서로 코드를 하나만 보여 주고, 점검 내용에는 걸린 기준을 모두 적습니다. 이 자료에서는 대표 코드 기준으로 P1 8건 · M1 4건 · L1 3건 · K1 1건, 합쳐서 16건이 걸립니다.

산출식

항목산식비고
정책 대체가격정책 기준단가 × (1 + 가감율 ÷ 100)원가가산은 표준단가, 시장가 기준은 시장가, 협상가는 계약 단가가 기준단가입니다.
적용 편차 · 편차율적용 대체가격 − 정책 대체가격 · 적용 편차 ÷ 정책 대체가격 × 100부호가 +이면 정책보다 비싸게 적용한 것입니다.
이전금액 · 편차금액수량 × 단가(원 미만 반올림) · 적용 이전금액 − 정책 이전금액정책 이전금액은 정책 단가로 같은 수량을 계산한 값입니다.
공급 이전이익 · 이전이익률적용 이전금액 − 표준원가 금액 · 이전이익 ÷ 적용 이전금액 × 100적용가가 표준원가보다 낮으면 음수가 되고 점검 필요로 표시됩니다.
쌍 · 월 합계이전 명세 합계합계가 다르면 대사 결과 탭에서 먼저 드러납니다.

조회조건

조건필수기본값서비스로 보내는 방식
회계연도필수2026$filter 에 연도 일치 조건
전기 월 시작 · 종료선택전체둘 다 있으면 범위 조건 하나로 묶어 보냄
공급 사업부 · 수요 사업부선택전체사업부 코드 일치 조건
대체가격 방법선택전체방법 코드 일치 조건(원가가산 · 시장가 기준 · 협상가)
점검 결과선택전체점검 필요일 때만 조건을 보냄

“전체”는 코드값으로 보내지 않고 해당 조건을 빼는 방식입니다. 그래서 목록에 없는 새 코드가 생겨도 “전체”에는 빠짐없이 들어옵니다.

결과 컬럼

컬럼의미산출식
표준 단가 · 표준원가 금액이전 시점에 고정한 품목 표준원가와 그 금액표준 단가 × 이전 수량
정책 기준단가 · 가감율방법별 기준 단가와 가감 비율정책 매핑에서 가져옴
정책 대체가격 · 적용 대체가격정책대로 계산한 단가와 실제 적용한 단가위 산출식
적용 편차 · 편차율두 단가의 차이와 그 비율적용 − 정책 · ÷ 정책 × 100
적용 이전금액 · 정책 이전금액 · 편차금액같은 수량을 두 단가로 계산한 금액과 그 차이수량 × 단가
공급 이전이익공급 사업부가 표준원가 위에 얹어 받은 몫이전금액 − 표준원가 금액
수요 매입액 · 매입 차이수요 사업부가 전기한 매입 금액과 이전금액과의 차이수요 매입액 − 적용 이전금액
점검 결과 · 점검 내용정상 또는 점검 필요와 걸린 기준판정 규칙 표

좁은 화면에서 달라지는 것

창이 좁아지면 조건 줄이 두 줄 이상으로 접히고 요약 8개가 가로로 흘러내립니다. 표는 가로 스크롤로 넘기며, 행을 누르면 상세 창이 화면 전체 폭으로 열립니다. 조회 버튼과 초기화 버튼은 어느 폭에서도 조건 줄 안에 있습니다.

파일 구성

앱 폴더
├─ index.html · Component.js · manifest.json
├─ controller/  (BaseController · Main)
├─ view/        (Main.view · DetailDialog.fragment)
├─ model/       (formatter · ErrorHandler)
├─ css/ · i18n/
├─ odata/       (서비스 메타데이터 · service.js · 샘플 json)
└─ media/       (소개 영상 · 포스터)

SAP 표준 기능 확장 포인트

이 앱은 SAP 표준을 대체하지 않습니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 어디까지가 표준이고 어디서부터 이 앱인지를 먼저 적습니다.

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

하고 싶은 일SAP 표준표준에서 걸리는 자리이 앱이 하는 일
사업부 내부 거래 라인 확인KSB1코스트센터 기준 개별 항목이라 이전 건 · 사업부 쌍 단위로는 모이지 않습니다이전 건을 사업부 쌍과 월로 모아 보여 주고, 원천 확인은 표준에 맡깁니다
수익성 분석 라인과 대조KE24라인은 보이지만 정책가와의 비교 기준이 없습니다정책 대체가격을 다시 계산해 편차를 옆에 둡니다
사업부 쌍 합계 대조KE30수익성 분석 구조를 운영하는 경우에만 쓸 수 있습니다이전 명세에서 쌍 합계를 만들어 같은 숫자로 대조합니다
사업부 비용 실적 · 계획 · 차이S_ALR_87013611비용 쪽 차이만 보여 주고 내부 거래 단가의 적정성은 다루지 않습니다단가 쪽 편차와 표준원가 미달 · 시장가 초과를 더합니다
정책 방법대로 단가가 맞는지-표준에 없습니다. 보통 단가표와 엑셀로 대조합니다방법별로 정책가를 계산해 편차율 기준으로 걸러 냅니다
양 사업부 전기 금액의 일치-공급 수익과 수요 매입을 나란히 놓는 화면이 따로 없습니다이전 명세마다 매입 차이를 계산해 불일치를 표시합니다

T-code 별 연계 지점

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

T-code이름연계
KSB1코스트센터 개별 항목 조회이 앱의 이전 명세 중 공급 사업부 비용 라인을 원천에서 확인하는 자리입니다. 이 앱 결과에서 사업부와 기간을 그대로 옮겨 조건을 넣고, 합계가 이전 명세와 맞는지 보는 것을 첫 번째 대사로 둡니다.
KE24수익성 분석 개별 항목 조회이전이익이 수익성 분석에 반영된 라인과 대조합니다. 이 앱의 공급 이전이익 합계와 해당 기간의 수익성 분석 라인 합계가 맞아야 합니다. 표준에서 본 값이 다르면 이 앱의 이전 명세에서 같은 건을 찾아 편차를 확인합니다.
KE30수익성 분석 리포트 실행사업부 쌍 합계를 수익성 리포트와 대조합니다. 수익성 분석을 운영하지 않는 회사는 이 연계를 건너뛰고 KSB1 대사만으로 갑니다.
S_ALR_87013611코스트센터: 실적 / 계획 / 차이사업부 비용 쪽 합계를 대조합니다. 이 앱의 표준원가 금액과 사업부의 실적 비용 흐름이 어긋나면 표준원가 개정 시점을 먼저 확인합니다.
FAGLL03총계정원장 개별 항목 조회공급 수익 계정과 수요 매입 계정의 원장 라인을 확인합니다. 매입 차이가 0이 아닌 건에서 양쪽 전표를 찾아가는 자리입니다.
CK13N제품 원가 계산 조회표준원가 구성(재료비 · 노무비 · 제조간접비)의 원천을 확인합니다. 단가 구성 10 · 20 · 30 단계와 맞춰 봅니다.
MB51자재 문서 목록이전 수량의 원천 자재 문서를 확인합니다. 수량이 달라 이전금액이 어긋난 건에서 사용합니다.

법정 보고와 감사 대응에 쓰는 숫자는 표준 거래에 두는 편이 좋습니다. 이 앱은 내부 관리용 점검 도구이고, 바뀌는 속도와 책임이 다르기 때문입니다.

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

S/4HANA 에서는 CDS 분석 쿼리를 Fiori 분석 앱이나 Analysis for Office 로 바로 띄우는 방식이 표준입니다. 이 앱의 서비스를 운영에서 CDS 서비스로 바꾸면 같은 쿼리를 표준 분석 도구에서도 열 수 있습니다. 다만 점검 코드와 쌍 · 월 판정처럼 “다음에 무엇을 확인하라”를 알려 주는 부분은 이 앱 화면이 더하는 관점이고, 분석 도구에서는 숫자만 나옵니다. 둘을 같이 두면 분석가는 도구로 자유롭게 파고, 현업은 이 화면으로 점검합니다.

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

자리무엇을 손대나주의할 점
정책 매핑품목 · 사업부 쌍별 대체가격 방법, 기준단가, 가감율방법이 바뀌는 시점을 기록해야 과거 숫자가 흔들리지 않습니다.
시장가 참조품목별 시장가와 유효기간참조가 없는 품목은 시장가 초과 점검에서 제외됩니다. 비어 있는 것과 0은 다릅니다.
점검 임계값이전 건 5% · 쌍 1.5% · 월 0.75%와 월의 3건 기준기준을 바꾸면 점검 필요 건수가 바뀝니다. 바꾼 날짜를 남겨 두십시오.
사업부 매핑프로핏센터를 사업부로 묶는 규칙조직 개편 때 가장 먼저 어긋나는 자리입니다.
권한사업부별 조회 범위집계 단계에 걸어야 합니다. 상세에만 걸면 합계의 뺄셈으로 남의 숫자가 드러납니다.
확장 필드이전 건 유형 · 거래 조건 번호 같은 회사 고유 항목서비스 정의에 항목을 더하고 화면은 열 한 개를 더하면 됩니다.

분석 지표 정의표

지표산식판정 기준원천 데이터비고
정책 대체가격기준단가 × (1 + 가감율 ÷ 100)-정책 매핑 · 표준원가 · 시장가방법별 기준단가가 다름
편차율(적용가 − 정책가) ÷ 정책가 × 100±5% 초과 점검 필요이전 명세쌍 ±1.5% · 월 ±0.75%
공급 이전이익적용 이전금액 − 표준원가 금액적용가 < 표준원가 점검 필요이전 명세 · 표준원가수요 추가원가와 합계 일치
매입 차이수요 매입액 − 적용 이전금액0 이 아니면 점검 필요양 사업부 전기 금액-

원천 테이블

테이블용도이 앱에서 쓰는 값
MBEW품목 평가 데이터표준원가(STPRS)를 품목별로 모아 이전 시점에 고정
MSEG자재 문서 항목이전 수량
ACDOCA유니버설 저널공급 사업부 내부 수익과 수요 사업부 내부 매입 금액
CEPC프로핏센터 마스터프로핏센터를 사업부로 묶는 매핑

표준원가를 이전 시점에 고정하는 방식과 내부 청구 단가를 어느 필드에서 읽는지는 확인 필요 항목입니다. 운영 환경의 원가 계산 설정에 따라 다르므로 도입 때 함께 정합니다.

CDS 구성

이 사례의 화면은 샘플 서비스가 내려 주는 값을 그대로 보여 줍니다. 운영에서는 같은 모양의 값을 CDS 뷰가 만들어 주어야 하고, 점검 코드와 집계도 DB 에서 한 번만 정의해야 화면 · 분석 도구 · 배치가 같은 숫자를 봅니다. 아래는 그때 만드는 뷰들을 레이어 순서대로 적은 것입니다.

코드는 스케치입니다. 필드 이름과 표준 뷰 이름은 릴리스 · 환경에 따라 다르므로, 그대로 붙여 넣기 전에 View Browser(F2170) 로 실제 이름을 확인해야 합니다. 확인이 필요한 자리는 주석에 적어 두었습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준zprice_policy품목 · 사업부 쌍별 대체가격 방법, 기준단가, 가감율, 유효기간방법이 바뀔 때마다 개발자를 부르지 않고 현업이 직접 고치게 하려면 테이블이어야 합니다.
차원ZI_TrfItemCost품목별 표준원가(재료 · 노무 · 간접) 한 행원가 구성을 한 곳에서만 읽어, 단가 구성 10 · 20 · 30 단계가 같은 값을 보게 합니다.
기본ZI_TrfActual이전 건 한 행 — 수량 · 적용 단가 · 금액 · 수요 매입액원천 라인을 이전 건 단위로 한 번만 모읍니다.
정책ZI_TrfPolicyPrice방법별 정책 기준단가와 정책 대체가격방법마다 기준단가가 달라서 case 로 한 번에 고릅니다.
큐브ZI_TrfCheckCube실적 + 정책 + 편차 + 점검 코드점검 규칙을 화면이 아니라 여기서 한 번만 정의합니다.
쿼리ZC_TrfCheckQuery사업부 쌍 · 월 집계와 조회 조건분석 앱과 이 화면이 같은 쿼리를 열게 합니다.
권한ZC_TrfCheckQuery (DCL)회사코드 · 프로핏센터집계를 읽는 자리에 걸어야 뺄셈으로 새지 않습니다.
서비스ZSD_TrfCheckOData 서비스로 게시화면의 서비스 주소를 이 서비스로 바꾸면 운영 연결이 끝납니다.

① 정책 매핑 테이블

리포트의 모든 판정이 이 표에서 갈립니다. 어느 품목을 어떤 방법으로 계산하고 가감율이 얼마인지를 정하는 자리라, 운영 전환에서 가장 먼저 합의해야 하는 항목입니다. 유효기간을 둔 이유는 중간에 방법이 바뀌어도 과거 숫자가 흔들리지 않게 하기 위해서입니다.

" ────────────────────────────────────────────────────────────────
"  zprice_policy — 대체가격 정책 매핑 (투명 테이블)
"  품목 · 공급 · 수요 사업부 조합마다 방법과 가감율을 둔다.
"  코드에 박지 않는 이유 : 방법은 협의로 바뀌고, 바뀔 때마다
"  개발자를 부르게 만들면 점검 기준이 금방 낡는다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '대체가격 정책 매핑'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C          " 고객 유지 — 전송(TR)으로 옮긴다
@AbapCatalog.dataMaintenance : #ALLOWED  " SM30 뷰를 함께 만들어 둔다
define table zprice_policy {
  key mandt    : mandt not null;
  key matnr    : matnr not null;         " 품목
  key supplier : abap.char(4) not null;  " 공급 사업부
  key receiver : abap.char(4) not null;  " 수요 사업부
  key valid_to : abap.dats not null;     " 유효 종료일
  valid_from   : abap.dats;
  method       : abap.char(4);           " COST 원가가산 · MKT 시장가 기준 · NEG 협상가
  basis_price  : abap.curr(15,2);        " 협상가일 때의 계약 단가
  adj_pct      : abap.dec(5,2);          " 가감율(%) — 마이너스 가능
  currency     : waers;
}

② 표준원가 차원 뷰

단가 구성의 앞 세 단계(재료비 · 노무비 · 제조간접비)가 여기서 나옵니다. 표준원가는 품목 평가 데이터에서 읽는데, 이전 시점의 값이어야 하므로 기간과 평가 영역을 키에 포함합니다. 품목 평가 데이터에서 구성 항목을 어떻게 얻는지는 원가 계산 설정에 따라 다르므로 확인이 필요합니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TrfItemCost — 품목 표준원가 차원
"  한 품목 · 한 평가 영역당 한 행. 원가 구성 3항목을 함께 둔다.
"  차원 뷰를 따로 두는 이유 : 표준원가를 읽는 곳을 한 곳으로 모아
"  단가 구성 10 · 20 · 30 단계와 점검 규칙이 같은 값을 보게 한다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #NOT_REQUIRED
@EndUserText.label                   : '품목 표준원가'
@Analytics.dataCategory              : #DIMENSION
@ObjectModel.representativeKey       : 'Material'
define view entity ZI_TrfItemCost
  as select from mbew as Val
{
  key Val.matnr                        as Material,
  key Val.bwkey                        as ValuationArea,

      cast( 'KRW' as waers )           as Currency,   " 확인 필요 — 운영에서는 회사코드 통화에서 얻는다
      @Semantics.amount.currencyCode : 'Currency'
      Val.stprs                        as StandardPrice,
      Val.peinh                        as PriceUnit,

      " 재료 · 노무 · 간접 구성은 원가 계산 결과 테이블에서 읽는다 (확인 필요)
      cast( 0 as abap.curr(15,2) )     as MaterialCost,
      cast( 0 as abap.curr(15,2) )     as LaborCost,
      cast( 0 as abap.curr(15,2) )     as OverheadCost
}

③ 이전 건 기본 뷰

이전 건 하나를 한 행으로 만드는 뷰입니다. 공급 사업부의 내부 수익 라인과 수요 사업부의 내부 매입 라인을 같은 이전 건 키로 묶어 금액과 매입 차이를 만듭니다. 이 키를 어떻게 만들지(전표 참조 필드, 자재 문서 번호 등)가 운영 전환의 숨은 논점입니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TrfActual — 이전 건 기본 뷰
"  공급 수익 라인과 수요 매입 라인을 이전 건 키로 묶는다.
"  묶는 기준(TransferKey) 은 환경마다 달라 확인이 필요하다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK
@EndUserText.label                   : '사업부 간 이전 실적'
define view entity ZI_TrfActual
  as select from acdoca as Sup
  inner join      acdoca as Buy
    on  Buy.rldnr = Sup.rldnr
    and Buy.rbukrs = Sup.rbukrs
    and Buy.gjahr = Sup.gjahr
    and Buy.awref = Sup.awref          " 이전 건 참조 — 확인 필요
{
  key Sup.rldnr                               as Ledger,
  key Sup.rbukrs                              as CompanyCode,
  key Sup.gjahr                               as FiscalYear,
  key Sup.awref                               as TransferKey,

      Sup.poper                               as Period,
      Sup.prctr                               as SupplierProfitCenter,
      Buy.prctr                               as ReceiverProfitCenter,
      Sup.matnr                               as Material,
      Sup.msl                                 as Quantity,
      Sup.runit                               as QuantityUnit,

      @Semantics.amount.currencyCode : 'Currency'
      -1 * Sup.hsl                            as TransferAmount,   " 수익은 대변(음수)
      @Semantics.amount.currencyCode : 'Currency'
      Buy.hsl                                 as BuyAmount,        " 비용은 차변(양수)
      Sup.rhcur                               as Currency
}
where Sup.racct between '0042000000' and '0042999999'   " 내부 수익 계정 범위 — 회사 체계에 맞춘다
  and Buy.racct between '0052000000' and '0052999999'   " 내부 매입 계정 범위

④ 정책 대체가격 뷰

방법별로 기준단가가 다릅니다. 원가가산은 표준단가, 시장가 기준은 시장가 참조, 협상가는 계약 단가입니다. 이 선택을 case 한 곳에서만 하도록 모아 두면, 방법이 하나 늘어도 이 뷰만 고치면 됩니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TrfPolicyPrice — 정책 대체가격
"  정책 대체가격 = 기준단가 × (1 + 가감율 ÷ 100)
"  기준단가를 고르는 규칙을 이 뷰 하나에만 둔다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #NOT_REQUIRED
@EndUserText.label                   : '정책 대체가격'
define view entity ZI_TrfPolicyPrice
  as select from zprice_policy as Pol
  association [0..1] to ZI_TrfItemCost as _Cost
    on _Cost.Material = $projection.Material
{
  key Pol.matnr                                   as Material,
  key Pol.supplier                                as Supplier,
  key Pol.receiver                                as Receiver,
  key Pol.valid_to                                as ValidTo,

      Pol.method                                  as Method,
      Pol.adj_pct                                 as AdjPct,

      case Pol.method
        when 'COST' then _Cost.StandardPrice
        when 'NEG'  then Pol.basis_price
        else             Pol.basis_price           " 시장가 기준은 시장가 참조 뷰에서 채운다 (확인 필요)
      end                                         as BasisPrice,

      cast( case Pol.method
              when 'COST' then _Cost.StandardPrice
              else Pol.basis_price
            end * ( 1 + Pol.adj_pct / 100 )
            as abap.curr(15,2) )                  as PolicyPrice,
      Pol.currency                                as Currency,
      _Cost
}

⑤ 점검 큐브

점검 규칙을 정의하는 자리입니다. 편차 · 편차율 · 이전이익 · 매입 차이와 점검 코드(L1 → M1 → P1 → K1)가 모두 여기서 만들어지고, 화면은 이 값을 그대로 씁니다. 규칙을 화면에서 빼야 하는 이유는 분석 도구와 배치가 같은 판정을 써야 하기 때문입니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TrfCheckCube — 점검 큐브
"  실적 + 정책 + 편차 + 점검 코드.
"  코드 우선순위 : L1 표준원가 미달 → M1 매입 불일치 → P1 편차율 5% 초과 → K1 시장가 초과
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK
@EndUserText.label                   : '대체가격 점검 큐브'
@Analytics.dataCategory              : #CUBE
define view entity ZI_TrfCheckCube
  as select from ZI_TrfActual as Act
  left outer join ZI_TrfPolicyPrice as Pol
    on  Pol.Material = Act.Material
  association [0..1] to ZI_TrfItemCost as _Cost
    on  _Cost.Material = Act.Material
{
  key Act.TransferKey,
      Act.Period,
      Act.SupplierProfitCenter,
      Act.ReceiverProfitCenter,
      Act.Material,

      @Aggregation.default : #SUM
      Act.Quantity                                                  as Quantity,
      @Aggregation.default : #SUM
      Act.TransferAmount                                            as TransferAmount,
      @Aggregation.default : #SUM
      cast( Act.Quantity * Pol.PolicyPrice as abap.curr(15,0) )     as PolicyAmount,
      @Aggregation.default : #SUM
      cast( Act.Quantity * _Cost.StandardPrice as abap.curr(15,0) ) as StandardAmount,

      " 편차율 = (적용가 − 정책가) ÷ 정책가 × 100
      cast( ( Act.TransferAmount / Act.Quantity - Pol.PolicyPrice )
            / Pol.PolicyPrice * 100 as abap.dec(7,2) )              as GapPct,

      case
        when Act.TransferAmount < Act.Quantity * _Cost.StandardPrice            then 'L1'
        when Act.BuyAmount      <> Act.TransferAmount                           then 'M1'
        when abs( Act.TransferAmount / Act.Quantity - Pol.PolicyPrice )
             > Pol.PolicyPrice * 0.05                                           then 'P1'
        " K1 : 시장가 참조 뷰(확인 필요)를 association 으로 붙여 같은 방식으로 더한다
        else 'OK'
      end                                                           as CheckCode,

      _Cost
}

⑥ 분석 쿼리

사업부 쌍과 월 집계가 여기서 나옵니다. 화면 탭과 같은 모양으로 행 축 · 열 축 기본 배치를 두면 Fiori 분석 앱과 Analysis for Office 가 같은 쿼리를 그대로 엽니다. 사업부 쌍 편차율 기준(1.5%)은 계산 측정값으로 둡니다.

" ────────────────────────────────────────────────────────────────
"  ZC_TrfCheckQuery — 분석 쿼리
"  행 : 사업부 쌍 · 열 : 회계기간. 측정값은 이전금액 · 정책금액 · 편차율.
" ────────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label                : '대체가격 점검 쿼리'
@Analytics.query                  : true
@OData.publish                    : false
define view entity ZC_TrfCheckQuery
  as select from ZI_TrfCheckCube
{
      @AnalyticsDetails.query.axis : #ROWS
      @Consumption.filter.selectionType : #SINGLE
  key SupplierProfitCenter,
      @AnalyticsDetails.query.axis : #ROWS
  key ReceiverProfitCenter,
      @AnalyticsDetails.query.axis : #COLUMNS
      Period,

      @AnalyticsDetails.query.axis : #COLUMNS
      @Aggregation.default : #SUM
      TransferAmount,
      @Aggregation.default : #SUM
      PolicyAmount,

      " 쌍 편차율 = (이전금액 − 정책금액) ÷ 정책금액 × 100
      @AnalyticsDetails.query.formula : '( TransferAmount - PolicyAmount ) / PolicyAmount * 100'
      @EndUserText.label : '쌍 편차율(%)'
      cast( 0 as abap.dec(7,2) )                    as PairGapPct
}

⑦ 권한 정의(DCL)

집계를 읽는 자리에 걸어야 합니다. 상세 라인에만 걸면 전체 합계에서 내 몫을 빼는 방식으로 남의 사업부 숫자를 알아낼 수 있습니다. 회사코드와 프로핏센터 두 축으로 겁니다.

" ────────────────────────────────────────────────────────────────
"  ZC_TrfCheckQuery — 권한 정의
"  회사코드 · 프로핏센터 표준 권한 객체를 집계 단계에 건다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '대체가격 점검 권한'
@MappingRole : true
define role ZC_TrfCheckQuery {
  grant select on ZC_TrfCheckQuery
    where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' )
      and ( SupplierProfitCenter ) = aspect pfcg_auth( K_PCA, PRCTR, ACTVT = '03' );
}

⑧ 서비스 정의

마지막으로 쿼리를 OData 서비스로 노출합니다. 서비스 바인딩을 게시하고 나면 화면의 서비스 주소만 바꿔 운영에 붙입니다.

" ────────────────────────────────────────────────────────────────
"  ZSD_TrfCheck — 서비스 정의
"  바인딩은 OData V2 - UI 로 만들고 게시한다(활성화 후 서비스 주소 확인).
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '대체가격 점검 서비스'
define service ZSD_TrfCheck {
  expose ZC_TrfCheckQuery   as TrfCheck;
  expose ZI_TrfCheckCube    as TrfCube;
  expose ZI_TrfPolicyPrice  as TrfPolicy;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래는 코딩이 아니라 합의입니다.

해야 할 일무엇을 정하나정하지 않으면누가
대체가격 정책 매핑품목 · 사업부 쌍별 방법과 가감율, 유효기간정책가가 달라져 첫 점검 회의에서 숫자를 믿지 못합니다회계팀 · 기획팀
표준원가 고정 시점이전 시점의 표준원가를 어떻게 얻을지표준원가 개정 뒤 과거 이전건의 이전이익이 바뀝니다원가팀
이전 건 키공급 라인과 수요 라인을 묶는 기준매입 차이가 우연히 0이거나 엉뚱한 건끼리 맞춰집니다회계팀 · 개발
시장가 참조 원천어느 목록을 시장가로 쓰고 언제 갱신하나시장가 초과 점검이 낡은 숫자로 돕니다구매팀
점검 임계값이전 건 · 쌍 · 월 기준과 대표 코드 우선순위너무 많이 걸려 아무도 보지 않거나, 너무 적게 걸립니다관리회계팀
권한 설계사업부별 조회 범위전사 합계와 내 몫의 차이로 남의 숫자가 드러납니다보안 · 권한
대사 체계표준 T-code(KSB1 · KE24 · KE30)와 맞출 항목과 주기숫자가 다를 때 무엇부터 볼지 순서가 없습니다회계팀
전송(TR) 순서테이블 → 차원 → 기본 → 정책 → 큐브 → 쿼리 → 권한 → 서비스활성화 오류로 전송이 중간에 멈춥니다개발 · Basis
서비스 활성화서비스 바인딩 게시와 화면 설정의 서비스 주소 교체화면이 샘플 서비스를 계속 바라봅니다개발 · Basis

운영 데이터로 갈 때

이전 건이 수천만 건으로 늘면 집계를 화면에서 하는 방식은 바로 막힙니다. 쌍과 월 집계는 DB 에서 집계한 결과만 받고, 이전 명세는 필수 조건(회계연도 · 기간)을 반드시 받아 범위를 좁힌 뒤 페이지 단위로 읽습니다. 기간 · 사업부 · 점검 결과에 인덱스를 두고, 첫 화면은 최근 월 하나로 시작하도록 기본값을 정합니다. 응답 시간 기준은 도입 때 정하되, 쌍 집계는 수 초 안에, 이전 명세는 한 페이지 단위로 바로 나오는 것을 목표로 잡습니다.

자주 묻는 질문

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

숫자와 산식

정책 대체가격은 어떻게 계산됩니까?

방법에 따라 기준단가가 다릅니다. 원가가산은 품목의 표준단가, 시장가 기준은 시장가 참조, 협상가는 계약 단가가 기준단가입니다. 여기에 가감율을 적용해 기준단가 × (1 + 가감율 ÷ 100) 으로 정책 대체가격을 얻습니다.

방법과 가감율은 품목과 사업부 조합마다 정책 매핑에 있고, 화면은 그 결과를 정책 기준단가 · 가감율 · 정책 대체가격 열로 모두 보여 줍니다. 그래서 정책가가 왜 이 값인지를 계산 과정째로 확인할 수 있습니다.

편차와 편차율은 부호를 어떻게 읽습니까?

적용 편차 = 적용 대체가격 − 정책 대체가격이고 편차율은 그 편차를 정책 대체가격으로 나눈 값입니다. +이면 정책보다 비싸게 적용한 것이고 −이면 싸게 적용한 것입니다.

공급 사업부 관점에서는 +가 이익이고 수요 사업부 관점에서는 +가 추가 원가입니다. 그래서 화면은 부호만으로 색을 칠하지 않고 점검 기준(±5% 초과)을 넘을 때만 점검 필요로 표시합니다.

공급 이전이익과 수요 추가원가는 왜 합이 0이어야 합니까?

사업부 사이에서 넘긴 반제품 값은 공급 사업부에는 이익으로, 수요 사업부에는 같은 금액의 추가 원가로 잡힙니다. 전사 기준으로 보면 내부 거래는 상계되어야 하므로 두 합계의 차이는 0입니다.

이 앱은 이 등식을 대사식으로 두고 사업부 쌍 45개 전부에 대해 매번 검산합니다. 어긋나면 내부 거래 상계가 맞지 않는다는 신호이므로 연결 단계에서 뒤늦게 발견하기 전에 먼저 드러납니다.

이전금액은 왜 원 미만 반올림입니까?

이전금액은 수량 × 적용 대체가격이고, 단가에 소수가 있어 곱한 값에도 소수가 생깁니다. 전기되는 금액은 원 단위이므로 원 미만 반올림한 값을 금액으로 씁니다.

정책 이전금액도 같은 방식으로 계산하고, 둘의 차이가 편차금액입니다. 합계가 어긋나지 않도록 반올림은 건 단위로 한 번만 하고, 이 규칙은 대사식(수량 × 적용 대체가격 = 이전금액)으로 전수 확인합니다.

사업부 쌍 합계와 이전 명세 합계가 다르면 어떻게 합니까?

대사 결과 탭에서 해당 대사식의 차이 건수와 최대 차이를 먼저 봅니다. 이 자료에서는 모두 0이지만, 운영에서 차이가 나오면 대부분 조회 범위가 다르거나(기간 · 사업부 조건) 사업부 매핑이 바뀐 경우입니다.

그 다음은 쌍 상세를 열어 이전 명세 합계와 맞춰 보고, 원천은 표준 T-code KSB1 이나 KE24 로 확인합니다.

점검 필요 16건은 모두 오류입니까?

아닙니다. 점검 필요는 기준을 넘었으니 근거를 확인하라는 뜻이지 틀렸다는 뜻이 아닙니다. 협의로 정한 예외 단가이거나 표준원가 개정 직후의 일시적 차이일 수 있습니다.

화면은 원인을 단정하지 않고 걸린 기준만 점검 내용에 적습니다. 근거를 확인한 뒤 정책을 고칠지, 단가를 고칠지, 그대로 둘지는 회사가 정합니다.

화면과 조작

조회 조건은 무엇이 필수이고, 비우면 어떻게 됩니까?

필수는 회계연도뿐입니다. 전기 월 시작 · 종료, 공급 사업부, 수요 사업부, 대체가격 방법, 점검 결과는 비워 두면 전체입니다. “전체”는 코드값으로 보내지 않고 그 조건을 뺀 채 조회하므로, 나중에 새 사업부나 새 방법이 생겨도 빠지지 않습니다.

조회는 조회 버튼이나 입력칸에서 Enter 키로 합니다. 처음 열 때는 자동으로 한 번 조회됩니다.

탭은 왜 다섯 개입니까?

봐야 하는 눈높이가 다섯 가지이기 때문입니다. 이전 명세는 건 단위, 사업부 쌍은 누가 누구에게 넘겼는지, 월별 추이는 언제부터 벌어졌는지, 단가 구성은 한 건의 산출 과정, 대사 결과는 숫자를 믿어도 되는지입니다.

탭 머리의 숫자는 현재 조회 범위의 행 수라, 조건을 바꾸면 함께 바뀝니다.

행을 누르면 무엇이 열립니까?

이전 명세에서는 이전 건 상세가 열립니다. 건의 식별 정보, 기준단가 · 가감율 · 정책가 · 적용가 · 시장가 참조 · 편차율, 금액과 점검 결과, 그리고 단가 구성 8단계가 한 창에 모입니다.

사업부 쌍이나 월 행에서는 그 쌍과 월에 속한 이전 명세 목록이 열립니다. 모두 같은 조회 범위 안에서 열리므로 창을 닫으면 보던 자리로 돌아옵니다.

내려받은 CSV 는 어떤 범위입니까?

지금 보고 있는 탭의 조회 결과 전체입니다. 화면 설정에 맞춰 열 이름과 값을 같은 순서로 내려받고, UTF-8 이라 엑셀에서 바로 열립니다. 점검 결과로 걸러 둔 상태에서 내려받으면 걸러진 행만 나옵니다.

증빙 자료로 첨부할 때는 조회 조건과 내려받은 시각을 같이 남겨 두는 것을 권합니다.

좁은 화면이나 휴대폰에서도 쓸 수 있습니까?

쓸 수 있습니다. 창이 좁아지면 조건 줄이 접히고 요약이 아래로 흘러내리며, 표는 가로로 넘겨 봅니다. 상세 창은 화면 전체 폭으로 열립니다. 다만 단가 구성처럼 열이 많은 표는 넓은 화면에서 보는 편이 읽기 쉽습니다.

점검 판정

한 건이 여러 기준에 걸리면 코드는 어떻게 정해집니까?

대표 코드는 L1(표준원가 미달) → M1(매입액 불일치) → P1(편차율 5% 초과) → K1(시장가 초과) 순서로 하나만 보여 줍니다. 공급 사업부 손실처럼 영향이 큰 기준을 앞에 두었습니다.

그렇다고 나머지가 사라지는 것은 아닙니다. 점검 내용 칸에는 걸린 기준이 모두 적힙니다. 이전 건 상세를 열면 한 문장으로 이어서 볼 수 있습니다.

임계값 5% · 1.5% · 0.75%는 어떻게 정했습니까?

이 자료의 샘플 기준일 뿐이고 운영 기준은 회사가 정합니다. 건은 5%, 쌍은 1.5%, 월은 0.75% 또는 점검 필요 3건으로 두었습니다. 모으면 개별 편차가 서로 상쇄되어 작아지므로 집계 단위일수록 기준을 낮게 둔 것입니다.

운영에서는 점검 필요 건수가 너무 많아 아무도 보지 않거나 너무 적어 놓치는 일이 없도록, 한두 달 돌려 보고 조정합니다. 바꾼 날짜는 남겨 두십시오.

시장가 참조가 없는 품목은 어떻게 됩니까?

시장가 초과 기준(K1)은 시장가 참조가 있는 품목에만 적용합니다. 참조가 비어 있으면 이 기준만 건너뛰고 나머지 기준은 그대로 적용합니다. 비어 있는 것과 0은 다르므로 시장가 참조가 없는 품목을 0으로 채우지 않도록 합니다.

정책 방법이 중간에 바뀐 품목은 어떻게 봅니까?

정책 매핑에 유효기간을 두므로 이전 시점에 유효했던 방법과 기준단가로 정책가를 계산합니다. 방법이 바뀌어도 과거 이전 건의 정책가가 흔들리지 않습니다. 바뀐 시점 전후의 편차가 갑자기 커졌다면, 방법이 바뀐 날짜를 먼저 확인하십시오.

도입과 운영

어떤 회사와 부서에 맞습니까? 도입하면 무엇이 달라집니까?

사업부 사이에 반제품이나 제품을 넘기고 내부 대체가격을 정책으로 정해 두었으며, 월마감에서 단가표를 엑셀로 대조하는 관리회계팀에 맞습니다. 사업부 손익을 별도로 평가하는 회사일수록 효과가 큽니다.

달라지는 것은 대조 작업의 순서입니다. 전부 대조하는 대신 걸린 건부터 열고, 이전 건 상세에서 정책가 산출 과정까지 바로 확인합니다. 회의의 주제도 “어느 단가가 맞나”에서 “어떻게 할 것인가”로 옮겨 갑니다.

적용 시기와 범위는 어디까지입니까?

관련 기준서가 있는 영역이 아니라 내부 관리 목적의 점검 화면입니다. 그래서 정해진 적용 시기가 없고, 정책이 있는 사업부 사이 이전부터 단계적으로 넓혀 가면 됩니다. 처음에는 이전 금액이 큰 사업부 쌍 한두 개로 시작해 기준을 다듬는 방식을 권합니다.

표준 T-code 와는 어떤 관계입니까?

표준 실행은 SAP 표준 T-code 가 담당하고 이 화면은 조회 · 검증 관점을 더해 확장합니다. 원천 라인 확인은 KSB1, 수익성 분석 라인과 리포트 대조는 KE24 · KE30, 사업부 비용의 실적과 계획은 S_ALR_87013611 이 맡습니다.

이 앱의 숫자와 표준 화면의 숫자를 맞춰 보는 대사 지점은 SAP 표준 기능 확장 포인트 절의 T-code 표에 정리했습니다. 기존 화면은 없애지 않고 함께 둡니다.

데이터는 어디서 오고 정합성은 어떻게 보장합니까?

화면은 OData 서비스 하나에서 값을 받습니다. 운영에서는 표준원가(품목 평가 데이터), 이전 수량(자재 문서), 내부 거래 금액(유니버설 저널), 사업부 매핑(프로핏센터 마스터)을 CDS 뷰로 모아 같은 모양의 값을 만듭니다.

정합성은 대사식으로 확인합니다. 단가 구성 · 정책가 · 적용가 · 금액 · 이전이익 · 쌍과 월 합계 · 전사 합산, 아홉 가지를 전수로 돌려 이 자료에서는 모두 차이 0입니다.

운영 시스템에 연결하려면 어떤 절차가 필요하고 얼마나 걸립니까?

정책 매핑을 합의하고 → CDS 뷰를 만들어 전송하고 → 서비스를 게시한 뒤 → 화면의 서비스 주소를 바꾸는 순서입니다. 기간은 합의에 달려 있습니다. 개발 자체는 뷰 여덟 벌 안팎이라 길지 않지만, 정책 매핑 · 표준원가 고정 시점 · 이전 건 키는 부서 사이 합의가 필요해 일정의 대부분을 차지합니다.

정확한 소요는 현재 환경을 확인한 뒤 말씀드릴 수 있어, 문의하기로 환경 정보를 남겨 주시면 함께 확인해 드립니다.

권한과 보안은 어떻게 처리합니까?

화면은 OpenUI5 표준 컨트롤만 쓰고 외부 라이브러리나 외부 전송이 없어 반입 심사 부담이 적습니다. 데이터 권한은 서비스 쪽 CDS 권한 정의에서 회사코드와 프로핏센터로 걸고, 집계를 읽는 단계에 겁니다. 상세 라인에만 걸면 전체 합계에서 내 몫을 빼는 방식으로 남의 사업부 숫자가 드러나기 때문입니다.

이전 건이 수천만 건이면 성능은 어떻습니까?

샘플은 119건이라 화면이 전체를 받아 보여 주지만 운영에서는 그렇게 하지 않습니다. 쌍과 월 집계는 DB 에서 집계한 결과만 받고, 이전 명세는 회계연도와 기간을 필수 조건으로 받아 범위를 좁힌 뒤 스크롤 단위로 읽습니다. 기간 · 사업부 · 점검 결과에 인덱스를 두고 첫 화면은 최근 월 하나로 시작합니다.

정책 방법이나 사업부 매핑이 바뀌면 무엇을 고칩니까?

화면과 서비스 코드는 고치지 않습니다. 정책 매핑 테이블(방법 · 기준단가 · 가감율 · 유효기간)과 프로핏센터 사업부 매핑을 고치면 됩니다. 정기적으로 손이 가는 곳은 사실상 이 두 곳이며, 회계팀이 직접 유지보수하도록 SM30 뷰를 같이 만드는 것이 보통입니다. 점검 임계값을 바꿀 때만 서비스 정의를 손봅니다.

이 화면이 점검한 결과를 최종 판단으로 써도 됩니까?

아닙니다. 이 화면은 점검 도구입니다. 점검 필요는 근거를 확인할 대상을 골라 줄 뿐이고, 정책이 맞는지 · 예외를 인정할지 · 단가를 고칠지는 회사가 판단합니다. 외부에 설명하거나 감사인에게 제출하는 자료는 원천 거래와 표준 T-code 의 숫자를 기준으로 하고, 이 화면의 결과는 그 숫자를 찾아가는 길잡이로 씁니다.

사업부별로 내부 거래 단가를 점검하는 일이 정기적으로 반복된다면, 도입을 검토할 만합니까?

매월 같은 대조를 반복하고 있다면 검토할 만합니다. 단가표를 눈으로 맞추는 일은 사람이 바뀌면 기준이 달라지고, 걸린 건의 근거도 메일함에 흩어집니다. 정책가를 같은 산식으로 다시 계산해 옆에 놓고, 걸린 건부터 열고, 아홉 가지 대사식으로 숫자를 확인하는 순서만 정해도 마감 회의의 시간이 줄어듭니다. 현재 SAP 환경에서 어떻게 적용되는지 함께 확인해 드립니다.