Financial Consolidation and Close 양식에서 YTD(연 누계) 데이터를 입력하고 표시하려면 다음 방법 중 하나를 사용합니다.
FCCS_YTD 멤버에 직접 데이터를 입력할 Groovy 규칙을 생성하려면 다음을 수행합니다.
Calculation Manager "PreFormLoad"에서 주문형 규칙을 추가합니다.
주문형 규칙의 스크립트 유형을 "Groovy Script"로 변경합니다.
다음 코드를 "PreFormLoad" 규칙에 추가합니다.
operation.grid.dataCellIterator("FCCS_YTD").each { DataCell cell -> if (!cell.crossDimCell("FCCS_YTD_Input") && cell.isReadOnly())cell.forceEditable=true}
"PreFormLoad" 규칙을 저장하고 검증합니다.
아래 표시된 대로 "PreFormLoad" 규칙에 기본 런타임 프롬프트 값을 제공합니다.
연결: "Entity Input"
통화: "Entity Currency"
엔티티: "FCCS_Global Assumptions"
기간: "Jul"
시나리오: "Actual"
연도 "FY19"
"PreFormLoad" 규칙의 런타임 프롬프트 6개 모두에 대해 숨김 및 대체 값으로 사용 옵션을 선택합니다.
"PreFormLoad" 규칙을 저장하고, 검증하고, 배포합니다.
Calculation Manager "PreFormSave"에서 주문형 규칙을 추가합니다.
주문형 규칙의 스크립트 유형을 "Groovy Script"로 변경합니다.
다음 코드를 "PreFormSave" 규칙에 추가합니다.
def app = operation.application Cube cube = operation.cube Member ytdInputMember = app.getDimension(DimensionType.VERSION).getMember("FCCS_YTD_Input") Collection<DataCell> pendingYtdCells = operation.grid.dataCellIterator("FCCS_YTD").findAll {DataCell ytd -> if (ytd.edited) { def ytdInput = ytd.crossDimCell(ytdInputMember.name) ytdInput?.formattedValue = ytd.formattedValue ytd.setEdited(false) return ytdInput == null } } if (pendingYtdCells) { DataGridBuilder builder = cube.dataGridBuilder("MM/DD/YYYY") Set<String> allDimNames = set(app.getDimensions(cube)*.name) List<String> rowDimNames = set((allDimNames - operation.grid.pov*.dimName) - [ytdInputMember.dimension.name]) as List builder.addPov(operation.grid.pov.findAll({it.dimName != ytdInputMember.dimension.name})*.uniqueMbrName as String[]) builder.addColumn(ytdInputMember.name) pendingYtdCells.each {DataCell cell -> builder.addRow(rowDimNames.collect {cell.getMemberName(it, MemberNameType.UNIQUE_NAME)}, [cell.formattedValue])} DataGridBuilder.Status status = new DataGridBuilder.Status() builder.build(status).withCloseable {grid -> cube.saveGrid(grid)} } Set<String> set(Collection<String> names) { Set<String> set = new TreeSet<>(String.CASE_INSENSITIVE_ORDER) set.addAll(names) return set }
"PreFormSave" 규칙을 저장하고 검증합니다.
아래 표시된 대로 "PreFormSave" 규칙에 기본 런타임 프롬프트 값을 제공합니다.
연결: "Entity Input"
통화: "Entity Currency"
엔티티: "FCCS_Global Assumptions"
기간: "Jul"
시나리오: "Actual"
연도 "FY19"
"PreFormSave" 규칙의 런타임 프롬프트 6개 모두에 대해 숨김 및 대체 값으로 사용 옵션을 선택합니다.
"PreFormSave" 규칙을 저장하고, 검증하고, 배포합니다.
아래 표시된 대로 행에 "FCCS_Periodic" 및 "FCCS_YTD"가 있는 "YTD_Test_1" 양식을 추가합니다.
샘플 YTD 양식
비즈니스 규칙 탭을 누르고 "Consol – Rule – PreFormSave" 및 "Consol – Rule – PreFormLoad"를 오른쪽으로 이동합니다. "Consol – Rule – PreFormSave" 규칙에 대해 저장 전 실행을 선택하고 "Consol – Run – PreFormLoad" 규칙에 대해 로드 후 실행을 선택합니다. 화면은 아래와 같이 표시됩니다.
샘플 비즈니스 규칙
저장하고 완료를 누릅니다.
참고: 이러한 단계에서는 "Actual"/ "FY19" "Jul" "FCCS_Global Assumptions" 데이터가 변경됨으로 표시됩니다. 프로세스 단위가 시작되었고 잠금 해제 상태인지 확인하십시오. 이 규칙은 이 프로토타입에만 적용 가능합니다. 실제 구현에는 이러한 제한이 없습니다.
아래 표시된 대로 "YTD_Test_1 form"을 열고 FCCS_YTD에 값을 추가합니다.
샘플 YTD 값
양식을 저장합니다. FCCS_Periodic은 아래 표시된 대로 해당하는 주기적 값으로 채워집니다.
값이 채워진 샘플 YTD 양식