Μπορείτε να αναπτύξετε δέσμες ενεργειών επικύρωσης σε JavaScript για την επικύρωση κριτηρίων ανάλυσης και τύπων στήλης και τον αποκλεισμό μη έγκυρων ερωτημάτων.
Οι χρήστες που εργάζονται με αναλύσεις μπορούν να καλούν προσαρμοσμένη JavaScript για την επικύρωση κριτηρίων ανάλυσης και τύπων στήλης. Η επικύρωση επιτρέπει τον αποκλεισμό των ερωτημάτων κατά την επεξεργασία μιας ανάλυσης. Η προσαρμοσμένη JavaScript πρέπει να είναι προσπελάσιμη μέσω ενός server ιστού. Για την ενεργοποίηση αυτής της δυνατότητας, οι διαχειριστές καθορίζουν τη διεύθυνση τοποθεσίας του server ιστού στις Ρυθμίσεις συστήματος και κάνουν εγγραφή του server ιστού ως ασφαλούς τομέα.
Κάθε φορά που ένας χρήστης προσπαθεί να εκτελέσει μια ανάλυση, το Oracle Analytics καλεί τη συνάρτηση validateAnalysisCriteria
. Μπορείτε να προσαρμόσετε τη συνάρτηση validateAnalysisCriteria
για την επικύρωση και τον αποκλεισμό ερωτημάτων με βάση δικά σας συγκεκριμένα κριτήρια. Εάν η συνάρτηση επιστρέψει true
, το ερώτημα εκτελείται. Εάν η συνάρτηση επιστρέψει false
ή εμφανίσει ένα μήνυμα, το ερώτημα θα αποκλειστεί.
Για παράδειγμα, ακολουθεί ένα δείγμα κώδικα για ένα πρόγραμμα JavaScript που ονομάζεται 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; }
Εάν η συνάρτηση επιστρέψει οτιδήποτε άλλο εκτός από false
, τα κριτήρια θεωρούνται έγκυρα και η ανάλυση εκτελείται. Η συνάρτηση χρησιμοποιείται επίσης για την επικύρωση κριτηρίων για λειτουργίες προεπισκόπησης και αποθήκευσης.
Κάθε φορά που ένας χρήστης προσπαθεί να εισαγάγει ή να τροποποιήσει έναν μαθηματικό τύπο στήλης, το Oracle Analytics καλεί τη συνάρτηση validateAnalysisCriteria
για να επαληθεύσει τη λειτουργία. Μπορείτε να προσαρμόσετε τη συνάρτηση validateAnalysisFormula
για την επικύρωση και τον αποκλεισμό μαθηματικών τύπων με βάση δικά σας συγκεκριμένα κριτήρια. Εάν η συνάρτηση επιστρέψει true
, ο μαθηματικός τύπος γίνεται αποδεκτός. Εάν η επικύρωση αποτύχει, η συνάρτηση επιστρέφει false
, ο μαθηματικός τύπος απορρίπτεται και εμφανίζεται το προσαρμοσμένο μήνυμά σας.
Για να εμφανιστεί ένα μήνυμα και να επιτρέψετε στους χρήστες να συνεχίσουν, η συνάρτηση πρέπει να επιστρέφει true
. Για να αποκλείσετε το ερώτημα, η συνάρτησή σας πρέπει να επιστρέφει false
ή να εμφανίζει ένα μήνυμα. Μπορείτε να χρησιμοποιήσετε μια συμβολοσειρά JavaScript και τεχνικές κανονικής έκφρασης στη συνάρτησή σας για να διερευνήσετε και να επικυρώσετε τον τύπο.
Διατίθενται βοηθητικές συναρτήσεις ώστε η συνάρτηση αποκλεισμού ερωτημάτων να μπορεί να ελέγχει για φίλτρα, στήλες, κτλ. Ανατρέξτε στην ενότητα Βοηθητικές λειτουργίες επικύρωσης.
Για παράδειγμα, ο ακόλουθος κώδικας παρουσιάζει πώς να αποκλείσετε ένα ερώτημα εάν ο χρήστης εισαγάγει έναν μη αποδεκτό μαθηματικό τύπο.
// 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; }
Διατίθενται αρκετές βοηθητικές λειτουργίες επικύρωσης σε ένα αρχείο JavaScript για να τις χρησιμοποιήσετε.
Βοηθητική λειτουργία επικύρωσης | Περιγραφή |
---|---|
|
Επιστρέφει το όνομα της περιοχής θέματος στην οποία παραπέμπει η ανάλυση. Γενικά, χρησιμοποιείται σε μια δήλωση εναλλαγής εντός της λειτουργίας πριν κάνει άλλη επικύρωση. Εάν η ανάλυση είναι κριτήρια βάσει συνόλου, τότε επιστρέφει |
|
Επιστρέφει |
|
Επιστρέφει |
|
Ελέγχει για να εξασφαλιστεί ότι η στήλη |
|
Επιστρέφει |
|
Ελέγχει για να εξασφαλίσει ότι υπάρχει το |
|
Επιστρέφει τον αριθμό των τιμών φίλτρου που έχουν καθοριστεί για τη δεδομένη λογική στήλη. Εάν η τιμή φίλτρου είναι " |