소개
이 사용지침서에서는 Oracle EPM Cloud Planning의 Groovy 스크립트에서 외부 Rest API를 호출하는 방법을 보여줍니다. 스크립트를 호출하는 메뉴 항목으로 마우스 오른쪽 버튼 누르기 작업 메뉴를 생성하는 방법과 작업 메뉴를 데이터 양식과 연계하는 방법도 알아봅니다.
배경
Groovy EPM 객체 모델은 내부(교차 POD 또는 기타 Oracle Cloud Services) 및 외부 REST API를 호출하는 방법을 제공합니다. 이 예에서는 외부 Google Places REST API를 호출하여 ManageEmployees 양식에서 직원 주소 정보를 추가하거나 업데이트하는 Groovy 규칙을 생성하고 실행합니다.
필요 조건
Cloud EPM 실습 자습서에서는 Cloud EPM Enterprise Service 인스턴스로 스냅샷을 임포트해야 할 수 있습니다. 자습서 스냅샷을 임포트하려면 먼저 다른 Cloud EPM Enterprise Service 인스턴스를 요청하거나 현재 애플리케이션 및 비즈니스 프로세스를 제거해야 합니다. 자습서 스냅샷은 기존 애플리케이션 또는 비즈니스 프로세스로 가져오지 않으며 현재 작업 중인 애플리케이션 또는 비즈니스 프로세스를 자동으로 바꾸거나 복원하지 않습니다.
이 자습서를 시작하기 전에 다음을 수행해야 합니다.
- Cloud EPM Enterprise Service 인스턴스에 대한 서비스 관리자에게 접근 권한을 부여합니다.
- 이 스냅샷을 업로드하여 Planning 인스턴스로 임포트합니다. 이전에 다른 Groovy 자습서에 대한 스냅샷을 업로드한 경우 동일한 스냅샷을 계속 사용할 수 있습니다.
- 이 자습서에 사용된 Places REST API가 포함된 Google Maps Platform API 사용을 시작하려면 먼저 가입하고 API 키를 획득할 청구 계정을 생성해야 합니다. 자세한 내용은 Google Maps Platform 시작하기를 참조하십시오.
주:
스냅샷을 임포트하는 마이그레이션 오류가 발생하는 경우 HSS-Shared Services 구성요소는 물론 코어 구성요소의 보안 및 사용자 환경설정 아티팩트를 제외한 마이그레이션을 다시 실행합니다. 스냅샷 업로드 및 임포트에 대한 자세한 내용은 Oracle Enterprise Performance Management Cloud용 마이그레이션 관리 설명서를 참조하십시오.참고:
이 자습서에 필요한 스크립트는 각 섹션의 텍스트 파일로 링크됩니다.Planning 계산 변수 로드
이 섹션에서는 Groovy 스크립트에 사용할 수 있도록 XML 파일에서 계산 변수를 업로드합니다.
- HP4_Plan2_Variables.xml에 대한 링크를 마우스 오른쪽 버튼으로 누르고 파일을 로컬 드라이브에 저장합니다.
- 왼쪽 상단에서
네비게이터를 누르고 생성 및 관리 아래의 규칙으로 이동하여 Calculation Manager를 엽니다. 시스템 뷰에서 EPM Cloud > HP4를 확장합니다. Plan2을 마우스 오른쪽 버튼으로 누르고 임포트를 선택합니다.
- File Import Details(파일 가져오기 세부정보)에서 로컬 드라이브에서 HP4_Plan2_Variables.xml을 찾아 선택합니다.
- Location Details에서 다음과 같이 선택합니다.
- 애플리케이션 유형: EPM Cloud
- 응용 프로그램: HP4
- 큐브: Plan2
- [임포트 옵션]에서 기존 객체 재정의를 선택합니다.
- 임포트를 누릅니다. 임포트 결과를 검토한 다음 확인을 누릅니다.
- 취소를 눌러 임포트 대화상자를 닫습니다.

Planning에서 명명된 연결 생성
이 섹션에서는 Places REST API 키를 포함하도록 기존 연결을 편집합니다.
- [도구]에서 연결로 이동하고 장소 연결을 선택합니다.
- 키 매개변수에 API 키를 입력하여 접속을 편집합니다. 연결을 저장한 후 닫습니다.


Groovy 스크립트 생성
이 섹션에서는 사원 주소를 갱신하는 Groovy 스크립트를 구현합니다. 사전 정의된 ManageEmployees 양식으로 작업합니다.

- Calculation Manager에서 Plan2 큐브에 Groovy 직원 주소 추가 또는 업데이트라는 규칙을 생성합니다.
- 규칙 편집기에서 디자이너 옵션을 스크립트 편집으로 변경하고 스크립트 유형을 Groovy 스크립트로 설정합니다.
- 이 스크립트를 복사하여 편집기에 붙여넣습니다.
- 도구모음에서
(저장)을 눌러 스크립트를 저장합니다.
- 사용자가 EmployeeAddress에 대해서만 값을 입력하도록 합니다. 변수 탭에서 직원, 개체, 기간, 시나리오, 버전 및 연도에 대해 숨김 여부를 선택합니다.
- 스크립트를 다시 저장합니다.
(검증 및 배포)을 누릅니다. 검증을 위해 RTP 값 입력:
- 직원:
Full Time Employees
- 엔티티:
No Entity
- 기간:
Jan
- 시나리오:
Current
- 버전:
BU_Version_1
- 연도:
FY16
- 규칙에 값 적용을 선택하여 검증을 위해 이러한 값을 기본값으로 저장한 다음 확인을 누릅니다.
- 프롬프트가 표시되면 확인을 누른 다음 Calculation Manager를 닫습니다.


/*RTPS: {Employee} {EmployeeAddress} {Scenario} {Year} {Period} {Entity} {Version}*/Member employee = rtps.Employee.member
// Get the complete address using the Google maps REST API. Use the original if Google maps can't find the address def address = rtps.EmployeeAddress
HttpResponse<String> jsonResponse = operation.application.getConnection("Places") .get() .queryParam("input", rtps.EmployeeAddress.enteredValue) .asString()
println(jsonResponse.body)
ReadContext ctx = JsonPath.parse(jsonResponse.body)
if(ctx.read('$.status') == "OK") address = getTextCellId(ctx.read('$.candidates[0].formatted_address') as String, true) // Generate the calc script to save the employee address """SET CREATENONMISSINGBLK ON; FIX(${fixValues(rtps.Scenario, rtps.Year, rtps.Period, rtps.Entity, rtps.Version, employee)}, "USD") "Employee Address" = $address; ENDFIX;"""
![]()
첫 번째 라인에서 이 규칙에 사용되는 모든 RTP(런타임 프롬프트)를 정의합니다.
사원 RTP에서 지정한
employee
에 대한 멤버 객체를 가져옵니다.
EmployeeAddress RTP에 입력된 텍스트를
address
의 기본값으로 지정합니다.
Places 연결을 가져와서 이 리소스에 대한 HTTP GET 요청을 실행하고 EmployeeAddress RTP에 입력된 텍스트를
input
질의 매개변수의 값으로 전달합니다.
주:
Places(위치) 연결 객체는 Groovy 스크립트와 Google Places REST API 리소스 간의 통신 링크입니다. 디버깅 목적으로 Google Maps REST API 응답을 기록합니다.
JsonPath 라이브러리를 사용하여 API에서 수신된 JSON 응답을 구문분석합니다. status == OK인 경우 반환된 배열의 첫번째 후보 객체에서 formatted_address 필드를 읽고 formatted_address에 대한 텍스트 셀 ID를 가져와서 주소에 지정합니다.
계산 스크립트를 생성하여 이 사원 주소를 저장합니다.
주:
스크립트를 저장하면 변수 탭에 변수가 표시됩니다.
주:
사용자가 폼에서 스크립트를 실행하면 이러한 숨겨진 변수에 폼 컨텍스트의 값이 지정됩니다.
주:
이 단계에서는 규칙이 실행되지 않지만 검증 프로세스가 성공하려면 적합한 멤버를 입력해야 합니다.Groovy 스크립트를 실행할 계획 작업 메뉴 생성
이 섹션에서는 Groovy 스크립트를 실행하는 마우스 오른쪽 버튼 클릭 작업 메뉴 항목을 사용하여 직원 관리라는 작업 메뉴를 생성합니다.
- 왼쪽 상단에서
네비게이터를 누르고 작업 메뉴(생성 및 관리 아래에 있음)로 이동하여 직원 관리라는 작업 메뉴를 생성합니다.
- 직원 관리 작업 메뉴를 편집하고 직원 주소 업데이트라는 하위 메뉴 항목을 추가합니다. 다음 옵션을 입력하거나 선택하여 메뉴 항목을 정의합니다.
- 저장, 확인을 차례로 눌러 메뉴 항목을 저장합니다. 마지막으로 저장을 눌러 작업 메뉴를 저장합니다.

옵션 필드 | 입력 또는 선택할 값 |
---|---|
메뉴 항목 | 사원 주소 갱신 |
레이블 | 사원 주소 갱신 |
유형 | 비즈니스·규칙 |
필수 파라미터 | 사원 |
큐브 | Plan2 |
비즈니스·규칙 | Groovy 사원 주소 추가 또는 업데이트 |

Planning 작업 메뉴를 양식과 연결
이 단계에서는 작업 메뉴를 ManageEmployees 폼과 연관시키고 스크립트를 테스트합니다.
- 양식(생성 및 관리 아래에 있음)으로 이동하고 ManageEmployees 양식을 편집합니다.
- 기타 옵션 탭에서 직원 관리 컨텍스트 메뉴를 선택한 메뉴 목록에 추가합니다.
- 양식에 대한 변경사항을 저장하려면 완료를 누릅니다.
- 폼 관리자를 닫고 홈 페이지로 돌아갑니다.


Groovy 스크립트 테스트
이 단계에서는 스크립트를 테스트합니다. 테스트 절차에는 해당 장소의 전체 주소를 검색하기 위해 EmployeeAddress RTP에 대해 유효한 위치를 입력하는 작업이 포함됩니다.
- 왼쪽 상단에서
네비게이터를 누르고 데이터를 눌러 데이터 입력 양식 목록을 표시한 다음 ManageEmployees을 눌러 [직원 관리] 양식을 엽니다.
- Groovy 스크립트를 테스트하려면 직원 1을 마우스 오른쪽 단추로 누르고 직원 주소 업데이트 메뉴 항목을 선택합니다.
- 직원 주소 프롬프트에서 Oracle, San Jose를 입력한 다음 실행을 누릅니다.
- 폼을 저장하고 닫습니다. 애플리케이션 아래의 작업으로 이동하여 작업 콘솔을 엽니다.
- 직원 주소 추가 및 업데이트를 눌러 직무 세부정보를 표시합니다. Groovy 스크립트에 의해 인쇄된 로그 메시지를 보려면 완료됨 상태를 누릅니다.



성공적으로 실행되면 Oracle의 전체 주소가 표시되고 San Jose가 사원 1의 전체 주소로 저장되었습니다.



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