Pode desenvolver scripts de validação em JavaScript para validar critérios de análise e fórmulas de colunas, e bloquear consultas inválidas.
Os utilizadores a trabalhar com análises podem invocar o JavaScript customizado de modo a validar os critérios de análise e as fórmulas de coluna. A validação permite que as consultas sejam bloqueadas ao editar uma análise. O JavaScript customizado deve ser acessível através de um servidor Web. Para ativar esta funcionalidade, os administradores especificam o URL do servidor Web nas definições do sistema e registam o servidor Web como um domínio seguro.
Sempre que um utilizador tentar executar uma análise, o Oracle Analytics invoca a função validateAnalysisCriteria
. Pode customizar validateAnalysisCriteria
para validar e bloquear consultas com base nos seus próprios critérios específicos. Se a função devolver true
, a consulta é executada. Se a função devolver false
ou apresentar uma mensagem, a consulta é bloqueada.
Por exemplo, o seguinte é o código de exemplo para um programa JavaScript denominado myblocking.js
.
// 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; }
Se a função devolver qualquer valor diferente de false
, os critérios são considerados válidos e a análise é executada. A função também é utilizada para validar critérios para operações de pré-visualização e de gravação.
Sempre que um utilizar tentar introduzir ou modificar uma fórmula de coluna, o Oracle Analytics invoca a função validateAnalysisFormula
para verificar a operação. Pode customizar validateAnalysisFormula
para validar e bloquear fórmulas com base nos seus próprios critérios específicos. Se a função devolver true
, a fórmula é aceite. Se a validação falhar, a função devolve false
, a fórmula é rejeitada e a sua mensagem customizada é apresentada.
Para apresentar uma mensagem e permitir que os utilizadores continuem, a sua função deve devolver true
. Para bloquear a consulta, a sua função deve devolver false
ou apresentar uma mensagem. Pode utilizar uma cadeia de caracteres de JavaScript e técnicas de expressões regulares na sua função para investigar e validar a fórmula.
As funções de auxílio estão disponíveis para que a função de bloqueio de consulta possa verificar se existem filtros, colunas, entre outros. Consulte Funções do Auxílio de Validação.
Por exemplo, o seguinte código mostra como bloquear uma consulte se um utilizador introduzir uma fórmula inaceitável.
// 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; }
Estão disponíveis várias funções de auxílio de validação num ficheiro JavaScript para que possa utilizar.
Função do Auxílio de Validação | Descrição |
---|---|
|
Devolve o nome da área de atividade referida pelo analista. É geralmente utilizado numa instrução switch na função antes de fazer outra validação. Se a análise for um critério baseado num conjunto, |
|
Devolve |
|
Devolve |
|
Verifica para garantir que existe |
|
Devolve |
|
Verifica para garantir que existe |
|
Devolve o número de valores de filtro que são especificados para a coluna lógica fornecida. Se o valor de filtro for " |