SAP 회계기간 개폐현황 조회 — 지금 어느 달에 전기할 수 있는가
회사코드와 계정유형별로 열려 있는 전기 기간을 조회하고, 필요 이상으로 넓게 열린 구간을 통제 관점에서 점검하는 화면입니다.
결산이 끝난 달에 전표가 들어오면 확정한 재무제표가 바뀝니다. 그래서 전기할 수 있는 기간을 좁게 유지하는 것이 결산 통제의 기본입니다.
그런데 기간을 여닫는 일은 설정 화면에서 조용히 이뤄지고, 열어 둔 채 잊히기 쉽습니다. 표준 전기 기간 설정 구조를 그대로 이어받아 현재 열린 범위와 마지막 변경자를 한 화면에 모으도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 전기 기간 그룹 — 권한 그룹(
Brgru) 단위로 기간을 관리하는 표준 구조 - 계정유형 — 전체(+) · 고객(D) · 공급업체(K) · 자산(A) · 자재(M) · GL(S) 구분(
Koart) - 오픈 범위 — 1구간(
FromPeriod1~ToPeriod1)과 2구간(특별기간) - 연도 — 시작·종료 회계연도로 연말 이월 구간 관리
- 변경 이력 — 마지막 변경자(
LastChangedBy)와 변경일
| 항목 | 내용 |
|---|---|
| 대응 T-code | OB52 (전기 기간 개폐) · T001B |
| 업무 영역 | 재무회계(FI) · 결산 통제 · 내부통제 |
| Namespace | zui5.periodctrl |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 기간 현황, 행 선택 시 상세 |
| 화면 수 | 조회 화면 1개 + 상세 |
| 데이터 | 기간 설정 18건 |
| 성격 | 조회형(Read-Only) — 기간 개폐는 표준 설정이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·계정유형으로 조회하면 현재 열린 기간이 나옵니다 → 당기 전기 가능 여부를 확인하고 → 기준보다 넓게 열린 구간을 점검합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드를 고릅니다. 법인별로 기간 설정이 다릅니다.
- 계정유형으로 전체·고객·공급업체·자산·자재·GL 을 나눠 봅니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 1구간이 통상 업무 기간입니다. 현재 월이 여기 포함되는지 확인합니다.
- 2구간은 결산 조정용 특별기간(13~16)입니다. 권한 있는 사용자만 씁니다.
- 오픈폭이 기준을 넘으면 불필요하게 넓게 열린 상태입니다.
- 결과는 CSV 다운로드로 내려받아 내부통제 점검 자료로 씁니다.
오픈폭 판정 규칙
열려 있는 기간의 폭이 통제 수준을 말해 줍니다.
오픈폭 = (종료연도 × 12 + 종료기간) − (시작연도 × 12 + 시작기간) + 1
오픈폭 1~2개월 → 정상 — 당월과 직전월
오픈폭 3개월 이상 → 주의 — 필요 이유 확인
당기 미포함 → 전기 불가 — 업무 중단 위험
2구간(13~16) 결산 조정 전용 — 권한 그룹으로 제한
2구간을 따로 두는 이유
결산 조정 전표는 12월에 넣지 않고 특별기간에 넣습니다. 그래야 월별 실적과 결산 조정이 섞이지 않습니다. 2구간은 권한 그룹으로 제한해 일반 사용자가 쓰지 못하게 하는데, 이 제한이 풀려 있으면 통제가 무너지므로 함께 점검합니다.
계정유형별 개폐 전략
| 계정유형 | 대상 | 통상 운영 |
|---|---|---|
| + 전체(공통) | 기본 설정 | 가장 좁게 유지 |
| S GL 계정 | 총계정원장 전기 | 결산 작업 중 열어 둠 |
| D 고객 · K 공급업체 | 채권채무 전기 | 영업·구매 마감에 맞춤 |
| A 자산 · M 자재 | 자산·재고 전기 | 해당 모듈 마감 후 닫음 |
모듈별 마감 시점이 다르므로 계정유형을 나눠 닫는 것이 일반적입니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 회사코드 |
계정유형 Koart | 선택 | + / S / D / K / A / M |
권한그룹 Brgru | 선택 | 기간 개폐 권한 단위 |
| 상태 | 선택 | 전체 / 기준 초과만 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
회사코드 Bukrs · BukrsText | 대상 법인 |
권한그룹 Brgru | 기간 개폐 권한 단위 |
계정유형 Koart · KoartText | 전체 · GL · 고객 등 |
1구간 시작 FromPeriod1 · 종료 ToPeriod1 | 통상 업무 기간 |
1구간 연도 FromFiscalYear1 · ToFiscalYear1 | 시작·종료 회계연도 |
2구간 시작 FromPeriod2 · 종료 ToPeriod2 | 특별기간 (13~16) |
| 오픈폭 | 열려 있는 개월 수. 기준 초과 시 상태 색 |
| 당기 전기 가능 | 현재 월 포함 여부 |
마지막 변경자 LastChangedBy · 변경일 | 변경 이력 |
비고 Remark | 개폐 사유 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
OB52 | 전기 기간 개폐 | 현재 설정을 조회 관점으로 모아 통제 점검 |
T001B | 전기 기간 설정 테이블 | 조회 원천 |
OB52 권한 그룹 | 개폐 권한 제한 | 그룹별 설정 확인 |
T001 | 회사코드 마스터 | 법인 명칭 |
FAGL_EHP4_T001B_COFI 관점 | 원장별 기간 제어 | 병행 원장 환경 확인 |
도입 시 확인이 필요한 부분
병행 원장을 쓰면 원장별로 기간 제어가 따로 있을 수 있습니다. 또 자재 기간(MMPV)은 FI 기간과 별개로 관리되므로, 재고 전기가 막히는 문제는 이 화면만으로는 보이지 않습니다. 적정 오픈폭 기준도 회사 통제 정책으로 정해야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCPERIODCTRL'
@EndUserText.label: '회계기간 개폐 현황 (Z)'
define view Z_C_POSTING_PERIOD_CONTROL
as select from t001b as Period
left outer join t001 as Comp on Period.bukrs = Comp.bukrs
{
key Period.bukrs,
key Period.mkoar as Koart,
key Period.bkont as Brgru,
Comp.butxt as BukrsText,
Period.frpe1 as FromPeriod1,
Period.tope1 as ToPeriod1,
Period.frye1 as FromFiscalYear1,
Period.toye1 as ToFiscalYear1,
Period.frpe2 as FromPeriod2,
Period.tope2 as ToPeriod2
// 오픈폭 = (종료연도×12+종료기간) − (시작연도×12+시작기간) + 1
// 당기 전기 가능 여부는 현재 기간이 범위에 포함되는지로 판정
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 기간 현황 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 현황 테이블 | sap.m.Table — 1구간·2구간을 나란히 배치 |
| 상태 표시 | sap.m.ObjectStatus — 오픈폭 초과 · 당기 전기 불가 |
| 상세 화면 | sap.m.Dialog — 변경 이력 |
당기 전기 가능 여부를 열로 둔 이유
"전표가 안 들어간다" 는 문의가 오면 원인의 상당수가 기간 마감입니다. 시작·종료 기간 숫자를 보고 현재 월이 그 안에 있는지 계산하게 하는 대신 가능·불가로 바로 보여 주면 확인이 한 번에 끝납니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.periodctrl) · ko 로케일 |
view/Main.view.xml | 조회조건과 기간 현황 테이블 |
controller/Main.controller.js | 조회 · 오픈폭 계산 · 전기 가능 판정 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 기간 · 연도 · 상태 색 포맷터 |
localdata/periodctrl.json | 기간 설정 18건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 오픈폭 = 종료 시점 − 시작 시점 + 1 (전 건) | 통과 |
| 시작 기간 ≤ 종료 기간 · 시작 연도 ≤ 종료 연도 | 통과 |
| 2구간은 13~16 범위 내 | 통과 |
| 당기 전기 가능 판정 = 현재 기간 포함 여부와 일치 | 통과 |
| 회사코드·계정유형 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
기간을 넓게 열어 두면 무엇이 문제인가요?
확정한 과거 월에 전표가 들어갈 수 있습니다. 이미 보고한 재무제표가 바뀌고, 감사에서 왜 달라졌는지 설명해야 합니다. 필요할 때만 열고 바로 닫는 운영이 원칙입니다.
계정유형을 왜 나눠서 관리하나요?
모듈별 마감 시점이 다르기 때문입니다. 자산 상각이 끝나면 자산 기간을 닫고, GL 은 결산 조정이 끝날 때까지 열어 둡니다. 한꺼번에 닫으면 아직 작업 중인 모듈이 막힙니다.
자재 기간도 여기서 보이나요?
보이지 않습니다. 자재 기간은 MMPV 로 별도 관리됩니다. 재고 전기가 막히면 FI 기간이 아니라 자재 기간을 확인해야 합니다.
SAP 표준 기능과 어떻게 이어지나요?
기간 개폐는 OB52 설정이 담당합니다. 이 화면은 그 설정을 회사코드·계정유형별로 모아 오픈폭과 당기 전기 가능 여부를 계산해, 통제 점검과 문의 대응을 한 번에 하게 하는 확장입니다.