기본 계산 스크립트 구문 학습

Essbase 블록 저장영역 큐브에 대한 계산 스크립트를 설계할 때 알아야 할 몇 가지 구문 규칙이 있습니다. 명령은 일반적으로 세미콜론으로 종료됩니다. 특정 멤버 이름에는 따옴표를 사용해야 합니다. Essbase는 구문을 검증하는 데 도움이 됩니다.

전체 구문 규칙

Essbase 블록 저장영역 큐브에는 큐브 계산 방법을 제어하는 데 사용할 수 있는 유연한 명령 세트가 포함되어 있습니다. 명령 및 공식에서 계산 스크립트를 구성할 수 있습니다.

계산 스크립트를 생성할 때 다음 규칙을 적용해야 합니다.

  • 각 공식 또는 계산 스크립트 명령을 세미콜론(;)으로 종료합니다. 예:

    예제 1

    CALC DIM(Product, Measures);

    예제 2

    DATACOPY Plan TO Revised_Plan;

    예제 3

    "Market Share" = Sales % Sales -> Market;

    예 4

    IF (Sales <> #MISSING)
       Commission = Sales * .9;
       ELSE
          Commission = #MISSING;
    ENDIF;

    다음 조건부 또는 컨트롤 플로우 명령을 세미콜론으로 끝낼 필요는 없습니다.

    • IF
    • 종료
    • ELSE
    • 전자메일
    • FIX
    • 끝점
    • EXCLUDE
    • 제외 종료
    • LOOP
    • 끝 루프

    주:

    필수 사항은 아니지만 Oracle은 세미콜론을 사용하여 공식에서 각 ENDIF 문을 종료할 것을 권장합니다.

  • 멤버 이름이 다음 조건 중 하나와 일치하는 경우 멤버 이름을 큰 따옴표(" ")로 묶습니다.

    • 공백을 포함합니다.

      예를 들어 다음 공식에서 재고 개시 및 재고 종료는 큰따옴표로 묶입니다.

      "Opening Inventory" = "Ending Inventory" - Sales + Additions;
    • 연산자, 함수 이름 또는 키워드와 동일합니다.

      계산 스크립트, 보고서 스크립트, 공식, 필터, 대체 및 환경 변수 값의 이름 지정 규칙을 참조하십시오.

    • 하이픈( - ), 별표( * ) 또는 슬래시( / )와 같이 영숫자가 아닌 문자를 포함합니다.

    • 숫자만 포함하거나 숫자로 시작합니다.

      예: "100" 또는 "10Prod"

    • 앰퍼샌드(&)로 시작합니다. 선행 앰퍼샌드(&)는 대체 변수용으로 예약되어 있습니다. 멤버 이름이 &로 시작하는 경우 이름을 따옴표로 묶습니다.

      주:

      계산 스크립트에 치환 변수를 따옴표로 묶지 마십시오.

    • 점(.)을 포함합니다.

      예: 1999. 1월 또는 .100

  • IF 문 또는 상호 종속적인 공식을 사용하는 경우 공식을 괄호로 묶어 지정된 멤버와 연관시킵니다.

    예를 들어, 다음 공식은 데이터베이스 아웃라인의 커미션 멤버와 연관됩니다.

    Commission
    (IF(Sales < 100)
       Commission = 0;
    ENDIF;)
  • ENDIF 문을 사용하여 공식에서 각 IF 문을 종료합니다.

    예를 들어, 이전 공식은 간단한 IF...ENDIF 문을 포함합니다.

  • 다른 IF 문 내에 중첩된 IF 문을 사용하는 경우 ENDIF 문을 사용하여 각 IF를 종료합니다.

    예:

    "Opening Inventory"
    (IF (@ISMBR(Budget))
       IF (@ISMBR(Jan))
          "Opening Inventory" = Jan;
       ELSE 
          "Opening Inventory" = @PRIOR("Ending Inventory");
       ENDIF;
    ENDIF;)
  • ELSE 또는 ELSEIF 문을 ENDIF 문으로 끝낼 필요는 없습니다.

    예:

    Marketing
    (IF (@ISMBR(@DESCENDANTS(West)) OR @ISMBR(@DESCENDANTS(East)))
       Marketing = Marketing * 1.5;
    ELSEIF(@ISMBR(@DESCENDANTS(South)))
       Marketing = Marketing * .9;
    ELSE 
       Marketing = Marketing * 1.1;
    ENDIF;)

    주:

    공식에서 ELSEIF(한 단어) 대신 ELSE IF(공백 포함)를 사용하는 경우 IF 문에 ENDIF를 제공해야 합니다.

  • FIX 문을 ENDFIX 문으로 종료합니다.

    예:

    FIX(Budget,@DESCENDANTS(East))
       CALC DIM(Year, Measures, Product);
    ENDFIX
  • ENDEXCLUDE 문을 사용하여 각 EXCLUDE 문을 종료합니다.

Essbase 웹 인터페이스를 사용하여 계산 스크립트를 작성하는 경우 구문 검사기를 사용하여 검증할 수 있습니다.

계산 스크립트에 설명 사용

계산 스크립트에 주석을 달기 위한 주석을 포함할 수 있습니다. 계산 스크립트가 실행되면 설명이 무시됩니다.

주석을 포함하려면 /*로 주석을 시작하고 */로 주석을 종료합니다. 예:

/* This calculation script comment
   spans two lines. */

구문을 확인하십시오.

Essbase 웹 인터페이스의 계산 스크립트 편집기에는 계산 스크립트에서 구문 오류(예: 잘못 입력된 함수 이름)에 플래그를 지정하는 구문 검증이 포함되어 있습니다.

구문 오류가 없으면 Essbase는 구문 검사가 성공했음을 나타냅니다.

구문 오류가 발견되면 Essbase는 구문 검사가 실패했음을 나타내고 한 번에 하나의 오류를 표시하여 오류가 발생한 위치를 나타냅니다.

주:

구문 검사기는 계산 스크립트가 예상대로 작동하지 않을 때 발생하는 의미 오류를 확인할 수 없습니다. 의미 오류를 찾으려면 계산을 실행하고 결과가 예상대로 나타나는지 확인합니다.