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 함수 | 설명 |
---|---|
|
분석에서 참조되는 주제 영역의 이름을 반환합니다. 일반적으로 다른 검증을 수행하기 전 이 함수 내에서 전환 문에 사용됩니다. 분석이 집합 기준 조건인 경우 |
|
콘텐츠 설계자가 지정된 폴더(테이블)를 분석에 추가한 경우 |
|
콘텐츠 설계자가 분석에 지정된 열을 추가한 경우 |
|
|
|
지정된 열에 필터가 존재하면 |
|
|
|
제공된 논리적 열에 지정된 필터 값 수를 반환합니다. 필터 값이 " |