È possibile sviluppare script di convalida in JavaScript per convalidare i criteri di analisi e le formule delle colonne, nonché per bloccare le query non valide.
Gli utenti che lavorano con le analisi possono richiamare JavaScript personalizzato per convalidare i criteri di analisi e le formule delle colonne. La convalida consente di bloccare le query durante la modifica di un'analisi. È necessario che JavaScript personalizzato sia accessibile mediante un Web server. Per abilitare questa funzione, gli amministratori specificano l'URL del Web server nelle impostazioni di sistema e registrano il Web server come dominio sicuro.
Ogni volta che un utente tenta di eseguire un'analisi, Oracle Analytics richiama la funzione validateAnalysisCriteria
. È possibile personalizzare validateAnalysisCriteria
per convalidare e bloccare le query in base a criteri specifici. Se la funzione restituisce true
, la query viene eseguita. Se la funzione restituisce false
o visualizza un messaggio, la query viene bloccata.
Ad esempio, di seguito è riportato un esempio di codice per un programma JavaScript denominato 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 la funzione restituisce un valore diverso da false
, il criterio viene considerato valido e l'analisi viene eseguita. La funzione viene utilizzata anche per convalidare i criteri per le operazioni di anteprima e salvataggio.
Ogni volta che un utente tenta di immettere o modificare una formula di colonna, Oracle Analytics richiama la funzione validateAnalysisFormula
per verificare l'operazione. È possibile personalizzare validateAnalysisFormula
per convalidare e bloccare le formule in base a criteri specifici. Se la funzione restituisce true
, la formula viene accettata. Quando la convalida non riesce la funzione restituisce false
, la formula viene rifiutata e viene visualizzato il messaggio personalizzato.
Per visualizzare un messaggio e consentire agli utenti di continuare, la funzione deve restituire true
. Per bloccare la query, la funzione deve restituire false
o visualizzare un messaggio. Nella funzione è possibile usare una stringa JavaScript e tecniche di espressione regolare per esaminare e convalidare la formula.
Le funzioni di supporto disponibili consentono alla funzione di blocco delle query di verificare la presenza di filtri, colonne e così via. Vedere Funzioni di supporto per la convalida.
Ad esempio, il codice riportato di seguito mostra come bloccare una query se un utente immette una formula non accettabile.
// 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; }
In un file JavaScript sono disponibili diverse funzioni di supporto per la convalida.
Funzione di supporto per la convalida | Descrizione |
---|---|
|
Restituisce il nome dell'area argomenti a cui fa riferimento l'analisi. In genere viene utilizzata in un'istruzione SWITCH all'interno della funzione prima di eseguire altre convalide. Se l'analisi è un criterio basato su set, restituisce |
|
Restituisce |
|
Restituisce |
|
Verifica che |
|
Restituisce |
|
Verifica che |
|
Restituisce il numero di valori di filtro specificati per la colonna logica indicata. Se il valore di filtro è " |