Você pode desenvolver scripts de validação em JavaScript para validar critérios de análise e fórmulas de coluna, além de bloquear consultas inválidas.
Os usuários que trabalham com análises podem chamar o JavaScript personalizado para validar critérios de análise e fórmulas de coluna. A validação permite que as consultas sejam bloqueadas ao editar uma análise. O JavaScript personalizado deve poder ser acessado por meio de um servidor Web. Para ativar essa funcionalidade, os administradores especificam o URL do servidor Web nas definições do sistema e registram o servidor Web como domínio seguro.
Sempre que um usuário tenta executar uma análise, o Oracle Analytics chama a função validateAnalysisCriteria. Você pode personalizar validateAnalysisCriteria para validar e bloquear consultas com base em seus próprios critérios específicos. Se a função retornar true, a consulta será executada. Se a função retornar false ou exibir uma mensagem, a consulta será bloqueada.
Por exemplo, veja a seguir o código de amostra de um programa JavaScript chamado 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 retornar qualquer informação diferente de false, os critérios serão considerados válidos e a análise será executada. A função também é usada para validar critérios das operações de visualização e salvamento.
Sempre que um usuário tenta digitar ou modificar uma fórmula de coluna, o Oracle Analytics chama a função validateAnalysisFormula para verificar a operação. Você pode personalizar validateAnalysisFormula para validar e bloquear fórmulas com base em seus próprios critérios específicos. Se a função retornar true, a fórmula será aceita. Se a validação falhar e a função retornar false, a fórmula será rejeitada e sua mensagem personalizada será exibida.
Para exibir uma mensagem e permitir que os usuários continuem, a função tem que retornar true. Para bloquear a consulta, sua função deve retornar false ou exibir uma mensagem. Você pode usar uma string JavaScript e técnicas de expressão regular em sua função para investigar e validar a fórmula.
Estão disponíveis funções auxiliares para que a função de bloqueio de consulta possa verificar filtros, colunas etc. Consulte Funções Auxiliares de Validação.
Por exemplo, o código a seguir mostra como bloquear uma consulta se um usuário digitar 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;
}
Você tem disponível para uso diversas funções auxiliares de validação em um arquivo JavaScript.
| Função Auxiliar de Validação | Descrição |
|---|---|
|
|
Retorna o nome da área de assunto referenciada pela análise. Em geral, é usada em uma instrução de alternância dentro da função antes de fazer outra validação. Se a análise for baseada em critérios, ela retornará |
|
|
Retorna |
|
|
Retorna |
|
|
Verifica para garantir que |
|
|
Retornará |
|
|
Verifica para garantir que |
|
|
Retorna o número de valores de filtro especificados para a coluna lógica em questão. Se o valor do filtro for " |