ALERTS ή EDA (Event Driven Actions) Το ALERTS είναι ένα ευέλικτο εργαλείο ανοιχτού σχεδιασµού που αναπτύχθηκε µε σκοπό να καλύψει ιδιαίτερες απαιτήσεις διαµόρφωσης ή επέκτασης της λειτουργικότητας όλων των ενοτήτων διαχείρισης δεδοµένων. Με ιδιαίτερα φιλικό interface, δίνει τη δυνατότητα στο χειριστή να επέµβει σε οποιαδήποτε γεγονός πριν ή αφότου αυτό συµβεί ώστε να προκαλέσει τις ενέργειες που επιθυµεί. Για να κατανοηθεί ο τρόπος λειτουργίας των γεγονότων (Events) αλλά και των ενεργειών (Actions), θα πρέπει πρώτα να γίνουν κατανοητά τα συστατικά (δοµικά) στοιχεία που συνθέτουν µία ενότητα του προγράµµατος, π.χ. των πελατών. Γεγονότα (Events) & Συνθήκες Βασικό συστατικό στοιχείο κάθε ενότητας του προγράµµατος είναι το πεδίο. Το µοναδικό γεγονός που συµβαίνει σε κάθε πεδίο είναι η αλλαγή της τιµής του. Τα πεδία περιλαµβάνονται σε πίνακες που αποτελούν το επόµενο συστατικό στοιχείο κάθε ενότητας Τα γεγονότα (events) που συµβαίνουν σε κάθε πίνακα είναι : η εισαγωγή (On Insert) η καταχώρηση (Before Post, After Post) και η διαγραφή (Before Delete, After Delete) Στο τελευταίο επίπεδο βρίσκεται η ενότητα που περιλαµβάνει τους πίνακες µε τα πεδία τους και έχει ως σκοπό την συνολική διαχείριση των δεδοµένων µε την βάση δεδοµένων. Τα γεγονότα (events) κάθε ενότητας είναι : η εισαγωγή δεδοµένων στη βάση (before DB insert, after DB insert) η µεταβολή δεδοµένων της βάσης (before DB update, after DB update) η καταχώρηση δεδοµένων στη βάση (before DB post, after DB post) o είτε από εισαγωγή o είτε από µεταβολή και η διαγραφή δεδοµένων της βάσης (before DB delete, after DB delete) Επίσης υπάρχουν τα γεγονότα εµφάνισης εγγραφής που ενεργοποιείται όταν ζητηθεί προβολή της εγγραφής (on locate) εισαγωγής εγγραφής που ενεργοποιείται όταν ζητηθεί νέα εγγραφή (on insert) Στο συγκεκριµένο παράδειγµα της ενότητας των πελατών, υπάρχουν ο πίνακας µε τα βασικά στοιχεία πελατών, ο πίνακας µε τα Extra στοιχεία πελατών, ο πίνακας µε τα υποκαταστήµατα πελατών και πολλοί άλλοι. Κάθε πίνακας µε την σειρά του περιλαµβάνει τα αντίστοιχα πεδία. Το ALERTS δίνει την δυνατότητα να οριστούν συνθήκες, σε κάθε ένα από τα παραπάνω συστατικά (δοµικά) στοιχεία, που όταν επαληθευτούν θα εκτελεστούν µια σειρά από γεγονότα. 1
Συγκεκριµένα έχουµε την δυνατότητα να ορίσουµε συνθήκες για γεγονότα σε επίπεδο ενότητας, σε επίπεδο πίνακα της ενότητας αλλά και σε επίπεδο πεδίου πίνακα. Ενέργειες (Actions) Οι διαθέσιµες ενέργειες που µπορεί να καθοριστεί να εκτελούνται κάθε φορά που επαληθεύεται κάποια συνθήκη είναι οι ακόλουθες : Αποστολή µηνύµατος. Αποστέλλει στον αποδέκτη το µήνυµα που περιγράφεται µε την µορφή τύπου (formula) στο πεδίο Text. Όταν ο τύπος είναι Οθόνη πελάτη, ο αποδέκτης είναι ένας από τους χρήστες του προγράµµατος. Τα µήνυµα θα αποθηκευτεί και µόλις η συγκεκριµένος χρήστης είναι διαθέσιµος θα του εµφανιστεί στην οθόνη. Στην περίπτωση E-mail χρήστη αλλά και Κινητό χρήστη ο αποδέκτης περιγράφεται µε τύπο (formula). Απαραίτητη προϋπόθεση για αποστολή σε E-mail και κινητό, είναι να υπάρχει ο SoftOne Remote Server, ο οποίος θα εξυπηρετήσει αυτά τα µηνύµατα. Σηµειώστε ότι στην περίπτωση αυτή δεν εµφανίζεται καµία σχετική ένδειξη στην οθόνη του χειριστή της εφαρµογής που έχει εκτελέσει το γεγονός (event) και κατά συνέπεια έχει ενεργοποιήσει την ενέργεια. Εµφάνιση µηνύµατος. Εµφανίζει το µήνυµα που περιγράφεται µε την µορφή τύπου (formula) (σταθερό κείµενο ή παραµετρικά οριζόµενο) στο πεδίο Text στον χρήστη του προγράµµατος. εν επηρεάζει την ροή του προγράµµατος. Εµφάνιση λάθους. Εµφανίζει το µήνυµα που περιγράφετε µε την µορφή τύπου (formula) (σταθερό κείµενο ή παραµετρικά οριζόµενο)στο πεδίο Text στον χρήστη του προγράµµατος. Σταµατάει την ροή του προγράµµατος. Εκτέλεση SQL εντολής. Εκτελεί την SQL εντολή που περιγράφεται µε την µορφή τύπου (formula) στο πεδίο Text. VB script. Εκτελεί το VB script που περιγράφεται µε την µε την µορφή τύπου (formula) στο πεδίο Text. Java script Εκτελεί το Java script που περιγράφεται µε την µε την µορφή τύπου (formula) στο πεδίο Text. Συνάρτησης. Εκτελεί τη συνάρτηση, από τις εσωτερικές συναρτήσεις του προγράµµατος, που περιγράφεται µε την µε την µορφή τύπου (formula) στο πεδίο Text. Εργασίας. Εκτελεί το SQL που περιγράφεται µε την µε την µορφή τύπου (formula) στο πεδίο Text. Ενηµέρωση. Μπορεί να χρησιµοποιηθεί µόνο για τις συνθήκες σε επίπεδο ενότητας και µόνο για τα γεγονότα που σχετίζονται µε την βάση δεδοµένων. Στις «πριν το γεγονός (before)» ενέργειες εµφανίζεται ερώτηση επιβεβαίωσης του γεγονότος. Στις «µετά το γεγονός (after) ενέργειες» εµφανίζεται µήνυµα ολοκλήρωσης του γεγονότος. Στην περίπτωση αυτή, δεν χρειάζεται να οριστεί τίποτα περισσότερο από τη συνθήκη καθώς όλα τα υπόλοιπα υπολογίζονται αυτόµατα και ανά περίπτωση. 2
Τέλος, υπάρχει η δυνατότητα ορισµού Συνθηκών ευρετηρίου-αναζήτησης. Στην περίπτωση αυτή ορίζετε ως γεγονός ενέργειας «εκτέλεση», ως τύπο «SQL φίλτρου» και στο Text περιγράφετε το SQL µε τη µορφή τύπου (formula) που θα προσαρτάται στα ευρετήρια και στις αναζητήσεις όταν ικανοποιείται η συνθήκη. ALERTS FAQ Συχνές ερωτήσεις 1. Πώς καταλαβαίνω σε ποιο επίπεδο πρέπει να εισάγω τη συνθήκη (σε ενότητα σε πίνακα σε πεδίο); Οι συνθήκες που αναφέρονται σε ενότητες τις εφαρµογής αφορούν µεταβολές δεδοµένων που αποθηκεύονται στη βάση δεδοµένων ενώ οι συνθήκες πεδίων και πινάκων ελέγχουν µεταβολές πριν αποθηκευθούν στη βάση. Για το λόγο αυτό, οι συνθήκες πεδίων και πινάκων χρησιµοποιούνται κυρίως για την καθοδήγηση του χειριστή κατά την εκτέλεση εργασιών ενώ οι συνθήκες ενοτήτων εξυπηρετούν ελεγκτικούς κυρίως σκοπούς. 2. Πώς µπορώ να ορίσω παραµετρικό µέρος στον τύπο (formula) του κειµένου (π.χ. διαγράφηκε το παραστατικό SALDOC.FINCODE ); Για τις περιπτώσεις όπου απαιτείται δυναµική διαµόρφωση του κειµένου θα πρέπει να χρησιµοποιηθεί η σύνταξη : +FIELDNAME για τα αλφαριθµητικά πεδία +string(fieldname) για τα αριθµητικά πεδία όπου FIELDNAME το όνοµα του πεδίου στη βάση, η τιµή του οποίου θα µεταβάλλεται κατά περίπτωση. Παράδειγµα : εν µπορεί να διαγραφεί ο πελάτης +CUSTOMER.NAME+ γιατί έχει κινήσεις και τζίρο '+ string(customer.trdr_cusfindata_lturnovr); 3. Πώς µπορώ να καθορίσω περισσότερες από µία ενέργειες σαν αποτέλεσµα ενός event; Κάθε event µπορεί να επιφέρει περισσότερες από µια ενέργειες. Στην περίπτωση αυτή στο grid <Γεγονότα συνθήκης> καθορίζετε ανά γραµµή τις ενέργειες. Η σειρά εκτέλεσης τους αποφασίζεται εσωτερικά και δεν είναι απαραίτητα ίδια µε τη σειρά εµφάνισης τους στο grid. 4. Πώς µπορώ να καθορίσω περισσότερους από έναν αποδέκτες µηνυµάτων ALERTS ; Εάν θέλετε το ίδιο µήνυµα να αποσταλεί σε περισσότερους από έναν παραλήπτες τότε δηµιουργήστε τόσες γραµµές στο grid <Γεγονότα συνθήκης> όσοι είναι και οι παραλήπτες µε όλες τις παραµέτρους ίδιες ενώ στη στήλη <Αποδέκτης> επιλέξτε κάθε φορά τον χειριστή. 5. Πως γνωρίζω ποιο event θα πρέπει να χρησιµοποιήσω; Τα events insert εφαρµόζονται κατά την εισαγωγή νέας εγγραφής. Τα events update (before,after) εφαρµόζονται κατά την µεταβολή εγγραφής. Τα events post (before,after) και στις δύο παραπάνω περιπτώσεις (insert + update). 3
ALERTS - Παραδείγµατα & Εφαρµογές Όλα τα παρακάτω παραδείγµατα αφορούν στην ενότητα Πελατών Case 1: Συνθήκη πεδίου Κάθε φορά που µεταβάλλεται η διεύθυνση ενός πελάτη µε θετικό τζίρο, στην οθόνη του χειριστή θα προβάλλεται το µήνυµα «Άλλαξε η διεύθυνση του πελάτη [Επωνυµία πελάτη]» 4
Case 2: Συνθήκη πίνακα 1 Απαγόρευση διαγραφής υποκαταστήµατος πελάτη µε θετικό τζίρο, προβάλλοντας το µήνυµα «Ας µην το έγραφες» 5
Case 3: Συνθήκη πίνακα 2 Κατά την εισαγωγή νέου υποκαταστήµατος πελάτη, θα προτείνεται ως κωδικός η τιµή <111*> 6
Case 4: Συνθήκη ενότητας Μόλις ο χειριστής επιλέξει < ιαγραφή> εγγραφής πελάτη µε θετικό τζίρο, η εφαρµογή θα σταµατήσει τη διαδικασία προβάλλοντας σχετικό µήνυµα στην οθόνη του ενώ παράλληλα θα εµφανιστεί µήνυµα ενηµέρωσης στην οθόνη του χειριστή «Προϊστάµενος πωλήσεων». 7
Case 5: Συνθήκη ευρετηρίου Ο χειριστής στον σταθµό εργασίας µε όνοµα υπολογιστή <John> σε όλα τα ευρετήρια πελατών θα µπορεί να εµφανίζει µόνο τις εγγραφές που ο κωδικός πελάτη αρχίζει από <000-00>. Επιπλέον, στον τίτλο των ευρετηρίων θα προστεθεί η ένδειξη <Που βλέπει το Computer John> 8