27 사용자정의 계산 매크로 개발
Essbase 사용자정의 매크로(CDM)를 사용하면 여러 계산 함수를 단일 함수로 결합할 수 있습니다. 계산 스크립트 또는 공식에서 사용할 수 있습니다.
테스트 응용 프로그램 내에서 로컬로 새 매크로를 만들고 테스트합니다. 테스트 응용 프로그램에서 CDM을 테스트하고 운용 환경에서 사용할 준비가 된 후에만 CDM을 전역적으로 등록합니다.
CDM을 만들고 관리하려면 데이터베이스 관리자 권한 이상이 있어야 합니다.
CDM은 블록 저장 영역 큐브에서만 지원됩니다.
이름 커스텀 정의 매크로
Essbase 사용자정의 매크로(CDM) 이름은 고유해야 하며 @ 기호로 시작해야 합니다. 로컬 매크로 앞에 응용 프로그램 이름이 붙습니다.
CDM의 이름을 지정할 때 다음 지침을 따르십시오.
-
매크로 이름을 "@" 기호(예: @MYMACRO)로 시작합니다. 나머지 이름에는 문자, 숫자 및 @, #, $ 및 _ 기호가 포함될 수 있습니다. 매크로 이름에는 공백이 포함될 수 없습니다.
-
다른 매크로에서만 호출되는 매크로의 경우 매크로 이름을 "@_"로 시작하여 일반 사용 매크로 및 함수와 구별합니다.
-
매크로 고유 이름을 지정합니다. 또한 매크로 이름은 사용자정의 함수의 이름 및 기존 계산 함수의 이름과 달라야 합니다.
주:
응용 프로그램에 전역 매크로와 동일한 이름의 로컬 매크로가 포함된 경우 로컬 매크로가 우선하며 계산에 사용됩니다.
-
로컬 매크로의 경우 매크로 이름 앞에 응용 프로그램 이름을 추가해야 합니다. 매크로 이름에서 마침표로 응용 프로그램 이름을 구분합니다.
AppName.@MacroName예:
Sample.@MYMACRO -
매크로가 생성된 Essbase 서버에서 실행되는 모든 애플리케이션에서 글로벌 매크로를 사용할 수 있으므로 애플리케이션 이름을 지정하지 않습니다.
커스텀 정의 매크로 생성
사용자정의 매크로(CDM)를 생성할 때 Essbase는 이를 카탈로그에 등록합니다. 매크로는 응용 프로그램에 대해 전역 또는 로컬일 수 있습니다. 그런 다음 카탈로그에서 매크로가 제거될 때까지 공식 및 계산 스크립트에서 사용할 수 있습니다.
다음과 같은 방법으로 CDM을 등록할 수 있습니다.
-
로컬로 매크로가 생성된 Essbase 애플리케이션에서만 매크로를 사용할 수 있습니다.
-
매크로가 생성된 Essbase 서버에서 실행되는 모든 Essbase 애플리케이션에서 매크로를 사용할 수 있는 글로벌
CDM을 만들려면 다음을 수행합니다.
create macro MaxL 문을 사용합니다.
다음 MaxL 문은 샘플 응용 프로그램에서 사용할 로컬 매크로 @COUNTRANGE를 만듭니다.
create macro Sample.'@COUNTRANGE'(Any) AS
'@COUNT(SKIPMISSING, @RANGE(@@S))'
spec '@COUNTRANGE(MemberRange)'
comment 'counts all non-missing values';다음 MaxL 문은 @COUNTRANGE라는 전역 매크로를 만듭니다.
create macro'@COUNTRANGE'(Any) AS
'@COUNT(SKIPMISSING, @RANGE(@@S))'
spec '@COUNTRANGE(MemberRange)'
comment 'counts all non-missing values';커스텀 정의 매크로 구현
Essbase 고유 계산 명령을 사용하는 것과 동일한 방법으로 사용자정의 매크로(CDM)를 사용합니다. 계산 스크립트에서 해당 매크로를 호출하거나 아웃라인 공식과 연계합니다.
CDM을 사용하려면 다음을 수행합니다.
사용자정의 매크로 보기
Essbase에서 사용자정의 매크로(CDM)를 보고 성공적으로 생성되었는지 여부 및 로컬인지 아니면 글로벌 범위인지 확인합니다.
CDM을 보려면 display macro MaxL 문을 사용합니다.
예제
다음 MaxL 문은 샘플 응용 프로그램에 정의된 매크로만 표시합니다.
display macro on application Sample;다음 MaxL 문은 모든 전역 및 로컬 매크로를 볼 수 있는 권한이 있는 경우 해당 매크로를 표시합니다.
display macro;사용자정의 매크로 업데이트
Essbase에서 사용자정의 매크로(CDM)의 구문 또는 동작을 변경하려면 먼저 해당 매크로가 로컬인지 아니면 글로벌 범위인지 확인한 다음 MaxL 문 매크로 생성 또는 대체를 사용하여 해당 정의를 업데이트합니다.
CDM을 업데이트하려면 다음을 수행합니다.
예제
다음 MaxL 문은 샘플 응용 프로그램에서만 사용되는 로컬 매크로 @COUNTRANGE를 변경합니다.
create or replace macro Sample.'@COUNTRANGE'(Any)
as '@COUNT(SKIPMISSING, @RANGE(@@S))';다음 MaxL 문은 전역 매크로 @COUNTRANGE를 변경합니다.
create or replace macro '@COUNTRANGE'(Any)
as '@COUNT(SKIPMISSING, @RANGE(@@S))';사용자정의 매크로 복사
사용자정의 매크로(CDM)를 적절한 액세스 권한이 있는 Essbase 서버 및 애플리케이션에 복사할 수 있습니다. 애플리케이션 권한 레벨은 데이터베이스 관리자 이상이어야 합니다.
CDM을 복사하려면 매크로 만들기 또는 바꾸기 MaxL 문을 사용합니다.
예
다음 MaxL 문은 @COVARIANCE 매크로의 복사본을 만듭니다.
create macro Sample.'@COVARIANCE2'(single, single) as '@COVARIANCE'(single, single);사용자정의 매크로 제거
Essbase에서 사용자정의 매크로(CDM)를 제거하려면 먼저 해당 매크로가 로컬인지 아니면 글로벌 범위인지 확인한 다음 MaxL 드롭 매크로 문을 사용합니다.
CDM을 제거하려면 다음과 같이 하십시오.
다음 MaxL 문은 샘플 응용 프로그램에서만 사용되는 로컬 매크로 @COUNTRANGE를 제거합니다.
drop macro Sample.'@COUNTRANGE';다음 MaxL 문은 전역 매크로 @COUNTRANGE를 제거합니다.
drop macro '@COUNTRANGE';사용자정의 매크로 카탈로그 새로고침
매크로를 추가, 업데이트 또는 제거한 후 사용자정의 매크로(CDM)의 Essbase 카탈로그를 새로 고칩니다. 변경 사항이 로컬인 경우 MaxL 명령문 사용자 정의 정의 새로 고침을 사용하거나 변경 사항이 글로벌인 경우 Essbase 서버를 다시 시작합니다.
서버의 모든 응용 프로그램에 대한 CDM 카탈로그를 새로 고치려면 서버를 다시 시작합니다. 독립 배치는 서버 시작, 정지 및 확인을 참조하거나, OCI의 스택 배치는 프로세스의 시작, 정지 및 상태를 확인하는 명령 사용을 참조하십시오.
한 응용 프로그램에 대한 CDM 카탈로그를 새로 고치려면 사용자 정의 정의 새로 고침 MaxL 문을 사용합니다.
예를 들어, 다음 MaxL 문은 샘플 응용 프로그램에 대한 CDM 카탈로그를 새로 고칩니다.
refresh custom definition on application sample;