SAP 사업계획 제출·승인 진행상태 점검 — 마감을 놓친 조직을 한 화면에서 찾는다
조직단위별 사업계획 제출·승인 이력을 마감일 기준으로 대사해 지연·반려 건을 먼저 가려냅니다
사업계획은 정해진 마감일까지 조직단위(코스트센터)별로 초안을 작성하고, 부서 제출과 1·2차 승인을 거쳐 확정됩니다. 조직이 많아질수록 어느 부서가 마감을 놓쳤는지, 어느 계획이 반려된 채 멈춰 있는지를 결재 이력을 일일이 뒤져 확인하는 일이 번거로워집니다.
SAP 표준 코스트센터 마스터에 사업계획 제출·승인 이력을 대사해 조직단위별 진행상태를 한 화면에서 확인하고, 마감 경과 미제출·마감 경과 제출·반려 건을 먼저 가려내는 조회 화면을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 마스터 — 코스트센터 마스터(
KS13)의 코드·명칭·손익센터를 조직단위 기준으로 사용 - 계획 입력 — 코스트센터·원가요소별 계획 입력(
KP06·KP07)에서 만들어진 계획 데이터를 점검 대상으로 사용
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) · 사업 계획 수립 |
| 관련 대상 영역 | 사업 계획 수립·사업 실적 분석 — 조직단위별 계획 제출·승인 진행상태 점검(특정 기준서 없음) |
| Namespace | zui5.planstatus |
| 셸 구조 | 조회조건 영역(우측 조회) + 상태 요약 카드 5개 + 진행상태 목록, 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | KS13 · KP06 · KP07 |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·점검형 — 계획 확정 처리 자체는 화면 밖 결재 프로세스 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회계연도·계획버전을 넣고 조회하면 상태 요약과 진행상태 목록이 한 화면에 뜹니다 → 승인상태를 좁혀 확인이 필요한 건만 추려 보고 → 행을 눌러 상세 이력을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 회계연도와 계획버전을 확인합니다. 제출상태·승인상태는 비워 두면(전체) 모두 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본값으로 자동 조회됩니다.
- 상태 요약 카드(전체 대상·제출완료·미제출·확정·지연·확인 필요)로 전체 분포를 먼저 확인합니다.
- 진행상태 목록에서 점검결과가 "지연·점검 필요" 또는 "확인 필요"인 행을 우선 확인합니다.
- 행을 누르면 초안작성부터 확정까지 단계별 진행 이력이 상세 다이얼로그로 열립니다.
- 목록 우측 상단의 CSV 내려받기(UTF-8 BOM)로 현재 조회 결과를 저장할 수 있습니다.
지연·확인 필요 판정 기준
제출·승인 상태와 마감일을 함께 놓고, 확인이 필요한 조합만 가려냅니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 제출상태 = 미시작, 오늘 > 제출마감일 | 지연·점검 필요 | 담당 조직에 제출 지연 사유를 확인합니다. |
| 제출완료, 제출일 ≤ 제출마감일 | 정상 | 후속 승인 진행 여부만 확인합니다. |
| 제출완료, 제출일 > 제출마감일 | 확인 필요 | 지연 제출 사유를 확인합니다. |
| 승인상태 = 반려 | 확인 필요 | 반려 사유를 확인하고 재작업 여부를 협의합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시이며, 지연·반려의 타당성을 단정하지 않습니다. 실제 지연 사유 확인과 계획 확정 승인 여부는 회사와 담당 조직이 결정합니다.
진행상태 산출 4단계
| 단계 | 내용 |
|---|---|
| 1단계 | 조직단위별 제출 마감일과 현재 제출·승인 상태를 모은다 |
| 2단계 | 지연일수를 구한다 — 지연일수 = MAX(0, 기준일 − 제출마감일), 기준일은 제출일이 있으면 제출일, 없으면 오늘 |
| 3단계 | 제출상태·승인상태·지연일수를 종합해 점검결과(정상 / 확인 필요 / 지연·점검 필요)를 매긴다 |
| 4단계 | 상태그룹별 집계를 별도 산출해 상단 요약 카드에 반영한다 — 제출완료 건수 + 미제출 건수 = 전체 대상 건수 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 4자리 (예: 2026) |
| 계획버전 | 필수 | 선택 목록에서 고름 |
| 제출상태 | 선택 | 전체 / 미시작 / 초안작성중 / 제출완료 |
| 승인상태 | 선택 | 전체 / 승인대기 / 승인완료 / 반려 / 확정 |
결과 컬럼
| 영역 | 컬럼 · 표시 |
|---|---|
| 상태 요약 카드 | 전체 대상 · 제출완료 · 미제출 · 확정 · 지연·확인 필요 |
| 진행상태 목록 | 조직단위 · 담당자 · 제출마감일 · 제출일 · 제출상태 · 승인상태 · 지연현황 · 계획금액 · 점검결과 |
| 상세 이력 | 순번 · 단계 · 처리일 · 상태 · 처리자 · 비고 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 진행상태 조회·점검 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
KS13 | 코스트센터 마스터 목록 조회 | 조직단위 코드·명칭·손익센터를 진행상태 목록의 기준으로 사용합니다 |
KP06 | 원가요소별 계획 입력 | 이 계획이 마감까지 제출·승인됐는지 진행상태로 보여줍니다 |
KP07 | 코스트센터 계획 입력(개요) | 조직단위별 계획 금액을 목록에 함께 표시합니다 |
분석 지표 정의표
| 대상 영역 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| 사업 계획 수립 | 조직단위별 계획 제출 기한 준수 여부 점검 | 지연현황·점검결과, 상단 요약 카드 | 코스트센터 마스터 + 제출·승인 이력 | - |
| 사업 계획 수립 | 승인 단계별 진행 이력 추적 | 행 클릭 상세 이력 | 제출·승인 이력 | - |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
CSKS | KOSTL · PRCTR | 코스트센터 코드, 손익센터 |
CSKT | KTEXT | 코스트센터 명칭 |
define view entity Z_C_PlanSubmissionStatus
as select from ZI_PlanSubmissionHeader as hdr
association [1..1] to CSKS as _CostCenter on _CostCenter.kostl = hdr.kostl
{
key hdr.gjahr as FiscalYear,
key hdr.versn as PlanVersion,
key hdr.kostl as CostCenter,
_CostCenter.prctr as ProfitCenter,
hdr.due_date as DueDate,
hdr.submit_date as SubmitDate,
hdr.submit_status as SubmitStatus,
hdr.approve_status as ApproveStatus
}
계획 제출·승인 이력 자체의 표준 원천 테이블은 회사별 워크플로우 구성에 따라 달라 확인하지 못했으며, 위 스케치는 신규로 그려본 참고용입니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 상태 요약 카드 · 목록 표 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 화면 블록마다 엔티티셋에 직접 바인딩합니다. useBatch:false · defaultCountMode:"Inline" |
| 조회조건 | sap.m.Input · sap.m.Select — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 정렬 · 페이징 | sap/ui/model/Sorter와 growing 기능으로 처리합니다 |
| 목록 · 이력 표 | sap.m.Table — 행 클릭 시 상세 다이얼로그, sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 요약 집계 | Function Import 로 상태그룹별 집계를 별도 조회해 상단 카드에 반영합니다 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패·빈 응답을 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 전역 오류 처리기 연결, 디바이스 모델 초기화 |
manifest.json | 앱 디스크립터 — zui5.planstatus · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 상태 요약 · 목록 |
view/fragments/DetailDialog.fragment.xml | 상세 이력 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 날짜 · 금액 · 상태 표시 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 조직단위 20건을 구성해 제출·승인 흐름과 지연일수 계산이 이어지도록 했습니다.
| 검증 항목 | 결과 |
|---|---|
| 제출 건수 + 미제출 건수 = 전체 대상 건수 | 통과(차이 0) |
| 상태그룹별 집계 합계 = 전체 건수 | 통과(차이 0) |
| 제출완료 건의 진행 이력 존재 여부 대사 | 통과(차이 0, 미시작 3건은 이력 없음이 정상) |
| 확인 대상 건 안내 | 마감 경과 제출 2건 · 마감 경과 미제출 2건 · 반려 2건(의도적으로 구성한 케이스) |
| 조회 조건 전달 — 전체 20건 · 승인상태 필터(반려) 2건 확인 · Enter 키 재조회 확인 | 확인 |
| 표시 금지 검사 — 앱 식별자·커스텀 프로그램ID·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 필터 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면의 판정이 계획 승인 여부를 결정하나요?
아닙니다. 이 화면은 조직단위별 사업계획 제출·승인 진행상태를 조회·점검하는 도구이며, 실제 지연 사유 확인과 계획 승인·확정 판단은 회사와 담당 조직이 수행합니다.
적용 시기와 범위는 어떻게 되나요?
특정 회계기준과 무관한 사내 관리 도구로, 별도 시행일은 없습니다. 조직단위(코스트센터)별 사업계획 제출부터 초안작성·부서제출·1차승인·2차승인·확정까지의 진행 이력을 다룹니다.
지연으로 표시되면 무조건 문제인가요?
아닙니다. 지연현황은 마감일 대비 제출·기준일 차이를 보여주는 표시일 뿐입니다. 지연 사유가 타당한 경우도 있으므로, 표시된 건은 확인 대상이지 단정된 문제가 아닙니다.
여러 계획버전을 한 화면에서 비교할 수 있나요?
현재는 계획버전을 하나씩 선택해 조회합니다. 여러 버전을 나란히 비교하는 기능은 제공하지 않습니다.