JavaScript로 검증 스크립트를 개발하여 분석 조건 및 열 공식을 검증하고 부적합한 질의를 차단할 수 있습니다.
분석 작업을 수행하는 사용자가 사용자정의 JavaScript를 호출하여 분석 조건 및 열 공식을 검증할 수 있습니다. 검증을 통해 분석을 편집할 때 질의를 차단할 수 있습니다. 사용자정의 JavaScript는 웹 서버를 통해 액세스할 수 있어야 합니다. 이 기능을 사용으로 설정하려면 관리자는 시스템 설정에서 웹 서버의 URL을 지정하고 웹 서버를 안전한 도메인으로 등록합니다.
사용자가 분석 실행을 시도할 때마다 Oracle Analytics가 validateAnalysisCriteria 함수를 호출합니다. 고유한 특정 조건에 따라 질의를 검증 및 차단하도록 validateAnalysisCriteria를 사용자정의할 수 있습니다. 함수가 true를 반환하면 질의가 실행됩니다. 함수가 false를 반환하거나 메시지를 표시할 때는 질의가 차단됩니다.
예를 들어 다음은 myblocking.js라는 JavaScript 프로그램의 샘플 코드입니다.
// This is a blocking function. It ensures that users select what
// the designer wants them to.
function validateAnalysisCriteria(analysisXml)
{
// Create the helper object
var tValidator = new CriteriaValidator(analysisXml);
// Validation Logic
if (tValidator.getSubjectArea() != "Sample Sales")
return "Try Sample Sales?";
if (!tValidator.dependentColumnExists("Markets","Region","Markets","District"))
{
// If validation script notifies user, then return false
alert("Region and District are well suited, do you think?");
return false;
}
if (!tValidator.dependentColumnExists("Sales Measures","","Periods","Year"))
return "You selected a measure so pick Year!";
if (!tValidator.filterExists("Sales Measures","Dollars"))
return "Maybe filter on Dollars?";
if (!tValidator.dependentFilterExists("Markets","Market","Markets"))
return "Since you are showing specific Markets, filter the markets.";
var n = tValidator.filterCount("Markets","Region");
if ((n <= 0) || (n > 3))
return "Select 3 or fewer specific Regions";
return true;
}
함수가 false 이외의 값을 반환하면 조건이 적합한 것으로 간주되고 분석이 실행됩니다. 이 함수는 또한 미리보기 및 저장 작업의 조건을 검증하기 위해 사용됩니다.
사용자가 열 공식을 입력하거나 수정하려고 시도할 때마다 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;
}
일부 검증 helper 함수는 JavaScript 파일로 사용하도록 제공됩니다.
| 검증 Helper 함수 | 설명 |
|---|---|
|
|
분석에서 참조되는 주제 영역의 이름을 반환합니다. 일반적으로 다른 검증을 수행하기 전 이 함수 내에서 전환 문에 사용됩니다. 분석이 집합 기준 조건인 경우 |
|
|
콘텐츠 설계자가 지정된 폴더(테이블)를 분석에 추가한 경우 |
|
|
콘텐츠 설계자가 분석에 지정된 열을 추가한 경우 |
|
|
|
|
|
지정된 열에 필터가 존재하면 |
|
|
|
|
|
제공된 논리적 열에 지정된 필터 값 수를 반환합니다. 필터 값이 " |