공식에 따라 분석을 차단하는 JavaScript 개발

사용자가 열 공식을 입력하거나 수정하려고 시도할 때마다 Oracle Analytics는 validateAnalysisFormula 함수를 호출하여 작업을 확인합니다. 고유한 특정 조건에 따라 공식을 검증 및 차단하도록 validateAnalysisFormula를 사용자정의할 수 있습니다. 함수가 true를 반환하면 공식이 수락되었음을 의미합니다. 검증이 실패하고 함수가 false를 반환하면 공식이 거부되었음을 의미하며 사용자정의 메시지가 표시됩니다.

메시지를 표시하고 사용자가 작업을 계속하도록 허용하려면 함수가 true를 반환해야 합니다. 질의를 차단하려면 함수가 false를 반환하거나 메시지를 표시해야 합니다. 함수에서 JavaScript 문자열과 정규 표현식 기법을 사용하여 공식을 조사하고 검증할 수 있습니다.

Helper 함수가 제공되므로 질의 차단 함수가 필터, 열 등을 확인할 수 있습니다. 검증 Helper 함수를 참조하십시오.

예를 들어 다음 코드는 사용자가 허용되지 않는 공식을 입력하는 경우 질의를 차단하는 방법을 보여줍니다.

// This is a formula blocking function. It makes sure the user doesn't enter an unacceptable formula.
function validateAnalysisFormula(sFormula, sAggRule)
{
   // don't allow the use of concat || in our formulas
   var concatRe = /\|\|/gi;
   var nConcat = sFormula.search(concatRe);
   if (nConcat >= 0)
      return "You used concatenation (character position " + nConcat + "). That isn't allowed.";
   // no case statements
   var caseRe = /CASE.+END/gi;
   if (sFormula.search(caseRe) >= 0)
      return "Don't use a case statement.";
   // Check for a function syntax: aggrule(formula) aggrule shouldn't contain a '.'
   var castRe = /^\s*\w+\s*\(.+\)\s*$/gi;
   if (sFormula.search(castRe) >= 0)
      return "Don't use a function syntax such as RANK() or SUM().";
    return true;
}