소개
이 사용지침서에서는 전체 데이터 입력 양식이 아닌 편집된 데이터만 계산하기 위해 Oracle EPM Cloud Planning에서 포커스된 계산 스크립트를 생성하는 여러 가지 방법을 보여줍니다.
배경
Groovy EPM 객체 모델을 사용하면 데이터 입력 그리드에서 편집된 셀을 결정한 다음 포커스된 Essbase 계산을 생성하여 데이터 입력의 영향을 받는 멤버만 계산할 수 있습니다.
이 자습서에서는 제품 볼륨 분석 대시보드로 작업합니다. 최상위 양식인 제품 볼륨은 월별 기간의 다양한 제품에 대한 볼륨을 캡처합니다. 아래쪽 양식인 Product Revenue에 다양한 제품의 매출이 표시됩니다. 최상위 양식을 편집할 때는 편집된 제품에 대해서만 하위 양식에서 수익을 계산할 수 있습니다.

이 튜토리얼은 세 부분으로 구성되어 있으며 편집된 제품을 계산하는 세 가지 방법을 다룹니다.
- 포커스된 계산 스크립트 생성 및 실행
- 기존 계산 작업을 실행하는 Groovy 스크립트 생성
- 포커스된 계산 스크립트 생성 및 실행 후 추가 평가를 위해 Groovy 스크립트로 돌아갑니다.
필요 조건
Cloud EPM 실습 자습서에서는 Cloud EPM Enterprise Service 인스턴스로 스냅샷을 임포트해야 할 수 있습니다. 자습서 스냅샷을 임포트하려면 먼저 다른 Cloud EPM Enterprise Service 인스턴스를 요청하거나 현재 애플리케이션 및 비즈니스 프로세스를 제거해야 합니다. 자습서 스냅샷은 기존 애플리케이션 또는 비즈니스 프로세스로 가져오지 않으며 현재 작업 중인 애플리케이션 또는 비즈니스 프로세스를 자동으로 바꾸거나 복원하지 않습니다.
이 자습서를 시작하기 전에 다음을 수행해야 합니다.
- Cloud EPM Enterprise Service 인스턴스에 대한 서비스 관리자에게 접근 권한을 부여합니다.
- 이 스냅샷을 업로드하여 Planning 인스턴스로 임포트합니다. 이전에 다른 Groovy 자습서에 대한 스냅샷을 업로드한 경우 동일한 스냅샷을 계속 사용할 수 있습니다.
주:
스냅샷을 임포트하는 마이그레이션 오류가 발생하는 경우 HSS-Shared Services 구성요소는 물론 코어 구성요소의 보안 및 사용자 환경설정 아티팩트를 제외한 마이그레이션을 다시 실행합니다. 스냅샷 업로드 및 임포트에 대한 자세한 내용은 Oracle Enterprise Performance Management Cloud용 마이그레이션 관리 설명서를 참조하십시오.참고:
이 자습서에 필요한 스크립트는 각 섹션의 텍스트 파일로 링크됩니다.Planning 환경 설정
Planning에서 사용자 변수 설정
먼저 제품 볼륨 분석 대시보드에서 작업하도록 필요한 사용자 변수를 설정합니다.
- 홈 페이지에서 도구, 사용자 환경설정 순으로 선택합니다.
- 사용자 변수 탭을 선택합니다.
- 다음 변수 정의를 입력합니다.
- Save를 누릅니다. 확인 메시지에서 확인을 누른 다음 홈 페이지로 돌아갑니다.

| 사용자 변수 | 멤버 |
|---|---|
| 보고 통화 | USD |
| 통화 | USD |
| 엔티티 | 미국 판매 |
| Scenario | OEP_Plan |
| Version | OEP_Working |
Planning에서 런타임 프롬프트에 대한 변수 임포트
다음으로 계산 변수를 OEP_FS 큐브로 임포트하여 이 자습서의 뒷부분에 사용된 RTP(런타임 프롬프트)를 지원합니다.
- HP4_OEP_FS_Variables.xml에 대한 링크를 마우스 오른쪽 버튼으로 누르고 파일을 로컬 드라이브에 저장합니다.
- 왼쪽 상단에서
네비게이터를 누르고 생성 및 관리 아래의 규칙으로 이동하여 Calculation Manager를 엽니다. 시스템 뷰에서 EPM Cloud > HP4를 확장합니다. OEP_FS을 마우스 오른쪽 버튼으로 누르고 임포트를 선택합니다. - File Import Details(파일 가져오기 세부정보)에서 로컬 드라이브에서 HP4_OEP_FS_Variables.xml을 찾아 선택합니다.
- Location Details에서 다음과 같이 선택합니다.
- 애플리케이션 유형: EPM Cloud
- 응용 프로그램: HP4
- 큐브: OEP_FS
- [임포트 옵션]에서 기존 객체 무효화를 선택합니다.

- 임포트를 누릅니다. 임포트 결과(갱신됨 또는 삽입됨)를 검토한 다음 확인을 누릅니다.

- 취소를 눌러 [임포트] 대화상자를 닫습니다.
편집된 제품에 대한 집중 계산 스크립트 생성
이 섹션에서는 Planning에서 Groovy 스크립트를 구현하여 편집된 제품의 제품 수익을 계산합니다.
Groovy 스크립트 만들기
- Calculation Manager에서 OEP_FS 계획 유형에 Groovy 제품 수익 계산이라는 규칙을 생성합니다.
- 규칙 편집기에서 디자이너 옵션을 스크립트 편집으로 변경하고 스크립트 유형을 Groovy 스크립트로 설정합니다.
- 이 스크립트를 복사하여 편집기에 붙여넣습니다.
- 도구 모음에서
(저장)을 눌러 스크립트를 저장한 다음
(검증 및 배치)을 눌러 스크립트를 검증하고 배치합니다. 프롬프트가 표시되면 확인을 누릅니다. Calculation Manager 창을 열어 둡니다.


// Capture the edited periods and products Set<String> editedMembers = []operation.grid.dataCellIterator({DataCell cell -> cell.edited}, MemberNameType.ESSBASE_NAME).each { DataCell cell -> editedMembers << cell.periodName << cell.getMemberName("Product")
} if(editedMembers.size() == 0){
println("No edited cells found!") return; } // Generate the calc script to calculate revenue for the products whose volume was edited String calcScript = """ Fix(${cscParams(operation.grid.pov, editedMembers)}) "OFS_Calculated" ( "OFS_Product Revenue" = "OFS_Volume" * "OFS_Avg Selling Price"; ) EndFix;"""
println("The following calc script was executed by $operation.user.fullName: \n $calcScript")
return calcScript.toString()
![]()
편집된 고유한 구성원을 수집하도록 세트를 정의합니다.
편집된 멤버를 캡처합니다.
편집된 멤버가 있는지 확인합니다. 편집된 항목이 없는 경우 추가 처리가 필요하지 않으므로 스크립트에서 반환합니다.
POV 멤버 및 편집된 멤버를 수정하여 편집된 셀에 대한 제품 수익을 계산하는 계산 스크립트를 생성합니다.
주:
cscParams() API는 지정된 각 항목이 병합, 따옴표로 묶여 쉼표로 구분된 문자열 값을 반환하는 유틸리티입니다. 이 메소드에서 반환된 문자열은 Essbase 계산 스크립트 명령에 매개변수로 플러그인할 수 있습니다.
규칙을 실행한 사용자 및 생성된 계산 스크립트를 나타내는 메시지를 인쇄합니다.
계산 스크립트를 반환한 다음 실행됩니다.
계획 화면에 규칙 추가
이 섹션에서는 저장 후 실행할 Groovy 스크립트 규칙을 제품 볼륨 양식에 추가합니다.
- 계획 창을 선택하고 왼쪽 상단에서
네비게이터를 누르고 양식(생성 및 관리 아래)으로 이동합니다. 제품 볼륨 양식을 선택합니다. - 양식을 편집합니다. Groovy 제품 수익 계산 규칙을 추가하고 저장 후 실행으로 설정합니다. form을 저장하고 Form Manager window를 닫습니다.

포커스된 계산 규칙 테스트
이 섹션에서는 제품 볼륨 분석 대시보드에서 데이터를 편집하여 Groovy 규칙을 테스트합니다.
- 홈 페이지에서 대시보드를 누릅니다. 제품 볼륨 분석 대시보드를 엽니다.
- Envoy Standard Notebook의 경우 1월에 대한 제품 볼륨을 편집합니다. Ultra Notebook 13 in의 경우 March에 대한 제품 볼륨을 편집합니다. 대시보드가 아닌 form을 저장합니다.
- 확인을 눌러 정보 메시지를 닫습니다. 변경사항은 제품 수익 양식에 반영됩니다.
- 대시보드를 닫습니다. 애플리케이션 아래의 작업으로 이동하고 Groovy 제품 수익 계산 작업을 선택합니다.
- 완료된 작업에 대한 로그 메시지는 규칙을 실행한 사용자와 생성된 계산 스크립트를 식별합니다. 작업 세부 정보를 확인한 후 window를 닫고 Home 페이지로 돌아갑니다.



Groovy 스크립트를 사용하여 계산 작업 실행
이 섹션에서는 두 개의 Groovy 스크립트를 생성합니다. 하나는 양식에서 편집된 멤버의 제품 수익을 계산하는 스크립트이고, 다른 하나는 첫 번째 계산을 실행하는 계산 작업을 실행하는 스크립트입니다. 두번째 스크립트는 form에 첨부되고 데이터 저장 시 실행되며, 첫번째 스크립트는 RTP를 사용하여 두번째 스크립트에서 전달된 편집된 멤버를 캡처합니다. 계산을 다른 규칙에 의해 호출되는 독립형 규칙으로 오프로드하면 코드를 효율적으로 유지 관리, 테스트 및 재사용할 수 있습니다.
런타임 프롬프트를 사용하여 포커스된 계산을 위한 Groovy 스크립트 생성
- Calculation Manager 창을 선택하고 OEP_FS 계획 유형에 Groovy 제품 수익 RTP 계산이라는 규칙을 생성합니다.
- 규칙 편집기에서 디자이너 옵션을 스크립트 편집으로 변경하고 스크립트 유형을 Groovy 스크립트로 설정합니다.
- 이 스크립트를 복사하여 편집기에 붙여넣습니다.
- 도구모음에서
(저장)을 눌러 스크립트를 저장합니다.
(검증 및 배포)을 누릅니다. 편집된 멤버 RTP의 경우 검증을 위해 Accessories값을 입력한 다음 확인을 누릅니다.- 프롬프트가 표시되면 확인을 누릅니다.

/*RTPS: {editedMembers}*/
String calcScript = """Fix($rtps.editedMembers)
"OFS_Calculated"
(
"OFS_Product Revenue" = "OFS_Volume" * "OFS_Avg Selling Price";
)
ENDFIX"""
println("The following calc script was executed by $operation.user.fullName: \n $calcScript")
return calcScript
첫 번째 라인에서 편집된 멤버를 수락할 런타임 프롬프트를 정의합니다.
편집된 멤버를 수정하여 편집된 셀에 대한 제품 수익을 계산하는 계산 스크립트를 생성합니다.
규칙을 실행한 사용자 및 생성된 계산 스크립트를 나타내는 메시지를 인쇄합니다.
계산 스크립트를 반환한 다음 실행됩니다.
주:
이 단계에서는 규칙이 실행되지 않지만 검증 프로세스가 성공하려면 적합한 멤버를 입력해야 합니다.계산 작업을 실행하는 Groovy 규칙 생성
이제 변수를 전달하고 Groovy 제품 수익 RTP 계산 규칙을 실행하는 계산 작업을 실행하는 두 번째 Groovy 규칙을 생성합니다.
- Calculation Manager에서 OEP_FS 계획 유형에 실행 작업을 호출하여 제품 수익 계산이라는 규칙을 생성합니다.
- 규칙 편집기에서 디자이너 옵션을 스크립트 편집으로 변경하고 스크립트 유형을 Groovy 스크립트로 설정합니다.
- 이 스크립트를 복사하여 편집기에 붙여넣습니다.
- 도구 모음에서
(저장)을 눌러 스크립트를 저장한 다음
(검증 및 배치)을 눌러 스크립트를 검증하고 배치합니다. 프롬프트가 표시되면 확인을 누릅니다. Calculation Manager 창을 열어 둡니다.


// Capture the edited periods and products Set<String> editedMembers = []operation.grid.dataCellIterator({DataCell cell -> cell.edited}, MemberNameType.ESSBASE_NAME).each { DataCell cell -> editedMembers << cell.periodName << cell.getMemberName("Product")
} if(editedMembers.size() == 0){
println("No edited cells found!") return; } // Execute the job that calculates the product revenues JobFactory jf = operation.application.jobFactory
List<DataGrid.HeaderCell> povMemberCells = operation.grid.pov.findAll{ DataGrid.HeaderCell it -> it.dimName != "Plan Element" }
Job job = executeJob(jf.job("Groovy Calculate Product Revenue RTPs", "Rules", ["editedMembers" : cscParams(povMemberCells, editedMembers)]))
![]()
편집된 고유한 구성원을 수집하도록 세트를 정의합니다.
편집된 멤버를 캡처합니다.
편집된 멤버가 있는지 확인합니다. 편집된 항목이 없는 경우 추가 처리가 필요하지 않으므로 스크립트에서 반환합니다.
작업 공장을 가져옵니다.
스크립트에 계획 요소 차원 멤버의 멤버 블록이 있으므로 계획 요소 이외의 차원에 대한 POV 멤버 헤더 셀 목록을 가져옵니다.
POV 및 편집된 멤버를 editedMembers 런타임 프롬프트의 값으로 전달하여 제품 수익 RTP 계산 규칙을 실행합니다.
계획 화면에 규칙 추가
이 섹션에서는 저장 후 실행할 Groovy 스크립트 규칙을 제품 볼륨 양식에 추가합니다.
- 계획 창을 선택하고 왼쪽 상단에서
네비게이터를 누르고 양식(생성 및 관리 아래)으로 이동합니다. 제품 볼륨 양식을 선택합니다. - 양식을 편집합니다. 선택한 규칙에서 제품 수익 계산 규칙을 제거합니다. 실행 작업 호출을 통해 제품 수익 계산 규칙을 추가하고 저장 후 실행으로 설정합니다. form을 저장하고 Form Manager window를 닫습니다.


Groovy 규칙을 테스트하여 계산 작업 호출
이 섹션에서는 제품 볼륨 분석 대시보드에서 데이터를 편집하여 Groovy 규칙을 테스트합니다.
- 홈 페이지에서 대시보드를 누릅니다. 제품 볼륨 분석 대시보드를 엽니다.
- Envoy Standard Notebook의 경우 1월에 대한 제품 볼륨을 편집합니다. Ultra Notebook 13 in의 경우 March에 대한 제품 볼륨을 편집합니다. 대시보드가 아닌 form을 저장합니다.
- 확인을 눌러 정보 메시지를 닫습니다. 변경사항은 제품 수익 양식에 반영됩니다.
- 대시보드를 닫습니다. [애플리케이션] 아래의 작업으로 이동하고 실행 작업을 호출하여 제품 매출 계산 작업을 선택합니다.
- 작업 세부정보에서 Groovy 제품 수익 RTP 계산 규칙이 하위 작업으로 나열됩니다. 하위 작업을 누릅니다.
- 하위 작업 세부정보에서 편집된 멤버 프롬프트에 대해 스크립트로 전달된 멤버 목록을 볼 수 있습니다. 완료된 작업에 대한 로그 메시지는 규칙을 실행한 사용자와 생성된 계산 스크립트를 식별합니다. 작업 세부 정보를 확인한 후 window를 닫고 홈 페이지로 돌아갑니다.





추가 Groovy 처리를 통해 편집된 데이터에 대한 인라인 계산 스크립트 생성
EPM 객체 모델은 계산 스크립트를 인라인으로 실행한 다음 추가 평가를 위해 Groovy 스크립트로 돌아가는 방법을 제공합니다. 이 섹션에서는 편집된 제품에 대한 제품 수익을 계산하고 계산된 셀 수를 계산하는 Groovy 스크립트를 구현하여 이 계산 스크립트 및 Groovy 통합을 탐색합니다.
Groovy 스크립트 만들기
- Calculation Manager 창을 선택하고 OEP_FS 계획 유형에 Groovy 계산 스크립트 실행이라는 규칙을 생성합니다.
- 규칙 편집기에서 디자이너 옵션을 스크립트 편집으로 변경하고 스크립트 유형을 Groovy 스크립트로 설정합니다.
- 이 스크립트를 복사하여 편집기에 붙여넣습니다.
- 도구 모음에서
(저장)을 눌러 스크립트를 저장한 다음
(검증 및 배치)을 눌러 스크립트를 검증하고 배치합니다. 프롬프트가 표시되면 확인을 누릅니다. Calculation Manager를 닫습니다.


// Capture the edited periods and products Set<String> editedMembers = []operation.grid.dataCellIterator({DataCell cell -> cell.edited}, MemberNameType.ESSBASE_NAME).each { DataCell cell -> editedMembers << cell.periodName << cell.getMemberName("Product")
} if(editedMembers.size() == 0){
println("No edited cells found!") return; } // Generate the calc script to calculate revenue for the products whose volumes were edited and to count and return the number of cells calculated String calcScript = """ VAR numCellsCalculated = 0; Fix(${cscParams(operation.grid.pov, editedMembers)})
"OFS_Calculated" ( "OFS_Product Revenue" = "OFS_Volume" * "OFS_Avg Selling Price"; numCellsCalculated = numCellsCalculated + 1; ) EndFix; Fix(${cscParams(operation.grid.pov, editedMembers)}) "OFS_Calculated" ( @RETURN(@HspNumToString(numCellsCalculated), ERROR); ) EndFix; """ Cube cube = operation.application.getCube("OEP_FS")
try { cube.executeCalcScript(calcScript)
} catch(CalcScriptException e) { println("The following calc script was executed by $operation.user.fullName: \n $calcScript")
println("Total number of cells calculated: $e.atReturnMessage")
}
편집된 고유한 구성원을 수집하도록 세트를 정의합니다.
편집된 멤버를 캡처합니다.
편집된 멤버가 있는지 확인합니다. 편집된 항목이 없는 경우 추가 처리가 필요하지 않으므로 스크립트에서 반환합니다.
POV 멤버 및 편집된 멤버를 수정하여 편집된 셀에 대한 제품 수익을 계산하는 계산 스크립트를 생성합니다. 계산 스크립트는 @RETURN 명령을 통해 계산된 셀 수도 반환합니다.
OEP_FS 큐브를 가져옵니다.
큐브에 대해 계산 스크립트를 실행합니다.
규칙을 실행한 사용자 및 생성된 계산 스크립트를 나타내는 메시지를 인쇄합니다.
계산 스크립트에서 반환된 계산 셀의 총 수를 인쇄합니다.
계획 화면에 규칙 추가
이 섹션에서는 저장 후 실행할 Groovy 스크립트 규칙을 제품 볼륨 양식에 추가합니다.
- 왼쪽 상단에서
네비게이터를 누르고 양식(생성 및 관리 아래)으로 이동합니다. 제품 볼륨 양식을 선택합니다. - 양식을 편집합니다. 선택한 비즈니스 규칙에서 실행 작업을 호출하여 제품 수익 계산 규칙을 제거합니다. Groovy 계산 스크립트 실행 규칙을 추가하고 저장 후 실행으로 설정합니다. form을 저장하고 Form Manager window를 닫습니다.


Groovy 규칙을 테스트하여 계산 스크립트 실행
이 섹션에서는 제품 볼륨 분석 대시보드에서 데이터를 편집하여 Groovy 규칙을 테스트합니다.
- 홈 페이지에서 대시보드를 누릅니다. 제품 볼륨 분석 대시보드를 엽니다.
- Envoy Standard Notebook의 경우 1월에 대한 제품 볼륨을 편집합니다. Ultra Notebook 13 in의 경우 March에 대한 제품 볼륨을 편집합니다. 대시보드가 아닌 form을 저장합니다.
- 확인을 눌러 정보 메시지를 닫습니다. 변경사항은 제품 수익 양식에 반영됩니다.
- 대시보드를 닫습니다. 작업으로 이동하고 Groovy 계산 스크립트 실행 작업을 선택합니다.
- 완료된 작업에 대한 로그 메시지는 규칙을 실행한 사용자 및 생성된 계산 스크립트와 계산된 셀 수를 식별합니다.





관련 링크
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 제공되는 교육 리소스를 보려면 Oracle University를 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.